私はperlプログラミング言語を学んでいます。現在実行中のすべてのアプリケーションをチェックするコードまたはアイデアを探しています。これは、Windows アプリケーション用に実装する必要があります。シェル スクリプトでもかまいませんが、追跡する必要があるのは Windows アプリケーションのみです。
これについて私を助けてください。
私はperlプログラミング言語を学んでいます。現在実行中のすべてのアプリケーションをチェックするコードまたはアイデアを探しています。これは、Windows アプリケーション用に実装する必要があります。シェル スクリプトでもかまいませんが、追跡する必要があるのは Windows アプリケーションのみです。
これについて私を助けてください。
実行中のアプリケーションのリスト(タスクマネージャーの[アプリケーション]タブなど)が必要な場合は、プロセスを確認するのではなく、開いているウィンドウを列挙する必要があります。
ActivePerl 5.12(x64)でこれを機能させることができました。まず、Win32 :: GuiTest(ppm install Win32::GuiTest
)をインストールしました。
use Win32::GuiTest qw/:FUNC/;
use strict;
use warnings;
my @windowlist = FindWindowLike(undef, undef, undef, undef, 1);
foreach my $whandle (@windowlist)
{
if (IsWindowVisible($whandle))
{
my $wintitle = GetWindowText($whandle);
my $winclass = GetClassName($whandle);
unless($wintitle eq "" || ($wintitle eq "Program Manager" && $winclass eq "Progman"))
{
print GetWindowText($whandle)."\n";
}
}
}
MS-DOS のタスクリストのようなものは役に立ちますか?
基本的に、Windowsタスクマネージャーの「プロセス」タブを吐き出します。の組み込みフィルタリングを使用tasklist
するか、本当に perl を使用する場合は、出力を perl スクリプトにパイプすることができます。