HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0108
gonプログラム実行判断5解決


gon

リンク

2008/1/8(Tue) 12:17:31|NO.13029

任意のプログラムが実行されているかどうか?を調べる方法を教えて下さい。
但し、任意のプログラムで分かっていることはファイル名(xxxx.exe)だけです。



この記事に返信する


たこ

リンク

2008/1/8(Tue) 21:55:32|NO.13039

二重起動防止の仕組みを応用すればできると思います、たぶん

http://yokohama.cool.ne.jp/chokuto/urawaza/index.html



たこ

リンク

2008/1/8(Tue) 22:45:00|NO.13041

すいません、↑のは自分で作ったプログラムしかだめでした
これは大丈夫ですが、Program Files に入ってるプログラムはアクセス拒否されます


#uselib "kernel32.dll" #func CreateFile "CreateFileA" sptr ,sptr ,sptr ,sptr ,sptr ,sptr ,sptr #func CloseHandle "CloseHandle" sptr #cfunc GetLastError "GetLastError" dialog "",16 path = refstr mes path+"\n" CreateFile varptr(path) ,0x40000000 ,0x2 ,0 ,0x3 ,0 ,0 hFile = stat switch GetLastError() case 32 mes "実行中" :swbreak case 5 mes "アクセス拒否" :swbreak case 0 mes "実行されてません" :swbreak default mes "調べてません(^^;)" :swbreak swend CloseHandle hFile



gon

リンク

2008/1/9(Wed) 12:33:35|NO.13045

たこさん、ありがとございます。

最終的には二重起動防止なのですが自分自身ではないので質問させてもらいました。
ご提示頂いたスクリプトでほぼOK です。Program Files にあるMS系ソフトがアクセス拒否
されるようですね。他のプログラムはOKでした。

CreateFile varptr(path) ,0x40000000 ,0x2 ,0 ,0x3 ,0 ,0

↑このAPIがいまいち理解できていないので何をしているのかかいつまんで説明してもらえませんか?
CreateFile(A)の説明は読みましたが難しくて・・・



たこ

リンク

2008/1/9(Wed) 18:37:38|NO.13047

CreateFile は何をしているのかというと、ファイルに何か書き込もうとしているわけです
実行中のファイルは変更されないように守られているのでエラーが出るわけです
第2引数は今から書き込むって宣言です
第3引数は 0 でもいいです
第4引数はファイルを開くって意味です
飛ばしたのは特に重要じゃないから



gon

リンク

2008/1/10(Thu) 13:09:07|NO.13053

>実行中のファイルは変更されないように守られているのでエラーが出るわけです

なるほどこれは納得です。
他はよく理解できませんがありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.