C# 界面程序在23H2型号系统中无法退出

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}");
}

下载 Windows 11 23H2 ISO 镜像文件的官方链接可以通过访问微软官方网站获取。以下是具体方法: ### 下载 Windows 11 23H2 ISO 文件的方法 #### 方法一:通过 Microsoft 官方网站 用户可以直接访问微软提供的官方工具页面来下载所需的 ISO 文件。该工具允许选择不同的操作系统版本以及架构类型。 - **官网地址**: [Microsoft Software Download](https://www.microsoft.com/software-download/windows11)[^6] 在这个页面上,可以选择适合的操作系统版本(如 Windows 11 23H2),并按照提示完成下载过程。 #### 方法二:手动指定 URL 获取特定版本 如果需要更精确地控制所下载的具体更新编号或者企业版等特殊用途版本,则可利用以下方式构建直接指向目标存储库的服务端点URL结构化形式进行检索[^7]。 例如对于已知Build Number为`XXXXX`的企业长期支持分支(LTSB),可以尝试构造如下样式的HTTP GET 请求字符串: ```bash https://software.download.prss.microsoft.com/dbazure/XXXXXXXXXX/en_windows_10_enterprise_version_YYYYY_x64_dvd.iso ``` 注意替换其中占位符部分以匹配实际需求场景中的参数值设定情况。 --- ### 注意事项 在执行上述任一步骤之前,请确保设备满足运行新版本Windows所需硬件条件的要求说明文档中列出的各项指标标准;同时建议先备份重要数据以防万一发生意外状况影响正常使用体验效果最佳实践指南推荐做法之一就是创建恢复驱动器作为预防措施的一部分内容[^8]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值