EnumWindowでトップレベルのウィンドウを列挙し、ワイルドカードを使ってウィンドウのタイトルを比較すればいいのではないでしょうか。
とりあえずOar32.dllで使っているワイルドカードによる文字列比較の関数を置いておきます。
コード: 全て選択
Declare Function CharNext Lib "user32" Alias "CharNextA" (lpszCurrent As BytePtr) As BytePtr
Function StrMatch(ptn As BytePtr,str As BytePtr) As Long
Select Case ptn[0]
Case 0
StrMatch=(str[0]=0)
Case Asc("*")
StrMatch=StrMatch(CharNext(ptn),str)
If str[0] Then StrMatch=StrMatch Or StrMatch(ptn,CharNext(str))
Case Asc("?")
StrMatch=(str[0]<>0) And StrMatch(CharNext(ptn),CharNext(str))
Case Else
StrMatch=(memcmp(ptn,str,IsDBCSLeadByte(ptn[0])+1)=0) And StrMatch(CharNext(ptn),CharNext(str))
End Select
End Function
第1引数がワイルドカードを使ったパターン文字列、第2引数が比較対象の文字列です。
戻り値は正しければ0以外、正しくなければ0となります。
なお、? 記号(今回は使うことがないかもしれませんが)は2バイト文字も表すことができます。
※StrMatch("テ?ト","テスト") <> 0 となります
EnumWindowのコードはお決まり(?)なのでここでは省略します(検索して調べてみてください)。