バッチ処理でアイコンが残る?



 ◇-?バッチ処理でアイコンが残る?-マサミ-05/07-00:11(184)-No.449102
   ┗?!Re:バッチ処理でアイコンが残る...-pandora-05/07-10:21(174)-No.449118
     ┗?!【ありがとう】Re:バッチ処理で...-マサミ-05/07-14:22(170)-No.449136
       ┗?!A!Re:バッチ処理でアイコンが残...-LL-05/07-17:18(167)-No.449161
         ┗?!A!!Re:バッチ処理でアイコンが残...-良-05/07-18:47(165)-No.449165
           ┗?!A!!~Re:バッチ処理でアイコンが...-マサミ-05/07-19:01(165)-No.449166
             ┗?!A!!~!Re:バッチ処理でアイコンが...-良-05/08-12:17(148)-No.449226
               ┗?!A!!~!!ご注意のほど...-pandora-05/08-13:04(147)-No.449228
                 ┗?!A!!~!!!Re:ご注意のほど...-マサミ-05/08-13:21(147)-No.449233
                   ┗?!A!!~!!!!なるほどね...-pandora-05/08-14:21(146)-No.449237
                     ┗?!A!!~!!!!【ありがとう】Re:なる...-マサミ-05/08-14:28(146)-No.449239

▲このページのトップに戻る
449102バッチ処理でアイコンが残る?マサミ 2008/05/07-00:11

メーカー名:DELL デル
OS名:WindowsXp HomeEdition
パソコン名:Inspiron 1525
--
バッチファイルで処理させると必ずタスクトレイにアイコンが残ります。
処理内容は「起動→実行→終了」と言った動作などです。
マウスを持って行くと消えるので実体はないようなんですが、これを自動で消えるようにする方法はないでしょうか?
可能ならbatファイルに記述したいのですが、ご存知の方いらっしゃいましたらよろしくお願いします。

▲このページのトップに戻る
449118Re:バッチ処理でアイコンが残る?pandora 2008/05/07-10:21

記事番号449102へのコメント
マサミさんは No.449102「バッチ処理でアイコンが残る?」で書きました。

私は良くバッチコマンドを作成しますが、
心配されているようなことは気にせずとも平気ですよ。

試しに、こんなバッチを作成して実行させるとどうなりますか?

::---(この下から)---

@ECHO OFF
ECHO.
ECHO Hello world
ECHO.

::PAUSE
EXIT

::---(この上まで)---


上記をコピーして、メモ帳等のTEXTエディタに貼り付け、
「 test.cmd 」というファイル名で保存してください。

それを、エクスプローラ上からダブルクリックして実行させる。

たぶん一瞬、コマンドプロンプト画面が現われ、消えると思います。


次に、
上記の ::PAUSE の部分を、PAUSE と、「::」を消した状態にして、
もう一度実行させてみてください。

今度は、コマンドプロンプト画面が表示されたまま残るはずです。
何かキーを押すと画面は消えます。
それぞれ、タスクトレイの状態はどうなりますか?


ちなみに、
DOSバッチコマンドは、NT系では、ファイル拡張子が 「 .cmd 」です。

また、
DOSバッチコマンドに関しては、以下が参考になると思います。

・DOS/Vコマンド・リファレンス
http://www.fpcu.jp/dosvcmd/index.htm
・DOSプロンプト活用相談室
http://www.fpcu.jp/dosvcmd/bbs/log/

▲このページのトップに戻る
449136Re:バッチ処理でアイコンが残る?マサミ 2008/05/07-14:22

記事番号449118へのコメント
pandoraさんは No.449118「Re:バッチ処理でアイコンが残る?」で書きました。

すいません説明不足だったようです。
バッチファイルで常駐プログラムを瞬時に終了させるもの作りました。
それを実行すると確かにプログラムは終了するのですが、タスクトレイにアイコンだけが残ったままになります。
それをどうにかできないかと思いまして相談しました。
ちなみにアイコンはカーソルを持って行くと消えます。
バッチファイルの内容は以下のようになっています。

taskkill /f /im ???.exe

▲このページのトップに戻る
449161Re:バッチ処理でアイコンが残る?LL 2008/05/07-17:18

記事番号449136へのコメント
マサミさんは No.449136「Re:バッチ処理でアイコンが残る?」で書きました。
>taskkill /f /im ???.exe
???の部分には、具体的に終了させる常駐プログラム名が、入力されていたという
認識でよろしいのでしょうか?

例えばこんなページは参考になりませんか?
http://technet2.microsoft.com/WindowsServer/ja/library/c1db6dae-41c3-4c94-a038-d87baa0fee091041.mspx?mfr=true

▲このページのトップに戻る
449165Re:バッチ処理でアイコンが残る?2008/05/07-18:47

記事番号449161へのコメント
LLさんは No.449161「Re:バッチ処理でアイコンが残る?」で書きました。

> OS名:WindowsXp HomeEdition

質問者のOSは、Homeなので、
taskkill.exe は存在しないはずですよ。

▲このページのトップに戻る
449166Re:バッチ処理でアイコンが残る?マサミ 2008/05/07-19:01

記事番号449165へのコメント
taskkillは利用可能にしてあります。

▲このページのトップに戻る
449226Re:バッチ処理でアイコンが残る?2008/05/08-12:17

記事番号449166へのコメント
マサミさんは No.449166「Re:バッチ処理でアイコンが残る?」で書きました。

>taskkillは利用可能にしてあります。
homeの場合は、tskill.exeを使いましょう。

ですが、質問内容の、
>タスクトレイにアイコンが残ります。

taskkill.exe
tskill.exe

Proxomitronというプロキシソフトで実験した結果
どちらも、タスクトレイにアイコンが残りました。


BATでなくVBSなら、成功するかも?

VBScript Tips (Tips0107)
[プログラムを強制終了する]
http://www.whitire.com/vbs/tips0107.html

−−−サンプル.vbs−−−

Option Explicit
On Error Resume Next

Dim objWshShell ' WshShell オブジェクト
Dim strCmdLine ' 実行するコマンド
Dim objExecCmd ' 実行コマンド情報

Set objWshShell = WScript.CreateObject("WScript.Shell")
If Err.Number = 0 Then
strCmdLine = "D:\ProxN45\Proxomitron.exe"
Set objExecCmd = objWshShell.Exec(strCmdLine)
If Err.Number = 0 Then
' WScript.Echo strCmdLine & " を起動しました。"
' 3秒待ってみる
WScript.Sleep(3000)
objExecCmd.Terminate
If Err.Number = 0 Then
WScript.Echo strCmdLine & " を強制終了しました。"
Else
WScript.Echo "エラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If

Set objExecCmd = Nothing
Set objWshShell = Nothing

▲このページのトップに戻る
449228ご注意のほどpandora 2008/05/08-13:04

記事番号449226へのコメント
良さんは No.449226「Re:バッチ処理でアイコンが残る?」で書きました。

このサンプルVBSは、自分の中から起動をかけたオブジェクトに対し、terminateをかける。
とう言うものですから、
スレ主の希望とは使い方が違うと思いますので、試される場合は、ご注意のほど。


なお、
タスクバー上にアイコンが残ってても、
バッチ処理プロセスとしては、既に消滅してますから、機能上は問題はないと思いますが、
なにか差しさわりがあるのでしょうか?
#確かに見た目は悪いですが。。。

▲このページのトップに戻る
449233Re:ご注意のほどマサミ 2008/05/08-13:21

記事番号449228へのコメント
pandoraさんは No.449228「ご注意のほど」で書きました。
連続で起動や終了をするとアイコンがいくつもタスクトレイに残ってしまうので
わずらわしいので消す方法があればと思いました。

▲このページのトップに戻る
449237なるほどねpandora 2008/05/08-14:21

記事番号449233へのコメント
マサミさんは No.449233「Re:ご注意のほど」で書きました。

なるほどね。

ならば、
複数の終了させたいものを、一回一回バッチコマンドを起動するのではなくて、
あらかじめ終了させたいもののリストを作っておき、
そのリストに基づいて、一回のバッチ起動で、全て終了
てな具合のバッチ処理にすればいかが?

リストをTEXTファイル化しておけば、FOR文を使って読み出せますよ。


こんな感じ

@ECHO OFF
:: INIファイルからの内容取り出し
IF EXIST %~n0.INI (
FOR /F "USEBACKQ EOL=; DELIMS=" %%A IN (%~n0.INI) DO (
:: プロセスをterminateさせる
echo %%Aを強制終了します。
taskkill /f /im "%%A"
)
)
EXIT


TEXTファイルは、コメントも付けられてこんな感じ

;Process A
aaa.exe
;Process B
bbb.exe

▲このページのトップに戻る
449239Re:なるほどねマサミ 2008/05/08-14:28

記事番号449237へのコメント
pandoraさんは No.449237「なるほどね」で書きました。

複数での終了はしているのですが、同じバッチファイルを何度も使う事が度々あるため
どうしてもアイコンが複数表示されてしまいます。
でもこれは仕様のようなのであきらめます。
ご相談に乗って頂いた方々ありがとうございました。

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言