怎样用VB编程实现获取一个正在运行的程序的焦点?

运行AlarmLogViewer.exe这个程序时老是显示在其它程序后面。请问怎样让它获得焦点?并且只有关闭这个程序后,才能让其它程序获得焦点。
我做了一个按钮让AlarmLogViewer.exe运行,但是一打开就最小化,请问怎样让它展开?

窗体置顶代码

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
Public Const SWP_NOMOVE= &H2 '不移动窗体
Public Const SWP_NOSIZE=&H1 '不改变窗体尺寸
Public Const Flag=SWP_NOMOVE Or SWP_NOSIZE
Public Const HWND_TOPMOST=-1 '窗体总在最前面
Public Const HWND_NOTOPMOST=-2 '窗体不在最前面
为窗体添加代码如下:
Private Sub cmdNormal_Click()
cmdTopMost.Enabled=True
cmdNormal. Enabled= False
Form1.Captio = "现在是普通窗口"
SetWindowPos Form1.hwnd,HWND_NOTOPMOST,0,0,0,0,Flag
End Sub
Private Sub cmdTopMost_Click()
cmdTopMost.Enabled = False
cmdNormal.Enabled = True
Form1.Caption = "现在是TopMost窗口"
SetWindowPos Form1.hwnd,HWND_TOPMOST,0,0,0,0,Flag
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-17
将那个窗体的一个属性(我忘了是什么属性)激活!
第2个回答  2011-02-17
Option Explicit
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Sub Command1_Click()
Dim Resule As Long
Resule = FindWindow("AlarmLogViewer.exe", vbNullString)
SetForegroundWindow (Resule)
End Sub本回答被提问者和网友采纳

运行时vb如何在文本框获得焦点?
编程如下:Private Sub Text1_Click()Text1 = Left(Text1, (Text1.SelStart)) & "你要插入的字符" & Right(Text1, Len(Text1) - (Text1.SelStart))End Sub Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应...

运行时vb如何在文本框获得焦点
1、打开VB软件,在窗体上面添加两个文本框,如下图所示。2、分别设置两个文本框的属性,清空文本框的内容,如下图所示。3、在窗体上,添加两个命令按钮,如下图所示。4、分别设置两个文本框的属性,分别命名为“左”、“右”,如下图所示。5、双击名称为“左”的命令按钮,编辑其代码,如下图所...

VBA 获取焦点
用这一句话就可以搞定了:application.VBE.ActiveCodePane.CodeModule.Name

vb 如何让我的程序永远获得焦点
调用API函数SETWINDOWPOS可达到这一目的。该函数的语法是:SetWindowPos (hWnd, hwndInsetAfter, x, y, cx, xy, wFlags)其中:hWnd --- 窗体的句柄(handle)。hWndInsetAfter --- 它就是决定是否“总在前”的参数,应用中设置为: HWND_TOPMOST 总在前 HWND_NOTOPMOST 正常的 x,y,cx,cy...

VBA EXCEL 如何获得焦点?
在窗体那里贴上以下代码:Private Declare Function SetActiveWindow Lib "user32.dll" (ByVal hwnd As Long) As LongPrivate Sub UserForm_Activate()SetActiveWindow Application.hwndEnd Sub你以上的代码更改为:Private Sub Worksheet_SelectionChange(ByVal Target As Range)UserForm1.HideOn Error GoTo LDoEventsx ...

vb 获得当前焦点所在控件句柄
Private Declare Function GetFocus Lib "user32" () As Long Public Function GetHwnd() As Long Dim Hwnd As Long Dim PID As Long Dim TID As Long Dim hWndFocus As Long Hwnd = GetForegroundWindow If Hwnd Then TID = GetWindowThreadProcessId(Hwnd, PID)AttachThreadInput App.ThreadID, ...

vb.net中,在程序运行,用户未操作时,使文本框textbox1获取焦点的代码是什...
按下,显示控件,并获得焦点.Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Visible = True TextBox1.Focus()End Sub 判断是否获得焦点.Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System....

vb 获得焦点
应该是4.commandbutton 因为依次创建的话,4.commandbutton的Tabindex属性会被首先赋值为0.而,窗体执行以后Tabindex属性中数值最低的会首先获得焦点,所以应该选4.

VB事件的焦点
要使用某个控件获得焦点,可以有如下三种方法:(1)、使用键盘上的“Tab”键,将焦点移到相应的控件上。(2)、使用鼠标直接在相应的控件上单击就可以了。(3)、在程序代码中使用该控件的“SetFocus”方法。对于绝大多数的控件,都具有“TabStop”属性和“Tablndex”属性。其中,“TabStop”属性是用来...

vb中如何按一下enter键使下一个text控件获得焦点
你如果使用VB.NET,点击其中一个“tab order”的图标,此时您可以单击每个控件的数字(越小越表示越容易被聚焦),NET默认就可以用Tab进行焦点切换(顺序就是按照数字从小到大的顺序)。

相似回答