如何获得一个正在运行程序的窗体名称

如何获得一个正在运行程序的窗体名称,第1张

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

说明

寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题)

返回值

Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError

参数表

参数 类型及说明

lpClassName String,指向包含了窗口类名的空中止(C语言)字串颤春的指针;或设为零,表示接收任何类

lpWindowName String,指向包含了窗口文本(或标签茄绝耐)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题

注解

很少要求同时按类与窗口名搜索。为向自己不准备参数传宏者递一个零,最简便的办法是传递vbNullString常数

示例

Dim hw&, cnt&

Dim rttitle As String * 256

hw&= FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4

cnt = GetWindowText(hw&, rttitle, 255)

MsgBox Left$(rttitle, cnt), 0, "RTMain title"

SetForegroundWindow

VB声明

Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

说明

将窗口设为系统的前台窗口。这个函数可用于改变用户目前正在 *** 作的应用程序

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数 类型及说明

hwnd Long,带到前台的窗口

注解

不应随便使用它,因为一旦程序突然从后台进入前台,可能会使用户产生迷惑

C#获取当前窗体句柄冲袜及该窗体里的信息可以参考以下的代码:

FindWindow(

lpClassName, {窗口的类名}

lpWindowName: PChar {窗口的标题}

): HWND{返回窗口的句仿盯柄失败返回 0}

//FindWindowEx 比 FindWindow 多出两个句柄参数:

FindWindowEx(

Parent: HWND{要查找子窗口的父窗口句柄}

Child: HWND{子窗口句柄}

ClassName: PChar{}

WindowName: PChar {}

): HWND

扩展资料:

句柄语句

HINSTANCE hInstance;

可以备判和改成:

HANDLE hInstance;

上面的2条语句都是对的,表达的是一个意义.

一个WINDOWS应用程序可以用不同的方法获得一个特定项的句柄。许多API函数,诸如CreateWindow,GlobalAlloc,OpenFile的返回值都是一个句柄值。

另外,WINDOWS也能通过应用程序的引出函数将一个句柄作为参数传送给应用程序,应用程序一旦获得了一个确定项的句柄,便可在WINDOWS环境下的任何地方对这个句柄进行 *** 作。其实句柄的大量使用已经影响到了每一个WINDOWS的程序设计。

参考资料来源:百度百科-句柄


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12328285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存