0

サーバー上でいくつかのタスクを実行するためのコマンドラインアプリを作成しました。たとえば、ウィンドウを「追跡」してキーを送信します。Windows API関数findWindow()を使用してウィンドウを検索します。コマンドラインからexeを実行すると、exec()関数を使用してPHPから実行する場合を除いて、正常に機能します。FindWindow関数は常に0を返します(ウィンドウハンドルが見つかりません)、なぜですか?サンドボックスか何かで実行されていますか?

これについて何ができますか?誰?

ご回答ありがとうございます。

よろしくお願いいたします。ErwinHaantjes

4

1 に答える 1

1

サービスには、フォアグラウンドユーザーセッションでウィンドウを検索する機能はありません。これは、セッション0分離と呼ばれます。

PHPは、特定のセッション/コンテキストで、(通常は)サービスとして実行されているWebサーバーの下で実行されます。このため、findWindows()関数は失敗します。

PHP.exeを呼び出して、独自のセッションのコマンドラインからスクリプトを実行することにより、この理論をテストできます。

于 2011-06-16T16:32:21.000 に答える