Articles of c + +

无限的Windows消息循环

我在我的程序中有这个消息循环: while (true) { if (PeekMessage(&msg, window, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) { MessageBox(NULL, L"Quit", L"", 0); break; } TranslateMessage(&msg); DispatchMessage(&msg); } else { Render(); } } 这个循环不会结束。 即使主窗口消失,它也不会显示消息框。 这是WndProc代码: switch (msg) { case WM_CLOSE : DestroyWindow(hwnd); break; case WM_DESTROY : PostQuitMessage(0); break; default : return DefWindowProc(hwnd, msg, wParam, lParam); break; } […]

从Windows服务调用batch file

我有一个服务,需要调用一个新的文件复制到一个目录时批处理。 我尝试使用CreateProcess , ShellExecute , ShellExecuteEx甚至system 。 我尝试直接调用批处理,然后调用cmd.exe并传递/c batchfile作为参数…没有。 我将该服务设置为以pipe理员身份运行。 我试着与其他用户。 没有。 这是一个Windows 2008服务器。 有任何想法吗? 谢谢。

内存中的视觉模式?

今天开始在运行在VMWare上的Win 7机器上远程debugging一个C ++项目,并惊奇地发现随机内存位置上有下列模式: 谁可能编码(这不是我!),为什么? 只是好奇,如果有人看到这样的事情。

在所有错误情况下,我需要采取什么行动来获得崩溃转储?

我们在Windows上,并且我们想要在应用程序出口的所有场景中出现故障转储(可能使用MiniDumpWriteDump )。 到目前为止,我们已经确定并build立了以下内容: SetUnhandledExceptionFilter对于未处理的exception(Win32以及“正常”的C ++)。 用于CRT无效参数处理的_set_invalid_parameter_handler _set_abort_behavior加上一个SIGABRT处理程序来说明对abort()调用 有什么我们错过了吗? (模一些代码非法调用ExitProcess , TerminateProcess或其中一个exit变体。)

Windows的关键价值数据库?

除了MongoDB和Memcached之外,什么键值存储在Windows上运行? 我见过的大多数似乎只能在Linux上运行(Hypertable,Redis,Lightcloud)。 相关链接: 是否有经过业务validation的云存储/ Key => Value Database? (开源) http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/

在win32中创build自定义消息types?

有没有办法在Win32中定义和发送自定义消息types,以便被主消息处理程序捕获? 例如,我的主要消息处理程序捕获消息,如WM_PAINT,WM_RESIZE,WM_LBUTTONDOWN等。我可以创build我自己的WM_DOSOMETHING? 如果是这样,我将如何发送此消息? 啊,其实我刚才发现这是在这之前问的,但是,它并没有回答我实际上是怎么发送这个消息的。

如何使用C#禁用鼠标点击事件系统?

嘿家伙,我有一个非常敏感的触摸板的笔记本电脑,并想编写一个小程序,可以阻止鼠标input,当我打字纸或什么的。 考虑到我在低级挂钩上看到的所有事情,我不认为这是很难做到的,但我错了(令人震惊,对吧?)。 我看了几个例子,但是我看到的例子既可以阻止键盘和鼠标,也可以隐藏鼠标。 任何帮助,这将是伟大的。

ClickOnce开始菜单图标

当我使用ClickOnce部署和安装我的应用程序时,如何设置我的开始菜单快捷方式的图标? 平台:Visual Studio 2010专业版testing版1

从32位进程获取64位进程的命令行string

下面的代码适用于从32位应用程序获取32位进程的命令行string,64位应用程序的64位进程和64位应用程序的32位进程。 如果我尝试从32位应用程序使用64位进程,这将中断。 原因是PROCESS_BASIC_INFORMATION和地址大小的结构大小不同。 所以这里是我的问题 – 1)过程黑客( http://processhacker.sourceforge.net/forums/viewtopic.php?f=15&t=181 )中使用wow64函数给出的build议似乎不工作,并失败,并出现以下错误 – NtWow64ReadVirtualMemory64错误:8000000D读取从A68291A0004028E0 ProcessParameters地址 有没有人试过,可以成功获取信息? 我在论坛上发表了同样的意见。 2)是否有任何其他方法来查询peb信息,可以为x86和x64可靠工作? int get_cmdline_from_pid( DWORD dwPid, char** cmdLine ) { DWORD dw, read; HANDLE hProcess; NtQueryInformationProcess* pNtQip; PROCESS_BASIC_INFORMATION pbInfo; UNICODE_STRING cmdline; WCHAR* wcmdLine; *cmdLine = NULL; hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwPid ); if( !hProcess ) return FALSE; pNtQip = (NtQueryInformationProcess*) […]

以编程方式在Windows 7上使用.NET创build/销毁网桥

我试图以编程方式创build和销毁Windows 7上的网桥。 在技​​术上,我很乐意留在.NET 4领域(PInvokes很好,ofc),但是使用C ++是一个select。 到目前为止,我的研究发现,对于configuration, netsh命令是要走的路线 。 然而,似乎没有select与他们搭起一座新的桥梁。 我目前正在研究这个使用INetCfg API的程序,但是看起来这个程序,或者更具体的API,不能(再)build立一个新的桥接。 如果有人能够帮助解决这个问题,任何forms的帮助都是非常感谢的。 [更新:]看来,蝾螈桥梁实施使用驱动程序,然后绑定到两个设备。 我还不能提供大部分的信息,所以还是有任何帮助。