以前大変お世話になりましたビギナーです。
早速わからないことが出てきました。
まず、これまでの過程なんですけど
当初の目的は、バッチファイルがあり、引数などで処理が変わるように
した複数のバッチファイルで呼ぶようにしています。
1.
このときタスクマネージャの
「プロセス」−「イメージ名」には CMD.EXE が表示されます。
この一覧表を取得するのは何とか作成できました。
2.
ところが、複数のショートカットを呼び出して複数が立ち上がると
CMD.EXEが起動した分だけ表示されます。
そこで、
「アプリケーション」−「タスク」ではショートカットにつけた名前が
表示されるので、同じCMD.EXEが起動していても何が起動しているか
わかると思って前回質問させていただきました。
3.当初の目的は、この一覧表をネットワークを使って他の端末から
情報を取得しようとするもので、目的達成と思われたのですが
ちょっと、進化させて、起動しているバッチファイルを終了させようと
思ったのですが、いざ、終了させようとすると、1で取得したCMD.EXEの
ハンドルに対して操作しなければならないと思っています。(違うかも?!)
そこで質問なのですが、
2で取得したタスク名と対になるCMD.EXEを見つけ出し、
そのプロセスハンドルからCMD.EXEを終了させる方法を教えてください。
>2で取得したタスク名と対になるCMD.EXEを見つけ出し、
>そのプロセスハンドルからCMD.EXEを終了させる方法を教えてください。
この意味はわかりませんが,
プロセスのハンドルがhPrecess,ウィンドウのハンドルがhWindowであれば
各々
TerminateProcess(hProcess,0);
SendMessage(hWindow,WM_CLOSE,0,0)
( または PostMessge(hWindow,WM_CLOSE,0,0) )
で終了できると思いますが...
Mr,XRAY さんありがとうございます。
ウィンドウハンドルで終了することができたんですね。
実装方法を検索して、やっとこさ
終了することができるようになりました。
ついでに2の意味何ですけど、
プロセスのハンドルでしか終了できないと思っていたので、
プロセスのハンドル名がわかっても複数起動されていると
同じ名前のファイル名になって終了するファイルの選択が
できないし、ウィンドウハンドル名で終了できないと思っていたので
このハンドルからプロセスのハンドルを取ってくる方法を
どうするのか質問したのですが、どうもお騒がせしました。
Mr,XRAY さん、お世話になります。
ビギナー です。
以下のエラーが出るのですが、どうすればよいのでしょうか?
未定義の識別子 : 'PostMessge'
すみません。
タイプミスでした。
ツイート | ![]() |