投稿者 brv  (中学生) 投稿日時 2009/12/8 01:26:59
いろいろと試行錯誤をしてみました。

プロセスの起動後、5秒ほど待ってからプロセスのメインウインドウのタイトルを取得してみました。

Using cplProcess As Process = Process.Start("inetcpl.cpl")
            Threading.Thread.Sleep(5000)
            MsgBox(cplProcess.MainWindowTitle)
End Using


しかし、プロセスがすでに終了していて取得できませんでした。

タスクマネージャで確認したところ、コントロールパネルを閉じるとrundll32.exeが閉じるのがわかりました。
コントロールパネルを開いた5秒後にrundll32.exeを取得しようとしましたが…

        Using cplProcess As Process = Process.Start("inetcpl.cpl")

        End Using
        Threading.Thread.Sleep(5000)
        For Each p As Process In Process.GetProcessesByName("rundll32.exe")
            If p.HasExited Then
                MsgBox("終了しました")
            Else
                MsgBox("終了していません")
            End If
        Next

メッセージボックスが一つも出ずに終了しました。こちらもUACの関係でrundll32.exeのプロセスが取得できないようです。

結局何もわかりませんでした…