用例子说明FindWindow的用法
findwindow 置顶函数用法 -回复
findwindow 置顶函数用法-回复标题:破解Windows程序的“置顶”功能——深入探究findwindow置顶函数用法引言:在Windows操作系统中,置顶(topmost)是一个重要的功能,通常被用于将某个窗口置于其他所有窗口的前面,以保持其始终可见。
而findwindow置顶函数则是一种破解置顶功能的方法。
本文将一步一步地探究findwindow置顶函数的用法,帮助读者了解如何实现置顶效果以及相关的安全问题。
第一部分:了解findwindow置顶函数的基础知识1.1 理解findwindow函数findwindow函数是Windows API提供的一种用于搜索窗口的函数,可以通过窗口的类名或标题来查找窗口句柄(handle)。
一旦找到相应的窗口句柄,就可以对窗口进行各种操作,包括将其置顶。
(此处可适当展开关于findwindow函数更多的介绍,如参数的说明等)1.2 了解置顶功能的原理在Windows操作系统中,窗口分为普通窗口和置顶窗口两种类型。
普通窗口是默认的类型,它们根据层次结构来进行显示。
相比之下,置顶窗口则以特殊的方式进行处理,使其始终显示在其他窗口的前面。
为了实现置顶效果,可以通过修改窗口的窗口风格(window style)来将其置顶。
窗口风格是窗口的一些属性,可以通过窗口句柄进行设置或修改。
第二部分:实现findwindow置顶函数的步骤2.1 获取目标窗口句柄首先,需要通过findwindow函数来获取目标窗口的句柄。
句柄是一个唯一标识窗口的值,可以用于后续的操作。
2.2 修改窗口风格通过修改目标窗口的窗口风格,可以将其置顶。
具体来说,可以使用SetWindowLong(窗口句柄, GWL_STYLE, 新窗口风格)函数来实现。
其中,GWL_STYLE表示需要修改的窗口风格,新窗口风格是一个由特定标志位组成的数值。
2.3 设置置顶属性将目标窗口的置顶属性设置为真,即WS_EX_TOPMOST。
自动化测试中FindWindow与FindWindowEx的使用示例
⾃动化测试中FindWindow与FindWindowEx的使⽤⽰例昨天在做⼀个⽹页测试时,它会弹出⼀个对话框(如下图)对⽤户进⾏⼀个认证。
使⽤Spy++侦测这个对话框的结构如下,我们看到两个Edit就在最后两个节点上。
我们现在就可以利⽤FindWindow以及FindWindowEx这两个函数来帮我们找到这个窗体及窗体上所有的控件,然后帮我们完成⾃动化测试。
下⾯这个程序就是帮我们⾃动输⼊⽤户名与密码。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;using System.Threading;namespace ConsoleApplication79{class Program{[DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]private extern static IntPtr FindWindow(string classname, string captionName);[DllImport("user32.dll", EntryPoint = "FindWindowEx", CharSet = CharSet.Auto)]private extern static IntPtr FindWindowEx(IntPtr parent,IntPtr child,string classname, string captionName);[DllImport("user32.dll")]static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPStr)] string lParam);[DllImport("user32.dll")][return: MarshalAs(UnmanagedType.Bool)]static extern bool SetForegroundWindow(IntPtr hWnd);static void Main(string[] args){IntPtr mwh1 = IntPtr.Zero;while (mwh1 == IntPtr.Zero){Thread.Sleep(1000);mwh1 = FindWindow(null, "Windows Security");}IntPtr panel = FindWindowEx(mwh1, IntPtr.Zero, "DirectUIHWND", null);IntPtr CtrlNotifySink = IntPtr.Zero;CtrlNotifySink = FindWindowEx(panel, IntPtr.Zero, "CtrlNotifySink", null);for (int i = 1; i < 7; i++){CtrlNotifySink = FindWindowEx(panel, CtrlNotifySink, "CtrlNotifySink", null);}IntPtr editor = FindWindowEx(CtrlNotifySink, IntPtr.Zero, null, null);uint WM_SETTEXT = 0xC;SendMessage(editor, WM_SETTEXT, IntPtr.Zero, "username");CtrlNotifySink = FindWindowEx(panel, CtrlNotifySink, "CtrlNotifySink", null);editor = FindWindowEx(CtrlNotifySink, IntPtr.Zero, null, null);SendMessage(editor, WM_SETTEXT, IntPtr.Zero, "password");}}}主要注意的⼀点就是代码⾥使⽤FindWindowEx循环查找⼦控件,因为这些控件都是具有相同类名的。
FindWindow函数详解
C#中使用FindWindow函数详解FindWindow 用来根据类名和窗口名来得到窗口句柄的。
但是这个函数不能查找子窗口,也不区分大小写。
如果要从一个窗口的子窗口中查找需要使用FindWindowEX。
1.在C#中使用方法如下:[DllImport("User32.dll", EntryPoint = "FindWindow")]private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);[DllImport("User32.dll", EntryPoint = "FindWindowEx")]private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName); [DllImport("User32.dll", EntryPoint = "FindWindow")]private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);[DllImport("User32.dll", EntryPoint = "FindWindowEx")]private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);2. 实例参考:IntPtr hWnd = FindWindow(null, "test Demo");这样会查找所有title是"test Demo"的窗口。
findwindow 函数的用法
findwindow 函数的用法
`FindWindow`函数是Windows API中的一个函数,用于查找指定窗口的句柄(handle)。
它可以通过窗口的类名或窗口标题来匹配窗口并返回其句柄。
以下是FindWindow函数的使用方法:
```python
import ctypes
# 加载User32.dll库
user32 = er32
# 定义需要查找的窗口类名和窗口标题
class_name = "窗口类名"
window_title = "窗口标题"
# 使用FindWindow函数搜索匹配的窗口
window_handle = user32.FindWindowW(class_name, window_title)
# 检查是否找到了匹配的窗口
if window_handle == 0:
print("未找到匹配的窗口")
else:
print("窗口句柄: ", window_handle)
```
上述代码使用`ctypes`模块加载了`User32.dll`库,并调用了其`FindWindowW`函数来查找指定窗口。
`class_name`参数用于指定窗口的类名,可以通过工具如Spy++来获取窗口的类名。
`window_title`参数用于指定窗口的标题。
如果找到了匹配的窗口,`FindWindow`函数会返回该窗口的句柄(一个整数值),否则返回0表示未找到。
你可以根据需要对找到的窗口句柄进行后续操作,如发送消息、获取窗口位置等。
findwindow置顶函数用法
findwindow置顶函数用法在Windows操作系统中,FindWindow函数是一种用于查找窗口句柄的函数。
它在指定的桌面上具有指定类名和窗口名称的顶级窗口。
FindWindow函数的定义如下:HWND FindWindowLPCTSTR lpClassName,LPCTSTR lpWindowName参数说明:- lpClassName:指定目标窗口的类名,可以为窗口类的类名或者子窗口类的类名。
如果该参数为NULL,则表示忽略类名进行。
- lpWindowName:指定目标窗口的窗口名称。
如果该参数为NULL,则表示忽略窗口名称进行。
返回值:成功时返回窗口句柄,失败时返回NULL。
下面是一些FindWindow函数的常见用法:1.查找指定类名和窗口名的顶级窗口:HWND hWnd = FindWindow(L"ClassName", L"WindowName");这里的L"ClassName"表示目标窗口的类名,L"WindowName"表示目标窗口的窗口名称。
2.查找指定类名的顶级窗口:HWND hWnd = FindWindow(L"ClassName", NULL);这里的L"ClassName"表示目标窗口的类名,NULL表示不关心窗口名称。
3.查找指定窗口名称的顶级窗口:HWND hWnd = FindWindow(NULL, L"WindowName");NULL表示不关心类名,L"WindowName"表示目标窗口的窗口名称。
4.查找第一个匹配类名的顶级窗口:HWND hWnd = FindWindowEx(NULL, NULL, L"ClassName", NULL);NULL表示从桌面开始,NULL表示查找第一个匹配的窗口,L"ClassName"表示指定的类名。
FINDWINDOWEX参数详解
StringBuilder stbf_WndStr = new StringBuilder();//定义存储String的Butter stbf_WndStr.Capacity = 60; //1) 该例子一直无法找到Exit按键,因为Name不为null,而是等于"",null和""是有区别的 tbDisplay.Text = tbDisplay.Text + "\r\n\r\n1) 此处寻找不到Exit的按键,因为Name不为null,而是等 于\"\""; ExitWnd = FindWindowEx(ParenthWnd, new IntPtr(0), lpszClass_Submit, ""); if (!ExitWnd.Equals(IntPtr.Zero)) { GetWindowText(ExitWnd, stbf_WndStr, stbf_WndStr.Capacity - 1); tbDisplay.Text = tbDisplay.Text + "\r\n实验内容: ExitWnd.text = " + stbf_WndStr.ToString(); } else { tbDisplay.Text = tbDisplay.Text + "\r\nErr: ExitWnd = null!!!"; } //2) 寻找到Exit的按键,因为Name包含正确的名字"Exit" tbDisplay.Text = tbDisplay.Text + "\r\n\r\n2) 寻找到Exit的按键,因为Name包含正确的名字 \"Exit\""; ExitWnd = FindWindowEx(ParenthWnd, new IntPtr(0), lpszClass_Submit, "Exit"); if (!ExitWnd.Equals(IntPtr.Zero)) { GetWindowText(ExitWnd, stbf_WndStr, stbf_WndStr.Capacity - 1); tbDisplay.Text = tbDisplay.Text + "\r\n实验内容: ExitWnd.text = " + stbf_WndStr.ToString(); } else
如何获得窗口句柄(hwnd)和改变窗口属性
1、对于一个窗口如何进行操作呢,首先要得到其使用句柄,我们可以用FindWindow()函数来获取当前窗口句柄,具体使用如下:HWND hFig = ::FindWindow(NULL,HWND);如果得到找到,则返回窗口的句柄,否则返回NULL。
当然我们可以使用SetWindowPos(HWND hWnd, HWND hWndIsertAfter, int X, int Y, int cx, int cy , UINT Uflags) 改变窗口的大小和位置,Uflags是标志窗口的显示属性,具体值可以是SWP_NOMOVE 、SWP_NOZORDER 、SWP_N OACTIVATE 、SWP_FRAMECHANGED等。
具体的调用实例如下:HWND hFig = ::FindWindow(NULL,"Fig No. 1"); //找到窗口,并返回窗口句柄if(hFig == NULL) {AfxMessageBox("未能产生Figure窗口,图形绘制失败!");return;} // 获取绘图区域的位置和大小RECT PlotRec;CWnd *PlotArea = GetDlgItem(IDC_PLOTAREA); // 获取绘图区域指针PlotArea->GetWindowRect(&PlotRec); // 将绘图区域矩形赋给定义矩形long Width = PlotRec.right - PlotRec.left; long Height = PlotRec.bottom - PlotRec.to p; // 获得绘图区域的宽和高// 设置Figure窗口为绘图区域窗口的子窗口并调整其位置::SetParent(hFig,PlotArea->GetSafeHwnd()); // 设置绘图区域窗口为Figure窗口的父窗口::SetWindowPos(hFig,NULL,1,1,Width,Height,SWP_NOZORDER | SWP_NOACTIVATE); // 设置绘图窗口的大小和位置// 设置窗口可见SetVisible(h_a,mwArray("ON"));// 进入窗口等待状态bWait = 1; mlfHGWaitForFiguresToDie();2、当然你想改变窗口属性的话,还可以增加以下函数来改变窗口的属性long lStyle. = ::GetWindowLong(hFig,GWL_STYLE);::SetWindowLong(hFig,GWL_STYLE,lStyle. & (~WS_CAPTION) & (~WS_THICKFRAM E));::SetWindowPos(hFig,NULL,0,0,0,0,SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTI VATE | SWP_FRAMECHANGED);就写到这吧,其他的学会了再统一以一个实例的形式给出。
C语言windows.h库的常用函数(一)
C语言windows.h库的常用函数(一)1:FindWindow函数该函数可以通过窗口类名或者窗口标题名来查找特定窗口句柄,返回值是窗口的句柄(在Windows中,句柄是一个系统内部数据结构的引用。
例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口最小化等等。
实际上许多Windows API函数把句柄作为它的第一个参数,如GDI(图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等,不仅仅局限于窗口函数。
换句话说,句柄是一种内部代码,通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、光标、字体、菜单等。
)函数用法#include 'stdafx.h'#include<windows.h>int main() {HWND window; //定义一个窗口句柄变量,用来储存窗口句柄/*FindWindow('这里填窗口类名','这里填窗口标题名')窗口类名和窗口标题名可以只填一个,不填的用NULL填充*/window = FindWindow(NULL,'文本.txt - 记事本'); //查找标题为'文本.txt - 记事本'的窗口SendMessage(window,WM_CLOSE,0,0); //向窗口发送关闭指令return 0;}2:SendMessage函数刚刚在第一个例子里面已经用到了SendMessage函数,这个函数的功能是向句柄对应窗口发送指令函数用法#include 'stdafx.h'#include<windows.h>int main() {POINT mouse;HWND window;while (1) {GetCursorPos(&mouse);window = WindowFromPoint(mouse);/*SendMessage(窗口句柄,消息类型,消息附带内容,消息附带内容) 比如我这里选定的消息类型是WM_CHAR消息附带内容为WPARAM('a')所以消息附带内容就是模拟键盘向窗口输入a*/SendMessage(window,WM_CHAR,WPARAM('a'),0);Sleep(100);}return 0;}3:WindowFromPoint函数在第二个例子中我们使用了一个叫做WindowFromPoint的函数,这个函数的功能是通过鼠标点击获得被点击窗口的句柄函数用法#include 'stdafx.h'#include<windows.h>int main() {POINT mouse; //定义一个结构体变量储存鼠标位置HWND window;while (1) {GetCursorPos(&mouse); //获取到当前鼠标位置/*WindowFromPoint(鼠标位置变量名)*/ window = WindowFromPoint(mouse); SendMessage(window,WM_CLOSE,0,0); Sleep(100);}return 0;}。
windows API函数大全
VC API常用函数简单例子大全第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCSTR lpWindowName);第一个参数填窗口的类名,第二个填窗口的标题名,其实是不需要同时填两个参数的,也就是说,你只要知道窗口的类名或窗口的标题就可以了,没有的那个就用NULL代替。
比如现在有一个窗口名为"无标题.txt - 记事本"的记事本程序。
那么我就可以用上面的函数获得这个窗口的句柄,那获得了这个窗口的句柄我可以干什么呢?作用可大了,因为很多操作窗口的函数,都需要窗口句柄作参数,如移动、改变窗口大小的MoveWindow函数,在这里举个例子,大家就更能体会到这个FindWindow的用法、用处。
FindWindow例子:已知一个窗口名称,写一个程序关闭该窗口,假设当前电脑正有一个窗口名为"无标题.txt - 记事本"的记事本程序运行1 #include<windows.h> //API函数的头文件2int main()3 {4 HWND wnd; //定义一个窗口句柄变量,用以存储找到的窗口句柄5 wnd=FindWindow(NULL,"无标题.txt - 记事本"); //获得窗口名为"无标题.txt - 记事本"的窗口句柄67 SendMessage(wnd,WM_CLOSE,0,0); //调用SendMessage函数,发送一个WM_CLOSE(关闭)消息给wnd窗口句柄。
89return0;10 }如果要根据窗口类名来获得窗口句柄话,只要给函数的第一个参数填类名,第二个参数窗口名填NULL,即可,用Spy++可查看窗口类名。
第二个:SendMessage根据窗口句柄发送一个消息给窗口函数定义:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);第一个参数是窗口句柄,第二参数个是消息类型,下面的消息表列举了所有消息,第三,四个参数是消息附带信息,解释依赖于消息类型,比如一个字符消息(WM_CHAR),那么第三个参数就储存有一个字符的ASCII码。
CMD命令行的FIND命令的使用方法
CMD命令行的FIND命令的使用方法在 Windows 命令提示符(CMD)中,FIND命令用于在文本文件中搜索指定的字符串或文本模式。
以下是FIND命令的基本使用方法:1. 在文本文件中搜索指定的字符串:find [字符串] [文件路径]其中[字符串]是你想要搜索的文本,[文件路径]是你想要搜索的文件的完整路径。
示例:在名为 "example.txt" 的文件中搜索字符串 "text":find "text" example.txt2. 搜索多个字符串:find [字符串1] [字符串2] [文件路径]你可以同时搜索多个字符串。
示例:在名为 "example.txt" 的文件中同时搜索字符串 "text" 和 "example":find "text" "example" example.txt3. 搜索特定类型的文件:find /v /c [字符串] *.txt/v参数用于反向搜索,/c参数用于计数,而不是显示匹配的行。
示例:计算名为 "example.txt" 文件中不包含字符串 "text" 的行数:find /v /c "text" example.txt请注意,FIND命令区分大小写,并且它搜索的是文本文件,不包括二进制文件。
一个完整的例子:假设你想在名为 "example.txt" 的文件中搜索字符串 "text",你可以使用以下命令:find "text" example.txt这个命令会搜索 "example.txt" 文件中所有包含 "text" 字符串的行,并在命令提示符窗口中显示匹配的行。
在VB.NET中使用FindWindow查找窗口和获得句柄
在中使用FindWindow查找窗口和获得句柄
windows窗口句柄是32位,在中,Integer表示32位,Long表示64位。
这是调用API函数时需要注意的地方。
下面是正确的函数声明和设定一个参数为空的例子:
Private Declare Auto Function FindWindow Lib "user32" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Integer
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim hWnd As Integer
hWnd = FindWindow(vbNullString, "收件箱- Outlook Express")
If hWnd Then
MsgBox("找到Outlook Express窗口!")
Else
MsgBox("未找到Outlook Express窗口!")
End If
End Sub
FindWindow函数是比较容易调用的,因为两个参数都是只读的,不会被API修改,所以在VB6和中的差别只在于数据类型的不同。
而对于GetSystemDirectory这样的函数就不同了,因为参数是可修改的,而在中String是不可以修改的,所以必须借助于StringBuilder类才能调用。
findwindow函数用法
findwindow函数用法
FindWindow函数是Windows API函数,它用于搜索主窗口,根据
窗口的类名和窗口名称来确定窗口的句柄。
该函数的主要用法和声明如下:
HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName); lpClassName:指针,指向一个 null结尾的字符串,该字符串指出要
搜索类名。
lpWindowName:指针,指向一个 null结尾的字符串,该字符串指出要
搜索的窗口的标题。
成功:函数返回搜索到的窗口的句柄。
失败:返回NULL。
FindWindow函数主要应用在三个场景中:
1、监控系统:应用程序可以使用FindWindow函数来确定桌面上的其
它应用程序已打开的窗口,并对此窗口进行监控。
2、窗口控制:利用FindWindow可以获得其它应用程序中的窗口句柄,以便对该窗口进行控制,如关闭窗口,改变窗口位置等。
3、模拟按键:利用FindWindow可以获取其它应用程序中的窗口句柄,然后使用SendMessage函数向该句柄发送模拟按键命令。
FindWindow函数是比较重要的系统API函数,能够帮助开发者从
本质上控制操作系统界面,当开发可移植的应用程序的时候特别有用。
wincc的findwindow用法
WinCC的FindWindow用法简介W i nC C是一种用于创建监控和人机界面的软件,具有强大的功能和灵活的扩展性。
其中,F i nd Wi nd ow函数是W i nC C中常用的一个函数,用于查找指定窗口。
本文将详细介绍Wi nCC中Fi nd Wi nd ow函数的用法及其参数。
一、F i n d W i n d o w函数的概述F i nd Wi nd ow函数是W i nd ow s操作系统中的一个AP I函数,也是W i nC C中常用的一个函数。
该函数的作用是根据窗口的类名或窗口标题来查找指定的窗口。
二、F i n d W i n d o w函数的语法F i nd Wi nd ow函数的语法如下所示:H W ND Fi nd Wi nd ow(L P CW ST Rl pC la ss Nam e,L P CW ST Rl pW in do wNa m e);该函数接受两个参数:-l pC la ss Na me:窗口的类名,类型为LP C WS TR(指向一个以n ul l结尾的字符串)。
-l pW in do wN am e:窗口的标题,类型为L PC WS TR(指向一个以n ul l 结尾的字符串)。
三、F i n d W i n d o w函数的返回值F i nd Wi nd ow函数的返回值为HW ND类型的句柄,表示找到的窗口的句柄。
如果未找到匹配的窗口,则返回N ULL。
四、F i n d W i n d o w函数的用法示例以下是一个使用F ind W in do w函数查找窗口的示例:u s in gS ys te m;u s in gS ys te m.Ru nti m e.In te ro pS er vic e s;c l as sP ro gr am{[D ll Im po rt("us er32.d ll",Se tL as tEr r or=t ru e)]s t at ic ex te rn In tPt r Fi nd Wi nd ow(s tri n gl pC la ss Na me,st r in gl p W i nd ow Na me);s t at ic vo id Ma in(){s t ri ng cl as sN am e="W in CC Di sp la y";s t ri ng wi nd ow Na me="Wi nC C";I n tP tr wi nd ow Ha ndl e=F in dW in do w(cla s sN am e,wi nd ow Nam e);i f(w in do wH an dl e!=I nt Pt r.Ze ro){C o ns ol e.Wr it eL ine("找到了窗口!");}e l se{C o ns ol e.Wr it eL ine("未找到窗口!");}}}在上述示例中,我们通过调用Fi nd Wi ndo w函数来查找类名为"W in CC Di sp la y",窗口标题为"W in CC"的窗口。
Findwindow函数与FindWindowEx函数用法
Findwindow函数与FindWindowEx函数用法FindWindow(lpClassName, {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND; {返回窗口的句柄; 失败返回0}//FindWindowEx比FindWindow多出两个句柄参数:FindWindowEx(Parent: HWND; {要查找子窗口的父窗口句柄}Child: HWND; {子窗口句柄}ClassName: PChar; {}WindowName: PChar {}): HWND;{如果Parent 是0, 则函数以桌面窗口为父窗口, 查找桌面窗口的所有子窗口; 如果是HWND_MESSAGE, 函数仅查找所有消息窗口;子窗口必须是Parent 窗口的直接子窗口;如果Child 是0, 查找从Parent 的第一个子窗口开始;如果Parent 和Child 同时是0, 则函数查找所有的顶层窗口及消息窗口.}--------------------------------------------------------------------------------//测试1: 试着找找新建程序主窗口的句柄varh: HWND;begin{现在我们知道窗口的标题是: Form1、窗口的类名是: TForm1}h := FindWindow('TForm1', 'Form1');ShowMessage(IntToStr(h)); {656180; 这是随机, 每次启动窗口肯定不一样}{假如不知道类名}h := FindWindow(nil, 'Form1');ShowMessage(IntToStr(h)); {656180}{假如不知道标题名}h := FindWindow('TForm1', nil);ShowMessage(IntToStr(h)); {656180}{其实这个窗口的句柄不就是Self.Handle吗}ShowMessage(IntToStr(Handle)); {656180}end;--------------------------------------------------------------------------------//测试2: 找计算器窗口的句柄(先打开计算器)varh: HWND;begin{如果不是简体中文系统, 这样可能不灵}h := FindWindow(nil, '计算器');ShowMessage(IntToStr(h)); {1508334}{最好这样, 但你得提前知道计算器窗口的类名是: SciCalc} h := FindWindow('SciCalc', nil);ShowMessage(IntToStr(h)); {1508334}end;。
findwindow 置顶函数用法
findwindow 置顶函数用法摘要:1.FindWindow 函数的定义与功能2.FindWindow 函数的参数3.FindWindow 函数的返回值4.FindWindow 函数的用法示例5.FindWindow 函数的注意事项正文:FindWindow 函数是Windows API 中的一个重要函数,主要用于查找窗口。
在许多编程任务中,如编写桌面工具、游戏辅助等,都需要用到FindWindow 函数来获取或操作窗口。
下面,我们来详细了解一下FindWindow 函数的用法。
一、FindWindow 函数的定义与功能FindWindow 函数是Windows API 中的一个函数,其定义如下:HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName);该函数的作用是查找指定窗口类名和窗口名的窗口,并返回窗口句柄。
二、FindWindow 函数的参数FindWindow 函数接收两个参数,均为字符串指针。
1.lpClassName:指定窗口的类名。
这是一个以空字符结尾的字符串,通常是预定义的窗口类名。
2.lpWindowName:指定窗口的名称。
这是一个以空字符结尾的字符串,通常是自定义的窗口名称。
三、FindWindow 函数的返回值FindWindow 函数的返回值为找到的窗口的句柄。
如果未找到指定的窗口,则返回NULL。
四、FindWindow 函数的用法示例以下是一个简单的FindWindow 函数用法示例:```cpp#include <iostream>#include <Windows.h>int main(){HWND hwnd = FindWindow(L"Notepad", NULL); // 查找名为“记事本”的窗口if (hwnd!= NULL){std::cout << "找到窗口,句柄:" << hwnd << std::endl;}else{std::cout << "未找到窗口" << std::endl;}return 0;}```五、FindWindow 函数的注意事项在使用FindWindow 函数时,需要注意以下几点:1.指定的窗口类名和窗口名应正确无误,否则可能查找不到窗口。
C#中使用FindWindow函数详解 从标题获取句柄
C#中使用FindWindow函数详解从标题获取句柄FindWindow用来根据类名和窗口名来得到窗口句柄的。
但是这个函数不能查找子窗口,也不区分大小写。
如果要从一个窗口的子窗口中查找需要使用FindWindowEX。
1.在C#中使用方法如下:[DllImport("User32.dll", EntryPoint = "FindWindow")]private static extern IntPtrFindWindow(stringlpClassName,stringlpWindowName);[DllImport("User32.dll", EntryPoint = "FindWindowEx")]private static extern IntPtrFindWindowEx(IntPtrhwndParent, IntPtrhwndChildAfter, string lpClassName, string lpWindowName); [DllImport("User32.dll", EntryPoint = "FindWindow")]private static extern IntPtrFindWindow(stringlpClassName,stringlpWindowName);[DllImport("User32.dll", EntryPoint = "FindWindowEx")]private static extern IntPtrFindWindowEx(IntPtrhwndParent, IntPtrhwndChildAfter, string lpClassName, string lpWindowName);2. 实例参考:IntPtrhWnd = FindWindow(null, "test Demo");这样会查找所有title是"test Demo"的窗口。
findwindow置顶函数用法
findwindow置顶函数用法findwindow 置顶函数是用来将指定窗口置顶显示的函数。
在Windows 操作系统中,每个窗口都有一个唯一的标识符,即窗口句柄。
使用 findwindow 函数可以根据窗口的类名或窗口标题查找到指定窗口的句柄,然后通过设置窗口的标志位来将其置顶显示。
HWND FindWindowLPCTSTR lpClassName,LPCTSTR lpWindowName该函数接收两个参数,lpClassName 和 lpWindowName。
lpClassName 是指定窗口类名的指针。
窗口类名是用来创建窗口时指定的一个字符串,可以通过窗口的属性或者使用窗口类名查看工具来获取。
如果想要查找类名为 "Notepad" 的窗口,可以将 lpClassName 设置为"Notepad"。
lpWindowName 是指定窗口标题的指针。
窗口标题是窗口显示在标题栏上的文本信息,可以通过窗口属性或者使用窗口标题查看工具来获取。
如果想要查找标题为 "Untitled - Notepad" 的窗口,可以将lpWindowName 设置为 "Untitled - Notepad"。
以下是一个使用 findwindow 置顶函数的示例:```cpp#include <Windows.h>int maiHWND hWnd = FindWindow(NULL, L"Untitled - Notepad"); // 查找标题为 "Untitled - Notepad" 的窗口句柄if (hWnd != NULL)SetForegroundWindow(hWnd); // 将窗口置顶显示}return 0;```在示例中,使用 findwindow 函数查找标题为 "Untitled - Notepad" 的窗口句柄,然后通过 SetForegroundWindow 函数将其置顶显示。
FINDWINDOWEX参数详解
tbDisplay.Text = tbDisplay.Text + "\r\n\r\n6) 成功寻找到Login的按键,此处第个参数放置ExitWnd,即使Name=null也可以找到, 因为ExitWnd的下一个就是Login按键."; LogBtWnd = FindWindowEx(ParenthWnd, ExitWnd, lpszClass_Submit, null); if (!LogBtWnd.Equals(IntPtr.Zero)) { GetWindowText(LogBtWnd, stbf_WndStr, stbf_WndStr.Capacity - 1); tbDisplay.Text = tbDisplay.Text + "\r\n已搜索到登录按键: " + stbf_WndStr.ToString(); } else { tbDisplay.Text = tbDisplay.Text + "\r\n无法找到登录按键的子窗口!!!"; } return; 完整的源代码请参考 RemoteLogin 的例子。 本段代码输出: 1) 此处寻找不到 Exit 的按键,因为 Name 不为 null,而是等于"" Err: ExitWnd = null! ! ! 2) 寻找到 Exit 的按键,因为 Name 包含正确的名字"Exit" 实验内容: ExitWnd.text = Exit 3) 此处寻找不到 Login 的按键,因为 Name 不为 null,而是等于"" 无法找到登录按键的子窗口! ! ! 4) 此处寻找不到 Login 的按键,因为 FindWindowEx 第二个参数为空,且 Name = null,从第一个子窗口开始查找,根据 Tab Index
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FindWindow
函数原型:
CWnd::FindWindow
static CWnd* PASCAL FindWindow( LPCTSTR lpszClassName, LPCTSTR lpszWindowName );
参数表:
IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。
如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。
该成员为16位,必须位于IpClassName的低16位,高位必须为0。
IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。
如果该参数为空,则为所有窗口全匹配。
返回值:
如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。
如果函数执行失败,则返回值为NULL 。
可以通过调用GetLastError函数获得更加详细的错误信息。
例子:
建立基于对话框的应用程序工程名FindWindowFun,系统建立ID为:IDD_FINDWINDOWFUN_DIALOG,标题为:FindWindowFun的对话框窗口。
void CFindWindowFunDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CWnd* phwnd=FindWindow(NULL,"FindWindowfun");
然后就可以用Phwnd操作本窗口了
.
.
.
}。