易语言中的“取窗口句柄”是什么意思句柄是什么含义

易语言中的“取窗口句柄”是什么意思句柄是什么含义,第1张

例如 *** 作一个窗口,或说是一个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,活动窗口的句柄,如没有窗口处于活动状态,则返回零值

以上就是关于易语言中的“取窗口句柄”是什么意思句柄是什么含义全部的内容,包括:易语言中的“取窗口句柄”是什么意思句柄是什么含义、怎样获取当前窗口句柄、易语言动态取鼠标当前所在窗口句柄,我想在单击时取得窗口句柄。怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9288785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存