うまくいかない原因はWM_SETTEXTではなく、GetActiveWindowですよ。
これだと自分自身のハンドルです。
必要なのはnotepadのEditコントロールのハンドル。
そしてこの部分はWindows10までとWindows11のタブ無し、タブ有りの3種類あるようです。
上記を踏まえて修正してみました。
多分これでいけるとおもうんですが…
いかがでしょうか?
#include "user32.as"
#include "kernel32.as"
#include "hspext.as"
#define WM_SETTEXT 0x000C
sdim temp, 500
clipget temp, 500
exec "notepad", 16
// GetActiveWindow
// whnd=stat
//メモ帳が起動するまでループ
repeat
FindWindow "Notepad", 0
whnd = stat //メモ帳のウインドウハンドル
if whnd != 0{
break
}
wait(10)
loop
// Windows11のメモ帳は入力できるようになるまでが遅いので一寸待機
wait(200)
// Windows10
FindWindowExw whnd, 0 , "Edit", 0
a = stat //メモ帳のEditコントロールハンドル
if a != 0{
Chnd = a
}else{
// Windows11(タブ無し)
FindWindowExw whnd, 0 , "RichEditD2DPT", 0
b = stat //メモ帳のRichEditコントロールハンドル
if b != 0{
Chnd = b
}else{
// Windows11(タブ有り)※NotepadTextBox と RichEditD2DPT の入れ子
FindWindowExw whnd, 0 , "NotepadTextBox", 0
FindWindowExw stat, 0 , "RichEditD2DPT", 0
c = stat //メモ帳のRichEditコントロールハンドル
Chnd = c
}else{
//どれでも無い
Chnd = 0
}
}
// sendmsg whnd, WM_SETTEXT, 0, varptr(temp)
if Chnd == 0{
mes "メモ帳が見つからないよ?"
}else{
mes "メモ帳に送ったよ!"
sendmsg Chnd, WM_SETTEXT, 0, varptr(temp)
}
stop