1

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 アカウントとして実行したいと考えています。ただし、タスクスケジューラでタスクとして正常に実行できません。いくつかの調査を行った後、システムとして実行されているタスクが対話型ではないという事実が、このプログラムが正しく動作しない原因であると思われます (PsExec ツールを使用して、「PsExec -s -i my_program.exe を確認できます」 ' は機能しますが、'PsExec -s my_program.exe' は numlock 状態の変更に失敗します)。

私が見る限り、このプログラムはインタラクティブではないようです。なぜこれが起こっているのか、どのように修正できるのかを理解するのを手伝ってもらえますか? 前もって感謝します

4

1 に答える 1