タイトル : Re^6: IE を最前面に表示 投稿日 : 2008/03/07(Fri) 14:33 投稿者 : 花ちゃん
> ということはEnumWndProc等を使用して「IEタイトル」等で目的のハンドルを特定して > SetWindowPosにほうり込む方法しかないのでしょうか? > APIを使用するしかないのでしょうか? 別窓で表示させた場合は、そのようにするしかないのでは。 Form 上に表示した WebBrowser 内に表示させた場合なら Me.TopMost = True でも可能 ですが。 > リンクラベルのサンプルがMSに載っていますが どれの事でしょうか? > 「 System.Diagnostics.Process.Start("IExplore.exe", "URL") ’MSDN」 > これだととりあえずIE起動表示時に最前面に表示されるのでは? これだけでは、常に最前面に表示される事はありません。 どのように指定のウィンドウを表示させたいかで取得方法も変わってきますが、 下記コードで実験して見て下さい。 コメントを付けたままと、外した状態で比べて見て下さい。 (同じ事をメモ帳で実験すると違う答えになります) Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim p As Process = New Process p.StartInfo.FileName = "IExplore.exe" p.Start() p.WaitForInputIdle() ' System.Threading.Thread.Sleep(1000) Debug.WriteLine(p.MainWindowHandle) Dim Ret As Integer = SetWindowPos(p.MainWindowHandle, HWND_TOPMOST _ , 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) p.Close() End Sub |