Друзья, прошу помощи. Сейчас получается вернуть число, но нужно, чтобы возвращался произвольный текст в $Ret
Код:
$sData = 'Отправляемый текст'
$tMsg = DllStructCreate('char[' & StringLen($sData) + 1 & ']')
DllStructSetData($tMsg, 1, $sData)
$tCOPYDATA = DllStructCreate('dword;dword;ptr')
DllStructSetData($tCOPYDATA, 2, StringLen($sData) + 1)
DllStructSetData($tCOPYDATA, 3, DllStructGetPtr($tMsg))
$Ret = DllCall('user32.dll', 'lparam', 'SendMessage', 'hwnd', $hWnd, 'int', $WM_COPYDATA, 'wparam', 0, 'lparam', DllStructGetPtr($tCOPYDATA))
ConsoleWrite($Ret[0] & @CRLF)
Код:
GUIRegisterMsg($WM_COPYDATA, '_WM_COPYDATA')
Func _WM_COPYDATA($hWnd, $msgID, $wParam, $lParam)
$tCOPYDATA = DllStructCreate('dword;dword;ptr', $lParam)
$tMsg = DllStructCreate('char[' & DllStructGetData($tCOPYDATA, 2) & ']', DllStructGetData($tCOPYDATA, 3))
$sText = DllStructGetData($tMsg, 1); получаем отправленный текст
; выполняем операции
Return 'Возвращаем произвольный текст' ; если здесь указать например Return 123, то это работает, с произвольным текстом не получается
EndFunc