取得するソースを書いてるのですが、どうもうまくいきません・・orz
現在出来上がってるソースで実行すると一度目のループで取得したファイルネームは
無事取得するのですが二回目以降のファイルネームを取得できません・・。
#uselib "user32.dll" #func global GetForegroundWindow "GetForegroundWindow" #func global GetWindowThreadProcessId "GetWindowThreadProcessId" sptr,sptr #uselib "kernel32.dll" #cfunc OpenProcess "OpenProcess" sptr,sptr,sptr #func CloseHandle "CloseHandle" sptr #func global GetModuleFileName "GetModuleFileNameA" sptr,sptr,sptr #uselib "psapi.dll" #func global EnumProcessModules "EnumProcessModules" sptr,sptr,sptr,sptr #func global GetModuleFileNameEx "GetModuleFileNameExA" sptr,sptr,sptr,sptr dim hnd repeat sdim fname,256 GetForegroundWindow //アクティブウインドウのハンドルを取得 hnd=stat GetWindowThreadProcessId hnd, varptr(proid) //プロセスIDの取得 hpro = OpenProcess (0x400 | 0x0010 | 0x0001, 0, proid)//プロセスのオープン EnumProcessModules hpro, varptr(Hmo), 4, varptr(Msize)//モジュールハンドルを取得 GetModuleFileName Hmo,varptr(fname),Msize//モジュールハンドルからファイルネームを取得 CloseHandle hpro color 1 : boxf : color 0,255 pos 10,10 mes "ウインドウハンドル ="+hnd mes "プロセスID ="+proid mes "プロセスハンドル = "+hpro mes "モジュールハンドルを受け取るポインター = "+Hmo mes "モジュールハンドルを格納するために必要なバイト数 = "+Msize mes ""+fname wait 200 loop
と、お粗末なソースですが実行して、モジュールのポインターの値が変わらないとこが原因
だと思うのですが、6時間ぐぐって答えを見つけることができませんでした・・
(T_T) ウルウル
どうか先輩方の知恵を貸していただけないでしょうか。
よろしくお願いします。