【发布时间】:2013-01-06 02:26:14
【问题描述】:
我用 C#(使用 WPF 表单)编写了一些测试代码来检查 sendMessage/PostMessage 是否可以工作。 这里是:
Process x = Process.GetProcessesByName("Any Apps")[0];
if (x == null) return;
MessageBox.Show(x.Id.ToString()); // always works
NativeMethods.SendMessage(x.MainWindowHandle, 0x100, 0x70, 0);//F1
NativeMethods.SendMessage(x.MainWindowHandle, 0x101, 0x70, 0);
查找过程在任何地方都可以工作,但是当我通过 VS 调试密钥运行应用程序时,sendingMessage/postingMessage 从未工作过。有时当我从桌面启动程序时它可以工作,有时不能。但是...有趣的是:在任何可用的机器上(带有 XP 的 VM、另一台带有 64 位 Windows 7 的计算机、32 位 Windows 7 的朋友计算机)都运行得又快又好。
有人遇到同样的问题吗?也许有人知道解决方案吗? 提前致谢。
【问题讨论】:
-
当然它可以工作,否则你不会得到一个 GUI 桌面,只是一个 DOS 提示符。您希望将消息 0x100 和 0x101 准确地发送到 do 什么?
-
我只是说它会像在其他机器上一样工作。我不知道为什么除了我的笔记本(我用来编程)之外它在任何地方都可以工作。
标签: c# visual-studio-2010 winapi