-
2021-12-24 17:11:27
hwnd = Process.GetProcessById(99999).MainWindowHandle;
更多相关内容 -
GLFW获取HWND和添加菜单栏方法
2019-03-18 21:03:05我用的GLFW 3.2.1,翻了glfw3.h里面并...1.获取HWND 调用Win32 API首先需要获取HWND。这里有两个方法: 方法1:GetActiveWindow HWND hwnd=GetActiveWindow(); 方法2:使用glfwGetWin32Window 这个函数在glfw3....我用的GLFW 3.2.1,翻了glfw3.h里面并没有提供更改菜单栏的API。但是我们可以用最传统的Win32 API SetMenu来实现。
1.获取HWND
调用Win32 API首先需要获取HWND。这里有两个方法:
方法1:GetActiveWindow
HWND hwnd=GetActiveWindow();
方法2:使用glfwGetWin32Window
这个函数在glfw3.h里面是没有的,声明在glfw3native.h里面。首先添加声明:
#define GLFW_EXPOSE_NATIVE_WIN32 #include <GLFW/glfw3native.h>
前面的define必须要。
之后即可获取HWND:HWND hwnd=glfwGetWin32Window(window);
2.设置菜单栏
1.新建资源,添加Menu。
2.之后包含resource.h:#include "resource.h"
3.之后在glfwCreateWindow之后,消息循环之前加入:
HINSTANCE hInst = (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE); HMENU hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU1)); SetMenu(hwnd, hMenu);
即可。
效果如图:
参考:
https://www.glfw.org/docs/latest/group__native.html -
Java获取Hwnd (大华NVR二次开发)
2016-05-04 08:09:41直接方式是指通过服务器传送过来的视频数据不需要用户自己去解码就能够显示播放,用户只要调用接口CLIENT_API LONG CLIENT_RealPlay(LONG lLoginID, int nChannelID, HWND hWnd),将窗口句柄传入形参hWnd就能够实时... -
通过进程PID获取 HWND
2014-02-12 16:19:34// dddddddddd.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...HWND GetWindowHandleByPID(DWORD dwProcessID) { HWND h = GetTopWindow(0); while ( h )// dddddddddd.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <afx.h> HWND GetWindowHandleByPID(DWORD dwProcessID) { HWND h = GetTopWindow(0); while ( h ) { DWORD pid = 0; DWORD dwTheardId = GetWindowThreadProcessId( h,&pid); if (dwTheardId != 0) { if ( pid == dwProcessID/*your process id*/ ) { // here h is the handle to the window if (GetTopWindow(h)) { return h; } // return h; } } h = ::GetNextWindow( h , GW_HWNDNEXT); } return NULL; } void _EnumChildWindows(HWND hParent, CString& szData ) { HWND hWndChild = GetWindow(hParent, GW_CHILD); HWND hWndTemp = GetWindow(hWndChild, GW_HWNDFIRST); do { TCHAR szWndInfo[512] = {0}; TCHAR szWndTitle[256] = {0}; TCHAR szClsName[64] = {0}; GetWindowText(hWndTemp, szWndTitle, 256); GetClassName(hWndTemp, szClsName, 64); _stprintf(szWndInfo, _T("窗口 %08X ") _T("\"%s\"") _T("%s ") _T("%s"), hWndTemp, szWndTitle, szClsName, IsWindowVisible(hWndTemp) ? _T("Visible") : _T("Invisible")); szData += szWndInfo; szData +="\n"; } while (NULL != (hWndTemp = GetWindow(hWndTemp, GW_HWNDNEXT))); } bool CALLBACK EnumChildProc(HWND hWnd,LPARAM lParam) { CString szRet = *(CString *)lParam; char temp1[256]={0}; ::GetWindowText(hWnd,temp1,255); szRet += temp1; szRet += "\n"; *(CString *)lParam = szRet; return true; } int main(int argc, char* argv[]) { CString szData; HWND hMain = GetWindowHandleByPID(6356); if (hMain == NULL) { szData = "没有找到此PID窗口"; } // HWND hParent = GetDesktopWindow(); //HANDLE hwnd = GetProcessHandle(657698); EnumChildWindows(hMain,(WNDENUMPROC)EnumChildProc,(LPARAM)&szData); //_EnumChildWindows(hMain,szData); printf("%s\n",szData); return 0; }
通过 网络上找了很多资料,然后修改了一下。。。。。
-
通过HWND获得CWnd指针/通过CWnd获取HWND
2013-08-20 11:26:07转载地址:...较常用的下面两个方法:(MFC实现机制是使用映射机制,两个之间互相MAP) HWND hWnd = GetSafeHwnd(); CWnd *pWnd = CWnd::FromHandle(hWnd); 通过HWND获得CWnd指针
较常用的下面两个方法:(MFC实现机制是使用映射机制,两个之间互相MAP)HWND hWnd = GetSafeHwnd();
CWnd *pWnd = CWnd::FromHandle(hWnd);
下面的转载地址:http://www.cnblogs.com/mars9/archive/2012/01/20/2327941.html
1、GetSafeHwnd方法:该函数获得窗口对象的窗口句柄。
Returns the window handle for a window. Returns NULL if the CWnd is not attached to a window or if it is used with a NULL CWnd pointer。
这个函数用途很广,很多函数的参数要求是HWND,这时就需要使用GetSafeHwnd函数了。如:
HWND hwnd; CWnd* pWnd; pWnd=((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView(); hwnd=pWnd->GetDlgItem(IDC_EDIT2)->GetSafeHwnd(); ::SetWindowText(hwnd,m_strResult);
其它的一些情况:AfxWinInit 被WinMain调用的一个函数,用做MFC GUI程序初始化的一部份
AfxBeginThread 开始一个新的执行线程
AfxEndThread 结束一个旧的执行线程
AfxMessageBox 类似Windows API 函数MessageBox
AfxGetApp 取得application object(CWinApp衍生对象)的指针
AfxGetMainWnd 取得程序主窗口的指针
AfxGetInstance 取得程序的instance handle
AfxRegisterClass 以自定的WNDCLASS 注册窗口类别
2、FromHandle方法:FromHandle(HANDLE h) 先查找由用户定义的内核对象对象的封装类, 如果找到直接返回,没有找到构造一个临时对象返回.
Life is like a box of chocolate, you never know what you are going to get. -
窗口HWND信息获取 Spy.exe
2020-12-23 20:49:38一个查看鼠标所命中的窗口信息的小工具,可部分代替微软的spy++。可查看窗口句柄、窗口ID、线程和进程ID、窗口标题、类名、类值、风格。还可以查看鼠标命中的像素的颜色等等。 -
C++ 遍历寻找指定进程,通过进程ID获取窗口句柄,以及HWND与CWnd之间转换
2022-05-28 17:24:58问题: 如题,如何遍历寻找指定进程?...// 已知 CWnd 获取 HWND CWnd* pCWnd; HWND hwnd = pCWnd->m_hWnd; HWND hwnd1 = pCWnd->GetSafeHwnd(); // 已知 HWND 获取 CWnd HWND hwnd2; CWnd* pCwnd1 = CW -
通过进程pid获取窗口句柄HWND,然后可以通过sendmessage进行交互通讯
2021-07-16 10:59:45//通过pid获取窗口句柄 HWND GetHwndByPid(DWORD dwProcessID) { HWND h = GetTopWindow(0); HWND retHwnd = NULL; while (h) { DWORD pid = 0; DWORD dwTheardId = GetWindowThreadProcessId(h, &pid); ... -
CWND和HWND之间的关系和转换 和获取方法
2019-10-26 21:01:43CWnd与HWND的区别 一、区别 HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd. HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。... -
createprocess创建进程并获取进程窗口HWND
2014-07-18 17:11:37createprocess创建进程并获取进程窗口HWND,不管窗口是否在显示状态都可以获取。 -
UE4 获取主窗口HWND和调用WINAPI函数
2021-12-29 23:32:56很多文章介绍获取UE4主窗口都是通过GetActiveWindow或者FindWindow等方法,这种方法不是很方便,也不准确。 可以通过UEngine的Viewport获取NativeWindow来得到UE4的主窗口句柄,通过句柄可以调用WINAPI函数来修改... -
VC 获取控制台窗体的句柄(hWnd)
2019-08-08 09:58:14//想用获取当前激活窗口的句柄去获取控制台句柄的方法行不通 cout 中华人民共和国"; RECT rect; GetWindowRect(hd, &rect);//得到窗口的大小 int w = rect.right - rect.left; int h = rect.bottom -... -
使用HWND截指定句柄窗口的图片
2013-06-01 10:57:22使用HWND截指定句柄窗口的图片 知道窗口句柄可以截取图片 -
C++程序中,使用HWND获取CWnd的指针
2018-05-30 08:46:18在C++程序中,通过HWND获得CWnd的指针。该压缩包中只实现了这一个功能,仅供初学者参考。 -
[MFC] HWND(获取控件或窗体句柄) [大三TJB_708]
2018-10-30 10:24:501 C++窗体对象和HWND 窗体对象是一个继承于CWnd类的C++类的 对象。咱们可以用构造函数生成一个windows窗体,此windows窗体被一个 "window handle" (HWND)唯一标识,当一个窗体被创建后,此窗口的窗口... -
windows 根据HWND获取进程名字 和结束进程源码
2017-09-30 09:33:00根据HWND获取进程名字 #include #include #pragma comment(lib, "user32.lib") #include #pragma comment(lib, "Kernel32.lib") using namespace std; wstring GetProcessNameByHandle(HWND nlHandle) { ... -
windows 下在一个进程中使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄
2020-10-28 22:22:47windows 下在一个进程中使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄 C++使用createprocess创建一个窗口进程,并获取这个窗口的HWND句柄。 主要思路是: 定义getDwProcessId函数,用于监听创建子... -
获得当前窗口的hwnd的方法整理
2017-03-08 09:39:58我已知获取hwnd的方法有如下一些: HWND GetActiveWindow(VOID); GetActiveWindow() GetTopWindow() AfxGetMainWnd()->m_hWnd//得到自身的。 HWND hWnd=::FindWindow(NULL,"腾讯QQ系统广播");//查找窗口 ... -
如何获得当前窗口的hwnd?的问题整理
2016-10-26 10:14:10获取hwnd的方法有如下一些: HWND GetActiveWindow(VOID); GetActiveWindow() GetTopWindow() AfxGetMainWnd()->m_hWnd//得到自身的。 HWND hWnd=::FindWindow(NULL,"腾讯QQ系统广播");//查找窗口 ... -
VC中获取窗口句柄的各种方法
2021-02-11 07:23:25AfxGetMainWndAfxGetMainWnd获取自身窗口句柄HWND hWnd = AfxGetMainWnd()->m_hWnd;GetTopWindow函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的... -
在Java Swing中,如何获得对窗口的Win32窗口句柄(hwnd)引用?
2021-03-06 02:13:23小编典典以下代码使您可以传递Component以获得其窗口句柄(HWND)。要确保Component具有相应的窗口句柄,请在Component上调用isLightWeight()并验证其等于false。如果不是,请通过调用Component.getParent()尝试将其... -
win32gui.GetWindowRect(hWnd)在win10上获取窗口宽高偏小
2019-06-01 16:18:45最近自学python做一个游戏辅助工具,需要对游戏窗口截图...但是使用win32gui.GetWindowRect(hWnd)获取窗口的宽高时始终偏小,只有正确值的80% 但是百度上始终找不到解决方式,于是去google一下,发现了类似的问题: ... -
在Java Swing中,如何获得Win32窗口句柄(hwnd)引用到窗口?
2021-03-08 10:02:57你没有写任何C / JNI代码。... public static long getHWnd(Frame f) { return f.getPeer() != null ? ((WComponentPeer) f.getPeer()).getHWnd() : 0; }注意事项:这使用了一个sun。*包。 显然这不... -
根据HWND获得HICON图标
2021-04-10 10:31:35vc根据HWND获得HICON图标 -
知道了一个程序的主窗口hwnd,怎么得到这个进程的hInstance
2021-04-10 10:20:26知道了一个程序的主窗口hwnd,怎么得到这个进程的hInstance -
进程句柄HANDLE获得进程主窗口的句柄HWND
2016-07-31 15:34:56一个进程可以拥有很多主窗口,也可以不拥有主窗口,所以这样的函数是不存在的,所幸的是,相反的函数是有的。所以我们可以调用EnumWindows来判断所有的窗口是否...HWND hWnd; } WNDINFO, *LPWNDINFO; -
MFC中窗口类、句柄的获取
2021-08-31 10:31:02HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd. HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作... -
C++中各种获取窗口句柄的方法
2021-01-14 08:09:22AfxGetMainWndAfxGetMainWnd获取自身窗口句柄HWND hWnd = AfxGetMainWnd()->m_hWnd;GetTopWindow函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的... -
QT中用到hwnd的句柄
2019-02-28 10:18:15QT中用到hwnd的句柄 在编程中遇到了问题,第三方API用了hwnd类型做形参,但是QT中又没有该类型,可以做如下操作来解决问题。 在.h中 先声明: HWND m_hWnd; 再定义 public: QWidget *newWidget; 在.cpp... -
如何获取控制台窗口句柄 (HWND)
2012-12-23 23:15:18Win32 API 提供用于获取与控制台应用程序相关联的窗口句柄没有直接方法。 但是,您可以获取窗口句柄,通过调用 FindWindow()。 此函数检索窗口句柄基于类名或窗口名称。 调用以确定当前的控制台标题 ...