Tag: 流程

重启当前进程C#

我有一个应用程序,里面有一些安装程序,我想重新加载与应用程序相关的所有内容,我想重新启动该过程。 我已经搜索并看到Application.Restart()并且它有缺点,并且想知道什么是我需要的最佳方式 – 关闭流程并重新启动它。 或者,如果有更好的方法重新初始化所有对象。

从服务启动EXE文件并通过发送SIGBREAK停止它

我写了一个启动java.exe或ruby.exe的服务(我知道有一些解决方案,但出于某些原因我需要自己的服务)。 到目前为止,服务工作找到了,我从注册表收集我的配置,然后启动服务。 当服务停止时,我得到我的进程并发送一个.Kill()。 到现在为止还挺好。 但我发现,.kill()是一个问题,因为ruby.exe(我使用thin启动服务)或java.exe(我用它启动SOLR)监听tcp套接字端口。 如果这个端口被使用并且我终止进程窗口将阻塞端口72秒(按设计)。 如果我执行solr:从shell命令shell启动并启动thin -start并使用Ctrl + C将其停止,则进程终止并且端口可立即使用。 所以我的猜测是:如果我设法向进程发送一个ctrl-c,它就会正确终止。 所以我发现这个post如何从exe服务运行exe并在exe进程退出时停止服务? 发布概念certificate的地方。 但是通过从窗口服务启动进程,我没有windowHandle。 我开始这样的服务: m_process.StartInfo = new ProcessStartInfo { FileName = “java” , Arguments = arguments , UseShellExecute = true , WorkingDirectory = workDirectory , CreateNoWindow = false }; m_process.Start(); 如果参数包含jetty数据以启动SOLR或者在ruby情况下我使用“ruby.exe thin start …”。 现在停止我尝试的服务: [DllImport(“user32.dll”, CharSet = CharSet.Auto)] public static extern IntPtr FindWindow(string […]

如何在C#中隐藏/取消隐藏进程?

我试图在Visual C#2010 – Windows窗体应用程序中启动外部进程。 目标是将该过程作为隐藏窗口启动,并在以后取消隐藏窗口。 我已经更新了我的进度: //Initialization [DllImport(“user32.dll”)] private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow); [DllImport(“user32.dll”)] private static extern bool EnableWindow(IntPtr hwnd, bool enable); [DllImport(“user32.dll”)] private static extern bool MoveWindow(IntPtr handle, int x, int y, int width, int height, bool redraw); SW_SHOW = 5; 以下内容放在我的主要function中: ProcessStartInfo info = new ProcessStartInfo(“process.exe”); info.WindowStyle = ProcessWindowStyle.Hidden; Process […]

如何设置项目的可执行流程名称?

我想将我的可执行文件的进程称为ABC。 我怎么能这样做? 我尝试将我的项目名称定义为ABC,但之后我将有一个ABC.vshost。

在没有窃取焦点的情况下启动流程(C#)

我需要能够在没有窃取焦点的情况下启动进程(控制台和窗口)。 我发现在.NET框架中执行此操作的唯一方法是使用Microsoft.VisualBasic.AppWinStyle的Microsoft.VisualBasic.Interaction.Shell。[Minimized | Normal] NoFocus(映射到SW_SHOWMINNOACTIVE / SW_SHOWMA传递给ShellExecute)。 在我的代码的当前版本(它确实窃取焦点),我使用System.Diagnostics.Process,并依赖于我提供的一些function,Interaction.Shell方法没有。 2个问题(一个严肃,一个让我感到沮丧,我真的不希望得到一个好的答案) 1.)我是否正确,我别无选择,只能自己包装CreateProcess或ShellExecuteEx,或者我错过了其他一些解决方案? 我真的希望避免这种情况,因为除了这种疏忽之外,Process是一个完整而有用的包装器,并且会有很多function要实现,P / Invoke调试调用以及各种各样的痛苦。 2.)为什么Microsoft的一个团队会创建这样一个(否则)完整的包装器,然后从ProcessWindowStyle中排除一半可能的值,而另一个团队创建了一个类似的包装器,它不太完整,但提供了所有有用的窗口样式?

启动流程的服务不会显示GUI C#

嘿,我正在尝试获得一项服务来启动我的程序,但它没有显示GUI。 该过程开始但没有显示任何内容。 我尝试启用“允许服务与桌面交互”,但仍然无效。 我的程序是一个计算机锁定设备,用于阻止未经授权的用户访问计算机。 我正在运行带有64位操作系统的Windows 7。 这是我服务的代码: protected override void OnStart(string[] args) { Process p = new Process(); p.StartInfo.FileName = “notepad.exe”; p.Start(); FileStream fs = new FileStream(@”C:\Users\David\Documents\Visual Studio 2010\Projects\LockPCService\LockPCService\bin\Debug\ServiceLog.dj”, FileMode.OpenOrCreate, FileAccess.Write); StreamWriter m_streamWriter = new StreamWriter(fs); m_streamWriter.BaseStream.Seek(0, SeekOrigin.End); m_streamWriter.WriteLine(” LockPCService: Service Started ” + DateTime.Now + “\n” + “\n”); m_streamWriter.Flush(); m_streamWriter.Close(); } protected override void […]