如何获取Windows应用程序列表

Python获取Windows已安装的所有应用程序列表 本文介绍了使用Python通过Windows注册表获取已安装软件列表的方法。相比WMI方式,注册表查询更全面、性能更高且无需管理员权限。 阅读详情

来自:唐细刚的专栏

http://blog.csdn.net/tanaya/archive/2004/08/11/71041.aspx

Windows任务管理器的应用程序栏包含任务窗口的列表。要获取此列表,窗口必须满足以下几个条件:

(1) 必须可见
(2)
包含一个标题
(3) 不能被其他窗口包含

下面我给出源程序和调用示例:

VC++源代码(使用VC6):

//获取任务列表且添加到列表框中.
BOOL GetAppList(CListBox &LstBox)
{
  CString strCaption;
  LstBox.ResetContent();
  ASSERT_VALID(AfxGetMainWnd());
  CWnd *pWnd=AfxGetMainWnd()->GetWindow(GW_HWNDFIRST);
  if(pWnd==NULL) return FALSE;
  while(pWnd)
  {
   if(pWnd->IsWindowVisible() && pWnd->GetWindowTextLength() && !pWnd->GetOwner())
     {
       pWnd->GetWindowText(strCaption);
       LstBox.AddString(strCaption);
     }
   pWnd=pWnd->GetWindow(GW_HWNDNEXT);
  }
  return TRUE;
}

//调用示例:
void CGetAppListDlg::OnGetAppList()
{
   GetAppList(m_ListBox1);
}


VB源代码(使用VB6,具体调用很简单,我就不写了)

Option Explicit
Private Declare Function GetWindowLongPtr Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long

Private Const GW_OWNER = 4
Private Const GWL_EXSTYLE = (-20)

Private Const WS_EX_TOOLWINDOW = &H80
Private Const WS_EX_APPWINDOW = &H40000

//判断窗口是否为任务应用函数,参数为窗口句柄
Public Function IsTaskbarApp(ByVal hwnd As Long) As Boolean
  Dim ExtendStyle As Long
  Dim hParent As Long
  Dim BoolIsTaskBarApp As Boolean
  ExtendStyle = GetWindowLongPtr(hwnd, GWL_EXSTYLE)
  hParent = GetParent(hwnd)
  BoolIsTaskBarApp = CBool((IsWindowVisible(hwnd) <> 0) And _
                    (GetWindow(hwnd, GW_OWNER) = 0) And _
                    (hParent = 0 Or hParent = GetDesktopWindow())) 
  If (ExtendStyle And WS_EX_TOOLWINDOW) Then BoolIsTaskBarApp = False 
  If (ExtendStyle And WS_EX_APPWINDOW) Then BoolIsTaskBarApp = True
  IsTaskbarApp = BoolIsTaskBarApp
End Function


 *-------------------------------------------*
 *     转载请注明出处
 *     作者:唐细刚
 *     邮箱:
tanaya@163.com
 *-------------------------------------------*

脚本 | 获取windows安装软件列表 title 已安装程序列表获取脚本 :: 友情提醒:此脚本获取的已安装程序列表,仅针对正常安装的程序,那些绿色版的不需要安装的软件是获取不到的 :: 有些已安装程序,虽然在注册表有相关信息,但安装时没有向注册表中写入更多的信息,所以在日志中可能会出现“(无)”的标示 :: 部分已安装程序任何信息都没有的,将直接忽略,不在日志中列出。 阅读详情

相关推荐

使用PowerShell生成Windows 10安装应用程序列表

在管理和维护Windows 10系统时,了解系统上安装的所有应用程序非常重要。无论是为了检查系统状态、排查问题,还是准备迁移到新设备,生成一个安装应用程序列表都是一个必要的步骤。本文将介绍如何使用PowerShell编写一个脚本来生成Windows 10上安装的应用程序列表。本文将详细解释每一步骤,并提供完整的示例代码。通过这篇博文,我们了解了如何使用PowerShell脚本生成Windows 10上安装的应用程序列表

xueyunshengling的博客 763

如何获取已安装应用程序列表

复制在“添加/删除程序”控制面板小程序中看到的列表

获取已安装程序列表1.2.7

Windows 命令行脚本的四种获取已安装程序列表方法有: wmic命令 、powershell直接获取 、powershell读注册表、reg 命令读注册表。 本质上说、前两种方法是一样的,第三种方法不能被cmd/bat批处理调用。所以、用reg命令是最现实的cmd/bat批处理解决方案。 四种获取已安装程序列表方法的语法如下: wmic /output:D:\InstalledSoftwareList.txt product get name Get-WmiObject -Class Win32_Product | Select-Object -Property Name > D:\InstalledSoftwareList.txt Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Format-Table –AutoSize > D:\InstalledSoftwareList.txt 第四种获取方法 reg query 查询注册表,最后一行针对64位Windows reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products /s reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall /s reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /s

如何通过 Windows 设置、控制面​​板、WMIC、PowerShell 和 Windows 注册表查询 Windows 中已安装程序的列表

如果您希望在 Windows 10 或 Windows Server 上查询已安装应用程序列表,可以使用以下各种方法。 1:通过 Windows 设置:这是在 Windows 中查看已安装应用程序列表的最简单方法 - 如下所示导航至 Windows 设置或使用按Windows 键 + I打开设置 - 单击应用程序 接下来,单击已安装的程序,如下所示 - 在那里您应该能够看到 Windows 中已安装程序的列表 2:通过控制面板:此方法类似于使用..

allway2的博客 1万+

获取 Windows 任务管理器中应用程序和进程 任务

获取应用程序:#pragma once #include "afxcmn.h" /*判断窗口是否是正常运行还是未响应的*/typedef BOOL (WINAPI *PROCISHUNGAPPWINDOW)(HWND);typedef BOOL (WINAPI *PROCISHUNGTHREAD)(DWORD

denglei265的专栏 6376

VC获取系统进程列表、查找进程、关闭进程

1、获取系统进程列表[cpp] view plain copy#include &lt;tlhelp32.h&gt;//声明快照函数头文件    ...    PROCESSENTRY32 pe32;  pe32.dwSize=sizeof(pe32);  HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);  ...

thanklife的专栏 2740

转:Java获取系统软件安装列表

最近需要根据客户的软件安装位置放置对应代码,每个客户机器都不一样,为了获取软件安装的路径,想到如下方法,网上参考这篇:http://chenyu-hz.iteye.com/blog/1493185截图如下: 代码如下: /** * @author <a href="mailto:foohsinglong@gmail.com">kevin.long</a> * @description Jav

爱的叹息的专栏 3154

python windows程序管理器_获取使用python运行的windows应用程序列表

您可以使用powershell而不是WMIC来获得所需的应用程序列表:import subprocesscmd = 'powershell "gps | where {$_.MainWindowTitle } | select Description'proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)for line i...

weixin_39862697的博客 959

Windows mobile 判断应用程序是否安装,获取已经安装的应用程序列表

<br />//判断具体的应用程序是否已经安装,有些内置的程序不能判断。<br />//内置的程序一般可以通过查看程序菜单的快捷方式来判断是否安装。<br />BOOL IsAppInstalled( )<br /> {<br />     BOOL bRet = FALSE;<br />     //查询可被卸载的软件信息<br />     LPCTSTR szInput = <br />         L"<wap-provisioningdoc>"<br />         L"<c

handnotes的专栏 1021

Java如何得到安装包_如何从Java获取Windows 10上已安装应用程序列表

我正在尝试从我的Java程序中获取Windows 10中安装的所有应用程序列表 . 我尝试过以下方法:Runtime.getRuntime().exec("Get-WmiObject -class Win32_Product | Select-Object -Property Name");我得到:Cannot run program "Get-WmiObject": CreateProcess...

weixin_35625676的博客 750

获取Windows已安装程序

获取当前Windows系统安装程序,类似于控制面板中的“程序与功能”,支持卸载

获取本机安装软件列表

基于多线程技术,通过读取注册表获取本机目前所安装的所有软件,并显示出来。

Electron 项目中获取 Windows 进程列表的深入剖析

Windows 操作系统中,tasklist是一个强大的命令行工具。它可以列出当前系统中正在运行的进程的详细信息。通过不同的参数组合,可以实现对进程的筛选和查询。例如,/fi参数用于指定筛选条件。在本文中,我们从最初的简单tasklist命令代码片段出发,逐步完善了在 Electron 项目中获取和解析 Windows 进程列表信息的代码。通过理解tasklist命令的原理、执行命令获取输出、解析输出内容,我们实现了功能强大的进程列表获取函数,并通过案例展示了其在实际开发中的应用

梵心白莲的博客 1254

java软件版本列表获得,java - 获取在计算机上使用Java安装的软件列表 - SO中文参考 - www.soinside.com...

我认为以下代码可能对您有所帮助。我是java的新手,所以如果有任何变化,请编辑我的代码。import java.io.IOException;import java.io.InputStream;import java.io.StringWriter;import java.util.ArrayList;import java.util.HashSet;import java.util.Itera...

weixin_31682031的博客 273

C#获取打印机列表

一、PrinterSettings类 要用到的类PrinterSettings,在CSDN中的解释如下: System.Object System.Drawing.Printing.PrinterSettings 命名空间:System.Drawing.Printing程序集:System.Drawing(在 System.Drawing.dll ...

weixin_33705053的博客 299

windows命令查看软件安装列表

windows上,可以通过控制面板,查看软件安装情况。那么除此之外还有其它方法吗? powershell命令 PS C:\Users\wyq> Get-WmiObject -class Win32_Product |Select-Object -Property name,versionname

妙音 2万+
上一篇: 更深入一点理解switch语句及c/c++对const的处理
下一篇: 最全的HTML特殊字符列表
oxware
博客等级 码龄24年 3粉丝 61原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值