草庐IT

process_item

全部标签

c# - Process.Kill() 与 Process.Start ("taskkill",...)

我有一个小型C#安装程序应用程序,我想终止一个进程。使用上有什么优点/区别吗Process[]procs=Process.GetProcessesByName("[taskname]");foreach(Processpinprocs){p.Kill();}对比Process.Start("taskkill","/F/IM[taskname].exe");我在某处读到,使用“taskkill”只能在XP(及更高版本)中使用,那么这会使Process.Kill()成为更安全的选择吗? 最佳答案 p.kill()不会杀死进程树。所以如果

c# - Process.Kill() 访问被拒绝

当我运行以下代码时,会抛出Win32Exception以拒绝访问。我无法通过搜索找到任何解决方案。我该如何解决这个问题?foreach(ListViewItemlistinshowprocesses.SelectedItems){Processp=System.Diagnostics.Process.GetProcessById(Convert.ToInt32(list.Tag));if(p!=null)p.Kill();} 最佳答案 如果您没有必要的权限,通常会收到此错误。您必须是管理员,并且在winvista及更高版本中,以提升

C# 拖放 : Show the dragged item while dragging

我正在使用Windows窗体在C#中构建桌面应用程序。我有一个自定义控件,我希望能够将它拖放到我的应用程序中(而不是外部)。现在我正在使用通常的DoDragDrop/OnDragOver/OnDragDrop方法来实现它。有什么方法可以在控件被拖来拖去时连续绘制控件——有点像您在JQuery的拖放中看到的那样?我希望实际控件留在原地,但我想在用户拖动它时绘制其外观的副本。理想情况下,该副本甚至应该是半透明的,但这更像是“拥有它就好了”。我能想到的唯一方法是将绘制代码放在主窗体的OnPaint方法中,但这似乎是一个不够优雅的解决方案。还有其他想法吗?如果控件将自己描绘成位图,事情会更容易

c# - 在 ASP.NET Core Process 中创建的子进程在退出时被杀死

我正在使用Process类在ASP.NETCore(.NETFramework)中生成一个子进程:varprocess=newProcess{StartInfo=newProcessStartInfo(executableDir){Arguments=commandDefinition.CommandDef.ArgumentsAsString,RedirectStandardOutput=true,RedirectStandardError=true,UseShellExecute=false,CreateNoWindow=true,WorkingDirectory=_contentP

c# - 参数异常 "Item with Same Key has already been added"

我不断收到以下代码的错误:Dictionaryrct3Features=newDictionary();Dictionaryrct4Features=newDictionary();foreach(stringlineinrct3Lines){string[]items=line.Split(newString[]{""},2,StringSplitOptions.None);rct3Features.Add(items[0],items[1]);////Toprintoutthedictionary(toseeifitworks)//foreach(KeyValuePairitemi

c# - Process.start() 启动的进程返回错误的进程 ID?

我正在使用这段代码启动一个可执行文件:Processproc=newProcess();proc.StartInfo.FileName=executablePath;proc.Start();proc.WaitForInputIdle();在调用proc.Id之后,它给了我一些整数,这不是真正的进程ID。在任务管理器中,此进程有另一个ID,而且我正在使用MSUIAutomation访问此应用程序,它也返回与任务管理器中相同的ID。所以我的问题是如何获得启动进程的真实进程ID?更新我发现它在Windows7上运行良好并返回正确的ID,但在WindowsXP上却不行。可能是什么原因?场景应

c# - 异步操作后的 HttpContext.Current.Items

考虑以下ASP.NETWebAPI委托(delegate)处理程序:publicclassMyHandler:DelegatingHandler{protectedasyncoverrideTaskSendAsync(HttpRequestMessagerequest,System.Threading.CancellationTokencancellationToken){varguid=Guid.NewGuid();HttpContext.Current.Items["foo"]=guid;//AnAsyncoperationvarresult=awaitbase.SendAsync

c# - MSBuild Item Include(通配符)不扩展

这很奇怪。一段时间以来,我们一直在努力解决这个问题,但它确实没有任何意义。我们的Web项目导入了一个目标文件,该文件的目标与此类似:目前,1个分支正在完美搭建中,按要求执行任务;但是另一个分支在上述目标上失败了。失败是因为@(CSSFiles)项目在被任务接收时似乎没有扩展到ITaskItem数组中。任务编写如下(直到我得到FullPath元数据为止):publicclassCSSChecker:Task{[Required]publicITaskItem[]Files{get;set;}publicoverrideboolExecute(){stringfullFilePath=nu

C# Windows 窗体 : On Close Do [Process]

如何让我的窗体在关闭时执行某些操作。 最佳答案 处理FormClosed事件。为此,转到“属性”窗口中的“事件”选项卡并双击FormClosed事件为其添加处理程序。然后您可以将代码放入生成的MyForm_FormClosed处理程序中。您也可以通过覆盖OnFormClosed方法来做到这一点;为此,请在代码窗口中键入overrideonformcl并从IntelliSense中键入OnFormClosed。如果您希望能够阻止表单关闭,请改为处理FormClosing事件,并将e.Cancel设置为true.

C# process.start,如何知道进程是否结束?

在C#中,我可以用启动一个进程process.start(program.exe);如何判断程序是否仍在运行,或者是否已关闭? 最佳答案 MSDNSystem.Diagnostics.Process如果您想现在知道,您可以检查HasExited属性。varisRunning=!process.HasExited;如果这是一个快速的过程,请等待。process.WaitForExit();如果您在后台启动,请在将EnableRaisingEvents设置为true后订阅Exited事件。process.EnableRaisingEve