(高分)紧急求助!怎么获取某一已运行的程序中的一个窗体的名称??句柄已经得到了!!

hxkuse 2003-08-30 04:17:36
怎么获取某一已运行的程序中的一个窗体的名称??句柄已经得到了!!

在程序的最后阶段,先谢过各位大侠了!!
...全文
51 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlum99 2003-08-30
  • 打赏
  • 举报
回复
他的意思是,没有一个绝对不变的标志。因为Caption属性为空,而句柄在每回运行的时候又不同。如果你偏要用这种方法解决的话,我有个方法,得到程序的模块信息,有一项是程序所在的地址和程序的安装目录对比。
pigpag 2003-08-30
  • 打赏
  • 举报
回复
就算知道了“名字”,又怎么了呢?跨进程不可能让你用想VB一样的Name.Member方法,API函数没有一个是用对象Name来定位的。即使知道了DIALOG_ID的,都会迫不及待地转成hWnd在使用API。不知你万一万一获取到了“名字”又能如何?……
pigpag 2003-08-30
  • 打赏
  • 举报
回复
你每次都获取一下句柄啊?!都是这样的,这是一个Windows定的规则
rainstormmaster 2003-08-30
  • 打赏
  • 举报
回复
是呀,搞不懂楼主要做什么
hisofty 2003-08-30
  • 打赏
  • 举报
回复
知道句柄了,用api函数操作不就行 了
hxkuse 2003-08-30
  • 打赏
  • 举报
回复
谢谢,
那请问有什么方法能得到它的唯一标志呢??
名称是会重复,但在一定程度上,比较我有可能!
zhourongbiao 2003-08-30
  • 打赏
  • 举报
回复
窗体的名称就是Text,不过它确实可能会变化;hwnd能够唯一标识窗体,可是每次启动程序它的句柄都可能不同;你要得设计时的名称,可是1:可能有重名,2:无法得到--你会发现你无法得到一个每次都有效的唯一标识一个窗体的东东。我也服了的说……
hxkuse 2003-08-30
  • 打赏
  • 举报
回复
ClassicWuHao(Mouse) 说的和我在QQ里跟你说的一样。
你又说不行………………………………………………
倒~~~~~~

》哎,这个是肯定不行的!
----------------
I 服了 Y,真不知道你想干什么~~

>谢谢,就是说我要对一个程序的某一窗体的状态(可见性)进行验证,但它没有窗体标题(.caption),而句柄在两次是加载中是不同的。如果程序要对这个窗体进行自动操作那么务必就要一个能在任何时候都不变的唯一标志对其进行识别,我要就是这个**唯一标志**
射天狼 2003-08-30
  • 打赏
  • 举报
回复
I 服了 Y,真不知道你想干什么~~
YuLv 2003-08-30
  • 打赏
  • 举报
回复
ClassicWuHao(Mouse) 说的和我在QQ里跟你说的一样。
你又说不行………………………………………………
倒~~~~~~
YuLv 2003-08-30
  • 打赏
  • 举报
回复
我倒~~~你每次问问题,都是这不行那又不行。
真搞不懂耶………………
hxkuse 2003-08-30
  • 打赏
  • 举报
回复
cuizm(射天狼
是自己系统里的还可以,唯一标识某一窗体的在系统中就是句柄了,你还找什么啊~~
>谢谢!·!
但是句柄是在加载是被分的,就是说每次启动这个程序它的句柄都可能不同!
外部名知道,但我是要作用于它的一个窗体!所以有意义吗?
谢谢
WQ771211 2003-08-30
  • 打赏
  • 举报
回复
老兄,在windows中句柄就是一个window的唯一标识
名称只是在程序设计环境中用的,在运行时是得不到名称的
ClassicWuHao 2003-08-30
  • 打赏
  • 举报
回复
?????????!!!!!!!!!!!!!
射天狼 2003-08-30
  • 打赏
  • 举报
回复
外部程序的名称你知道是什么吗,NO~~
如果是自己系统里的还可以,唯一标识某一窗体的在系统中就是句柄了,你还找什么啊~~
hxkuse 2003-08-30
  • 打赏
  • 举报
回复
谢谢,是名称(.name)不是标题(.caption)!
或者能能唯一标识某一窗体的也行!
ClassicWuHao 2003-08-30
  • 打赏
  • 举报
回复
是窗口标题? My code as follows:
===============================================================================
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
private sub Form_Load()
gettitle
end sub
Private Sub GetTitle()
Dim lpString As String, cch As Long, Length As Long

cch = &HFF
lpString = String$(cch, Chr(0))

Length = GetWindowText(windowhwnd, lpString, cch)

Debug.Print Left(lpString, Length)
End sub

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧