我正在使用user32 SendMessage dll命令将命令传输到Windows应用程序。
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
其中一个命令会导致应用程序显示接受输入的模式框。
我的问题是:为什么我的应用程序的代码执行会停止,直到另一个应用程序的模式框被关闭?
有没有办法继续执行我的应用程序代码而不会受到使用user32.dll发送邮件时所引起的暂停的干扰?
答案 0 :(得分:4)
SendMessage将阻止,直到呼叫接收者完成处理消息。
您可以使用PostMessage,这将允许您的程序在分派邮件后立即继续执行。
答案 1 :(得分:1)
您可以阅读有关线程here
的信息这是一个简单的例子:
using System.Threading;
public static void DoSendMessage()
{
SendMessage(...);
}
public void RunSendMessage()
{
ThreadStart threadDelegate = new ThreadStart(DoSendMessage);
Thread newThread = new Thread(threadDelegate);
newThread.Start();
}