資源描述:
《C#實(shí)際操作窗口類(句柄實(shí)際操作)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、.C#寫個(gè)類操作窗口(句柄操作)實(shí)現(xiàn)過程:過程一:找到當(dāng)前鼠標(biāo)位置的句柄您的使用2個(gè)WinAPI(俺喜歡自己封裝下來用):ViewCode[DllImport("user32.dll",EntryPoint="GetCursorPos")]publicstaticexternboolGetCursorPos(outPointpt);[DllImport("user32.dll",EntryPoint="WindowFromPoint")]publicstaticexternIntPtrWindowFromPoint(Pointpt);//鼠標(biāo)位置的
2、坐標(biāo)publicstaticPointGetCursorPosPoint(){Pointp=newPoint();if(GetCursorPos(outp)){returnp;}returndefault(Point);}//////找到句柄.//////坐標(biāo)///publicstaticIntPtrGetHandle(Pointp){returnWindowFromPoint(p);}過程二:改變窗口的Text您的使用1個(gè)Wi
3、nAPI:ViewCode[DllImport("user32.dll",EntryPoint="SendMessage")]privatestaticexternintSendMessage(IntPtrhWnd,intMsg,IntPtrwParam,stringlParam);//////給窗口發(fā)送內(nèi)容//////句柄///要發(fā)送的內(nèi)容publicstaticvoidSetText(IntPtrhWn
4、d,stringlParam){SendMessage(hWnd,WM_SETTEXT,IntPtr.Zero,lParam);}privateconstintWM_SETTEXT=0x000C;.通過這個(gè)方法就能改變Text的值了。思考:如果俺把這個(gè)窗口的句柄記錄下來,下次不用鼠標(biāo)獲取,直接就能改變值不蠻好的嘛。例如:我有個(gè)桌面系統(tǒng)老叫我輸入用戶名,密碼。我記錄用戶名和密碼的窗口句柄,然后改變他們的輸入值,這樣多省事。(只是舉例,不考慮安全性)問題:你會(huì)告訴我,窗口句柄的每次重建會(huì)變的呀,咋辦。回答:類名不變呀。過程三:您的準(zhǔn)備一些工具吧,例如:
5、句柄找類名呀,類名找句柄什么的等等,下面會(huì)用到一些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);}//////子窗口句柄//////父窗口句柄///前一個(gè)同目錄
8、級(jí)同名窗口句柄///類名///