亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何關閉退出并重新啟動程序

如何關閉退出并重新啟動程序

C#
肥皂起泡泡 2023-12-17 10:50:06
我有一個程序,我檢查是否有一個實例正在運行,如果有一個實例正在運行,它應該終止正在運行的程序并運行我的應用程序..在我只是提示用戶有一個正在運行的實例并關閉之前程序。現在,用戶希望程序僅終止該實例并啟動應用程序。if (Process.GetProcessesByName(Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location)).Length > 1){ //MessageBox.Show("Another instance of the Program is Running", Global.ProgName, MessageBoxButton.OK, MessageBoxImage.Information); //Environment.Exit(0); foreach (var process in Process.GetProcessesByName(Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location))) {    process.Kill(); } Process.Start(Path.GetFileName(Assembly.GetEntryAssembly().Location));}
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

if(Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location)).Length > 1)

{

? ? foreach (var process in Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location)))

? ? {

? ? ? ? if (process.Id != Process.GetCurrentProcess().Id)

? ? ? ? {

? ? ? ? ? ? process.Kill();

? ? ? ? }

? ? }

}

這段代碼獲取與你的同名的進程并殺死舊的進程,新的進程是殺手進程。


查看完整回答
反對 回復 2023-12-17
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

它并不干凈,但您可以使用 shell 命令:


ProcessStartInfo Info = new ProcessStartInfo();

Info.Arguments = "/C ping 127.0.0.1 -n 4 && cd \"" + Application.StartupPath + "\" &&  filename.exe";

Info.WindowStyle = ProcessWindowStyle.Hidden;

Info.CreateNoWindow = true;

Info.FileName = "cmd.exe";

System.Timers.Timer t = new System.Timers.Timer(1000);

t.Elapsed += T_Elapsed;

t.Start();

Process.Start(Info);


private void T_Elapsed(object sender, ElapsedEventArgs e)

{

    Application.Exit();

}

shell 命令 ping localhost 4 次以打發時間,在這些 ping 期間,程序退出。程序退出后,原來的 shell 命令仍在運行,因此 ping 后程序會重新打開。


查看完整回答
反對 回復 2023-12-17
  • 2 回答
  • 0 關注
  • 188 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號