草庐IT

c++ - 为来自不同进程的窗口设置父级是否正确?

我有两个应用程序有两个不同的顶级窗口:App1--Window1App2--Window2现在,我正在App1中创建一个对话框Dlg1,我想将window2(App2)设置为父窗口。(那是因为我希望我的Dlg1位于Window2之上)。我通过将Window2设置为父级来创建对话框。有效。但这是正确的方法吗?跨进程设置父项是否存在任何已知问题\限制?我检查了windows文档,发现的信息不多。 最佳答案 这或多或少是受支持的,但确实有一些限制。您需要注意这两个进程以同一用户身份运行,并且您没有会阻止这两个进程通信的安全或提升问题。其次

c++ - 在给定 _EXCEPTION_POINTERS 结构的情况下,如何获取导致结构化异常的模块名称? (win32 C++)

(Win32平台c++)使用__try和__finally,如何获取异常原因的模块名称(和地址)?我调用了GetExceptionInformation()但我不确定这些信息在哪里。鉴于在线和MSDN中的其他资源,Minidump处理程序和其他示例代码似乎能够获得它,但我不确定如何获得它。感谢任何引用资料或更具启发性的资源。 最佳答案 EXCEPTION_POINTERS提供的EXCEPTION_RECORD记录包含异常发生的地址。然后,您可能可以使用EnumProcessModules()和GetModuleInformation

windows - 如果我尝试将 header 编译为没有换行符的包含,为什么 MSVC++ 会给我一个错误? (C++/Windows )

我正在使用MSVC++编写一个简单的窗口,并且我包含了一个菜单的资源文件:MYMENUMENUDISCARDABLE//etc.然后我创建了一个头文件“resourcedef.h”,其定义如下#defineID_MYMENU_FILE_CLOSE1002我可以将它包含在我的main.cpp文件中而不会出错,但是,当我将它包含在资源文件中时,我得到了错误.\resourcedef.h(9):fatalerrorRC1004:unexpectedendoffilefound(resourcedef.h恰好有9行长)。当我在.h的末尾添加换行符时,//lines1-8#defineID_MY

c++ - Windows 套接字 WSACleanup C++

我在我的程序中使用套接字。由于我添加了WSAStartup。我的应用程序运行良好(它一直运行到收到停止信号为止)。收到信号后,它会停止问题,如果我在程序末尾编写WSACleanup函数,它会崩溃,如果我删除它,它会正常终止。谢谢 最佳答案 这是我的一个项目的摘录。初始化:#ifdefined(WIN32)WSADATAwsaData;WORDwVersionRequested=MAKEWORD(2,0);if(WSAStartup(wVersionRequested,&wsaData)!=0){LOG("WSAStartup()er

c++ - 如何在 Windows 下用 C++ 在远程机器上启动一个进程

我在Windows下使用Dev-C++。我的问题是如何在远程机器上启动进程?我知道PsExec可以做到这一点,但如果可能的话,我想避免使用它。如果有人可以提供一些示例代码,我将不胜感激:)提前致谢!坎比 最佳答案 如果这很容易,黑客就会在所有暴露在互联网上的机器上启动恶意软件。PSExec通过LAN使用服务控制管理器从“此处”启动服务EXE,即您运行它的机器。它需要很多安全权限——例如管理员权限。如果您不想这样做,您可以查看SSH(有开源示例)或远程命令提示符(在Windows资源工具包中)。

c++ - 获取单击鼠标按钮的窗口句柄

嘿,我正在使用WindowsHook,我在系统范围内安装了鼠标Hook,并且运行良好。现在有一个问题,我需要获取鼠标被点击的窗口句柄。我该怎么做?鼠标Hook事件是否向我们传递了该信息? 最佳答案 由于您使用的是WH_MOUSE_LL,因此您正在创建一个低级鼠标Hook,它实际上接收到一个指向MSLLHOOKSTRUCT的指针。没有hwnd成员。您需要使用WH_MOUSE设置一个普通的鼠标钩子(Hook);然后你会得到一个指向MOUSEHOOKSTRUCT的指针你期待的.. 关于c++-

c++ - Windows C++ 中的 MSN Messenger/Growl 样式警报

有谁知道我可以轻松将其集成到项目中以允许我显示MSNMessenger/Outlook/Growl风格的toast弹出窗口的任何C++库?尝试查看并发现了很多VisualBasic控件等,但到目前为止还没有C++控件。 最佳答案 您可能想看看CustomizableAlertWindow作者:MariusBancila。 关于c++-WindowsC++中的MSNMessenger/Growl样式警报,我们在StackOverflow上找到一个类似的问题: h

c++ - 为什么 GetLastError() 在调试期间与 "normal"执行期间返回不同的代码?

try{pConnect=sess->GetFtpConnection(ftpArgs.host,ftpArgs.userName,ftpArgs.password,port,FALSE);}catch(CInternetException*pEx){loginErrCode=GetLastError();printf("loginErrCode:%d\n",loginErrCode);if(loginErrCode==12013){printf("Incorrectusername!\n");exit(0);}elseif(loginErrCode==12014){printf("I

java - 两个程序之间的输入输出通信

我有一个名为kgsgtp.jar的第三方java程序,它需要与我自己的C++(但主要是C)程序通信。java程序的文档指出:=====================你只需要确保它连接到的kgsGtp的标准输入kgsGtp的引擎输出和标准输出连接到引擎的输入。通常,最简单的方法是fork和execing来自您的引擎的kgsGtp。=====================现在我是一个相当称职的程序员,我觉得只要再提供一些线索,我就可以安排所有这些。我怀疑如果描述扩展到erm,10?行而不是三行半,然后我会立即对其进行排序。我猜文档中的fork是指在我的程序中使用WinExec()或Cr

c++ - 我可以使用 SetWindowPos 将窗口放在另一个窗口后面,但如何将它放在给定窗口前面?

SetWindowPosition的第二个参数是hWndInsertAfter,表示在后面。如何将一个窗口放在另一个窗口(上方)的前面? 最佳答案 如何再次调用SetWindowPos,交换hwnd参数(因此您的原始窗口现在是hWndInsertAfter,而初始hWndInsertAfter现在是您要移动的hWnd),并传入SWP_NOMOVE标志?编辑:如果Z顺序中的确切位置无关紧要,而您只想让它在前面,请不要忘记SetForegroundWindow。 关于c++-我可以使用Set