Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPrivate Sub Timer1_Timer()
Dim TheWindows, X As String
TheWindows = String(100, Chr$(0))
GetWindowText GetForegroundWindow(), TheWindows, 256
X = Left$(TheWindows, 15)
Text2.Text = X
If UCase$("Program Manager") = UCase$(X) Then
Text1.Text = "sok"
End If
End Sub
我的程序是看当前窗体是不是桌面,但TEXT2.TEXT显示的是"Program Manager",但是TEXT1.TEXT总是不显示"SOK",我的程序到底是什么地方出错了???

解决方案 »

  1.   

    Dim TheWindows, X As String
    这样定义,我的text2也不显示,Dim TheWindows as string, X As String两个text显示正常的
      

  2.   

    谢谢楼上,你说的方法确实可以,但是这是什么原因,难到Dim TheWindows, X As String这样定义THEWINDOWS就不是STRING
      

  3.   

    摘自msdn,请看第三个示例语句Dim 语句示例
    该示例演示使用 Dim 语句来声明变量,也演示了用 Dim 语句来声明数组。数组的缺省下界为 0,可以在模块级使用 Option Base 语句来取代数组的缺省下界。'AnyValue 和 MyValue 按缺省情况被声明为 Variant,
    '同时值被设为 Empty。
    Dim AnyValue, MyValue'显式声明一个 Integer 类型的变量。
    Dim Number As Integer'在一行中声明多个变量。AnotherVar 为 Variant 类型,
    '因为它的类型被省略了。
    Dim AnotherVar, Choice As Boolean, BirthDate As Date'DayArray 是一个有 51 个索引(从 0 到 50)元素的 Variant 数组,
    '假设在当前模块中 Option Base 被设为 0(缺省设置)。
    Dim DayArray(50)'Matrix 是一个二维 Integer 数组。
    Dim Matrix(3, 4) As Integer'MyMatrix 是一个显式指定了上下界
    '的三维 double 数组。
    Dim MyMatrix(1 To 5,  4 To 9,  3 To 5) As Double'BirthDay 是一个索引从 1 到 10 的 date 数组。
    Dim BirthDay(1 To 10) As Date      'MyArray 是一个 variant 动态数组。
    Dim MyArray()