
No.1ベストアンサー
- 回答日時:
HSPのバージョンが書かれていませんが(HSP2.xとHSP3.xでは方法が
全然違います)取り敢えず、WinAPIのOpenProcessとTerminateProcessを
使用します。
こんな感じですがプロセスを強制終了させるので保存していない
データなどは確認画面がでずに消えます。
; API の宣言
#uselib "kernel32.dll"
#cfunc OpenProcess "OpenProcess" int, int, int
#func CloseHandle "CloseHandle" int
#cfunc TerminateProcess "TerminateProcess" int, int
#uselib "psapi.dll"
#func EnumProcesses "EnumProcesses" var, int, var
#cfunc EnumProcessModules "EnumProcessModules" int, var, int, var
#func GetModuleFileNameEx "GetModuleFileNameExA" int, int, var, int
#func GetModuleBaseName "GetModuleBaseNameA" int, int, var, int
; 変数の宣言
dim proc, 1000000
dim ret
; 起動中のプロセスリスト取得
EnumProcesses proc, length(proc), ret
; プロセスリストから指定のプロセスを取得
repeat ret / 4
; プロセスハンドルを取得
hProc = OpenProcess(0x400 | 0x0010 | 0x0001, 0, proc(cnt))
; プロセスハンドルが取得できたら
if hProc {
if(EnumProcessModules(hProc, list, 4, ret)) {
sdim file, 256
sdim file_name, 256
; モジュール名とモジュールのプルパス取得
GetModuleFileNameEx hProc, list, file, 256
GetModuleBaseName hProc, list, file_name, 256
; 終了させたいモジュール名だったら(小文字限定)
if(getpath(file, 16) = "c:\\windows\\system32\\notepad.exe") {
; 強制終了させる
if(TerminateProcess(hProc, 0) = 0) {
dialog "終了できませんでした"
}
}
}
; プロセスハンドルを閉じる
CloseHandle hProc
}
loop
stop
本当はTerminateProcess()関数を使うのは好ましくないらしいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- Firefox(ファイヤーフォックス) firefoxが頻繁に停止する 1 2023/01/09 10:26
- ヒーター・こたつ・ホットカーペット オイルレスヒーター使ったら電源落ちる、夢暖房買って大丈夫ですか 1 2022/12/27 22:52
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- 日本語 警職法の職質規定のところって、日本語おかしくないですか?職質は任意ですが、どうして「停止させて質問す 8 2023/04/30 05:59
- 車検・修理・メンテナンス 4GR-FSE 電動ファンが止まらない 3 2022/09/10 17:35
- その他(バイク) バイクの停止時、発進時にふらつくことがあります 4 2022/11/09 22:32
- YouTube 最近スマホでYouTubeやツイッチで動画を見ていると急に一時停止することがあります。画面を触ってい 5 2023/07/09 18:23
- 経済 アムウェイが業務停止命令がでましたが、これは違法じゃないですか? 例えばメルカリでもウーバーイーツで 6 2022/10/15 13:47
- 電車・路線・地下鉄 山手線で、緊急でもないのに非常停止ボタンを押して駅員に怒られる動画がありましたが、 イタズラや緊急で 6 2023/03/05 12:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
UNIX関数?(popen)...
-
c言語でプロセスIDを調べたい
-
jcode.plの共有
-
Process.Startの戻り値を後で取得
-
Form_closing中でのCancel処理
-
書きのパイプを「親」と呼ぶ理由
-
VB6.0 SHELLで起動...
-
jdbcのプロセスの処理について
-
C++のプログラムをバックグラウ...
-
プロセスのタイトル
-
POSIX メッセージキュー作成時...
-
共有メモリを使う場合のCPU負荷...
-
さっそくのご回答ありがとうご...
-
windowsのプロセスIDやスレッド...
-
telnetの強制終了について!
-
cvLoadImageを使用するとプロセ...
-
大量データの受け渡し
-
gnome関数の戻り値について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
プロセスIDの取得方法について
-
ADOでアクセスのレコードに...
-
C#でのbatファイル実行結果取得
-
タスクマネージャーのプロセス...
-
VB6.0 SHELLで起動...
-
プロセスのアタッチ・デタッチ...
-
非表示になったエクセルは?
-
怪しいプロセス教えてください。
-
sleep関数の精度について
-
【C#】別プロセスがロックか...
-
Process.Startの戻り値を後で取得
-
IISがフリーズ
-
プロセスIDからウィンドウハ...
-
Linuxでのスレッド間メッセージ...
-
Windowsでのfork方法
-
SendMessageが失敗するときがある
-
警告『 別のプロセスで使用され...
-
WSH.Runで待機できません
-
VB.NETで起動したExcelの閉じ方...
おすすめ情報