別のプログラムが開始されたときにプログラムを開始する方法


14

別のプログラムが開始するたびにプログラムを開始したい。

次に例を示します。GoogleChromeを起動するたびに、iTunesを同時に起動したいと思います。

また、ブラウザでプログラムを起動するリンクをクリックしたときに起動します(「iTune WebサイトのiTunesで表示」など)。

.batファイルを使用する必要はありません。

Windows 7で実行しています


明確にできますか?最初のオプションは、Chromeを開くとiTunesも起動することです。しかし、2番目のオプション-iTunesを開くリンクをクリックすると、何か他のものも開くようにしますか?
ポール、

これらは基本的に私は私は1つまたは別のプログラムがそれを開始したい開始したい時にみとめたプログラムを開始したい、一例であり
TheBird956

回答:


19

レジストリを使用して実行する特定のアプリのペアを設定し、MIMEタイプの扱いを変更することができます。ただし、より一般的ではるかに複雑な別の方法は、タスクスケジューラを使用することです。タスクスケジューラは、イベントログエントリなど、さまざまなタイプのトリガーに基づいてアプリを起動できます。

したがって、必要なのは、アプリケーションが起動するたびにイベントが作成されるようにし、イベントがログに記録されるたびに開始するスケジュールされたタスクを作成することです。

「アプリケーション開始」ロギングを有効にする

  1. 開始secpol.mscして実行ボックスに入力します
  2. 移動ローカルポリシー/監査ポリシー
  3. ダブルクリック監査プロセスの追跡と有効化Success

これで、アプリケーションを起動すると、イベントビューア/セキュリティログを見ると、アプリケーションが起動するたびにプロセス作成イベント4688が表示されます。

トリガーに基づいてスケジュールされたタスクを作成する

  1. オープンタスクスケジューラと新しいタスクを作成します
  2. [ 全般]タブで、タスクに名前を付けます
  3. トリガー)タブで新しいトリガーを作成し、トリガーとして(イベント時)を選択します
  4. [ Custom ]を選択し、[ Edit Event Filter ]をクリックします
  5. 次のようにフィルター設定を変更します。

タスクフィルター

[ 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>

これをクリックしOkOkから、トリガーダイアログボックスを閉じます。

次に、[ アクション ]タブを選択し、新しいアクション、つまりを作成Start a Programし、トリガーアプリケーションと一緒に起動するアプリケーションを参照します。


secpol.mscという名前のものはありません。私は小さな研究を行いましたが、それはWindows 7 Home Premiumでは利用できないためだと思います。別の方法はありますか?
TheBird956 14

これが機能するためには監査ポリシーを変更する必要があり、W7HPにはありません。gpedit.mscをW7HPにインストールするためのガイドがいくつかあります。これを使用して、監査ポリシーを編集することもできますComputer Configuration/Windows Settings/Security Settings/Audit Policy
ポール、

@ TheBird956それを機能させることができましたか?
Paul

正しいWindowsバージョンがありません。それにはProが必要だと思いますが、Proがインストールされている兄のコンピューターを試してみましたが、動作しました。
TheBird956 14

1
プログラム/プロセスの終了にトリガを設定/終了/クローズの代わりに、開始/作成するには、イベントフィルタのため、このXMLは、私の仕事: <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>
V. Rubinetti

0

上記のポールの答えはほとんどの人にとってうまくいくだろうと確信していますが、何らかの理由でそれを私のプログラムでうまく動かすことができませんでした。

Notepad.exeのパスを指定すると、タスクが正常に作成されました。使用するプログラムのパスを変更するAn event filter for a trigger is not validと、タスクの作成の最後に[OK]を押すと、常にエラーが発生しました。イベントフィルターは、私のプログラムがProgram Files(x86)フォルダーに置かれていることを除いて、Paulのそれとまったく同じように見えます(私は彼の手順に従って自分で生成しました)。

最終的には、外部ソフトウェアのBill's Process Managerをインストールすることで問題を解決しました。称賛このStackExchange答え、それのために。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.