2013-06-05 37 views
1

我運行的是Win 7 x64,我已經用Microsoft Visual C++ 2010 express編寫了一個非常簡單的C++程序,可以運行作爲任務調度器中的任務。這是程序代碼(有沒有資源文件或頭文件):簡單的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'無法改變numlock狀態。)。

從我所看到的,該程序似乎並不是互動的。任何人都可以請幫我弄清楚爲什麼會發生這種情況,以及它如何解決? 在此先感謝

回答

0

如果我可以回答我自己的問題,這似乎是某種安全措施的窗口,以避免從用戶桌面外接收鍵盤/鼠標事件(見here)。