All pastes #783681 Raw Edit

Stuff

public text v1 · immutable
·published 2007-11-19 09:20 UTC
rendered paste body
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 PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_COMMAND = &H111
Private Const WM_CHAR = &H102
Private Const VK_RETURN = &HD

Private Function SetPSM(ByVal text As String) As Boolean
    Dim hParentWnd, hChildWnd As Long
    SetPSM = False
    hParentWnd = FindWindow("MSBLWindowClass", vbNullString)
    If hParentWnd <> 0 Then
        hChildWnd = FindWindowEx(hParentWnd, 0, "DirectUIHWND", vbNullString)
        If hChildWnd <> 0 Then
            PostMessage hParentWnd, WM_COMMAND, 56606, 0
            Dim i As Integer
            For i = 1 To Len(text)
                Call PostMessage(hChildWnd, WM_CHAR, Asc(Mid$(text, i, 1)), 0)
            Next i
            PostMessage hChildWnd, WM_CHAR, VK_RETURN, 0
            SetPSM = True
        End If
    End If
End Function