例如 *** 作一个窗口,或说是一个Delphi窗体时,系统会给一个该窗口的句柄,系统会通知:正在 *** 作142号窗口,就此应用程序就能要求系统对142号窗口进行 *** 作——移动窗口、改变窗口大小、把窗口最小化等等。
在Windows中,句柄为一个系统内部数据结构的引用。通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、光标、字体、菜单等。
扩展资料
数据对象加载进入内存中之后即获得了地址,但是这个地址并不是固定的,数据对象会根据需要在内存与硬盘之间游弋移动(例如不常用的数据会为常用数据让出其占用的内存空间,进而被淘汰进硬盘虚拟内存之中以优化配置整体系统的资源,从而提升效率性能)。
因此其物理地址总是变动的,那么作为管理者则必须对管理对象所发生的变化了如指掌才行,因此系统为进程分配固定的地址(句柄)来存储进程下的数据对象变化后的地址,也就是当前的地址。
设计机制:系统的某个部门移动了对象的地址后,同时上报给句柄所属部门管理者,管理者将改动写入句柄即可。该数据被重新起用时去其所属句柄内按内容存取即可。
参考资料来源:百度百科-句柄
参考资料来源:百度百科-窗口句柄
[DllImport("user32dll", EntryPoint = "FindWindow", CharSet = CharSetAuto)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
/// <summary>
/// 获取有名字窗体句柄
/// </summary>
/// <param name="caption">窗体名</param>
/// <param name="delay">循环查询次数</param>
/// <param name="maxTries">停顿时间</param>
/// <returns>句柄 IntPtr</returns>
static IntPtr FindMainWindowHandle(String caption,int delay,int maxTries)
{
IntPtr mwh = IntPtrZero;
bool foundWindow = false;
int attempts = 0;
do
{
mwh = FindWindow(null, caption);
if (mwh == IntPtrZero)
{
ConsoleWriteLine("Form not yet found\n");
ThreadSleep(maxTries);
++attempts;
}
else
{
ConsoleWriteLine("Form has been found");
foundWindow = true;
}
}
while(!foundWindow && attempts<delay);
if(mwh != IntPtrZero)
return mwh;
else
throw new Exception("Coule not find Main Window");
//调用FindMainWindowHandle()方法以获取窗体句柄,例:
IntPtr wHandle= FindMainWindowHandle("窗体名",10,100);
ConsoleWriteLine("窗体句柄: " + wHandle);
用注册热键吧`- -
F1开始,停止
版本 2
支持库 shellEx
支持库 eAPI
子程序 __启动窗口_创建完毕
注册热键 (_启动窗口取窗口句柄 (), 标签1取窗口句柄 (), 0, #F1键)
子程序 _标签1_反馈事件, 整数型
参数 参数一, 整数型
参数 参数二, 整数型
判断开始 (时钟1时钟周期 = 100)
时钟1时钟周期 = 0
默认
时钟1时钟周期 = 100
判断结束
子程序 _时钟1_周期事件
标签1标题 = “当前句柄:” + 到文本 (取鼠标所在窗口句柄 ())
句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息、处理程序):0。获取所在类窗口的句柄:this->m_hwnd1。主窗口的句柄:无论在主窗口类内,还是子窗口类内,获取主窗口句柄的方法:AfxGetMainWnd()->m_hWnd,如:::SendMessage(AfxGetMainWnd()->m_hWnd , WM_MY_DOSOME , 0 ,(LPARAM)i);在窗口类中this->m_hWnd或者this->GetSafeHwnd()2。子窗口句柄:用FindWindow,(只要知道子窗口的名字即可)如: ::FindWindow(NULL,WindowsName) 返回找到的窗口的句柄寻找当前窗口是否在运行windowname的程序,该名字为窗口名字,如:CWnd pWnd=FindWindow(NULL,_T("清芝--支票机"));//GetSafeHwnd函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数。通过下面的例子来看其理由
GetActiveWindow VB声明 Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long 说明 获得活动窗口的句柄 返回值 Long,活动窗口的句柄,如没有窗口处于活动状态,则返回零值
以上就是关于易语言中的“取窗口句柄”是什么意思句柄是什么含义全部的内容,包括:易语言中的“取窗口句柄”是什么意思句柄是什么含义、怎样获取当前窗口句柄、易语言动态取鼠标当前所在窗口句柄,我想在单击时取得窗口句柄。怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)