解决这个问题的方法如下:
1、首先新建一个程序。
2、在程序里面画一个“按钮”、两个编辑框、两个标签,然后改成相应的名字好辨认。
3、依次左键点击下图的:
一、个作夹(没有点击的情况下才需要点击)
二、程序
三、模块应用。
4、在浏览窗口找到下载存放的超级模块位置,点击打开“超级模块”。
5、在模块下面便会多出一个“超级模块”。
6、双击按钮1,在子程序“_按钮1_被单击”下面新建一个名为“i”的整数型变量,然后编写代码如下:i = 取句柄2 (“notepadexe”)编辑框1内容 = 到文本 (i)。
7、编写以上代码后,就能取到“notepadexe”的窗口句柄了,然后,再来取窗口标题!继续编写代码如下:编辑框2内容 = 取窗口标题 (取句柄2 (“notepadexe”))。
8、最后调试运行一下该程序,这样就完成了。
1、启动VS,新建C# WinForm项目。
2、在Form1中添加4个Label控件,并布局如下。
3、在Form1中添加代码,如下。
4、完成之后,调试运行,结果如下。
注意事项:
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
如果窗口是现有程序的,使用vs自带的spy++获取窗口的相关信息,然後使用winapi获取句柄,具体参考spy++的使用方法和winapi的使用
findwindow(
lpclassname,
{窗口的类名}
lpwindowname:
pchar
{窗口的标题}
):
hwnd;
{返回窗口的句柄;
失败返回
0}
//findwindowex
比
findwindow
多出两个句柄参数:
findwindowex(
parent:
hwnd;
{要查找子窗口的父窗口句柄}
child:
hwnd;
{子窗口句柄}
classname:
pchar;
{}
windowname:
pchar
{}
):
hwnd;
如果窗口是你的程序动态生成的,使用如下语句
form
_form=new
form();
intptr
_p
=
_formhandle;
_p就是你实例化的窗口句柄
[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);
以上就是关于易语言,取窗口句柄并 *** 作全部的内容,包括:易语言,取窗口句柄并 *** 作、C++中如何获取当前窗口句柄、怎样获得其它程序子窗口的句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)