C#中Process.MainWindowTitle返回空字符串问题求助
解决Windows 11中启动calc.exe后无法获取MainWindowTitle的问题
问题原因
Windows 11的计算器是UWP应用,C:\Windows\System32\calc.exe只是一个轻量启动器,它仅负责引导启动真正的UWP计算器进程(Calculator.exe),你当前代码获取的是这个启动器进程的信息——启动器本身不会创建计算器窗口,启动后很快就会退出,自然无法读取到窗口标题。另外,WaitForInputIdle()方法针对传统Win32程序设计,对UWP应用的启动流程不适用,无法正确等待窗口加载完成。
解决方案
方案1:通过Shell启动并查找目标进程
修改启动参数,使用Shell执行方式适配UWP应用,然后通过进程名查找真正的计算器进程:
using System; using System.Diagnostics; using System.Threading; class Program { static void Main() { ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Windows\System32\calc.exe"); startInfo.UseShellExecute = true; // 改为true,适配UWP应用启动逻辑 startInfo.WindowStyle = ProcessWindowStyle.Normal; var launcherProcess = Process.Start(startInfo); launcherProcess.WaitForExit(); // 等待启动器完成引导并退出 // 等待片刻让计算器窗口完全加载 Thread.Sleep(1000); // 查找名为"Calculator"的进程 Process[] calculatorProcesses = Process.GetProcessesByName("Calculator"); if (calculatorProcesses.Length > 0) { Console.Write("Main window Title : " + calculatorProcesses[0].MainWindowTitle); } else { Console.WriteLine("未找到计算器进程"); } } }
方案2:循环等待窗口初始化完成
如果担心固定等待时间不够准确,可以循环检查直到找到带有窗口标题的计算器进程:
using System; using System.Diagnostics; using System.Threading; using System.Linq; class Program { static void Main() { ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Windows\System32\calc.exe"); startInfo.UseShellExecute = true; startInfo.WindowStyle = ProcessWindowStyle.Normal; Process.Start(startInfo); // 最多等待5秒,每次间隔100毫秒检查 Process calcProcess = null; int maxWaitTimes = 50; while (maxWaitTimes-- > 0) { calcProcess = Process.GetProcessesByName("Calculator") .FirstOrDefault(p => !string.IsNullOrEmpty(p.MainWindowTitle)); if (calcProcess != null) break; Thread.Sleep(100); } if (calcProcess != null) { Console.Write("Main window Title : " + calcProcess.MainWindowTitle); } else { Console.WriteLine("无法获取计算器窗口标题"); } } }
关键说明
UseShellExecute=true:UWP应用依赖Shell环境完成启动流程,必须设置此参数才能正确触发后续的UWP进程启动。- 避免直接依赖启动器进程:
calc.exe启动器生命周期极短,无法关联到真正的计算器窗口,必须通过实际的Calculator.exe进程获取窗口信息。
内容的提问来源于stack exchange,提问作者Vivek Kumar
相关产品推荐
相关产品推荐

