別のプログラムが開始するたびにプログラムを開始したい。
次に例を示します。GoogleChromeを起動するたびに、iTunesを同時に起動したいと思います。
また、ブラウザでプログラムを起動するリンクをクリックしたときに起動します(「iTune WebサイトのiTunesで表示」など)。
.batファイルを使用する必要はありません。
Windows 7で実行しています
別のプログラムが開始するたびにプログラムを開始したい。
次に例を示します。GoogleChromeを起動するたびに、iTunesを同時に起動したいと思います。
また、ブラウザでプログラムを起動するリンクをクリックしたときに起動します(「iTune WebサイトのiTunesで表示」など)。
.batファイルを使用する必要はありません。
Windows 7で実行しています
回答:
レジストリを使用して実行する特定のアプリのペアを設定し、MIMEタイプの扱いを変更することができます。ただし、より一般的ではるかに複雑な別の方法は、タスクスケジューラを使用することです。タスクスケジューラは、イベントログエントリなど、さまざまなタイプのトリガーに基づいてアプリを起動できます。
したがって、必要なのは、アプリケーションが起動するたびにイベントが作成されるようにし、イベントがログに記録されるたびに開始するスケジュールされたタスクを作成することです。
secpol.msc
して実行ボックスに入力しますSuccess
これで、アプリケーションを起動すると、イベントビューア/セキュリティログを見ると、アプリケーションが起動するたびにプロセス作成イベント4688
が表示されます。
[ XML ]タブに切り替えて、手動で編集クエリを有効にします
次が表示されます
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13312 and (band(Keywords,9007199254740992)) and (EventID=4688)]]
</Select>
</Query>
</QueryList>
次に、トリガーを発生させたいアプリケーションを追加するだけです。たとえば、これnotepad.exe
はトリガーとして使用します。
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13312 and (band(Keywords,9007199254740992)) and (EventID=4688)]]
and
*[EventData[Data[@Name='NewProcessName'] and (Data='C:\Windows\System32\notepad.exe')]]
</Select>
</Query>
</QueryList>
これをクリックしOk
てOk
から、トリガーダイアログボックスを閉じます。
次に、[ アクション ]タブを選択し、新しいアクション、つまりを作成Start a Program
し、トリガーアプリケーションと一緒に起動するアプリケーションを参照します。
Computer Configuration/Windows Settings/Security Settings/Audit Policy
<QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (band(Keywords,9007199254740992)) and (EventID=4689)]] and *[EventData[(Data='PATH TO THE DESIRED EXE')]] </Select> </Query> </QueryList>
上記のポールの答えはほとんどの人にとってうまくいくだろうと確信していますが、何らかの理由でそれを私のプログラムでうまく動かすことができませんでした。
Notepad.exeのパスを指定すると、タスクが正常に作成されました。使用するプログラムのパスを変更するAn event filter for a trigger is not valid
と、タスクの作成の最後に[OK]を押すと、常にエラーが発生しました。イベントフィルターは、私のプログラムがProgram Files(x86)フォルダーに置かれていることを除いて、Paulのそれとまったく同じように見えます(私は彼の手順に従って自分で生成しました)。
最終的には、外部ソフトウェアのBill's Process Managerをインストールすることで問題を解決しました。称賛このStackExchange答え、それのために。