
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
プロセスIDからウィンドウハ...
-
子プロセスの状態を親プロセス...
-
WSH.Runで待機できません
-
CPU、 マザーボードについて
-
Linuxのchdir(カレントディレク...
-
アプリケーションが終了するま...
-
他のアプリケーションの起動と...
-
GetModuleFileNameでエラーが出...
-
タスクマネージャーのプロセス...
-
Visual C++からpingを実行して...
-
VB.NET 自プログラムのプロセス...
-
sambaのsmbmount使用時のパスワ...
-
スマホ Androidの方、又は機械...
-
popen について
-
C++のプログラムをバックグラウ...
-
AppActivate関数について
-
プロセス終了の検知について
-
起動中の他のプログラム(orプ...
-
プロセスIDの取得方法について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
タスクマネージャーのプロセス...
-
バックグラウンドのプロセスの...
-
プロセスのアタッチ・デタッチ...
-
OSPFでプロセスを分ける意義に...
-
ADOでアクセスのレコードに...
-
非表示になったエクセルは?
-
Process.Startの戻り値を後で取得
-
vb.netでEXCEL起動がうまくでき...
-
C#でのbatファイル実行結果取得
-
プロセスIDの取得方法について
-
Linuxでのスレッド間メッセージ...
-
Visual C++からpingを実行して...
-
SendMessageが失敗するときがある
-
IISがフリーズ
-
スティーブ・ジョブズはプログ...
-
c言語でプロセスIDを調べたい
-
特定ユーザーのプロセス情報を...
-
怪しいプロセス教えてください。
-
セマフォとmutexの違いは?
-
Windowsでのfork方法
おすすめ情報