Results 1 to 3 of 3

Thread: SendMessage to a window

  1. #1

    Thread Starter
    Addicted Member
    Join Date
    Oct 2002
    Location
    Connecticut
    Posts
    135

    Question SendMessage to a window

    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long

    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Dim ret As Long
    Dim lResult As Long
    ret = UtilityModule.FindWindow("OSKMainClass", "On-Screen Keyboard")
    lResult = UtilityModule.SendMessage(ret, 100, 15, 1)

    I am trying to send message to a window with the code above and it does not work. Can someone look at this and give some guidance. I got wMsg,wParam and lParam from Spy++.

  2. #2
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709
    If you have Spy++ then check the window handels to make sure
    your getting the correct one. They are in hex as compared to vb
    decimal value. Findwindow only will get the main window. It looks
    like you are trying to get a child window? If so use FindWindowEx.

    HTH
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  3. #3

    Thread Starter
    Addicted Member
    Join Date
    Oct 2002
    Location
    Connecticut
    Posts
    135

    RESOLVED

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Dim ret As Long
    Dim lResult As Long
    ret = UtilityModule.FindWindow("OSKMainClass", "On-Screen Keyboard")
    lResult = UtilityModule.SendMessage(ret, &H403, &H15, &H80000002)

    Most of the arguments were pulled from Spy++. This code is used to turn the English characters from c:\windows\system32\osk.exe to Japanese characters.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width