C#操作窗口类句柄操作Word格式文档下载.docx
《C#操作窗口类句柄操作Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C#操作窗口类句柄操作Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
publicstaticexternIntPtrWindowFromPoint(Pointpt);
田日田日田EndexOf;
}
publicoverridestringToString()
{
StringBuilderresult=newStringBuilder();
for(WinHWNDwinHandle=this;
winHandle!
=null;
winHandle=
("
{0}:
{1};
‘Escape,
if==-1)break;
().TrimEnd('
;
'
);
privatestaticstring
string[]sMarks=('
returnsMarks[].Split(}
string[]sChildMarks=
for(inti=0;
i<
i++){sChildMarks[i]=sMarks[i];
returnsChildMarks;
.是不是都匹配
foreach(IntPtrbaseHwnd{
IntPtrhandle=baseHwnd;
for(inti=;
i>
=0;
i--)
GetBaseMark(string
:
)[0];
[]GetChildMarks(
newstring[];
inbaseHwnds)
sMark)
stringsMark)
string[]sChildMark=sChildMarks[i].Split('
try
1])];
handle=(handle,UnEscape(sChildMark[O]))[(sChildMark[
catch
break;
if(i==0)returnnewWinHWND(handle);
continue;
returnnull;
#region转义
privatestaticstringEscape(stringarg)
"
\\:
).Replace("
"
\\;
);
,"
#endregion
publicstaticWinHWNDGetWinHWND()
returnnewWinHWND()));
WinAPI
上全部代码,里面加了窗口的部分属性,扩展其他的属性,自己发挥吧,就是搞
BViewCode
usingSystem;
usingusingnamespaceInformationCollectionDataFill
publicclassWinAPI
#regionWinodwsAPI
FindWindow"
)]
privatestaticextern
IntPtrFindWindow(
stringIpCIassName,stringIpWindowName);
FindWindowEx"
privatestaticexternIntPtrFindWindowEx(IntPtrhwndParent,lntPtrhwndChildAfter,
nglpszWindow);
SendMessage"
privatestaticexternintSendMessage(IntPtrhWnd,intMsg,IntPtrwParam,string
GetParent"
publicstaticexternIntPtrGetParent(lntPtrhWnd);
CharSet=,ExactSpelling=true
CharSet=]
publicstaticexternintGetClassName(IntPtrhWnd,StringBuilderlpCIassName,
publicstaticexternintGetWindowText(lntPtrhWnd,[Out,MarshalAs]StringBuilderlpString,
t);
stringlpszClass,stri
lParam);
intnMaxCount);
intnMaxCoun
[DllImport(
CharSet=]
publicstaticexternint
GetWindowRect(lntPtrhwnd.
refRectanglerc);
publicstaticexternintGetClientRect(lntPtrhwnd,
intx,inty,intnWidth,intnHeight,boolbRepaint);
publicstaticexternintMoveWindow(lntPtrhwnd,
CharSet=,SetLastError=true,ExactSpelling=true)]
publicstaticexternintScreenToClient(lntPtrhWnd,refRectanglerect);
#region圭寸装API方法
ndexOf;
privateRectangleGetRect()
if==null)returndefault(Rectangle);
RectangleclientSize=;
RectangleclientPoint=
returnnewRectangle,,,;
}
publicoverridestring
StringBuilderresult=
for(WinHWNDwinHand{
‘Escape,if==-1)break;
i++){
ToString()
newStringBuilder();
this;
winHandle!
=
:
null;
winHandle=
sChildMarks[i]=sMarks[i];
foreach(IntPtrbaseHwndinbaseHwnds)
handle=(handle,UnEscape(sChildMark[0]))[(sChildMark[
returnnull
).Replace(
Escape(stringarg)
UnEscape(stringarg)
效果: