我如何与 VB 之外的另一个程序“交互”?例如,假设我想更改正在运行的程序的标题,例如 Firefox 或最小化/最大化它,是否可以这样做?
问问题
2268 次
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 回答