我正在运行 Win 7 x64,并使用 Microsoft Visual c++ 2010 express 编写了一个非常简单的 c++ 程序,作为任务调度程序中的任务运行。这是程序代码(没有资源文件或头文件):
#include <windows.h>
int WINAPI WinMain(HINSTANCE inst,HINSTANCE prev,LPSTR cmd,int show)
{
// Simulate numlock key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate numlock key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
return 0;
}
我希望任务以 SYSTEM 帐户运行,而不依赖于任何用户凭据或他们是否登录。但是,我无法使其作为任务调度程序中的任务成功运行。在做了一些研究之后,我现在怀疑以 SYSTEM 运行的任务不能交互的事实是该程序无法正常工作的原因(通过使用 PsExec 工具,我可以确认 'PsExec -s -i my_program.exe ' 有效,而 'PsExec -s my_program.exe' 无法更改数字锁定状态。)。
据我所知,该程序似乎根本不是交互式的。谁能帮我弄清楚为什么会发生这种情况以及如何解决?提前致谢