如何知道别的软件上的edit有没有焦点呀、做过的请做答。请给点代码,100等你拿。

解决方案 »

  1.   

    焦点,你按tab看看就知道了。
      

  2.   

    别的“软件”上的edit有没有焦点?
    有难度。
      

  3.   

    最多只能看看它是否用的是标准edit。
      

  4.   

    你想做什么?
    让别的软件的edit控件获得焦点?
      

  5.   

    转载一段VB代码,不知道对你有没有帮助,你看看吧!Option Explicit
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
    Private Const WM_SETFOCUS = &H7Private Sub Command1_Click()
    Dim Handle As Long, topHandle As Long
    Handle = FindWindow("CabinetWClass", "我的电脑")   ' 只能是我的电脑,资源管理器不行
    topHandle = Handle
    Handle = FindWindowEx(Handle, 0&, "WorkerW", vbNullString)
    Handle = FindWindowEx(Handle, 0&, "ReBarWindow32", vbNullString)
    Handle = FindWindowEx(Handle, 0&, "ComboBoxEx32", vbNullString)
    Handle = FindWindowEx(Handle, 0&, "ComboBox", vbNullString)
    Debug.Print Handle  ' 这个Handle就是我的电脑的Combo的句柄了
    SetForegroundWindow topHandle
    SendMessage Handle, WM_SETFOCUS, 0, 0    ' 让那个Combo获得焦点
    End Sub