我在 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 的朋友计算机)都可以快速运行。
有没有人有同样的问题?也许有人知道解决方案吗?提前致谢。