jjzjj

windows - Windows 与 Linux/UNIX 中 Perl 的 waitpid() 和 IPC::Open2

下面的代码在Linux上运行完美,但是当我把它放在Windows机器上时,一切都乱套了:$pid=open2($my_reader,$my_writer,"$JAVACALL$PARSER_CP$PARSER_CMD-");$my_reader->autoflush(1);$my_writer->autoflush(1);print$my_writer"$line\n";close($my_writer);my$tree=;chomp($tree);push@parse_trees,$tree;close($my_reader);waitpid($pid,0);在Windows中,它只

c++ - 在 Windows 服务和 win32 应用程序 C++ 之间使用 IPC

我已经编写了一个Windows服务,我想将它与一个win32应用程序(桌面)进行通信(IPC),谁能告诉我我应该怎么做才能进行这种通信。在我的例子中,我的服务是服务器,其他进程是客户端。每当用户在他的机器上启动它时,进程应该与服务建立连接。 最佳答案 我编写了支持您描述的命名管道的服务。我不需要做任何特别的事情来设置客户端打开和读/写命名管道的权限。我发现以下Microsoft文章在开发我的代码时很有用:“完整的服务示例”:http://msdn2.microsoft.com/en-us/library/bb540476(VS.85

c++ - 服务和用户模式进程之间的共享全局事件不起作用

我正在尝试创建一个可以在我的服务和用户进程(-es)之间共享的命名全局事件。用户进程可以在任何低权限登录Windows用户(甚至是内置访客)的凭据下运行。也无法知道哪个进程将首先创建此事件,即服务或用户进程。因此,从服务和用户模式进程中,事件是这样创建/打开的://Eventnameismadeupusingspecial/sharedfilepath,andbasicallybecomessomethinglikethisstrEventName=L"Global\\sa_evt_C:_Users_Name_C++_Mod0110_debug_TmLog0";//Createdesc

c++ - 如何在 Windows 中访问继承的匿名管道 HANDLE,而不是 stdout、stderr 和 stdin?

我正在尝试通过Windows中的匿名管道从子进程接收数据。我知道如何使用标准I/O流来执行此操作,但这些被用于其他目的。我也知道如何在Linux或OSX中使用fork()、pipe()和execv()执行此操作。在Windows中,您可以使用CreatePipe()创建管道,并使用SetHandleInformation()使一端不可继承。然后,对于stdout和stderr,您可以将STARTUPINFO和hStdOutput或hStdError设置为CreateProcess()以传递另一端给child。在调用CreateProcess()之后,父级最接近它的是子级管道末端的句柄。

c# - 命名管道 C# 客户端无法连接到 C++ 服务器

我正在尝试让C++应用程序让C#应用程序知道特定操作何时发生。我尝试这样做的方式是通过命名管道。我已经在C++应用程序上设置了一个命名管道服务器,它似乎正在工作(命名管道已创建-它出现在PipeList检索到的列表中)和C#应用程序上的一个命名管道客户端,失败的地方:C#客户端代码的第一行给出“尚未设置管道句柄。您的PipeStream实现是否调用了InitializeHandle?”错误,第2行抛出“访问路径被拒绝”异常。我哪里错了?C++服务器代码CStringnamedPipeName="\\\\.\\pipe\\TitleChangePipe";HANDLEpipe=Creat

远程对象的 C++ 调用方法(类似于 RPC)

我正在寻找一个RPC库,它允许我在另一个进程(在Windows上)中调用一个对象的成员函数。我目前遇到的问题是一些服务器端对象已经存在并且有多个实例。服务器应该能够将指针/标识符传递给实现代理的客户端,然后将调用定向到远程对象实例。所以我基本上想要的是这样的:Client:TestProxytest=RemoteTestManager.GetTestById(123);test.echo("bla");其中Test的实例已经存在于服务器上,并且RemoteTestManager是客户端在另一个rpc调用中获得的服务器上的管理器类。此外,它最好在命名管道上运行,因为同一台机器上可以有多个

c++ - 我如何与 C++ 中的其他应用程序交互?

我想知道有没有办法改变其他应用程序的定位是C++。我想要做的是在屏幕上移动事件窗口。例如,我想以循环方式移动Firefox。在2:17http://www.youtube.com/watch?v=TLqPepLhDTY&list=WL8D6E1A188FBFE181浏览器移动了,我该怎么做? 最佳答案 您应该首先使用FindWindow()函数获取窗口的HWND。然后你可以简单地使用SetWindowPos()或MoveWindow()用找到的HWND改变位置。 关于c++-我如何与C+

c# - 在 .NET 中读取文件内容更改

在Linux中,很多IPC是通过在一个进程中附加到文件并从另一个进程读取新内容来完成的。我想在Windows/.NET中执行上述操作(使用管道等普通IPC太麻烦了)。我正在从Python进程附加到一个文件,我想读取更改,并且每次FileSystemWatcher报告事件时只读取更改。我不想每次查找更改时都将整个文件内容读入内存(文件会很大)每个附加操作都会附加一行数据,这些数据以唯一的递增计数器(时间戳+键)开始并以换行符结束。 最佳答案 using(FileStreamfs=newFileStream(fileName,FileM

c# - 在 Mono 中处理通信的简单跨平台进程?

我正在开发一个将在Linux、Mac和Windows上运行的Mono应用程序,并且需要应用程序(在单个操作系统上)能够相互发送简单的字符串消息。具体来说,我想要一个单实例应用程序。如果尝试启动第二个实例,它将改为向已在运行的单个实例发送一条消息。DBus已经过时了,因为我不想让它成为一个额外的要求。套接字通信似乎很难,因为Windows似乎不允许连接权限。Mono似乎不支持内存映射文件。Mono似乎不支持命名管道。Mono似乎不支持IPC。那么,有没有一种简单的方法可以将单台机器上的字符串消息发送到适用于每个操作系统的服务器应用程序,而无需权限或其他依赖项?

c# - 使用 C# 像写字板一样嵌入 mspaint

我刚刚看了看写字板。有一个名为“插入画图”的功能区按钮。当我单击该按钮时,mspaint会打开并提示我绘制一些东西。画完东西后,我可以单击“更新文档”按钮。没有保存选项(只有“将副本另存为”)。此外,没有退出按钮。相反,它显示一个“退出并返回文档”按钮。现在我的问题是:我是否以及如何从我的C#桌面应用程序中的此功能中获益?我想到了一些IPC,但我无法弄清楚它是如何工作的。有人有想法吗? 最佳答案 这称为OLE(对象链接和嵌入)。您正在将MicrosoftPaint文档嵌入到写字板文档中。自Windows95以来,这项技术就已存在。.