Local $hWndTarget1 =459362 ;????, ???????? ???????? ??????? #1
Local $hWndTarget2 = 1114152;????, ???????? ???????? ??????? #2
Local $hGuiMain = GUICreate( "", 200, 200, -1, -1 ) ;???? ???????, ??????? ????? ?? ??????????????
GUIRegisterMsg( 0x100, "_OnKeyDownUp" ) ;???????????? ????????? WM_KEYDOWN
GUIRegisterMsg( 0x101, "_OnKeyDownUp" ) ;???????????? ????????? WM_KEYUP
GUISetState( @SW_SHOW, $hGuiMain )
; ---
Local $User32Dll = DllOpen( "user32.dll" )
; ---
Do
Sleep( 10 )
Until GUIGetMsg() = -3
DllClose( $User32Dll )
Func _OnKeyDownUp( $hWnd, $iMsg, $wParam, $lParam ) ;??? ?????? ? ???? ??????? ???? ?????? ????? ???????, ??? ????? ?????????????? ? ???? 1 ? 2
;iMsg - 0x0100 ??? 0x0101 (?????? ? ?????? ?????????????)
;wParam - ??? ???????
ConsoleWrite($iMsg & @TAB & $wParam & @CRLF )
DllCall( $User32Dll, "long", "PostMessage", "hwnd", $hWndTarget1, "int", $iMsg, "int", $wParam, "int", 0 ) ;?????????????? ? ???? #1
DllCall( $User32Dll, "long", "PostMessage", "hwnd", $hWndTarget2, "int", $iMsg, "int", $wParam, "int", 0 ) ;?????????????? ? ???? #2
EndFunc
сам скрипт вот такой сдер здесь на форуме и пытаюсь подстроить под себяКод:Local $hWndTarget1 =459362 ;????, ???????? ???????? ??????? #1 Local $hWndTarget2 = 1114152;????, ???????? ???????? ??????? #2 Local $hGuiMain = GUICreate( "", 200, 200, -1, -1 ) ;???? ???????, ??????? ????? ?? ?????????????? GUIRegisterMsg( 0x100, "_OnKeyDownUp" ) ;???????????? ????????? WM_KEYDOWN GUIRegisterMsg( 0x101, "_OnKeyDownUp" ) ;???????????? ????????? WM_KEYUP GUISetState( @SW_SHOW, $hGuiMain ) ; --- Local $User32Dll = DllOpen( "user32.dll" ) ; --- Do Sleep( 10 ) Until GUIGetMsg() = -3 DllClose( $User32Dll ) Func _OnKeyDownUp( $hWnd, $iMsg, $wParam, $lParam ) ;??? ?????? ? ???? ??????? ???? ?????? ????? ???????, ??? ????? ?????????????? ? ???? 1 ? 2 ;iMsg - 0x0100 ??? 0x0101 (?????? ? ?????? ?????????????) ;wParam - ??? ??????? ConsoleWrite($iMsg & @TAB & $wParam & @CRLF ) DllCall( $User32Dll, "long", "PostMessage", "hwnd", $hWndTarget1, "int", $iMsg, "int", $wParam, "int", 0 ) ;?????????????? ? ???? #1 DllCall( $User32Dll, "long", "PostMessage", "hwnd", $hWndTarget2, "int", $iMsg, "int", $wParam, "int", 0 ) ;?????????????? ? ???? #2 EndFunc
это два окна одного приложения запущенные через песочницу.Хочу чтобы действия в окнах синхронизировалисьне совсем понял идею. дескрипторы при каждом запуске разные. в чьё окно передается дескриптор? между своими программами?
#include <WinAPIFiles.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
Global $hapimp = _WinAPI_CreateFileMapping(-1, 1024, 'my file')
Global $hapiwf = _WinAPI_MapViewOfFile($hapimp)
Global $stData = DllStructCreate('wchar [256];wchar [256]', $hapiwf)
$Form1 = GUICreate('Окно 1', 449, 129, -1, -1)
Global $Input1 = GUICtrlCreateInput('', 24, 24, 281, 21)
Global $Label1 = GUICtrlCreateLabel('', 24, 72, 268, 17)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
Local $getdll, $stmp = ''
While 1
$getdll = DllStructGetData($stData, 1)
If Not ($getdll = $stmp) Then
GUICtrlSetData($Label1, $getdll)
$stmp = $getdll
EndIf
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $ilParam
Local $ID = _WinAPI_LoWord($iwParam)
Switch _WinAPI_HiWord($iwParam)
Case $EN_CHANGE
Switch $ID
Case $Input1
DllStructSetData($stData, 2, GUICtrlRead($Input1))
EndSwitch
EndSwitch
EndFunc ;==>WM_COMMAND
#include <WinAPIFiles.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
Global $hapimp = _WinAPI_CreateFileMapping(-1, 1024, 'my file')
Global $hapiwf = _WinAPI_MapViewOfFile($hapimp)
Global $stData = DllStructCreate('wchar [256];wchar [256]', $hapiwf)
$Form1 = GUICreate('Окно 2', 449, 129, 464, 200)
Global $Input1 = GUICtrlCreateInput('', 24, 24, 281, 21)
Global $Label1 = GUICtrlCreateLabel('', 24, 72, 268, 17)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
Local $getdll, $stmp = ''
While 1
$getdll = DllStructGetData($stData, 2)
If Not ($getdll = $stmp) Then
GUICtrlSetData($Label1, $getdll)
$stmp = $getdll
EndIf
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $ilParam
Local $ID = _WinAPI_LoWord($iwParam)
Switch _WinAPI_HiWord($iwParam)
Case $EN_CHANGE
Switch $ID
Case $Input1
DllStructSetData($stData, 1, GUICtrlRead($Input1))
EndSwitch
EndSwitch
EndFunc ;==>WM_COMMAND