Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 1)

Модерирует : gyra, Maz

Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору


Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
 
Global $aRecv_Ctrls_Data[2][2]
 
$hGUI = GUICreate("_CommandsHandler_Proc", 200, 120)
 
$CheckBox = GUICtrlCreateCheckbox("Some checkbox", 20, 10)
 
$Check_Button = GUICtrlCreateButton("Check new controls...", 20, 80, 120, 20)
 
GUISetState()
GUIRegisterMsg($WM_COPYDATA, "_CommandsHandler_Proc")
 
While 1
    $nMsg = GUIGetMsg()
 
    Switch $nMsg
        Case -3
            Exit
        Case
$aRecv_Ctrls_Data[1][0] To $aRecv_Ctrls_Data[$aRecv_Ctrls_Data[0][0]][0]
            Local $nCtrlID = $nMsg
            If $nCtrlID = 0 Then ContinueLoop
 
            ;Here you can do whatever you need with the recieved control
        Case $Check_Button
            ;Here we will check our added controls...
 
            Local $sMsg_Data = ""
 
            For $i = 1 To $aRecv_Ctrls_Data[0][0]
                $sMsg_Data &= "CtrlID: " & $aRecv_Ctrls_Data[$i][0] & ", Data[" & $aRecv_Ctrls_Data[$i][1] & "]" & @CRLF
            Next
 
            If
$sMsg_Data = "" Then
                MsgBox(48, "Info", "There is no new added controls.", 0, $hGUI)
            Else
                MsgBox(64, "Info", "Added controls information:" & @CRLF & @CRLF & $sMsg_Data, 0, $hGUI)
            EndIf
    EndSwitch
WEnd
 
Func
_CommandsHandler_Proc($hWnd, $iMsgID, $WParam, $LParam)
    If $iMsgID <> $WM_COPYDATA Then Return $GUI_RUNDEFMSG
 
    Local $sMSGRECVD = DllStructGetData(_AU3COM_RecvData($LParam), 1)
    Local $aSplit_sMSGRECVD = StringSplit($sMSGRECVD, "|")
 
    For $i = 1 To $aSplit_sMSGRECVD[0]
        $aRecv_Ctrls_Data[0][0] += 1
        ReDim $aRecv_Ctrls_Data[$aRecv_Ctrls_Data[0][0]+1][2]
 
        $aSplit_sMSGRECVD[$i] = StringReplace($aSplit_sMSGRECVD[$i], "~~", "|")
 
        $aRecv_Ctrls_Data[$aRecv_Ctrls_Data[0][0]][0] = Execute($aSplit_sMSGRECVD[$i])
        $aRecv_Ctrls_Data[$aRecv_Ctrls_Data[0][0]][1] = $aSplit_sMSGRECVD[$i]
    Next
EndFunc
 
Func
_AU3COM_RecvData($iCOM_LParam)
    ; $COM_LParam = Poiter to a COPYDATA Struct
    Local $STRUCTDEF_AU3MESSAGE = "char var1[256];int"
    Local $StructDef_COPYDATA = "dword var1;dword var2;ptr var3"
    Local $vs_cds = DllStructCreate($StructDef_COPYDATA, $iCOM_LParam)
    ; Member No. 3 of COPYDATA Struct (PVOID lpData;) = Pointer to Costum Struct
    Local $vs_msg = DllStructCreate($STRUCTDEF_AU3MESSAGE, DllStructGetData($vs_cds, 3))
    Return $vs_msg
EndFunc

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 22:28 27-12-2008 | Исправлено: ViSiToR, 23:42 27-12-2008
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 1)
Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru