カテゴリ:プログラミング
うみうみ屋さんの掲示板の情報をそのまま流用。
id = getid("i") DEF_DLL GetWindowThreadProcessId(Long, var Long):Long: User32 DEF_DLL OpenProcess(Long, Long, Long):Long: kernel32 DEF_DLL EnumProcessModules(Long, var Long, Long, var Long):int: PSAPI DEF_DLL GetModuleFileNameExA(Long, Long, var String, Long):Long: PSAPI PROCESS_ALL_ACCESS = $1F0FFF dim ProcessId, ModuleHandle, ModulesCount Filept = " " for i = 0 to 8; Filept=Filept+Filept; Next // メモリ確保 GetWindowThreadProcessId(IDtoHnd(id), ProcessId) ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, ProcessId) Ifb EnumProcessModules(ProcessHandle, ModuleHandle, 1, ModulesCount) GetModuleFileNameExA(ProcessHandle, ModuleHandle, Filept, Length(Filept)) EndIf msgbox(Filept) ボクの使用用途は多重起動防止など。 同じプログラムを複数実行していて、 実行ファイル名、パスが異なる場合に、 ウィンドウタイトルが同じでも区別できるようになる。 ボクはLockON MTを2つ起動して使わせてもらってる。 置き場所と実行ファイル名はそれぞれ異なっていて。 右の音を録音するLockonR.exe と 左のLockonL.exeと分けてる。 LockONには2つとも常駐していてもらわないと困るのだけど、 たまーにどちらかが異常終了してしまうことがある。 タスクやスクリプトで自動的に再起動させるようにしてるけど、 区別がつかないと重複起動してしまう場合がある。 それで実行ファイル名を調べて区別してるというわけですハイ。 アプリケーション実行中にタイトルが変わらない場合は、 実行時にタイトルを変更する方法があるけど、 LockONは変わっちゃう。録音中は触れないし。 お気に入りの記事を「いいね!」で応援しよう
[プログラミング] カテゴリの最新記事
|