アプリケーションの中止はできますか? – プログラミング – Home

アプリケーションの中止はできますか?
 
通知
すべてクリア

アプリケーションの中止はできますか?


みちる
 みちる
(@みちる)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

動作中のアプリケーションを中止するプログラムをVC++で作りたいのですが、
こんなことできるのでしょうか?


引用解決済
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

アプリケーションが外部から中止できるような処理を行っているのであれば可能です。

WM_CLOSEをトップレベルウィンドウに投げれば大抵のアプリケーションは終了しますが,確実ではないです。


返信引用
みちる
 みちる
(@みちる)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

YuOさん、早々ご回答ありがとうございます。アプリケーション(現在実行している
xxx.exe)を、UNIXのKillコマンドみたいに、exe名を指定して終了させたのですが
WM_CLOSEはこれに適用できるのでしょうか?
たとえば、kill(word.exe)のように...


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

Windowsの勉強が先かも……。
とりあえず,WM_CLOSEが何かわかっていないようですし。

Microsoft Knowledge Base JP175030を参考にProcess ID(PID)を取得して,
EnumWIndowsとGetWindowThreadProcessIdを経由すれば可能。

PIDからプロセスハンドルを生成して(OpenProcess),
TerminateProcessという手段はありますが,問題が起きる可能性があるので,お勧めできません。


返信引用
みちる
 みちる
(@みちる)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

Yuoさん、ありがとうございます。
VC++ははじめてです。WM_CLOSEが何であるのかわかりません。
可能なことがわかっただけでも助かりました。
もうすこし勉強してからつづきを質問させていただきます。
またのフォローよろしくお願いします。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

UNIXの話が出ていますし、多分わかっていて言われているのだと思いますが、
UNIXでもKillでプロセスを殺すと何がしかの残骸が残って後始末が面倒なことに
なりますよね。
Windowsでも同様でプロセスを直接終わらせるようなことをすれば、残骸が残ります。
きちんと終了手順を踏んで終わらせるような手段をとらないと問題発生の原因になります。
そういう意味では、YuOさんが言われているようにWM_CLOSEだって確実でありませんし、
なぜ、そういうことがしたいのかという説明もないので適切な回答は出来ないと思いますよ。


返信引用
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

勉強する手間を惜しんでこういうツールを使ってみるとか。
http://www.sysinternals.com/ntw2k/freeware/pskill.shtml


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました