C#获取本机已安装软件方法

止境 2012-08-29 08:02:10
新手代码,老鸟请勿喷。


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;

namespace 获取已安装程序列表
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string temp = null, tempType = null;
object displayName = null, uninstallString = null, releaseType = null;
RegistryKey currentKey = null;
int softNum = 0;
RegistryKey pregkey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall");//获取指定路径下的键
try
{
foreach (string item in pregkey.GetSubKeyNames()) //循环所有子键
{
currentKey = pregkey.OpenSubKey(item);
displayName = currentKey.GetValue("DisplayName"); //获取显示名称
uninstallString = currentKey.GetValue("UninstallString"); //获取卸载字符串路径
releaseType = currentKey.GetValue("ReleaseType"); //发行类型,值是Security Update为安全更新,Update为更新
bool isSecurityUpdate=false;
if (releaseType != null)
{
tempType = releaseType.ToString();
if (tempType == "Security Update" || tempType == "Update")
isSecurityUpdate = true;
}
if (!isSecurityUpdate && displayName != null && uninstallString != null)
{
softNum++;
temp += displayName.ToString() + Environment.NewLine;
}
}
}
catch (Exception E)
{
MessageBox.Show(E.Message.ToString());
}
richTextBox1.Text = "您本机安装了" + softNum.ToString() + "个" + Environment.NewLine + temp;
pregkey.Close();
}

private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
...全文
959 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
j_j48403 2013-01-31
  • 打赏
  • 举报
回复
请问一下,如何获取操作系统中已经安装好的所有的数据库驱动程序
听可笑的承诺 2012-09-15
  • 打赏
  • 举报
回复
其实就是个注册表操作。。
xiedingan 2012-09-15
  • 打赏
  • 举报
回复
不好意思发错!
xiedingan 2012-09-15
  • 打赏
  • 举报
回复
帮你简化一了一下:

private void GetProcessName()//
{
listBox1.Items.Clear();
foreach (Process p in Process.GetProcesses())
{
listBox1.Items.Add(p.ProcessName);
}

label1.Text = "统计:" + listBox1.Items.Count.ToString();
}
xiedingan 2012-09-13
  • 打赏
  • 举报
回复
收下了,不错!
yanele 2012-09-13
  • 打赏
  • 举报
回复
要是能根据获取出来的程序,知道安装目录就好了.
  • 打赏
  • 举报
回复
原来是分享帖,谢谢分享
足球中国 2012-09-13
  • 打赏
  • 举报
回复
弄老不错了。

xjzhangbowei 2012-09-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

楼主好人,鬼节快乐!

不说鬼节我还真忘了
[/Quote]
呵呵
youzelin 2012-09-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

弄老不错了。
[/Quote]

是额呀,楼组宁老伐粗额。
fsstolw 2012-09-01
  • 打赏
  • 举报
回复
呵呵,谢谢分享
止境 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

楼主好人,鬼节快乐!
[/Quote]
不说鬼节我还真忘了
xjzhangbowei 2012-08-31
  • 打赏
  • 举报
回复
楼主好人,鬼节快乐!
止境 2012-08-31
  • 打赏
  • 举报
回复
谢谢各位
稻庄 2012-08-30
  • 打赏
  • 举报
回复
多谢楼主分享,那么晚还孜孜不倦
youzelin 2012-08-30
  • 打赏
  • 举报
回复
thanks for your sharing.
xixihaha_2011_098 2012-08-30
  • 打赏
  • 举报
回复
路过,精神可嘉.有空帮你测试一下
  • 打赏
  • 举报
回复
有空看看,收了,很好

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧