
正文
c语言获取句柄的函数 mfc获取句柄
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
怎么通过c语言 获得 浏览器句柄啊
给c语言获取句柄的函数你个例子
HWND GetDlgItem( int nID ) const;
Retrieves the specified child window.
GetDlgItem(ID)-GetWindowText(str)
相关问答
Q1: c语言中的俄罗斯方块游戏里的一段,HWND wnd = GetHWnd();是什么意思?
c语言中的俄罗斯方块游戏里的一段,HWND wnd = GetHWnd();获取窗口的句柄
Q2: C语言问题?
你这个程序是捕捉0到9的按键状态,按下再松开时才会记录,想要识别所有按键,把for循环范围扩大。
比如for(charch=32;ch=127;ch++)这样就包含了特殊符号及大小写字母还有数字。
但是,这个代码是有问题的!
一、你这个代码需在键位已经按下后启动才能识别,否则启动时没有按下对应键位,程序就结束了。要嵌套死循环,让其一直检测。
二、直接扩大ASCII区间,像上面的那样32~127,识别字母区间会被防毒软件直接判断为病毒!!。
三、GetAsyncKeyState不是C语言库函数,是window的函数,换其它操作系统就失效。
GetAsyncKeyState返回值最高位为1则说明对应ch的键被按下,所以这里用0x8000来判断最高位。
四、想要捕获其它软件界面内容还有很多方法,比如:
1、通过windowAPI函数FindWindow来获取窗口句柄。
2、遍历窗口下控件句柄,找到输入框句柄。
3、通过窗口句柄找到进程id(GetWindowThreadProcessId函数),再通过id获取进程句柄(OpenProcess函数)。
4、向目标进程申请内存(VirtualAllocEx),再通过PostMessage函数异步发送消息获取目标控件内的内容(具体消息要结合控件类型,另外注意PostMessage是异步执行)。
具体自行查阅资料,一言两语说不清,上面步骤需先搞懂window消息机制。
注意:以上方法依然只限window系统,且有数据保护的控件无法获取。
五、或简单暴力的方法,直接写个定时截图,只要硬盘够不停桌面截图。
但不论写什么程序,和装摄像头一样,终究都会被发现。!!!!!!!!!!!!!
Q3: 对于一个只懂C语言得人来说,怎么理解句柄?
句柄是一个序号, 它不是一个内存地址。
它用于管理Windows内核对象,比如用户打开一个文件,Windows即会建立一个文件内核对象,所谓内核对象就是一块内存结构,里面有文件路径,文件大小,当前文件指针等等信息。Windows系统会打开很多的文件,因此就有很多的文件内核对象,同样Windows系统还会建立其它的类型的很多很多的内核对象。如何管理这么多的内核对象 呢?Windows通过建立一个叫做句柄表的东西,用于记录内核对象的地址。表中每一个元素,都是一个内核对象的起始地址,然后给每一个对象对应一个序号,此序号即为句柄。
//句柄表类似于下面的结构,像0、1、2这样的序号即为句柄
----------------------------------------------------
0 第一个内核对象的地址
1 第二个内核对象的地址
2 第三个内核对象的地址
----------------------------------------------------
Q4: C语言,outlist函数的意义是什么?多谢各位
函数功能c语言获取句柄的函数:该函数可以获得与系统中输入点的当前集相对应的键盘布局句柄。该函数将句柄拷贝到指定的缓冲区中。
函数原型c语言获取句柄的函数:UINT
GetKeyboardLayoutList(int
nBuffc语言获取句柄的函数,HKL
FAR
*IpList)
参数:
nBuff:指定缓冲区中可以存放的最大句柄数目。
Iplist:缓冲区指针c语言获取句柄的函数,缓冲区中存放着键盘布局句柄数组。
返回值:若函数调用成功,则返回值为拷贝到缓冲区的键盘布局句柄的数目,或者,若nBuff为0,则运回值为接受所有当前键盘布局的缓冲区中的大小(以数组成员为单位)。若函数调用失败,返回值为0。若想获得更多错误信息,可调用GetLastError函数。
Q5: C语言中如何获得当前进程句柄,谢谢!
DWORD PID;
PID = GetProcessPID(L"test.exe");
//获取进程pid函数
DWORD GetProcessPID(LPCTSTR pName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot) {
return NULL;
}
PROCESSENTRY32 pe = { sizeof(pe) };
BOOL fOk;
for (fOk = Process32First(hSnapshot, pe); fOk; fOk = Process32Next(hSnapshot, pe)){
if (!_tcsicmp(pe.szExeFile, pName)) {
CloseHandle(hSnapshot);
return pe.th32ProcessID;
}
}
return NULL;
}
//由进程pid获取进程句柄,置顶
HWND hh = GetProcessTopWindows(PID);
HWND GetProcessTopWindows(DWORD dwPID){
count = 0;
EnumWindows((WNDENUMPROC)EnumWndProc, (LPARAM)dwPID);
if(count 0) {
//cout "窗口句柄是:" nhWnd[count -1] endl;//输出句柄,可用spy++工具核对
return (nhWnd[count -1]);
}
return NULL;
}
别忘了添加对应头文件。
关于c语言获取句柄的函数和mfc获取句柄的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






