| 
    
     |  | ウッシさん 
 ありがとうございます!
 ただ、、凄いとしか。
 想像以上に複雑過ぎて焦ってます。
 
 もし宜しければ、ポイントになる部分の解説(コメント)もご教示頂けないでしょうか。。
 お手数掛けてしまいますが、宜しくお願い致します。
 
 
 ▼ウッシ さん:
 >こんにちは
 >
 >Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
 >Public Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
 >Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
 >Public Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
 >Public Const GW_OWNER = 4
 >Public flg As Boolean
 >
 >Public Function GetProc(ByVal hWnd As Long, lParam As Long) As Boolean
 >  Dim sName As String * 128
 >  Dim ret  As Long
 >
 >  sName = ""
 >  ret = GetWindowText(hWnd, s, Len(s))
 >
 >  If IsWindowVisible(hWnd) Then
 >    If GetWindow(hWnd, GW_OWNER) = 0 Then
 >      If ret <> 0 Then
 >        If sName Like "対象のWindowキャプション名*" Then
 >          flg = True
 >          Exit Function
 >        End If
 >      End If
 >    End If
 >  End If
 >  GetProc = True
 >End Function
 >
 >
 >Sub test()
 >  Dim s As Single
 >  s = Timer
 >  flg = False
 >  Do
 >    Call EnumWindows(AddressOf GetProc, 0)
 >    If Timer - s > 10 Then '10秒待ち
 >      Exit Do
 >    End If
 >  Loop Until flg = True
 >  If flg = False Then
 >    MsgBox "時間切れ、見つかりません"
 >  Else
 >    '見つかったので次の処理
 >    Stop
 >  End If
 >End Sub
 >
 >こんな感じでどうでしょうか?
 >
 >
 >▼ちょろすけ さん:
 >>皆さま教えて下さい。
 >>
 >>あるアプリケーションをShellコマンドで起動させて、起動完了(ウインドウが
 >>完全に開いた状態)を判定してから次の処理(SendKeysなど)に移りたいの
 >>ですが、どの様なコードを書けば良いのか行き詰ってます。
 >>
 >>(色々調べてみると、アプリケーションを起動させて、終了を確認してから
 >> 次の処理に移るようなコードはありましたが、今回は起動完了だけを判定
 >> したいです。)
 >>
 >>Do〜Loopとかでも試してみましたが、Shellコマンドが通った時点(ウインドウが
 >>完全に開く前)で次の処理に移ってしまうので、SendKeysなどがうまく動かない
 >>のです。
 >>
 >>長々とすいません、、宜しくお願い致します。
 
 
 |  |