欢迎来到天天文库
浏览记录
ID:43428419
大小:233.50 KB
页数:26页
时间:2019-10-02
《C#实际操作窗口类(句柄实际操作)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.C#写个类操作窗口(句柄操作)实现过程:过程一:找到当前鼠标位置的句柄您的使用2个WinAPI(俺喜欢自己封装下来用):ViewCode[DllImport("user32.dll",EntryPoint="GetCursorPos")]publicstaticexternboolGetCursorPos(outPointpt);[DllImport("user32.dll",EntryPoint="WindowFromPoint")]publicstaticexternIntPtrWindowFromPoint(Pointpt);//鼠标位置的
2、坐标publicstaticPointGetCursorPosPoint(){Pointp=newPoint();if(GetCursorPos(outp)){returnp;}returndefault(Point);}//////找到句柄.//////坐标///publicstaticIntPtrGetHandle(Pointp){returnWindowFromPoint(p);}过程二:改变窗口的Text您的使用1个Wi
3、nAPI:ViewCode[DllImport("user32.dll",EntryPoint="SendMessage")]privatestaticexternintSendMessage(IntPtrhWnd,intMsg,IntPtrwParam,stringlParam);//////给窗口发送内容//////句柄///要发送的内容publicstaticvoidSetText(IntPtrhWn
4、d,stringlParam){SendMessage(hWnd,WM_SETTEXT,IntPtr.Zero,lParam);}privateconstintWM_SETTEXT=0x000C;.通过这个方法就能改变Text的值了。思考:如果俺把这个窗口的句柄记录下来,下次不用鼠标获取,直接就能改变值不蛮好的嘛。例如:我有个桌面系统老叫我输入用户名,密码。我记录用户名和密码的窗口句柄,然后改变他们的输入值,这样多省事。(只是举例,不考虑安全性)问题:你会告诉我,窗口句柄的每次重建会变的呀,咋办。回答:类名不变呀。过程三:您的准备一些工具吧,例如:
5、句柄找类名呀,类名找句柄什么的等等,下面会用到一些WinAPIViewCode[DllImport("user32.dll",EntryPoint="FindWindow")]privatestaticexternIntPtrFindWindow(stringIpClassName,stringIpWindowName);[DllImport("user32.dll",EntryPoint="FindWindowEx")]privatestaticexternIntPtrFindWindowEx(IntPtrhwndParent,IntPtrhwnd
6、ChildAfter,stringlpszClass,stringlpszWindow);[DllImport("user32.dll",EntryPoint="GetParent")]publicstaticexternIntPtrGetParent(IntPtrhWnd);[DllImport("user32.dll",CharSet=CharSet.Auto)]publicstaticexternintGetClassName(IntPtrhWnd,StringBuilderlpClassName,intnMaxCount);.///7、mary>///找到句柄//////类名///publicstaticIntPtrGetHandle(stringIpClassName){returnFindWindow(IpClassName,null);}//////子窗口句柄//////父窗口句柄///前一个同目录8、级同名窗口句柄///类名///
7、mary>///找到句柄//////类名///publicstaticIntPtrGetHandle(stringIpClassName){returnFindWindow(IpClassName,null);}//////子窗口句柄//////父窗口句柄///前一个同目录
8、级同名窗口句柄///类名///
此文档下载收益归作者所有