草庐IT

c# - Process.Start() 什么时候可以返回 null?

我有一些代码通过使用Process.Start(ProcessStartInfo)来启动一个进程.我从文档中看到,如果重用现有流程,此方法可以返回null。[Returnsa]newProcesscomponentthatisassociatedwiththeprocessresource,ornullifnoprocessresourceisstarted(forexample,ifanexistingprocessisreused).重用现有流程意味着什么,在什么情况下会发生这种情况? 最佳答案 如果您调用pass一个文件(不是

c# - 终止进程(Windows 8)问题

我大约一个月前安装了Windows8,但一直遇到进程挂起时我无法结束/终止它的问题。任务管理器和CMDTaskkill/f/PID####都不能完成这项工作,所以我想我会用C#编写自己的进程killer,看看会出现什么问题。在编写了一个小应用程序后,我意识到我并不像我想象的那么聪明——我仍然无法结束这个过程。起初我能够通过名称/PID找到进程:Processp=Process.GetProcessById(aPid)//orforeach(ProcesspinProcess.GetProcessesByName(aProcessName)..当我尝试以下操作时出现“访问被拒绝”异常:p

c# - 从 ProcessThreadCollection 按名称获取正在运行的线程

在搜索StackOverflow问题和一些谷歌搜索后,我仍然没有得到它。我知道您可以使用“Thread.isAlive()”方法检查单个线程是否正在运行,但我想检查特定的“FooThread”是否仍在当前进程的所有正在运行的线程之间运行,并且如果没有,调用启动它的方法。//somewhereinthecode,onanotherProject/DLLinsidesolutionprivatevoidFooThreadCaller(){Actionact=()=>fooFunction();Threadt=newThread(newThreadStart(act));t.Name="Fo

c# - 等效于没有单独参数的 Process.Start()

我正在编写一个需要运行任意命令的简单应用程序,例如:powershell-Filemyscript.ps1cmd/C"pinglocalhost"Process.Start()将是完美的,除非它要求参数作为单独的参数给出。最初我以为我可以只在第一个空格字符上拆分字符串,但是如果可执行文件路径被引用并包含空格怎么办?有没有像Process.Start()这样的东西,它允许您只给它一个字符串,有或没有参数,然后让它执行它,就像它被粘贴到命令提示符一样? 最佳答案 为什么不直接通过cmd/C运行所有内容?Process.Start("cm

c# - Process.Start(url) 失败

我有一个针对.NET2.0的WinForms应用程序。我们有一份报告说我们的一个按钮不起作用,它所做的只是在他们的默认浏览器中打开一个网页。查看日志我可以看到Process.Start()失败,因为它找不到文件。问题是我们将一个字符串url传递给Start()方法,所以我不明白为什么它会生成此消息。这是日志中的异常:System.ComponentModel.Win32Exception:ThesystemcannotfindthefilespecifiedatSystem.Diagnostics.Process.StartWithShellExecuteEx(ProcessStart

c# - 从 ASP.NET C# 启动程序

我有一个程序(我创建的),我想在网页加载时在服务器上启动它。这是我的代码publicpartialclass_Default:System.Web.UI.Page{Processapp=newProcess();protectedvoidPage_Load(objectsender,EventArgse){app.StartInfo.FileName=@"D:/Pathto/My/Programtoberun.exe";app.Start();}}现在应用程序正在“运行”,但它会立即崩溃。如果我只是运行应用程序(通过双击exe),它就会运行并且一切正常。有人看到我在这里是否遗漏了什么吗

c# - Process.MainWindowHandle 的意外行为

我一直在努力理解Process.MainWindowHandle.根据MSDN;"主窗口是进程启动时创建的窗口。初始化后,可能会打开其他窗口,包括Modal和TopLevel窗口,但与进程关联的第一个窗口仍然是主窗口"(强调已添加)但是在调试时我注意到MainWindowHandle似乎改变了值...这是我没有预料到的,尤其是在查阅了上面的文档之后。为了确认行为,我创建了一个独立的WinForms应用程序,它带有一个计时器,每100毫秒检查一次“DEVENV”(VisualStudio)进程的MainWindowHandle。这是这个测试应用程序的有趣部分...IntPtroldHWn

c# - 在不实际验证签名的情况下确定文件是否在 C# 中具有数字签名

有没有一种简单的方法可以检查文件上是否存在数字签名,而无需尝试验证签名所用的证书?我想对目录中的一长串exe和dll文件进行签名,但仅限于尚未签名的文件。例如,如果其中一个文件已由Microsoft或其他某个第3方签署,我不想使用我公司的证书再次签署它们。通过右键单击文件并查看其属性可以很容易地检查文件是否具有数字签名(如果出现数字签名选项卡则表明它已被签名)。我正在寻找一种使用C#检查此数字签名属性的简单方法。现在,我正在使用带有signtool.exe的验证命令-它不仅会检查数字签名是否存在,还会检查用于签署文件的证书是否由受信任的机构颁发。这是我执行此操作的简单但笨拙的方法:pr

C# 使用多个参数启动应用程序

我一直在尝试从C#应用程序启动应用程序,但无法正常启动。从cmd应用程序加上参数启动一个小窗口显示输出,然后应用程序最小化到系统托盘。使用以下代码从C#应用程序启动应用程序会导致进程出现在任务管理器中,但没有其他任何内容,没有输出窗口,也没有系统托盘图标。可能是什么问题?myProcess.StartInfo.FileName=...;myProcess.StartInfo.Arguments=...;myProcess.Start();还尝试传递以下内容myProcess.StartInfo.RedirectStandardOutput=true;//triedbothmyProce

c# - 遍历索引属性(反射)

我想迭代一个我只能通过反射访问的索引属性,但是(我在充分了解可能有一个令人尴尬的简单答案的情况下说这个,MSDN/Google失败=/)除了在PropertyInfo.GetValue(prop,counter)直到抛出TargetInvocationException。阿拉:foreach(PropertyInfopropinobj.GetType().GetProperties()){if(prop.GetIndexParameters().Length>0){//getanintegercountvalue,byincrementingacounteruntiltheexcept