jjzjj

c++ - WNDCLASS 和窗口句柄在单独的还是同一个类中?

好吧,严重的困境。我正在尝试包装WindowsAPI。我遇到的最大的设计问题(目前)是什么类适合包装什么?由于我之前已经创建了大约3次WindowsAPI包装器,总是在中间遇到设计问题,这一次,我打算谨慎行事,在实现之前询问这里令人困惑的部分。WNDCLASS和CreateWindow创建的主窗口应该包装在一个单个类中还是单独的类中?我应该创建一个单例来保存WNDCLASS吗?另外,如果有人能给我流程图或总体思路,关于如何将WindowsAPI抽象为类,一些好的设计技巧? 最佳答案 要获得良好的灵感来源,请查看.Net框架-没有WN

c - 如何使用句柄检索流程描述和公司名称?

如何使用句柄检索过程描述和公司名称。我正在使用WindowsAPI函数。 最佳答案 版本(和版权)信息存储在文件版本信息中。您可以使用GetFileVersionInfo获取它们功能。可以通过简单调用GetFileVersionInfo来检索版本以填充VS_FIXEDFILEINFO结构,但版权信息(在您的情况下为ProductName和CompanyName)存储在本地化/可本地化的文本字段中。例如看VerQueryValue功能。 关于c-如何使用句柄检索流程描述和公司名称?,我们在

windows - 使用 NamedPipe 时,有什么方法可以检测客户端管道的句柄是否关闭?

我想知道是否有一种方法可以在Windows平台上从服务器端检测客户端管道句柄的状态。即使客户端使用CloseHandle()函数关闭了管道(断开连接),但似乎无法从服务器端检测到它。将WaitForSingleObject()与句柄对象一起使用会返回WAIT_OBJECT_0,无论客户端句柄的状态如何。那么,从服务器端以更低的成本检测客户端管道的句柄是否关闭的好的解决方案是什么? 最佳答案 如果您正在从管道(PIPE_ACCESS_INBOUND或PIPE_ACCESS_DUPLEX)读取数据,当客户端关闭其管道末端时,您将收到ER

windows - 如何在 Windows 中获得线程句柄的访问权限 THREAD_QUERY_INFORMATION

我想使用GetExitCodeThread()。MSDN文档说,“句柄必须具有THREAD_QUERY_INFORMATION或THREAD_QUERY_LIMITED_INFORMATION访问权限。”我使用_beginthreadex()创建我的线程。当我调用这个API时,我应该如何设置THREAD_QUERY_INFORMATION标志?它应该是initFlag的一部分吗?文档没有说明必须如何准确设置此标志。 最佳答案 _beginthreadex返回的句柄已经足够访问线程以查询有限的信息。毕竟它有终止线程的权限,这远不止查询

c++ - 在 MessageBox husing 句柄中显示 dll 的路径

我用这个命令加载了一个dllHINSTANCEDllEconovent=LoadLibrary(_T("Econovent.dll"));我想获取从磁盘加载dll的路径...在这个假的情况下C:\TFS_FWG\Acon\Oem\bin\Econovent.20140130_3200\Econovent64\Econovent.dll只用消息框显示MessageBox(_T("NovalidProcAddress"),_T("Error"),MB_ICONINFORMATION);这是如何以最佳方式完成的? 最佳答案 看看GetMo

c++ - WinApi如何获取表单中事件元素的句柄

通过下面的代码部分,我可以获得打开的打开文件对话框的句柄。那很好用。HWNDhandleForWindow=FindWindow(NULL,"Open");现在,我需要在同一对话框的文本框区域中键入文件路径+文件名。为此,我需要获取TextBox的句柄。我一直在使用Spy++,到目前为止效果很好。但是,它没有获取TextBox的句柄。Spy++说该类是“编辑”并且没有标题。我用标题和类名尝试了以下和其他一些可能性,但没有成功。HWNDhwndTextBox=FindWindowEx(handleForWindow,0,"Edit","Caption");实际上,TextBox是Comb

windows - 仅在现代 Windows NT 系统上,我能否在运行时确定句柄是指套接字句柄还是对象句柄?

我完全知道,在过去,Windows套接字仅作为第三方用户模式​​DLL实现,套接字和对象句柄是不相关的。然而,在现代WindowsNT系统上,套接字是完整的内核对象,尽管也有一些用户模式状态。 最佳答案 不幸的是,没有针对该特定查询的单一API。您必须直接访问NT对象管理器并在其已知句柄列表中找到所需的句柄,然后您可以检索句柄的对象类型(以及其他内容)。InsideNT'sObjectManagerPushingtheLimitsofWindows:HandlesHOWTO:EnumeratehandlesWinObj:Theult

c++ - 获取已创建进程的进程句柄 Windows

我需要在运行我的程序时为刚刚创建的所有进程提供句柄或PID。到目前为止,我已经使用了这段代码,每次创建进程时都会告诉我。问题是我只获得有关创建的进程的信息,但我没有关于进程本身的任何信息。https://msdn.microsoft.com/en-us/library/aa390425(VS.85).aspx这是我获得事件的功能,但我不知道从哪里可以获得新流程的信息:HRESULTEventSink::Indicate(longlObjectCount,IWbemClassObject**apObjArray){HRESULThres=S_OK;for(inti=0;i谢谢

给定的 C++ Windows API GetSecurityInfo 无效句柄

我正在尝试使用WindowsAPI在Windows10中创建一个新的注册表项,即RegCreateKeyEx函数,然后使用GetSecurityInfo获取其DACL。所有断言都进行得很顺利,直到我到达所说的GetSecurityInfo函数调用,它给出了一个无效的句柄值错误(错误6)。我做错了什么?这是一个更复杂的项目的一部分,所以我只会在这里给出(或者我认为是什么,但我也可以添加其余的)相关部分:RegCreateKeyEx的包装器,使输出更易于处理并设置遇到的任何错误:inlineexternautoRegCreateKeyEx_safe(_In_constHKEYhKey,_I

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

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