我有一个自定义函数,需要获取PB应用程序中当前活动的窗口,并将其实例化,查得了很多资料,没有解决,哪位高手帮一下
window lw_activateWindow
//
//
//
lw_activateWindow=//在这里我需要获取当前活动窗口实例
if IsValid(lw_activateWindow) then
//程序段
end if
我试过用API获取活动窗口,但只能得到一个窗口句柄,如何将句柄实例化,PB中怎么弄不知道
ULong hWnd
hWnd = GetForegroundWindow()
另外补充一下,其实我的这个函数是一个热键调用的,我想让用户按了热键后,查找出当前活动窗口内的数据窗口,然后作相应处理,对PB来说,MDI内的子窗口PB提供了函数GetActiveSheet()可直接得出,而现在的关键是我无法将活动的窗口实例化来处理
对于以上功能,还用没有更好的思路,麻烦大家帮我想一想,谢谢了!
提问者:dytxy - 童生 一级
我也来回答:
回答即可得2分,回答被采纳则获得悬赏
'创建一个列表框和一个按钮
'API函数定义
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Const GW_HWNDFIRST = 0
Const GW_HWNDNEXT = 2
Private Sub Command1_Click()
Dim s As Long
Dim a As String
a = Space(255)
s = GetWindow(Mehwnd, GW_HWNDFIRST) '获得句柄
GetWindowText s, a, 255 '获得标题
Dim ab As String 255
GetClassName s, ab, 255 '获得类名
Dim ClassName As String
ClassName = StripTerFlag(ab) 'StripTerFlag是一个自定义函数,后面有代码,用于去处结束符
If UCase(ClassName) = "NOTEPAD" Then
List1AddItem a
List1ItemData(List1ListCount - 1) = s
End If
Do While s
DoEvents
s = GetWindow(s, GW_HWNDNEXT) '获得句柄
GetWindowText s, a, 255 '获得标题
GetClassName s, ab, 255 '获得类名
ClassName = StripTerFlag(ab)
If UCase(ClassName) = "NOTEPAD" Then
List1AddItem a
List1ItemData(List1ListCount - 1) = s
End If
Loop
End Sub
Private Sub List1_Click()
MsgBox List1ItemData(List1ListIndex) '单击列表框获得句柄
End Sub
你有没有这样的上网经历?:
用快捷键新建一个页面(不是标签页,而是单独一个页),连续这样做,发现它们依次叠加,并且每个都在前一个的右下方偏一点。
对于当前窗口而言,这两个只读属性,真如你说的算是鸡肋,因为是只读的嘛,哪怕想干点啥也做不了。但对于其他窗口而言,这个属性还是有点用的。至少在其他窗口要d出窗口时,可以给open传入窗口特征left和top,这就用到了上一个窗口的位置属性。
在某些情景下,你想后面d出的窗口正好覆盖住上一个d出窗,也可以用到这两个属性。
有效。
获得进程主窗口的方法:
EnumWindows:>
例如:高级表格1取窗口句柄 ()
这样就取到 高级表格的窗口句柄(任何组件都可看作是一种窗口,这个取到的是高级表格句柄,不是表格所在窗口的句柄)
----------------------------------------
调用格式: 〈整数型〉 对象.取窗口句柄 () - 系统核心支持库->窗口
英文名称:GetHWnd
取出本窗口或窗口组件的窗口句柄(即HWND)。本命令为高级对象成员命令。
*** 作系统需求: Windows
以上就是关于[PB]求救高手!!!!!!请问PB如何获得应用程序当前活动窗口全部的内容,包括:[PB]求救高手!!!!!!请问PB如何获得应用程序当前活动窗口、vb 获取窗口句柄、JS能获取窗口的screenTop screenLeft 对于开发者来说 有什么可用之处呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)