20250716记录
环境:c# winform
问题描述:
主界面退出直接使用了Environment.Exit(0); 程序假死,无法关闭
解决措施:
//使用
this.Close();
以下代码目标:执行完程序自身后,删除指定文件(可用于程序文件db自我删除)
已经在21H2型号执行完成,但在23H2(显示为win11系统,但注册表查询到为win10...)无法执行
string deleteCommand = $"/C timeout /t 4 && del /F /Q \"exepath}\"";
// /C 参数告诉CMD在执行完命令后关闭窗口
// del 命令删除文件
// /F 强制
// /Q 安静模式,不要求确认
try{
ProcessStartInfo startInfo = new ProcessStartInfo()
{
Verb = "runas",
CreateNoWindow = true ,
UseShellExecute = false //避免出现cmd黑色窗口
}
Process p = Process.Start(startInfo);
}
catch(System.ComponentModel.Win32Exception ex) when (ex.NativeErrorCode == 1223)
{
Console.WriteLine("操作已取消:用户拒绝管理员权限");
}
catch(Exception ex)
{
Console.WriteLine($"启动管理员进程失败{ ex.Message}");
}