问题描述
在桌面上有几个窗口,其中我想找到窗口标题包含有“工程”两个字的窗口。然后把它隐藏。我是新手。请帮个忙。
解决方案
解决方案二:
win32API:FindWindow
解决方案三:
隱藏窗口同樣要使用win32API,函數為ShowWindow.具體使用請參閱MSDN.
解决方案四:
用spy++查看窗口标题栏..
解决方案五:
给楼主一个查找包含有指定字符串的标题的所有窗口的代码,仅供参考,仅供参考:internaldelegateboolEnumThreadWindowsCallback(IntPtrhWnd,IntPtrlParam);internaldelegateboolEnumChildrenCallback(IntPtrhwnd,IntPtrlParam);[DllImport("user32.dll",CharSet=CharSet.Auto,SetLastError=true)]internalstaticexternboolEnumWindows(EnumThreadWindowsCallbackcallback,IntPtrextraData);[DllImport("user32.dll",ExactSpelling=true)]internalstaticexternboolEnumChildWindows(HandleRefhwndParent,EnumChildrenCallbacklpEnumFunc,HandleReflParam);[DllImport("user32.dll",CharSet=CharSet.Auto,SetLastError=true)]internalstaticexternintGetWindowThreadProcessId(HandleRefhandle,outintprocessId);[DllImport("user32.dll",CharSet=CharSet.Auto)]internalstaticexternintGetWindowText(HandleRefhWnd,StringBuilderlpString,intnMaxCount);[DllImport("user32.dll",CharSet=CharSet.Auto)]publicstaticexternintGetWindowTextLength(HandleRefhWnd);privateboolEnumWindowsCallback(IntPtrhandle,IntPtrextraParameter){intcapacity=GetWindowTextLength(newHandleRef(this,handle))*2;StringBuilderlpString=newStringBuilder(capacity);GetWindowText(newHandleRef(this,handle),lpString,lpString.Capacity);if(lpString.Length>0&&lpString.ToString().IndexOf("工程")!=-1){Console.WriteLine(lpString.ToString());EnumChildWindows(newHandleRef(null,handle),newEnumChildrenCallback(EnumChildWindowsCallBack),newHandleRef(null,IntPtr.Zero));}returntrue;}privateboolEnumChildWindowsCallBack(IntPtrhandle,IntPtrlparam){intcapacity=GetWindowTextLength(newHandleRef(this,handle))*2;StringBuilderlpString=newStringBuilder(capacity);GetWindowText(newHandleRef(this,handle),lpString,lpString.Capacity);if(lpString.Length>0&&lpString.ToString().IndexOf("工程")!=-1){Console.WriteLine(lpString.ToString());EnumChildWindows(newHandleRef(null,handle),newEnumChildrenCallback(EnumChildWindowsCallBack),newHandleRef(null,IntPtr.Zero));}returntrue;}privatevoidbutton1_Click(objectsender,EventArgse){EnumThreadWindowsCallbackcallback=newEnumThreadWindowsCallback(this.EnumWindowsCallback);EnumWindows(callback,IntPtr.Zero);}
解决方案六:
上面的代码只是找到相应的窗口,但没有隐藏,可以使用如下API:[DllImport("user32.dll",CharSet=CharSet.Auto,ExactSpelling=true)]publicstaticexternboolShowWindow(HandleRefhWnd,intnCmdShow);
解决方案七:
这个要学习!!!!
解决方案八:
值得学习,定点
解决方案九:
四楼正解,使用windows的一个窗口枚举器.
解决方案十:
真是太感谢了。热泪盈眶…………感谢四颗星的老大哥……虽然还没有调试成功,但你能这么热心的帮助我们这些新手,真的打心里感谢!