【发布时间】:2011-04-19 05:46:37
【问题描述】:
是否可以关闭正在运行的应用程序与另一个应用程序?
我已经实现了APP1.exe 和APP1_UNIN.exe,我希望APP1_UNIN.exe 杀死运行APP1.exe 并卸载它。
有可能吗?
【问题讨论】:
标签: c# uninstallation
是否可以关闭正在运行的应用程序与另一个应用程序?
我已经实现了APP1.exe 和APP1_UNIN.exe,我希望APP1_UNIN.exe 杀死运行APP1.exe 并卸载它。
有可能吗?
【问题讨论】:
标签: c# uninstallation
要卸载应用程序,您可以启动一个新进程并调用msiexec.exe,并在command line 上指定要卸载的内容:
ProcessStartInfo psi;
//take your choice of which you want to use:
psi = new ProcessStartInfo("msiexec.exe", string.Format("/x {0}", "path of my msi"));
psi = new ProcessStartInfo("msiexec.exe", string.Format("/x /n {{{0}}}", "my product code"));
Process p = new Process();
p.StartInfo = psi;
p.Start();
【讨论】:
使用 System.Diagnostics.Process 类:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.closemainwindow(v=VS.71).aspx
还有一个Kill方法。
【讨论】:
至少要杀死正在运行的进程,您可以这样做:
Process[] processes = Process.GetProcesses();
foreach (Process process in processes) {
if (process.ProcessName == "APP1.exe") {
try {
process.Kill();
break;
} catch (Exception) {
//handle any exception here
}
}
}
}
关于卸载,我不确定。
【讨论】:
要关闭,您可以通过终止其进程来完成。 System.Diagnostics.Process
Process []pArray = Process.GetProcesses();
foreach(Process prc in pArray) {
string s = prc.ProcessName;
if (s.CompareTo("APP1") ==0) {
prc.Kill();
}
}
【讨论】:
是,使用 System.Diagnostics
你可以获取进程并杀死进程。
【讨论】: