regsvr32 を使用して、管理されていない DLL を登録および登録解除し、C# アプリケーションで使用します。しかし、登録されているすべての DLL を一覧表示する regsvr32 ツールのパラメーターが見当たりませんでした。登録されているすべての DLL の一覧を取得するにはどうすればよいでしょうか?
3 に答える
登録されているすべての DLL を表示するには、次の無料ユーティリティを使用できます。
RegDllViewは、システムに登録されている dll/ocx/exe ファイルを表示するツールであり、エクスプローラーから dll ファイルを登録することもできます。
ListDLLsは、プロセスにロードされた DLL を報告する別のツールです。これを使用して、すべてのプロセスまたは特定のプロセスに読み込まれたすべての DLL を一覧表示したり、特定の DLL が読み込まれたプロセスを一覧表示したりできます。ListDLLs は、デジタル署名を含む DLL の完全なバージョン情報を表示することもでき、署名されていない DLL のプロセスをスキャンするために使用できます。
最後に、 CodeProject.com のこのC# の Dll Profiler の記事も参照できます。DLL プロファイラーを使用すると、コンピューターに現在読み込まれているすべての DLL が一覧表示されます。これには、読み込まれた場所、バージョン番号、サイズ、変更日、製品名、および製品バージョンが含まれます。
レジストリを使用して、登録されているすべてのCLSIDを読み取ることができるはずですComputer\HKEY_CLASSES_ROOT\Wow6432Nodes\CLSID
。32ビットのWindowsを見て、どこにあるかを確認していませんCLSIDs
。
static void Main(string[] args)
{
var parent = Registry.ClassesRoot.OpenSubKey("CLSID");
var subKeys = parent.GetSubKeyNames();
foreach (var subKey in subKeys)
{
var sub = parent.OpenSubKey(subKey);
if (sub != null)
{
var inProc = sub.OpenSubKey("InProcServer32");
if (inProc != null)
{
var val = inProc.GetValue(null);
if (val != null)
{
var name = val.ToString();
if (!string.IsNullOrWhiteSpace(name))
Console.WriteLine(name);
}
}
}
}
}