[待解决问题] 获取软件安装的路径!高分!
提问时间: 2008-05-01 20:17
悬赏分:200 离问题结束还有 5小时 浏览:184 次

如何获取软件安装的路径,是通过注册表还是通过搜索来实现。比如QQ的安装路径D:\Program Files\Tencent\QQ,复制文件夹--通过button1按钮把QQ文件夹中的所有文件复制到当前文件夹中。文件调用--再通button2来调用QQ.exe运行。


提问者:fsfree - 初学一级
所有回答(3)
这个只能通过搜索注册表来完成.

请在注册表编辑器中查看以下条目:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

然后研究里边的信息.
2周前   回答者:deerchao - 老鸟四级
一、如果你开发的C/S程序,那么编写起来不是很复杂,方法如下:
1、获得路径的方法(博友deerchao提到过的)
请在注册表编辑器中查看以下条目: 
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall(找到你需要的软件名称,查找键名为[UninstallString]中的值,舍弃最后的文件,前面一般就是安装路径了)
关于读写注册表的方法,网上有很多,请结合(1)、(2):
(1)、using Microsoft.Win32;//注意添加此引用
RegistryKey rk = Registry.LocalMachine.OpenSubKey("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\...");
(2)、请访问网页,此网页中有读注册表的方法与(1)相同,同时还有写注册表的方法http://blog.csdn.net/jinru2560/archive/2006/01/13/578021.aspx
2、复制文件夹的方法
这里就不重复写代码了,无论使用API函数还是使用程序开发都很长,提供两个网页,代码很详细,你看看是否能明白和理解:
(1)、http://zhidao.baidu.com/question/51770634.html
(2)、http://topic.csdn.net/t/20050711/16/4137173.html
3、调用某个exe运行的方法
System.Diagnostics.Process.Start("*****");//*****是指你所要调用的exe文件的路径及文件全名。
4、当你结束自己的程序同时也需要结束使用第3点方法打开的某exe时,使用如下方法
private static void KillProcess(string strProName)    
{
   System.Diagnostics.Process[] pro = System.Diagnostics.Process.GetProcesses();
   foreach (System.Diagnostics.Process IsProcedding in pro)
   {
      if (IsProcedding.ProcessName.ToUpper() == strProName)//strProName是第3点中打开的exe软件启动后的应用程序进程名,ToUpper()方法是将字符串名中字符全部转为大写英文字符
      {
         IsProcedding.Kill();
      }
   }
}

二、如果开发的B/S程序,编写起来就较为复杂,因为你要用IE来操纵客户端。这里就不详述了,猜想你所寻求的应该是开发C/S模式下的这些问题的解决方法。

希望能帮助到您,祝你成功!
2周前   回答者:刚刚 - 小虾三级
Application 这个对象不行吗?
1周前   回答者:天生俪姿 - 菜鸟二级
6天前   刚刚 :
@天生俪姿 
Application.StartupPath属性是获取此对象所在程序的路径,并不能知道本程序之外的其他程序的安装路径,因此还是需要使用上述方法,读取注册表值。
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除