PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
13686 | 00/10/24 12:36:55 | RE(5):PB5.0.03: 他のアプリケーションの起動チェック(資源ゴミレス) By M.M |
13682 | 00/10/24 10:04:41 | RE(4):PB5.0.03: 他のアプリケーションの起動チェック(ただしFindWindowA以外で) By マルボロB |
13656 | 00/10/20 18:42:36 | RE(3):起動中プロセスとモジュール名を列挙する方法 (WinNT編) By Taka |
13655 | 00/10/20 18:41:56 | RE(2):起動中プロセスとモジュール名を列挙する方法 (Win95/98編) By Taka |
13654 | 00/10/20 18:37:03 | RE(1):PB5.0.03: 他のアプリケーションの起動チェック(ただしFindWindowA以外で) By Taka |
13635 | 00/10/19 17:43:46 | PB5.0.03: 他のアプリケーションの起動チェック(ただしFindWindowA以外で) By マルボロB |
カテゴリ:スクリプトの記述
日付:2000年10月20日 18:41 発信者:Taka
題名:RE(2):起動中プロセスとモジュール名を列挙する方法 (Win95/98編)
【構造体】
PROCESSENTRY32{
long Size ,
long RefCount ,
long ProcessID ,
long HeapID ,
long ModuleID ,
long ThreadCount ,
long ParentProcessID ,
long BasePriority ,
long Flags ,
char FileName[260]
}
【外部関数宣言】
// スナップショット
function long CreateToolhelp32Snapshot( long Flags, long ProcessID ) library \"kernel32.dll\"
function long CloseHandle( long hObject ) library \"kernel32.dll\"
// プロセス情報の列挙
function long Process32First( long hSnapshot, ref PROCESSENTRY32 ProcessEntry )
library \"kernel32.dll\"
function long Process32Next ( long hSnapshot, ref PROCESSENTRY32 ProcessEntry )
library \"kernel32.dll\"
【スクリプト】
// リセット
lb_1.Reset()
// 定数
constant long TH32CS_SNAPPROCESS = 2
// 変数
long hSnap, Result
PROCESSENTRY32 pe
pe.Size = 296
// スナップショットの作成
hSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 )
// プロセス情報の列挙
Result = Process32First( hSnap, pe )
do while(Result = 1)
lb_1.AddItem( \"#\" + String(pe.ProcessID) + \" \" + pe.FileName )
Result = Process32Next( hSnap, pe )
loop
// スナップショットを閉じる
CloseHandle( hSnap )
【メモ】
プロセスだけでなく、ロード済みのモジュール名,スレッドなどの列挙も可能です。
この場合、Module32First/Module32Next,Thread32First/Tread32Next といったAPIを使います。
(構造体やスナップショットを作成する際のパラメータが異なるので注意が必要です)
この手法は、WinNT4では利用できません。(そもそもAPIがないんです 泣)
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.