掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
パソコンで動作しているアプリケーションのEXE名を取得するには? (ID:14278)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
質問内容が,EXE名を知りたいということですので,他の方の様にプロセス の一覧で取得するのが正攻法だとは思います. 一方,もし,起動中のアプリだけに操作をする場合であれば,直接 ハンドルを取得する以下のようなコードも考えられます. 参考までに. implementation {$R *.DFM} // 使用コンポーネントは以下の通り // Button1 (TButton) // ListView (TListView); // ImageList1 (TImageList) //============================================================================= // 現在起動中のアプリの一覧を作成 // ここでは[Ctrl]+[Alt]+[Delete]で表示されるタスクマネージャの[アプリケーシ // ョン]タブの表示を真似てみた. // // ・タイトルがあり,表示されているウィンドウのみを対象とする // ・他のウィンドウに所有されていないウィンドウのみとする // ・非可視のウィンドウはリスト対象から除く // ・タスクトレイアプリケーションも除く // リストするウィンドウはGetWindow等でも制御可能.詳細は以下を参照 // http://homepage2.nifty.com/Mr_XRAY/Halbow/VCL06.html //============================================================================= function EnumWindowProc(Handle: hWnd; lPalam: Integer):Boolean;Stdcall; Var Title : array[0..MAX_PATH] of char; AItem : TListItem; AIcon : TIcon; begin Result:=True; //所有されていないウィンドウのみ if GetWindow(Handle,GW_OWNER)<>0 then exit; //非可視ウィンドウは除く if not IsWindowVisible(Handle) then exit; if GetWindowText(Handle, Title,MAX_PATH-1 )>0 then begin AIcon:=TIcon.Create; if AnsiUpperCase(Title)<>'PROGRAM MANAGER' then begin AItem:=Form1.ListView1.Items.Add; AItem.Caption:=Title; AIcon.Handle:=GetClassLong(Handle,GCL_HICONSM); AItem.ImageIndex:=Form1.ImageList1.AddIcon(AIcon); end; end; end; //============================================================================= // 一覧表示用のListViewの設定 //============================================================================= procedure TForm1.FormCreate(Sender: TObject); begin ListView1.ViewStyle:=vsReport; ListView1.SmallImages:=ImageList1; ListView1.Columns.Add; ListView1.Columns[0].Caption :=' タスク'; ListView1.Columns[0].Width :=326; end; //============================================================================= // ボタンクリックでウィンドウのリストを作成 //============================================================================= procedure TForm1.Button1Click(Sender: TObject); begin ListView1.Items.Clear; ImageList1.Clear; EnumWindows(Addr(EnumWindowProc), 0); end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.