问题描述
首先申明3个APIPrivateDeclareFunctionGetWindowTextLib"user32"Alias"GetWindowTextA"(ByValhwndAsIntPtr,ByVallpStringAsString,ByValcchAsInteger)AsIntegerPrivateDeclareFunctionGetWindowTextLengthLib"user32"Alias"GetWindowTextLengthA"(ByValhwndAsIntPtr)AsIntegerDeclareFunctionGetForegroundWindowLib"user32"()AsIntegerDimhdlAsNewIntPtr(GetForegroundWindow)'获取活动窗口的句柄DimstrTitleAsString=Space(GetWindowTextLength(hdl)+1)'构造窗口标题字符串缓冲区GetWindowText(hdl,strTitle,strTitle.Length)'获取窗口文字msgbox(strTitle)这是获取程序当前窗口的标题如果我要获取其他程序的标题该怎么获取?假设那个窗口的标题栏是ABC:123456。ABC:987654我需要让ABC:后面的数字显示在TEXTBOX1里。ABC:是固定的,后面的数字是随即可变的。请教下大神该怎么操作。。
解决方案
解决方案二:
findwindow,如果要查的是子窗口,再加上findwindowex
解决方案三:
引用1楼Runnerchin的回复:
findwindow,如果要查的是子窗口,再加上findwindowex
能说的详细点吗?
解决方案四:
顶上去分不要浪费了。。求大神指导下!~
解决方案五:
没人知道吗?
解决方案六:
……你是想解决问题呢?还是想伸手要代码?已经告诉你怎么实现啦,相关的文章一搜一大堆。不能吃个饭也要别人喂吧?
解决方案七:
要代码,最好能直接运行出来。谢谢好人一生平安。。有其他知道的大神吗
解决方案八:
不用API也可以用.net中的process类,根据进程名获取,再读取process.mainwindowtitle属性
解决方案九:
首先你已经会获取窗口的标题了,那么把它封装成函数:GetWindowTitle(),除此之外还要用到2个API:GetDesktopWindow()、GetWindow(),引入方法和相关常量你得自己去搜,然后下面这个函数就可以解决你的问题了FunctionFindWindowByHeader(headerAsString)AsIntegerDimhwndAsInteger=GetDesktopWindow()hwnd=GetWindow(hwnd,GW_CHILD)DoWhilehwnd<>0DimTitleAsString=GetWindowTitle(hwnd)IfTitle.IndexOf(header)==0Then_Returnhwndhwnd=GetWindow(hwnd,GW_HWNDNEXT)LoopReturn0EndFunction
你要养成举一反三的习惯,网上虽没有完全符合你要求的例子,但相似的也不少,起码遍历所有窗口的随处可见。不要总是张口要代码。
解决方案十:
VB6.0能获取以前用过的。但是Net上没有用过。
解决方案十一:
这至少是10年前被玩烂的东西的去百度都比等答案快
解决方案十二:
“ABC:123456”.split(":")(1)就是你要的123456