public enum GUIInfoType
{
guiText.
guiTextClass,
guiTextParent,
guiTextClassParent,
}
private static int level=0
public static int FindGUILike(ref int hWndArray,int hWndStart,ref string windowText,ref string className,ref string parentText)
{
int hwnd=0;
int r=0;
StringBuilder sWindowText=new StringBuilder();
StringBuilder sClassname=new StringBuilder();
StringBuilder sParentText=new StringBuilder();
if(level==0)
{
hWndTarget=0;
if(hWndTarget==0) hWndStart = GetDesktopWindow();
}
level=level+1;
hwnd=GetWindow(hWndStart,GW_CHILD);
while(hwnd!=0)
{
r=FindGUILike(ref hWndArray,hwnd windowText,ref classname,ref parentText);
sWindowText.Capacity=255;
r=GetClassName(hwnd,sWindowsText,255);
sClassname.Capacity=255;
r=GetWindowText(GetParent(hwnd),sParentText,225);
GUIInfoType guiInfoType=GetGUIInfoType(windowText,className,parentText);
ResetGUIInfo(guiInfoType,hwnd,ref hWndArray,ref windowText,ref className,ref parentText,sWindowText,sClassname,sParentText);
hwnd=GetWindow(hwnd,GW_HWNDNEXT);
}
level=level-1;
return 0;
}
private static GUIInfoType GetGUIInfoType(string winText,string winClass,string winTextParent)
{
if(winText!=''&&winClass!=''&winTextParent=='')
return GUIInfoType.guiTextClass;
else if(winText!=''&&winClass==''&winTextParent!='')
return GUIInfoType.guiTextParent;
else if(winText!=''&&winClass!=''&winTextParent=='')
return GUIInfoType.guiClassParent;
return GUIInfoType.guiText;
}
private static void ResetGUIInfo(GUIInfoType guiInfoType,int hwnd,ref int hWndTarget,ref string windowText,ref string className,ref string parentText,StringBuilder sParentText)
{
string clsStartedWith='';
if(clas
ʼþÓëίÍÐËÆºõºÜÄÑÒÔÀí½â£¬ÕâÊÇÒòΪËüÃǵÄʹÓ÷½Ê½Óë³£ÓõıàÂëÓкܴóµÄ²î±ð£¬ÀýÈçͨ³£±àдµÄ¶¼ÊÇͬ²½´úÂ룬µ÷ÓÃÒ»¸öÀàÐ͵ķ½·¨£¬»á¼´¿Ì³öÏÖ·½·¨Ö´
ÐеĽá¹û£¬ÕâÊÇ·ûºÏÂß¼µÄ¡£µ«ÔÚijЩÇé¿öÖУ¬Í¬²½´úÂëδ±ØÂú×ãÐèÇó£¬Äù«¹²Æû³µÀ´´ò¸ö±È·½£¬Èç¹û½»Í¨¹ÜÖÆÖÐÐÄÏ£ÍûÿһÁ¾¹«³µµ½´ïÒ»¸öÕ¾µãʱ¶¼·¢Ë͸ø×Ô¼ºÒ»
¸öÐźÅÒÔ±ã×Ô¼º ......