我试图用来psexec
在远程机器上生成一个进程(出于自动化测试目的),并注意到生成的进程没有正确响应消息(WM_GETOBJECT
,但这完全是另一个问题)。我打开spy++
试图查看原因,但我无法记录任何进入我的进程窗口的消息。窗口属性还表明该窗口的“Windows Proc”为“不可用”:
.
我认为这是 Windows 服务的一种行为,因为psexec
它使用远程机器上的嵌入式服务来启动请求的应用程序。我使用相同的凭据登录到两台机器,所以我认为这不是用户安全问题,而是与服务相关的行为。
作为健全性检查,我编写了一个快速的独立服务器和客户端来远程执行程序,一切都按预期工作:Window Proc 不再“不可用”,我可以监视消息。
我对所有测试都使用了普通的 Windows 计算器 ( calc
),即:
psexec.exe -i \\other-machine calc
我的问题:有人可以确认、解释和/或引用为什么我看不到由服务产生的进程的消息队列吗?还有解决方法吗?我宁愿使用而psexec
不是我的自定义解决方案。如果您还可以解释为什么WM_GETOBJECT
在这种情况下也不返回我的自定义 UI 自动化提供程序,那将是一个奖励,因为这是我最初的问题。