• ベストアンサー

バッチファイルでAPを終了させる書き方?

バッチファイル内で起動したAP(たとえばoutlook express)をAlt+F4で終了させる書き方を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

空白を含んだファイルの指定なので、"で囲まないといけませんね。 A.Run """C:\Program Files\Outlook Express\msimn.exe""", 1, False に修正すれば動くと思います。 あと、バッチファイル中で時間待ちをしたい場合は、 ping -n 11 localhost >NUL とかします。↑ 10秒待つ

okb2400
質問者

補足

下記で実行すると、ステートメントの末尾(3行目)が不正でエラーになります。 僕はバッチファイルの方が判りやすいのですが、msimn.exeの終わらせ方が判りません。 Dim A, B, C Set A = CreateObject ("WSCript.Shell") A.Run ""C:\Program Files\Outlook Express\msimn.exe"", 1, False WScript.Sleep 2000 '2秒間待機 Set A = GetObject("WINMGMTS:\\.\ROOT\CIMV2") Do Set B = A.ExecQuery("SELECT * FROM Win32_Process WHERE name='msimn.exe'") If B.Count > 0 Then 'msimn.exe が起動していた場合 '** 必要ならここにFireFoxの起動を入れる ** For Each C In B C.Terminate 'プロセスを終了させる Next Exit Do 'ループを抜ける End If WScript.Sleep 100 '0.1秒間待機 Loop

その他の回答 (4)

  • x1va
  • ベストアンサー率26% (802/3006)
回答No.5

もう解決したようだけど、一応回答。 > taskkillの前に2秒ほど止める方が、いいですよね?適当なコマンドはありませんか? 自分自身にping撃てばいいです。pingは1秒おきに発信するという動作を利用したテクニックです。 ping -n 3 localhost 2ではなく3なのはコマンドを実行した直後に発信されるため。

okb2400
質問者

補足

わざわざありがとう。 ついでにoutlook express の終わらせ方も教えて 次ではダメですか? taskkill /fi "username eq アカウント名" /im msimn.exe

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.4

>下記で実行すると、ステートメントの末尾(3行目)が不正でエラーになります。 いや、だから、 A.Run """C:\Program Files\Outlook Express\msimn.exe""", 1, False に修正すれば動くと書いたとおりです。

okb2400
質問者

お礼

すみません。 "は2つじゃなくて3つだったんですね。 ありがとうございました。正常に動きました。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

WindowsならバッチではなくScriptにしてみては? Dim A, B, C Set A = CreateObject ("WSCript.Shell") A.Run "C:\Program Files\Outlook Express\msimn.exe", 1, False WScript.Sleep 2000 '2秒間待機 Set A = GetObject("WINMGMTS:\\.\ROOT\CIMV2") Do   Set B = A.ExecQuery("SELECT * FROM Win32_Process WHERE name='msimn.exe'")   If B.Count > 0 Then 'msimn.exe が起動していた場合     '** 必要ならここにFireFoxの起動を入れる **     For Each C In B       C.Terminate 'プロセスを終了させる     Next     Exit Do 'ループを抜ける   End If   WScript.Sleep 100 '0.1秒間待機 Loop 上記をテキストエディタにコピーし、漢字空白を半角空白に変換して、 xxx.vbs として登録します。(xxxは任意) これをダブルクリックするか、コマンドプロンプトから"xxx"と入力 すれば起動します。 特別なRunTimeは不要で、JavaScritpで記述することも可能です。 バッチと異なり、細かい制御が可能です。 http://msdn.microsoft.com/ja-jp/library/cc364421.aspx http://msdn.microsoft.com/ja-jp/library/cc364427.aspx http://msdn.microsoft.com/ja-jp/library/cc364411.aspx

okb2400
質問者

補足

漢字空白を半角空白に変換だけでk-opt.vbsで保存、実行すると次のエラーになり、関連づけを調べるとVBScript Script Fileとなっていました。 どう処置すれば良いでしょうか? 行: 3 文字: 1 エラー: この操作に対して指定されたファイルには、アプリケーションが関連付けられていません。 コード: 80070483 ソース: (null)

  • x1va
  • ベストアンサー率26% (802/3006)
回答No.1

OSが何なのか不明ですが、OEやalt + F4といったキーワードからWindowsと判断します。 本件はtaskkillコマンドで可能です。 使い方はコマンドプロンプト上でtaskkill /?で確認して下さい。

okb2400
質問者

補足

すみません。Win xp sp3です。 次を参考にしたのですが、outlook expressが起動するだけで、うまくkillできません。 http://ykr414.com/dos/ 作成したコマンド。 start "" "C:\Program Files\Outlook Express\msimn.exe" taskkill /fi "username eq アカウント名" /im msimn.exe exit taskkillの前に2秒ほど止める方が、いいですよね?適当なコマンドはありませんか? 「このバッチファイルが欲しい理由」 Firefoxを3.0から3.5にバージョンアップすると自動接続できなくなったので、outlook expressを起動して接続したい。