Articles of pipe理员

Windows进程间通信的主要缺点是什么?

假设你将一个单一的Windows程序拆分成可重用的组件,这些组件可以使用某种进程间通信 (IPC) 相互通信 ,并且无论出于何种原因,你都可以select匿名pipe道(例如启动一些Process-es和将Console.Out连接到Console.In的下一个进程,或者只是在命令提示符下使用“|”)。 Dobbs博士的一篇文章用一个命名pipe道的例子: 与同一机器中的其他IPC方法相比,性能会受到怎样的影响? 在扩展进程数量或传输数据量时,遇到的第一个问题是什么? 例如,如果我们使用文件而不是pipe道,我们会遇到locking问题和磁盘速度。 请注意,通过序列化正在传输的数据结构,已经有一个开销,这是我的效率损失的基准。 PS。 对pipe道的兴趣是因为它们很容易在每个进程中实现(Console.Readline,Console.WriteLine),所以很容易编写MSMQ和asynchronousHTTP接口,以及Unix和命令行的爱好。

无法在64位Windows 7中以较大的堆大小运行64位JVM

这是64位的Windows 7 Enterprise和64位的Java 7: java version "1.7.0_04" Java(TM) SE Runtime Environment (build 1.7.0_04-b20) Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode) 这发生在使用C:\Windows\SystemWOW64\cmd.exe (我错误地认为是64位版本) 和 C:\Windows\System32\cmd.exe (我刚刚发现,的Pulsar,是一个64位应用程序,尽pipepath名称)。 程序本身是微不足道的: public class Trivial { public static void main(String[] args) { System.out.println("total = " + toMB(Runtime.getRuntime().totalMemory())); System.out.println("max = " + toMB(Runtime.getRuntime().maxMemory())); } private static long toMB(long bytes) { […]

如何枚举进程中所有命名pipe道的名称?

我需要打开一个特定的命名pipe道,因此我可以进行模糊testing,但是我的testing代码无法访问用于生成命名pipe道名称的相同数据。 但是,我可以识别pipe道的名称,然后使用该名称打开pipe道进行模糊处理。 我使用这个论坛post来开始枚举系统上的句柄名称: http : //forum.sysinternals.com/howto-enumerate-handles_topic18892.html 但是,由于某种原因,似乎不能使用命名pipe道。 TL; DR:我需要使用哪些API来列出Windows上当前进程中所有命名pipe道的名称?

如何开发CMIS-WIndows资源pipe理器集成?

像WevDAV或CIFS一样,任何人都可以告诉我如何开发CMIS-WIndows资源pipe理器集成? (我不打算为CMIS浏览独立应用程序) 我熟悉在CMIS中开发,但在Windows开发中没有经验。 任何关键字,API等都是有帮助的。

SVNpipe理pipe理GUI工具

Windows上的SVN存储库有哪些GUIpipe理工具?

在win32下的stdin上使用fread()的问题

我想parsing从二进制模式下的标准input数据在Win32下。 我的代码所做的第一件事是在开头检查一个4字节的标题: int riff_header; fread(&riff_header, sizeof(riff_header), 1, ifp); // 'RIFF' = little-endian if (riff_header != 0x46464952) { fprintf(stderr, "wav2msu: Incorrect header: Invalid format or endianness\n"); fprintf(stderr, " Value was: 0x%x\n", riff_header); return -1; } stdin在读取之前已经切换到二进制模式: if (*argv[argc-1] == '-') { fprintf(stderr, "Reading from stdin.\n"); infile = stdin; // We need to switch stdin to binary […]

Python子stream程Popen:在Windows上将二进制数据发送到C ++

经过三天的密集的googleing和stackoverflowing我或多或less让我的程序工作。 我尝试了很多东西,发现很多答案连接到我的问题,但没有工作的解决scheme。 Sry应该错过了正确的页面! 我期待意见和build议。 任务: 将二进制数据(浮点数)从python发送到C ++程序,返回一些浮点数 数据将是20ms的声卡input,延迟是有点关键 平台:Windows(仅适用于声卡的驱动程序…) Popenpipe道,但没有沟通,因为我想保持打开C ++程序 整个事情在testing数据的ubuntu上工作得很好。 在Windows上,我遇到了二进制stream问题:Windows检查浮动stream为EOF字符,并随机find它。 然后,一切都冻结,等待在“eof”墙后面的stream量数据。 或者我可以拍照。 最后,这两件事情是必要的: #include <io.h> #include <fcntl.h> 和 if (_setmode(_fileno(stdin), _O_BINARY) == -1) {cout << "binary mode problem" << endl; return 1;}; 在C ++中描述: https : //msdn.microsoft.com/en-us/library/aa298581%28v=vs.60%29.aspx 。 cin.ignore()冻结使用二进制模式! 猜测,因为没有任何东西了。 虽然没有尝试/仔细考虑这个问题 cin.read(mem,sizeof(float)* length)做这个工作,因为我知道数据stream的长度 与MinGW编译 在Python代码中也是一样的! (先忘了,花一天吧): if sys.platform.find("win") > -1: import msvcrt,os […]

实施Explorer ContextMenu并将多个文件传递给一个程序实例

情况 我有一个通过CLI接受多个文件的第三方GUI应用程序,例如: MyProgram.exe "file1" "file2" 然后,所有文件一次加载到应用程序的同一个实例中。 为了优化我的时间,我想通过右键单击Windows资源pipe理器中的某些文件来加载多个文件(例如: select5个文件>右键单击>select“在MyProgram中打开”命令 ) 我知道如何创build所需的registry项,以在特定文件types的上下文菜单中添加该命令,这不是问题。 问题 这第三方程序没有任何驱动程序,shell扩展或方法,可以从上下文菜单中捕获多个文件,所以而不是如果我从资源pipe理器中select2个文件,每个文件打开一个单独的程序实例,我没有开发驱动程序的想法,所以一个驱动程序不是我要找的。 焦点 我愿意提出build议,也许这不是有效的方法,但似乎是最简单的方法: 我的想法是开发一个迷你的CLI应用程序来捕获这些多个文件(可能基于Windows消息或在没有活动,我不知道这就是为什么我问),将这些文件/参数写入一个文本文件,然后join所有参数在一行中调用我的第三方程序与这些参数一次加载在这个程序的单个实例的所有文件。 换句话说,只需一个简单的加载程序就可以在select多个文件的同时从上下文菜单中使用它来在第三方应用程序中同时打开所有文件。 题 首先,我想知道是否存在一个已知的术语来命名这个应用程序的东西,它能够在同一个实例中加载多个文件,从资源pipe理器中select文件,然后select上下文菜单。 我想研究这个术语。 在VB.NET / C#控制台应用程序中,哪个可能是最有效的方法来完成这个任务? (不是司机) 如何开始发展呢? 来自已知页面的任何现有的源代码示例,如codeproject …?

如何在Go中pipe理Windows用户帐户?

我需要能够从Go应用程序pipe理Windows本地用户帐户,并且似乎没有使用CGo,没有本地绑定。 我最初的search引导我说,最好使用“exec.Command”来运行“net user”命令,但是在parsing响应代码时,这看起来很混乱和不可靠。 我发现处理这种types的东西的函数是在netapi32.dll库中,但是Go本身并不支持Windows头文件,所以调用这些函数并不容易。 以https://github.com/golang/sys/tree/master/windows为例,看来Go团队已经在代码中重新定义了一切,然后调用DLL函数。 我很难将它们包装在一起,但是我已经获得了我所瞄准的低级API的模板,然后在它上面封装了一个更高级别的API,就像核心的Go运行时一样。 type LMSTR ???? type DWORD ???? type LPBYTE ???? type LPDWORD ???? type LPWSTR ???? type NET_API_STATUS DWORD; type USER_INFO_1 struct { usri1_name LPWSTR usri1_password LPWSTR usri1_password_age DWORD usri1_priv DWORD usri1_home_dir LPWSTR usri1_comment LPWSTR usri1_flags DWORD usri1_script_path LPWSTR } type GROUP_USERS_INFO_0 struct { grui0_name LPWSTR } type USER_INFO_1003 struct […]

在Windows 7下的python中使用文本文件作为标准input

我是一个win7用户。 我意外地读了* nix系统中的redirect(比如command1 < infile > outfile ),然后我发现在Windows(链接)中可以做类似的事情 。 而且python也可以用pipe(?)或者stdin / stdout(?)来做这样的事情。 我不明白这是怎么发生在Windows中,所以我有一个问题。 我使用某种专有的Windows程序(.exe)。 该程序能够将数据附加到文件。 为了简单,让我们假设它是类似的东西 while True: f = open('textfile.txt','a') f.write(repr(ctime()) + '\n') f.close() sleep(100) 问题:我可以使用这个文件(textfile.txt)作为标准input吗? 我的意思是脚本(运行时)应该总是(不是一次)处理所有的新数据,即 在“永无止境的循环”中: 程序(.exe)写入内容。 Python脚本捕获数据和进程。 你能写出如何在Python中做到这一点,或者在win cmd / .bat或其他方式。 这是非常酷的事情。 我想学习如何做到这一点! :d