1

我如何与 VB 之外的另一个程序“交互”?例如,假设我想更改正在运行的程序的标题,例如 Firefox 或最小化/最大化它,是否可以这样做?

4

2 回答 2

3

最有可能的是,您需要使用SendMessage或向另一个窗口发送 Windows 消息PostMessage

SendMessage 的文档在这里:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms644950 (v=vs.85).aspx 。这将告诉您可以使用 SendMessage 的所有不同方式。

PInvoke.NET 将 SendMessage 函数的 VB.NET 签名显示为:

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function SendMessage(ByVal hWnd As HandleRef, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As String) As IntPtr
End Function

您可以在此处找到有关如何在 VB.NET 中使用 SendMessage 和 PostMessage 的更多信息:http: //www.codeproject.com/Articles/19740/Send-strings-to-another-application-by-using-Windo

于 2013-11-01T23:48:04.813 回答
1

所以,要回答你的问题(我认为罗伯特哈维有一个更彻底的答案),你需要做这样的事情:

Imports System.Diagnostics

Public Class ProcessWrapper

 Public Sub New() // This will likely be different for you, or you won't need it at all.
    MyBase.New()
 End Sub

 Public Function Start(ByVal someProcess As String) As ProcessInfo // Define process here.
    Dim p As Process = Process.Start(someProcess)  // Invoke your process here.
    Return New ProcessInfo(p)  // Return your ProcessInfo object here.
 End Function

End Class

快乐编码,欢迎来到 SO!

于 2013-11-02T00:22:13.077 回答