こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2009-07-06 11:12:46

QNo.5102505

困ってます

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

空白を含んだファイルの指定なので、"で囲まないといけませんね。
A.Run """C:\Program Files\Outlook Express\msimn.exe""", 1, False
に修正すれば動くと思います。

あと、バッチファイル中で時間待ちをしたい場合は、
ping -n 11 localhost >NUL
とかします。↑ 10秒待つ

投稿日時 - 2009-07-06 20:36:42

補足

下記で実行すると、ステートメントの末尾(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

投稿日時 - 2009-07-06 21:03:40

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

もう解決したようだけど、一応回答。

> taskkillの前に2秒ほど止める方が、いいですよね?適当なコマンドはありませんか?
自分自身にping撃てばいいです。pingは1秒おきに発信するという動作を利用したテクニックです。

ping -n 3 localhost

2ではなく3なのはコマンドを実行した直後に発信されるため。

投稿日時 - 2009-07-06 23:45:42

補足

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

投稿日時 - 2009-07-07 07:17:31

ANo.4

>下記で実行すると、ステートメントの末尾(3行目)が不正でエラーになります。

いや、だから、
A.Run """C:\Program Files\Outlook Express\msimn.exe""", 1, False
に修正すれば動くと書いたとおりです。

投稿日時 - 2009-07-06 22:17:55

お礼

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

投稿日時 - 2009-07-06 22:53:30

ANo.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

投稿日時 - 2009-07-06 14:32:31

補足

漢字空白を半角空白に変換だけでk-opt.vbsで保存、実行すると次のエラーになり、関連づけを調べるとVBScript Script Fileとなっていました。
どう処置すれば良いでしょうか?

行:3
文字:1
エラー:この操作に対して指定されたファイルには、アプリケーションが関連付けられていません。
コード:80070483
ソース: (null)

投稿日時 - 2009-07-06 15:29:11

ANo.1

OSが何なのか不明ですが、OEやalt + F4といったキーワードからWindowsと判断します。

本件はtaskkillコマンドで可能です。
使い方はコマンドプロンプト上でtaskkill /?で確認して下さい。

投稿日時 - 2009-07-06 11:21:37

補足

すみません。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を起動して接続したい。

投稿日時 - 2009-07-06 13:22:00

あなたにオススメの質問