获取程序列表可以通过以下几种方法:
使用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函数。