Jump to content
oasis375

Using _SendMessage to send keys to Notepad

Recommended Posts

[Sorry I meant "send keystrokes"]

Title is self explaining. I don't understand why this doesn't work:

#include <SendMessage.au3>
#include <WindowsConstants.au3>

Run("notepad.exe")
$hWnd = WinWait("[CLASS:Notepad]", "", 10)
$hControl = ControlGetHandle($hWnd, "", "Edit1")

;This works
ControlSend($hControl, "", "", "hello")
;This doesn't work
_SendMessage($hControl, "hello")

[Just in case. This is a "thought experiment"; don't ask me why I don't use Send(), ControlSend(), etc.]

Edited by oasis375

Share this post


Link to post
Share on other sites

Thank you, guys. This is what works:

#include <SendMessage.au3>
#include <WindowsConstants.au3>

Run("notepad.exe")
$hWnd = WinWait("[CLASS:Notepad]", "", 10)
$hControl = ControlGetHandle($hWnd, "", "Edit1")
$text = "this is a line"
$struct_string = DllStructCreate("char[" & StringLen($text) + 1 & "]")
DllStructSetData($struct_string, 1, $text)
_SendMessageA($hControl, $WM_SETTEXT, 0, DllStructGetPtr($struct_string))

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...