Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 隐藏进程窗口(StartInfo.Createnowindow和StartInfo.WindowStyle不工作)_C#_Wpf_Xaml_Process - Fatal编程技术网

C# 隐藏进程窗口(StartInfo.Createnowindow和StartInfo.WindowStyle不工作)

C# 隐藏进程窗口(StartInfo.Createnowindow和StartInfo.WindowStyle不工作),c#,wpf,xaml,process,C#,Wpf,Xaml,Process,我有一个WPF应用程序。为了在我的应用程序中快速启动键盘,我想同时启动键盘进程和应用程序。为此,我在MainViewModel()中添加了函数StartKeyboardProcess(),并提供了以下说明: string keyboardPath = ConfigurationManager.AppSettings["KeyboardPath"]; ProcessStartInfo startInf = new ProcessStartInfo(); startInf.FileName =

我有一个WPF应用程序。为了在我的应用程序中快速启动键盘,我想同时启动键盘进程和应用程序。为此,我在MainViewModel()中添加了函数StartKeyboardProcess(),并提供了以下说明:

string keyboardPath = ConfigurationManager.AppSettings["KeyboardPath"]; 

ProcessStartInfo startInf = new ProcessStartInfo();
startInf.FileName = keyboardPath;
//startInf.WindowStyle = ProcessWindowStyle.Hidden;
startInf.UseShellExecute = false;
startInf.CreateNoWindow = false;
startInf.RedirectStandardOutput = true;
startInf.Arguments = Model.AppCulture.ToString() + " " + Model.AccountWithPhoneAbility.ToString(); 

KeyboardProcess = Process.Start(startInf);
KeyboardProcess.EnableRaisingEvents = true;
KeyboardProcess.Exited += keyboardProcess_Exited;
KeyboardProcess.OutputDataReceived += KeyboardProcess_OutputDataReceived;
KeyboardProcess.BeginOutputReadLine();


//It's my debug file
<add key="KeyboardPath" value="D:\Kickle\LyncBox-Dev\LyncBox.Tool.KickleKeyBoard\bin\Release\LyncBox.Tool.KickleKeyBoard.exe" xdt:Transform="Insert"/>
string keyboardPath=ConfigurationManager.AppSettings[“keyboardPath”];
ProcessStartInfo startInf=新的ProcessStartInfo();
startInf.FileName=键盘路径;
//startInf.WindowStyle=ProcessWindowStyle.Hidden;
startInf.UseShellExecute=false;
startInf.CreateNoWindow=false;
startInf.RedirectStandardOutput=true;
startInf.Arguments=Model.AppCulture.ToString()+“”+Model.AccountWithPhoneAbility.ToString();
键盘进程=进程开始(startInf);
KeyboardProcess.EnableRaisingEvents=true;
KeyboardProcess.Exited+=KeyboardProcess\u Exited;
KeyboardProcess.OutputDataReceived+=KeyboardProcess\u OutputDataReceived;
KeyboardProcess.BeginOutputReadLine();
//这是我的调试文件
我想隐藏键盘进程的窗口,但我不想这么做。
我一直在尝试像
CreateNoWindow、ProcessWindowStyle.Hidden、
这样的方法,但对我不起作用。帮助我!谢谢。

CreateNoWindow仅适用于控制台模式的应用程序。GUI应用程序通常会忽略processWindowsStyle.Hidden,WPF通常会忽略它,它会捕获用户。用户失去了对应用程序的所有控制,因为他无法激活窗口。只能使用任务管理器终止流程。您必须编写WPF应用程序来适应这种情况,命令行参数是一种简单的方法。请记住,OutputDataReceived事件永远不会触发,并且只有当用户使用任务管理器时,您才会获得Exit事件。你最好仔细想一想。你认为这个问题以前已经得到了回答。试试这个链接:谢谢,但对我来说这个链接不起作用。