wolf9228 Posted April 18, 2011 Posted April 18, 2011 (edited) connectTwoprogram.zip ProgramA.au3 expandcollapse popup#Include <WinAPI.au3> #Include <SendMessage.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $ConnectOK = 99999 , $iGuiHwnd = 0 , $ConnectHWnd , $ConnectMsg $GuiHwnd = GUICreate("ProgramA", 199, 147, 88, 177) $Button1 = GUICtrlCreateButton("GetConnectHWnd", 16, 16, 169, 33, $WS_GROUP) $Button2 = GUICtrlCreateButton("SendMessage", 13, 69, 169, 33, $WS_GROUP) $ConnectMsg = RegisterConnectMsg("ConnectMsg","Password") $DataTransferMsg = RegisterMsg("DataTransferMsg","DataTransferMsgProc") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $ConnectHWnd = GetConnectHWnd($GuiHwnd) if ($ConnectHWnd) Then MsgBox(0,"MSG","Ok") Case $Button2 if ($ConnectHWnd) Then _ Send_Message($ConnectHWnd,$DataTransferMsg,1,2,3,4) EndSwitch WEnd Func DataTransferMsgProc($hWnd,$Msg,$wParam,$lParam) $WParamLoWord = _WinAPI_LoWord($wParam) $WParamHiWord = _WinAPI_HiWord($wParam) $LParamLoWord = _WinAPI_LoWord($lParam) $LParamHiWord = _WinAPI_HiWord($lParam) $Text = _ "From ProgramB To ProgramA" & @CRLF & _ "$hWnd ==> " & $hWnd & @CRLF & _ "$WParamLoWord ==> " & $WParamLoWord & @CRLF & _ "$WParamHiWord ==> " & $WParamHiWord & @CRLF & _ "$LParamLoWord ==> " & $LParamLoWord & @CRLF & _ "$LParamHiWord ==> " & $LParamHiWord MsgBox(0,"DataTransferMsg",$Text) Return 1 EndFunc Func RegisterConnectMsg($NewStrMsgConnect,$EncryptPassword) $NewMsgId = RegisterWindowMessage(String($EncryptPassword & $NewStrMsgConnect)) if @error Then Return SetError(2,0,0) GUIRegisterMsg($NewMsgId,"ConnectProc") if @error Then Return SetError(3,0,0) Return SetError(0,0,$NewMsgId) EndFunc Func GetConnectHWnd($GuiHwnd,$TimeOut = 10000) if Not IsHWnd($GuiHwnd) Then Return SetError(1,0,0) Local $RT = 0 , $HWND = 0 , $begin = TimerInit() While 1 $HWND = FindWindowEx(0,$HWND,0,0) if ($GuiHwnd = $HWND) Then ContinueLoop $RT = _SendMessage($HWND,$ConnectMsg,0,0) if ($RT = $ConnectOK) Or TimerDiff($begin) >= $TimeOut Then ExitLoop WEnd if ($RT <> $ConnectOK) Then Return SetError(4,0,0) Return SetError(0,0,$HWND) EndFunc Func ConnectProc($hWnd,$Msg,$wParam,$lParam) Return $ConnectOK EndFunc Func Send_Message($ConnectHWnd,$MsgId,$WParamLoWord,$WParamHiWord,$LParamLoWord,$LParamHiWord) $WParam = _WinAPI_MakeLong($WParamLoWord,$WParamHiWord) $LParam = _WinAPI_MakeLong($LParamLoWord,$LParamHiWord) Return _SendMessage($ConnectHWnd,$MsgId,$WParam,$LParam) EndFunc Func RegisterMsg($NewStrMsgName,$MsgFunction) $NewMsgId = RegisterWindowMessage($NewStrMsgName) if @error Then Return SetError(1,0,0) GUIRegisterMsg($NewMsgId,$MsgFunction) if @error Then Return SetError(2,0,0) Return SetError(0,0,$NewMsgId) EndFunc Func FindWindowEx($hwndParent,$hwndChildAfter,$lpszClass,$lpszWindow) Local $DataTypeA = "int" , $DataTypeB = "int" if IsString($lpszClass) Then $DataTypeA = "WSTR" if IsString($lpszWindow) Then $DataTypeB = "WSTR" $RT = DllCall("User32.dll","HWND","FindWindowExW","HWND",$hwndParent,"HWND",$hwndChildAfter, _ $DataTypeA,$lpszClass,$DataTypeB,$lpszWindow) if @error Or $RT[0] = 0 Then Return SetError(1,0,0) Return SetError(0,0,$RT[0]) EndFunc Func RegisterWindowMessage($lpString) $RT = DllCall("User32.dll","int","RegisterWindowMessageW","WSTR",$lpString) if @error Or $RT[0] = 0 Then Return SetError(1,0,0) Return SetError(0,0,$RT[0]) EndFunc ProgramB.au3 expandcollapse popup#Include <WinAPI.au3> #Include <SendMessage.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $ConnectOK = 99999 , $iGuiHwnd = 0 , $ConnectHWnd , $ConnectMsg $GuiHwnd = GUICreate("ProgramB", 199, 147, 88, 177) $Button1 = GUICtrlCreateButton("GetConnectHWnd", 16, 16, 169, 33, $WS_GROUP) $Button2 = GUICtrlCreateButton("SendMessage", 13, 69, 169, 33, $WS_GROUP) $ConnectMsg = RegisterConnectMsg("ConnectMsg","Password") $DataTransferMsg = RegisterMsg("DataTransferMsg","DataTransferMsgProc") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $ConnectHWnd = GetConnectHWnd($GuiHwnd) if ($ConnectHWnd) Then MsgBox(0,"MSG","Ok") Case $Button2 if ($ConnectHWnd) Then _ Send_Message($ConnectHWnd,$DataTransferMsg,5,6,7,8) EndSwitch WEnd Func DataTransferMsgProc($hWnd,$Msg,$wParam,$lParam) $WParamLoWord = _WinAPI_LoWord($wParam) $WParamHiWord = _WinAPI_HiWord($wParam) $LParamLoWord = _WinAPI_LoWord($lParam) $LParamHiWord = _WinAPI_HiWord($lParam) $Text = _ "From ProgramA To ProgramB" & @CRLF & _ "$hWnd ==> " & $hWnd & @CRLF & _ "$WParamLoWord ==> " & $WParamLoWord & @CRLF & _ "$WParamHiWord ==> " & $WParamHiWord & @CRLF & _ "$LParamLoWord ==> " & $LParamLoWord & @CRLF & _ "$LParamHiWord ==> " & $LParamHiWord MsgBox(0,"DataTransferMsg",$Text) Return 1 EndFunc Func RegisterConnectMsg($NewStrMsgConnect,$EncryptPassword) $NewMsgId = RegisterWindowMessage(String($EncryptPassword & $NewStrMsgConnect)) if @error Then Return SetError(2,0,0) GUIRegisterMsg($NewMsgId,"ConnectProc") if @error Then Return SetError(3,0,0) Return SetError(0,0,$NewMsgId) EndFunc Func GetConnectHWnd($GuiHwnd,$TimeOut = 10000) if Not IsHWnd($GuiHwnd) Then Return SetError(1,0,0) Local $RT = 0 , $HWND = 0 , $begin = TimerInit() While 1 $HWND = FindWindowEx(0,$HWND,0,0) if ($GuiHwnd = $HWND) Then ContinueLoop $RT = _SendMessage($HWND,$ConnectMsg,0,0) if ($RT = $ConnectOK) Or TimerDiff($begin) >= $TimeOut Then ExitLoop WEnd if ($RT <> $ConnectOK) Then Return SetError(4,0,0) Return SetError(0,0,$HWND) EndFunc Func ConnectProc($hWnd,$Msg,$wParam,$lParam) Return $ConnectOK EndFunc Func Send_Message($ConnectHWnd,$MsgId,$WParamLoWord,$WParamHiWord,$LParamLoWord,$LParamHiWord) $WParam = _WinAPI_MakeLong($WParamLoWord,$WParamHiWord) $LParam = _WinAPI_MakeLong($LParamLoWord,$LParamHiWord) Return _SendMessage($ConnectHWnd,$MsgId,$WParam,$LParam) EndFunc Func RegisterMsg($NewStrMsgName,$MsgFunction) $NewMsgId = RegisterWindowMessage($NewStrMsgName) if @error Then Return SetError(1,0,0) GUIRegisterMsg($NewMsgId,$MsgFunction) if @error Then Return SetError(2,0,0) Return SetError(0,0,$NewMsgId) EndFunc Func FindWindowEx($hwndParent,$hwndChildAfter,$lpszClass,$lpszWindow) Local $DataTypeA = "int" , $DataTypeB = "int" if IsString($lpszClass) Then $DataTypeA = "WSTR" if IsString($lpszWindow) Then $DataTypeB = "WSTR" $RT = DllCall("User32.dll","HWND","FindWindowExW","HWND",$hwndParent,"HWND",$hwndChildAfter, _ $DataTypeA,$lpszClass,$DataTypeB,$lpszWindow) if @error Or $RT[0] = 0 Then Return SetError(1,0,0) Return SetError(0,0,$RT[0]) EndFunc Func RegisterWindowMessage($lpString) $RT = DllCall("User32.dll","int","RegisterWindowMessageW","WSTR",$lpString) if @error Or $RT[0] = 0 Then Return SetError(1,0,0) Return SetError(0,0,$RT[0]) EndFunc Edited April 18, 2011 by wolf9228 Skitty 1 صرح السماء كان هنا
MrCreatoR Posted April 18, 2011 Posted April 18, 2011 Can we send other data than Inits? Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team
wolf9228 Posted April 18, 2011 Author Posted April 18, 2011 Can we send other data than Inits? Yes, you can send a Struct Pointer .. See this example ProgramA.au3 expandcollapse popup#Include <WinAPI.au3> #Include <SendMessage.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $ConnectOK = 99999 , $iGuiHwnd = 0 , $ConnectHWnd , $ConnectMsg $GuiHwnd = GUICreate("ProgramA", 199, 147, 88, 177) $Button1 = GUICtrlCreateButton("GetConnectHWnd", 16, 16, 169, 33, $WS_GROUP) $Button2 = GUICtrlCreateButton("SendMessage", 13, 69, 169, 33, $WS_GROUP) $ConnectMsg = RegisterConnectMsg("ConnectMsg","Password") $DataTransferMsg = RegisterMsg("DataTransferMsg","DataTransferMsgProc") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $ConnectHWnd = GetConnectHWnd($GuiHwnd) if ($ConnectHWnd) Then MsgBox(0,"MSG","Ok") Case $Button2 if ($ConnectHWnd) Then $StructTag = "int var1;ubyte var2;uint var3;char var4[128]" $Struct = DllStructCreate($StructTag) DllStructSetData($Struct,"var1",-1) DllStructSetData($Struct,"var2",255) DllStructSetData($Struct,"var3",-1) DllStructSetData($Struct,"var4","Hello") DllStructSetData($Struct,"var4",Asc("h"),1) $StructPtr = DllStructGetPtr($Struct) _SendMessage($ConnectHWnd,$DataTransferMsg,_WinAPI_GetCurrentProcessID(),$StructPtr) EndIf EndSwitch WEnd Func DataTransferMsgProc($hWnd,$Msg,$ProcessID,$Pointer) $StructTag = "int var1;ubyte var2;uint var3;char var4[128]" $Struct = Read_Pointer_FromProcessMemory($ProcessID,$Pointer,$StructTag) MsgBox(0,"DllStruct From ProgramB TO ProgramA", _ "Struct Size: " & DllStructGetSize($Struct) & @CRLF & _ "Struct pointer: " & DllStructGetPtr($Struct) & @CRLF & _ "Data:" & @CRLF & _ DllStructGetData($Struct,1) & @CRLF & _ DllStructGetData($Struct,2) & @CRLF & _ DllStructGetData($Struct,3) & @CRLF & _ DllStructGetData($Struct,4)) Return 1 EndFunc Func Read_Pointer_FromProcessMemory($ProcessID,$Pointer,$StructTag) Local $iSYNCHRONIZE = (0x00100000),$iSTANDARD_RIGHTS_REQUIRED = (0x000F0000) Local $iPROCESS_ALL_ACCESS = ($iSTANDARD_RIGHTS_REQUIRED + $iSYNCHRONIZE + 0xFFF) Local $hProcess , $Struct , $StructPtr , $StructSize , $iRead $hProcess = _WinAPI_OpenProcess($iPROCESS_ALL_ACCESS,False,$ProcessID) if @error Then Return SetError(@error,1,$Struct) $Struct = DllStructCreate($StructTag) $StructSize = DllStructGetSize($Struct) $StructPtr = DllStructGetPtr($Struct) _WinAPI_ReadProcessMemory($hProcess,$Pointer,$StructPtr,$StructSize,$iRead) Return SetError(@error,2,$Struct) EndFunc Func RegisterConnectMsg($NewStrMsgConnect,$EncryptPassword) $NewMsgId = RegisterWindowMessage(String($EncryptPassword & $NewStrMsgConnect)) if @error Then Return SetError(2,0,0) GUIRegisterMsg($NewMsgId,"ConnectProc") if @error Then Return SetError(3,0,0) Return SetError(0,0,$NewMsgId) EndFunc Func GetConnectHWnd($GuiHwnd,$TimeOut = 10000) if Not IsHWnd($GuiHwnd) Then Return SetError(1,0,0) Local $RT = 0 , $HWND = 0 , $begin = TimerInit() While 1 $HWND = FindWindowEx(0,$HWND,0,0) if ($GuiHwnd = $HWND) Then ContinueLoop $RT = _SendMessage($HWND,$ConnectMsg,0,0) if ($RT = $ConnectOK) Or TimerDiff($begin) >= $TimeOut Then ExitLoop WEnd if ($RT <> $ConnectOK) Then Return SetError(4,0,0) Return SetError(0,0,$HWND) EndFunc Func ConnectProc($hWnd,$Msg,$wParam,$lParam) Return $ConnectOK EndFunc Func RegisterMsg($NewStrMsgName,$MsgFunction) $NewMsgId = RegisterWindowMessage($NewStrMsgName) if @error Then Return SetError(1,0,0) GUIRegisterMsg($NewMsgId,$MsgFunction) if @error Then Return SetError(2,0,0) Return SetError(0,0,$NewMsgId) EndFunc Func FindWindowEx($hwndParent,$hwndChildAfter,$lpszClass,$lpszWindow) Local $DataTypeA = "int" , $DataTypeB = "int" if IsString($lpszClass) Then $DataTypeA = "WSTR" if IsString($lpszWindow) Then $DataTypeB = "WSTR" $RT = DllCall("User32.dll","HWND","FindWindowExW","HWND",$hwndParent,"HWND",$hwndChildAfter, _ $DataTypeA,$lpszClass,$DataTypeB,$lpszWindow) if @error Or $RT[0] = 0 Then Return SetError(1,0,0) Return SetError(0,0,$RT[0]) EndFunc Func RegisterWindowMessage($lpString) $RT = DllCall("User32.dll","int","RegisterWindowMessageW","WSTR",$lpString) if @error Or $RT[0] = 0 Then Return SetError(1,0,0) Return SetError(0,0,$RT[0]) EndFunc ProgramB.au3 expandcollapse popup#Include <WinAPI.au3> #Include <SendMessage.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $ConnectOK = 99999 , $iGuiHwnd = 0 , $ConnectHWnd , $ConnectMsg $GuiHwnd = GUICreate("ProgramB", 199, 147, 88, 177) $Button1 = GUICtrlCreateButton("GetConnectHWnd", 16, 16, 169, 33, $WS_GROUP) $Button2 = GUICtrlCreateButton("SendMessage", 13, 69, 169, 33, $WS_GROUP) $ConnectMsg = RegisterConnectMsg("ConnectMsg","Password") $DataTransferMsg = RegisterMsg("DataTransferMsg","DataTransferMsgProc") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $ConnectHWnd = GetConnectHWnd($GuiHwnd) if ($ConnectHWnd) Then MsgBox(0,"MSG","Ok") Case $Button2 if ($ConnectHWnd) Then $StructTag = "int var1;ubyte var2;uint var3;char var4[128]" $Struct = DllStructCreate($StructTag) DllStructSetData($Struct,"var1",-2) DllStructSetData($Struct,"var2",555) DllStructSetData($Struct,"var3",-2) DllStructSetData($Struct,"var4","Autoit") DllStructSetData($Struct,"var4",Asc("A"),1) $StructPtr = DllStructGetPtr($Struct) _SendMessage($ConnectHWnd,$DataTransferMsg,_WinAPI_GetCurrentProcessID(),$StructPtr) EndIf EndSwitch WEnd Func DataTransferMsgProc($hWnd,$Msg,$ProcessID,$Pointer) $StructTag = "int var1;ubyte var2;uint var3;char var4[128]" $Struct = Read_Pointer_FromProcessMemory($ProcessID,$Pointer,$StructTag) MsgBox(0,"DllStruct From ProgramA TO ProgramB", _ "Struct Size: " & DllStructGetSize($Struct) & @CRLF & _ "Struct pointer: " & DllStructGetPtr($Struct) & @CRLF & _ "Data:" & @CRLF & _ DllStructGetData($Struct,1) & @CRLF & _ DllStructGetData($Struct,2) & @CRLF & _ DllStructGetData($Struct,3) & @CRLF & _ DllStructGetData($Struct,4)) Return 1 EndFunc Func Read_Pointer_FromProcessMemory($ProcessID,$Pointer,$StructTag) Local $iSYNCHRONIZE = (0x00100000),$iSTANDARD_RIGHTS_REQUIRED = (0x000F0000) Local $iPROCESS_ALL_ACCESS = ($iSTANDARD_RIGHTS_REQUIRED + $iSYNCHRONIZE + 0xFFF) Local $hProcess , $Struct , $StructPtr , $StructSize , $iRead $hProcess = _WinAPI_OpenProcess($iPROCESS_ALL_ACCESS,False,$ProcessID) if @error Then Return SetError(@error,1,$Struct) $Struct = DllStructCreate($StructTag) $StructSize = DllStructGetSize($Struct) $StructPtr = DllStructGetPtr($Struct) _WinAPI_ReadProcessMemory($hProcess,$Pointer,$StructPtr,$StructSize,$iRead) Return SetError(@error,2,$Struct) EndFunc Func RegisterConnectMsg($NewStrMsgConnect,$EncryptPassword) $NewMsgId = RegisterWindowMessage(String($EncryptPassword & $NewStrMsgConnect)) if @error Then Return SetError(2,0,0) GUIRegisterMsg($NewMsgId,"ConnectProc") if @error Then Return SetError(3,0,0) Return SetError(0,0,$NewMsgId) EndFunc Func GetConnectHWnd($GuiHwnd,$TimeOut = 10000) if Not IsHWnd($GuiHwnd) Then Return SetError(1,0,0) Local $RT = 0 , $HWND = 0 , $begin = TimerInit() While 1 $HWND = FindWindowEx(0,$HWND,0,0) if ($GuiHwnd = $HWND) Then ContinueLoop $RT = _SendMessage($HWND,$ConnectMsg,0,0) if ($RT = $ConnectOK) Or TimerDiff($begin) >= $TimeOut Then ExitLoop WEnd if ($RT <> $ConnectOK) Then Return SetError(4,0,0) Return SetError(0,0,$HWND) EndFunc Func ConnectProc($hWnd,$Msg,$wParam,$lParam) Return $ConnectOK EndFunc Func RegisterMsg($NewStrMsgName,$MsgFunction) $NewMsgId = RegisterWindowMessage($NewStrMsgName) if @error Then Return SetError(1,0,0) GUIRegisterMsg($NewMsgId,$MsgFunction) if @error Then Return SetError(2,0,0) Return SetError(0,0,$NewMsgId) EndFunc Func FindWindowEx($hwndParent,$hwndChildAfter,$lpszClass,$lpszWindow) Local $DataTypeA = "int" , $DataTypeB = "int" if IsString($lpszClass) Then $DataTypeA = "WSTR" if IsString($lpszWindow) Then $DataTypeB = "WSTR" $RT = DllCall("User32.dll","HWND","FindWindowExW","HWND",$hwndParent,"HWND",$hwndChildAfter, _ $DataTypeA,$lpszClass,$DataTypeB,$lpszWindow) if @error Or $RT[0] = 0 Then Return SetError(1,0,0) Return SetError(0,0,$RT[0]) EndFunc Func RegisterWindowMessage($lpString) $RT = DllCall("User32.dll","int","RegisterWindowMessageW","WSTR",$lpString) if @error Or $RT[0] = 0 Then Return SetError(1,0,0) Return SetError(0,0,$RT[0]) EndFunc Skitty 1 صرح السماء كان هنا
MrCreatoR Posted April 18, 2011 Posted April 18, 2011 Yes, you can send a Struct Pointer .. See this exampleWow, so we can transfer even arrays... nice!P.SWhat about objects? Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team
wolf9228 Posted April 20, 2011 Author Posted April 20, 2011 Wow, so we can transfer even arrays... nice!P.SWhat about objects? I do not think that it is possible to manipulate objects and structures DirectlyThrough the function send message but can transfer stored in the point and then re- Configured againobjects can be through windows functions stored in the structuresSuch functionsHBITMAP ObjGetDIBitsSetDIBitsHPEN ObjExtCreatePenCreatePenIndirect Skitty 1 صرح السماء كان هنا
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now