- 427 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:16:11 ]
- 環境はBCB2007WINXP 行数の関係で、詰めてかきます。
以下のソースで、実行F9とビルド時S+F9では挙動がことなりよくわからなくなっています。 実行時は普通にアクティブなソフトの全パスが表示されますが、ビルドしたのを実行すると取得できません。 何かの勘違いか、コンパイラの使用知識不足としか思えません。よくないところを教えていただけないでしょうか? #include <vcl.h> #include <psapi.h> #pragma hdrstop #include "Unit1.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {} //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { HWND hWnd=GetForegroundWindow(); bool blJEJ=false; DWORD dwPID; GetWindowThreadProcessId(hWnd, &dwPID); hWnd = OpenProcess(PROCESS_ALL_ACCESS, 0, dwPID); DWORD ReturnSize; if(!hWnd){ ShowMessage("if(!hWnd)");//デバッグ用//ここにhWndの値をShowMessageするにはどうすりゃいいんだ? } if(hWnd){ char buf[MAX_PATH]; HMODULE hMod; DWORD size; EnumProcessModules(hWnd, &hMod, sizeof(hMod) ,&size); GetModuleFileNameEx(hWnd, hMod, buf, sizeof(buf)); CloseHandle(hWnd);//これの意味がわからない。 AnsiString str=fname; ShowMessage(str); } //--------------------------------------------------------------------------- へたなコードですが、素人なのでご容赦を
|

|