vb窗体或控件如何在一个已运行的程序上定位
发布网友
发布时间:2024-07-16 00:42
我来回答
共6个回答
热心网友
时间:2024-07-19 16:36
很简单,等下给你
这个最主要的就是要找到那个窗口的位置跟大小,然后移动自己到相应位置
代码如下:
Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Dim rRct As RECT
Function cmdGetClass(exeTitle As String) As Boolean
If exeTitle = "" Then cmdGetClass = False: Exit Function
Dim lngHand As Long
Dim strName As String * 255
Dim lngProcID As Long
lngHand = FindWindow(vbNullString, exeTitle)
GetClassName lngHand, strName, Len(strName)
If Left$(strName, 1) = vbNullChar Then
cmdGetClass = False
Else
GetWindowThreadProcessId lngHand, lngProcID
GetWindowRect lngHand, rRct
cmdGetClass = True
End If
End Function
Private Sub Command1_Click()
Dim sCaption As String '要找的窗口的标题
sCaption = "我的电脑"
If cmdGetClass(sCaption) Then
Me.Move rRct.Left * Screen.TwipsPerPixelX, rRct.Top * Screen.TwipsPerPixelY, (rRct.Right - rRct.Left) * Screen.TwipsPerPixelX, (rRct.Bottom - rRct.Top) * Screen.TwipsPerPixelY
End If
End Sub
热心网友
时间:2024-07-19 16:35
建一个Timer1,打开一个记事本。其他要求可细谈。
代码如下。
================
Private Const HWND_TOPMOST = -1
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Sub Form_Load()
Timer1.Interval = 50
End Sub
Private Sub Timer1_Timer()
Dim h As Long, r As RECT
h = FindWindow("notepad", vbNullString)
GetWindowRect h, r
SetWindowPos hwnd, HWND_TOPMOST, r.Left, r.Top, r.Right - r.Left, r.Bottom - r.Top, 0
End Sub
热心网友
时间:2024-07-19 16:37
这个恐怕难吧,比判断一个外部程序是否运行都还难哟!
期待高手解决!
热心网友
时间:2024-07-19 16:39
用setparent函数,把程序的某个控件设置为目标窗口下的子窗口,可以做到这一点。
热心网友
时间:2024-07-19 16:39
分低了点吧,兄弟!高手是不会帮你解决这样的问题的,不过别人心情好,也说不一定
热心网友
时间:2024-07-19 16:32
你的要求和你的分差距太多,高手一般懒的弄的
VB,如何调用某个已经打开的程序窗口?
可以使用vb里面的AppActivate 语句来激活某个已经打开的程序窗口,语句如下:AppActivate title[, wait]参数 title 必需的。字符串表达式,所要激活的应用程序窗口的标题。可以使用 Shell 函数返回的任务识别码来替换 title,以激活应用程序。wait 可选的。Boolean 值,说明在激活另一个应用程序之前调用...
vb窗体位置的控制
4.运行窗体,查看窗体运行期的实际位置和大小与设计期的位置和大小是否一致,这是肯定的。如前所述,窗体的位置除用属性框中的属性设置之外,同样可以通过编程的方法来加以控制,以下我们通过编制一个程序来控制窗体在屏幕中的位置。例1.6在例1.1创建的工程中,并通过编程的方法,使窗体Form1在运行期...
如何用vb编个程序…打开按钮链接到一个网页上的某个位置…
1、先在程序工程中添加 WebBrowser控件 “工程”->"部件"->找到"Microsoft Internet Controls" 选择->"确定"2、在窗体中添加 WebBrowser 控件,并根据 Form窗体的大小放大 WebBrowser可见区域 3、增加一个按扭Command1 在Command1_Click() 事件中添加如下程序 Private Sub Command1_Click() WebBrow...
vb 如何快速检测某进程是否正在运行?并且获得这个进程所在的路径呢...
1、用FindWindow函数得到已经运行窗体的句柄(HWND),然后用SetActiveWindow等API函数将其激活。其缺点也很明显,那就是没法传递参数。2、用FindWindow函数得到已运行窗体的句柄后用SendMessage的方法给窗体传送一个自定义消息(附带参数),然后在窗体中拦截并进行处理,但这样做要修改窗体的标准消息处理程...
VB6.0中让控件随着窗体的改变而改变在窗体上的位置
以command1控件为例 Private Sub Form_Load()Command1.Left = (Screen.Width - Command1.Width) / 2 Command1.Top = (Screen.Height - Command1.Height) / 2 End Sub 或者想确定在form里的位置,可以把screen改为form
vb做了一个程序,在另一台电脑上显示控件未注册。
可以在你的VB程序罪开始加入这么一条指令 shell "regsvr32 /s " & app.path & "\你的控件名称"例如你用的控件叫 a.ocx,那么就改成 shell "regsvr32 /s " & app.path & "\a.ocx"然后把那个控件和生成的EXE一起发过去,就会在运行后自动注册 ...
vb如何在程序中用第一个窗体的控件启动另一个窗体,如用Form1中的cmd1...
Private Sub cmd1_Click()Form2.Show End Sub 关闭是Form2.close
VB中,怎样编写代码,当单机一个命令按钮事,使窗体移动到屏幕的左上角
VB 功能强大,学习简单。而且,VB 还引入了“控件”的概念,使得大量已经编好的 VB 程序可以被我们直接拿来使用。2002年开始,微软将.NET Framework与 Visual Basic 结合而成为 Visual Basic .NET (vb .net),重新打造 VB,新增许多特性及语法,又将 VB 推向一个新的高度。最新版本 Visual Basic ...
VB中怎么在运行时将一个窗体中的控件粘贴在另一个窗体中
含有treeview控件的窗体包含另一个窗体的引用,选择子节点后,对引用窗体做修改。
VB编译生成.exe后在另一台没装VB的机器上不能运行
编译的程序是需要运行库的 要想把程序移植到其他电脑上 必须经过打包 VB的打包过程是:(1)打开VB6.0 IDE,加载你的工程,单击“外接程序”菜单下的“外接程序管理器”。(2)在弹出的窗体中选择“打包和展开向导”(最后一项),在加载行为中选择“加载/卸载”,确定。(3)再次单击“外接程序”菜单项...