1
我的Outlook Express始終位於頂端,Google Chrome位於Outlook後面。如何使用Visual Basic在OutLook Express上運行谷歌瀏覽器?如何將外部應用程序窗口置於頂部?
以下打開一個新的應用程序,但我希望現有的谷歌瀏覽器頂部?
Shell("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", AppWinStyle.MaximizedFocus)
編輯:
Public Class Form1
Declare Auto Function FindWindow Lib "User32.dll" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Declare Auto Function SetForegroundWindow Lib "User32.dll" (ByVal Hwnd As IntPtr) As Long
'Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Int32) As Int32
Declare Auto Function FindWindowEx Lib "User32.dll" (ByVal hwndParent As IntPtr, ByVal hwndChildAfter As IntPtr, ByVal lpszClass As String, ByVal lpszWindow As String) As IntPtr
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Shell("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", AppWinStyle.MaximizedFocus)
Dim Handle As IntPtr = FindWindow("Notepad", Nothing)
If Handle.Equals(IntPtr.Zero) Then
End
End If
'Dim HandleChildOne As IntPtr = FindWindowEx(Handle, IntPtr.Zero, "Notepad", IntPtr.Zero)
'If HandleChildOne.Equals(IntPtr.Zero) Then
'End
'End If
Dim Result As Integer = SetForegroundWindow(Handle)
If Result.Equals(0) Then
End
Else
MsgBox("Above 0: success. https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx " & Result)
End If
End Sub
Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
End
End Sub
End Class
不知道這是否是問題,但調用的是'SetForegroundWindow()'用小寫字母「G」 – AlanT
有Chrome的窗口位置/尺寸得到意外修改許多限制哪些進程可以設置前臺窗口(https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx),所以它可能是你正在對其中一個犯規。首先,我會檢查FindWindow()返回一個有效的句柄,然後檢查SetForegroundWindow()的返回值。注意:其中一個限制是該進程無法被調試。 – AlanT
我不知道這是否是您的真實代碼,因爲您發佈的第一個代碼因爲運行時錯誤而失敗。您似乎也完全忽略了錯誤檢查。爲什麼?你有沒有想過調試? –