【关于.net(C#)中的跨进程访问的问题】教程文章相关的互联网学习教程文章

使用C#PHP中的命名管道进行进程间通信

使用C#中的命名管道进行进程间通信很简单,但我不确定如何在php中执行此操作,或者甚至可能.所以我有这些问题: >在php中可以命名管道吗?>是否可以拥有一个C#命名管道客户端,连接到php命名管道服务器?>我怎么编码呢?

通过单击C#获取进程窗口句柄【代码】

目前,我可以使用System.Diagnostics.Process.GetProcesses()获取一个正在运行的进程列表,并执行一个简单的LINQ查询. 然后,我可以导入user32.dll和SetWindowPos函数,并操纵其他进程的窗口参数. 好的,它有效.现在我想通过点击它来选择一个进程的窗口,让我们说calc.exe.换句话说,我想获得一个Process对象(然后是MainWindowHandle),它有一个钩子,当我点击它的窗口时它会捕获进程名称. 我怎样才能做到这一点?解决方法:我不知道在C#中如...

c# – 获取进程ID时出错【代码】

我正在创建一个剪贴板监视器作为项目,并在剪贴板上更改应用程序通过调用GetClipboardOwner来检测哪个程序使用了剪贴板. 这是代码的摘录:protected override void WndProc(ref Message m){const int WM_DRAWCLIPBOARD = 0x308;const int WM_CHANGECBCHAIN = 0x030D;switch (m.Msg){case WM_DRAWCLIPBOARD:Debug.Indent();//Process the clipboard hereuint processId;IntPtr ownerHwnd = GetClipboardOwner();GetWindowThreadProce...

c# – 使用64位进程读取文本文件非常慢【代码】

我正在将文本文件(.itf)与位于文件夹中的某些逻辑合并.当我将它编译为32位(控制台应用程序,.Net 4.6)时,一切正常,但如果文件夹中有大量数据,我会得到超出内存的异常.将它编译为64位可以解决这个问题,但与32位进程相比,运行速度超慢(超过15倍). 我尝试使用BufferedStream和ReadAllLines,但两者的表现都非常糟糕.分析器告诉我这些方法使用99%的时间.我不知道问题是…… 这是代码:private static void readData(Dictionary<string, ...

c# – 传递一个对象以接收从进程中创建的子AppDomain到Default AppDomain的回调【代码】

Sitation: >我正在从我的进程创建一个子应用程序域来加载程序集.>我可以调用此AppDomain.>我想将一个对象从我的默认进程AppDomain传递给这个新创建的AppDomain,以接收从新AppDomain中加载的程序集到我的默认AppDomain的回调. 我找到的一种方法是使用AppDomain.DoCallback方法,但不知道如何在我的孩子AppDomain中获取我的主机AppDomain? 任何机构有任何想法实现它吗?解决方法:一般的想法是向新创建的域传递一个派生自MarshalByRe...

c# – 从.NET执行Cygwin进程?【代码】

我正在尝试从.NET应用程序启动Cygwin版本的ruby.exe,但我被卡住了.c:\>"c:\cygwin\bin\ruby.exe" c:\test\ruby.rb /usr/bin/ruby: no such file to load -- ubygems (LoadError)如你所见,Ruby无法找到库,因为它正在寻找一些Linux风格的路径. 显然,当我从.NET运行ruby.exe时,由于无法找到库,它就像上面那样失败了. 如果我没有加载任何库它工作正常:c:\>"c:\cygwin\bin\ruby.exe" -v ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-c...

如何在WXP(和更新的MSWindows)上使用C#终止所有[grand]子进程【代码】

问题:如何确定子进程树中的所有进程以杀死它们? 我有一个用C#编写的应用程序,它将: >从服务器获取一组数据,>然后,生成第三方实用程序来处理数据>将结果返回给服务器. 这工作正常.但是由于运行会占用大量CPU并且可能需要长达一个小时,因此我想添加让我的应用终止其子进程的能力. 我在其他地方找到的简单解决方案的一些问题是: >我的应用程序的子进程“A”(我认为是InstallAnywhere EXE)产生真正的处理应用程序“B”(一个java.ex...

c# – 如何在.NET和Java之间创建跨平台进程间通信?

我想开发一个特定的插件/扩展,它需要在eclipse中运行并且必须与另一个(java)插件集成,但它必须从.NET程序集中收集数据(使用mono’s cecil). 所以我的问题是如何在Java代码和.NET之间创建这种关系?我知道我可以使用mono来运行.net应用程序,例如Linux,但我有2个问题,我想Java插件启动.NET应用程序,第二个问题是如何让Java插件进行某些调用到.NET应用程序. 对于这两个应用程序之间的这种通信,我希望独立于平台,以便相同的二进制文件可...

c# – 在Windows服务中异步运行外部进程【代码】

我正在编写一个将csv文件从“queue”文件夹移动到“processing”文件夹的程序,然后以csv文件路径作为参数启动名为import.exe的第三方进程. Import.exe是一个长期运行的任务. 我需要程序继续运行并检查队列中的新文件.出于这个原因,我选择了一个Windows服务应用程序,因为它将长期运行. 我的问题是我对选项感到不知所措,无法理解我是否应该用background threads或parallel programming解决这个问题,或者很可能是两者的结合. 到目前为...

进程间通信可以像进程内事件一样快(使用wcf和c#)

我有一个应用程序,对传入的事件流(CEP引擎)执行分析.此流程可以来自不同的来源(数据库,网络等). 为了有效地解耦,我希望此服务使用wcf公开命名管道,并允许不同的应用程序从源读取数据并将其提供给服务. 因此,一个进程负责获取和处理传入的数据,而另一个进程用于分析它,使用wcf和命名管道绑定将两者连接起来.它们都将部署在同一台机器上. 问题是,如果我将两个服务简单地耦合到一个进程并使用常规事件,我会注意到在中间使用wcf的吞吐量...

在Linux和Windows上与C#进行进程间通信

我需要在我的应用程序中引入IPC,我还需要继续在GNU / Linux和Windows上进行分发(目前我在GNU / Linux上使用mono,在Windows上使用.NET,并且两者都支持GTK).通讯限制在同一个盒子上. 哪个是在两个系统上进行IPC的最佳方式? 我读到DBUS也可以在Windows上使用主流源代码.任何人都可以使用它,在Windows上我的意思是? 在此先感谢大家.解决方法:我只想使用Remoting. 仅仅因为其他选择很糟糕: >单声道WCF非常有限> Rus说,DBus存在问题;更...

如何确定进程是否在C#中管理?【代码】

一些搜索返回此结果:Which processes are running managed code and which version? 但是,我想知道是否有一种“更好”的方式,然后简单地迭代加载的模块?寻找字符串“mscorwks.dll”似乎有点古怪.通过MSDN上的Process Class阅读似乎没有指出一个明显的解决方案. 做出的假设 > .NET 4.0>我手头有一个“过程” 谢谢最佳答案:对于任何未来的Google员工:我最终使用此处发布的建议答案How to check if a program is using .NET?(感谢0...

c# – 防止崩溃进程发生堆栈溢出异常

假设我有一个应用程序,用户可以在其中提供用JavaScript编写的脚本来执行某些任务.这是使用Jint完成的.但是,编写错误的脚本会导致JintEngine.Run()中的Stack Overflow异常,从而导致整个应用程序崩溃.我宁愿告诉用户脚本中的错误. 我试图在另一个应用程序域上运行Jint,这没有帮助,导致SOE上的AFAIK默认操作正在退出进程.可以通过使用CLR托管来改变任何其他方式吗? 我知道我可以运行单独的流程,这是我的后备,但我不想这样做.最佳答案...

C# 多进程安全【代码】

多个应用程序同时写入数据到一个文件中时可用 public void WriteData(string dataWh, string filePath){EventWaitHandle waitHandle = new EventWaitHandle(true, EventResetMode.AutoReset, "SHARED_BY_ALL_PROCESSES");waitHandle.WaitOne();try{using (var fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite)){byte[] dataAsByteArray = new UTF8Encoding(true).GetBytes(dataWh);fs.Writ...

C#初学者使用file.creat()创建文件后,显示正由另一进程使用

string sourcePhotoPath = this.GetUserSelectedPhoto();if(sourcePhotoPath == null){return;}string sourceFileName = System.IO.Path.GetFileName(sourcePhotoPath);//把图片保存到文件夹string userName = this.LoginUserName;string newPath = @"Images";if(!System.IO.Directory.Exists(newPath)){System.IO.Directory.CreateDirectory(newPath);}string destFile = userName + DateTime.Now.ToString("yyyyMMddHHMMss") + "...