获取程序列表需要打开什么

时间:2025-01-21 22:57:16 程序应用

获取程序列表可以通过以下几种方法:

使用WMIC命令

```shell

wmic /output:D:\InstalledSoftwareList.txt product get name

```

这将把已安装的程序列表输出到D:\InstalledSoftwareList.txt文件中。

使用PowerShell命令

```powershell

Get-WmiObject -Class Win32_Product | Select-Object -Property Name > D:\InstalledSoftwareList.txt

```

或者

```powershell

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Format-Table –AutoSize > D:\InstalledSoftwareList.txt

```

这两个PowerShell命令都可以将已安装的程序列表输出到D:\InstalledSoftwareList.txt文件中。

使用reg命令

```shell

reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | findstr /i /v /c:"$null" > D:\InstalledSoftwareList.txt

```

这个命令将查询64位Windows的卸载键值,并将结果输出到D:\InstalledSoftwareList.txt文件中。

使用Windows API函数

可以通过编写C++代码,使用Windows API函数如`RegOpenKeyEx`和`RegEnumKeyEx`来获取已安装的软件列表。具体步骤如下:

引用头文件:`include `

定义函数:`BOOL EnumerateInstalledApps(HKEY hKey, LPWSTR szSubKeyName, LPWSTR szDisplayName, DWORD dwSize)`

在函数中打开注册表项:`RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"), 0, KEY_READ, &hUninstallKey)`

枚举子项,获取软件名称:`RegEnumKeyEx(hUninstallKey, i, szSubKeyName, &dwSize, NULL, NULL, NULL, NULL);`

获取软件的其他信息,如版本号、发行商等:`RegQueryValueEx(hSubKey, _T("DisplayName"), NULL, NULL, (LPBYTE)szDisplayName, &cbDisplayName);`

建议根据具体需求和系统环境选择合适的方法。如果需要自动化或批处理,PowerShell命令可能是最佳选择。如果需要更底层的控制,可以使用Windows API函数。