感悟网 导航

用VB程序移动某个程序的窗口至300,600(屏幕坐标) vb 如果实现对别的应用程序的窗口身指定坐标移动?

作者&投稿:泰璧 (若有异议请与网页底部的电邮联系)
vb移动到某坐标问题,求助~

问的好宽泛啊

以下是全部代码。为了好说明,我以计算器为例。你先运行一个Windows自带计算器。单击按钮就会让他跑道0,0去。然后你就如法炮制,把代码中“计算器”改成你那个窗口名就行了。
==============
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 Const SWP_NOSIZE = &H1

Private Sub Command1_Click()
Dim h As Long
h = FindWindow(vbNullString, "计算器")
SetWindowPos h, 0, 0, 0, 0, 0, SWP_NOSIZE
End Sub

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。在搜索的时候不一定两者都知道,但至少要知道其中的一个。有的窗口的标题是比较容易得到的,如"计算器",所以搜索时应使用标题进行搜索。但有的软件的标题不是固定的,如"记事本",如果打开的文件不同,窗口标题也不同,这时使用窗口类搜索就比较方便。如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。

第一个是要找的窗口的类,第二个是要找的窗口的标题。

Option Explicit

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 Const SWP_NOSIZE = &H1

Private Sub Command1_Click()
Dim H As Long
Dim EXE As String
EXE = "名称"
H = FindWindow(vbNullString, EXE)
SetWindowPos H, 0, 300, 600, 0, 0, SWP_NOSIZE
End Sub

标题名称用变量代替,这样你可以随时修改变量的值!

你的问题是得不到句柄,得到的话
SetWindowPos h, 0, 300, 600, 0, 0, SWP_NOSIZE
即可实现

h = FindWindow(vbNullString, me.Caption)
SetWindowPos h, 0, 300, 300, 0, 0, SWP_NOSIZE

《VB label窗口移动问题》
答:If Label1.Left < -Label1.Width Then '-Label1.Width 表示当Label1在向左移动的过程中,完全进入到窗体的左边,此时Label1已超出了窗体的范围,恰好看不到Label1 Label1.Left = Form1.Width'将Label1移动到窗体的右侧,当还是不位于窗体范围,再向左移动的话就恰好能看到Label1 Else Label1...

《标签沿窗口移动 VB代码》
答:Private Sub Form_Resize() '保证窗口改变时,仍然能沿着窗口边缘移动 Select Case zt Case 3 Label1.Left = 0 Case 0 Label1.Top = 0 Case 1 Label1.Left = Me.ScaleWidth - Label1.Width Case 2 Label1.Top = Me.ScaleHeight - Label1.Height Case Else Label1.Left = 0 Label1.Top...

《如何使vb的窗体在电脑屏幕上随鼠标一起移动?》
答:Button As Integer, Shift As Integer, X As Single, Y As Single)If mMouseDown Then Me.Move Me.Left + X - mX, Me.Top + Y - mY End Sub 点击窗体后窗体随鼠标移动,再次点击停止跟随。鼠标将保持在点击(在窗体上的)的位置。MouseMove事件不是很灵敏,所以鼠标不能移动太快。

《VB程序 移动text框》
答:文本框只有两个属性,我的意思是只有Top和Left属性,而没有Under和Ringht属性,所以要实现向下移动,只要Top值增加就可以了,向右,Left值增加就可以了。可以输入代码:Text1.Top=Text1.Top+n Text1.Left=Text1.Left+n(n是值任意正整数)希望这对你有帮助。

《vb.net做的无窗口应用程序如何实现移动》
答:'我试过可以,你试试 Imports System.Drawing Imports System.Windows.Forms Public Class Form1 'Private oOriginalRegion As Region = Nothing ' 用于窗体移动 Private bFormDragging As Boolean = False Private oPointClicked As Point 'Private Sub Form1_Load(ByVal sender As System.Object, By...

《VB窗口2跟随窗口1移动》
答:加一个timer1,值设小一点,比如10 代码:formN.top = form1.top formN.left= form1.left +formN.width '窗口N在窗口1的右边 大体思路就是这样。遇到问题自己多想想,想信你能写出来

《VB 切换到指定的应用程序上》
答:AppActivate 语句将焦点移动到命名的应用程序或窗口,但并不影响焦点是否最大化或最小化。当用户采取行动改变焦点或将窗口关闭时,就会将焦点从活动的应用程序窗口移动出去。可用 Shell 函数启动一个应用程序并设置窗口样式。在决定激活哪个应用程序时,请将 title 与每一个运行中的应用程序的标题字符串进行...

《如何用VB如何使鼠标移动到窗口,窗口在屏幕四周移动》
答:你的程序可能是错在它对屏幕四角的概念的解释上吧,不同分辨率的屏幕的长宽都是不一定的,所以不应该用固定的数值来做这个程序,我用另一个方法写了这个程序,下面是代码,希望对你会有帮助Dim a As IntegerPrivate Sub Form_Load()a = 0 Form1.Top = 0 Form1.Left = 0 End SubPrivate Sub Form...

《VB 能否控制 office 应用程序窗口的位置和大小》
答:零表示失败 参数表 参数 类型及说明 hwnd Long,欲移动窗口的句柄 x Long,窗口新的左侧位置 y Long,窗口新的顶部位置 nWidth Long,窗口的新宽度 nHeight Long,窗口的高宽度 bRepaint Long,如窗口此时应重画,则设为TRUE(非零)。FALSE(零)则表明应用程序会自己决定是否重画窗口 ...

《怎么用vb做一个窗口随鼠标移动而移动》
答:像楼上说的那样 用时钟 获取鼠标位置 然后将鼠标直接赋值给窗口的坐标 代码: Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long '先调用GetCursorPos函数,用来获取鼠标坐标的 Private Type POINTAPI x As Long y As Long End Type Dim pos As POINTAPI ...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网