1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • Regulärer Ausdruck

    • BugFix
    • 8. September 2008 um 23:04
    [autoit]

    $pattern = ".+>"

    [/autoit]
  • *.au3 aus anderer *au3 aufrufen

    • BugFix
    • 8. September 2008 um 22:03

    Hi und Willkommen,

    zeig uns doch mal dein bisheriges Skript.
    Dann können wir dir bei deinen Problemen besser helfen.

  • GUI zu GUI

    • BugFix
    • 8. September 2008 um 21:48

    Oh man, deine Erklärungen sind aber nebulös :S
    Allem Anschein nach hast du doch schon Code - dann zeig ihn mal (nicht nur 5 Zeilen, die uns wenig sagen).

    Gib einfach an:
    - Ausgangsstatus (GUI, Controls)
    - was passiert
    - wie soll darauf reagiert werden

  • Probleme/Fragen zu Radiobuttons

    • BugFix
    • 8. September 2008 um 21:14

    Der Code läßt sich noch gewaltig zusammenstreichen.
    Speichere die ID's in Arrays. Dann kannst du in einer Schleife die Prüfroutinen durchlaufen.

  • individeuelle MsgBoxen via TCP, möglich???

    • BugFix
    • 8. September 2008 um 18:51

    Das ist doch simples String-Handling.
    Du sendest in deinem String eine Kennung voran (irgendeine Ziffernkombination) an der auf der Empfängerseite ersichtlich ist, dass hier eine MsgBox aufgerufen werden soll.
    Etwa so:

    [autoit]

    ; Sender
    $strToSend = "00;MsgboxTyp;MsgboxTitel;MsgboxText"
    TCPSend($ConnectedSocket, $strToSend)

    [/autoit][autoit][/autoit][autoit]

    ; Empfänger
    $recv = TCPRecv($ConnectedSocket, 40)
    If StringLeft($recv, 2) = '00' Then
    $aMsg = StringSplit($recv, ';')
    MsgBox($aMsg[2],$aMsg[3],$aMsg[4])
    Else
    ; ...
    EndIf

    [/autoit]

    Edit: Achja, die Länge des TCPRecv mußt du dann variabel gestalten.

  • Probleme mit Checkboxen

    • BugFix
    • 8. September 2008 um 16:36
    Zitat von Fichte

    bei einem Fehler eine 0 Zurück. Wenn alles ok war, dann liefert das Programm den Exit Code des Programms zurück.

    Bei mir liefert er immer 0 zurück, obwohl das Programm bzw. die Batch Datei erfolgreich abgearbeitet wurde.


    Prüf doch nicht den Rückgabewert - RunWait liefert doch @error, wenn was schiefgeht.

    [autoit]

    Runwait(....)
    If @error Then
    ; ....

    [/autoit]
  • Ideen,wie man ein D&D-Feld mit ner Liste kombieniert

    • BugFix
    • 8. September 2008 um 16:26
    Zitat von Dankeschön

    nur wie soll ich es schaffen,2 guifelder übereinander hinzupflanzen?


    Verstehe nicht, was du damit meinst. Erstelle doch ein Child-GUI, das du an die Seite des Main-GUI andockst. Kannst du dann auch super per Klick auf den Rand ein- bzw. ausfahren lassen.
    Da die Events des Childs an das Main weitergeleitet werden, kannst du von dort die Daten per Drag'nDrop rüberziehen.

  • Icons in einer ListBox verwenden

    • BugFix
    • 8. September 2008 um 16:19

    Icons extrahieren (aus *.dll, *.exe, *.ocx, *.scr): mit dem Reshacker - im SciTE-AutoIt-Paket enthalten.

  • Probleme mit Checkboxen

    • BugFix
    • 8. September 2008 um 13:56

    Hier mal ein Muster, wie es funktioniert:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    Global $sOut, $msg

    [/autoit] [autoit][/autoit] [autoit]

    Global $gui = GUICreate('test')
    Global $hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200, -1, BitOR($LVS_SORTASCENDING,$LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_GRIDLINES, $LVS_EX_REGIONAL))
    _GUICtrlListView_SetColumnWidth($hListView, 0, 146)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 1 To 10
    GUICtrlCreateListViewItem('Zeile ' & $i & ' Spalte 1|Zeile ' & $i & ' Spalte 2', $hListView)
    Next
    Global $btn = GUICtrlCreateButton('check', 10, 220, 60, 20)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $msg = GUIGetMsg()
    If $msg = $btn Then
    $sOut = ''
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) -1
    If _GUICtrlListView_GetItemChecked($hListView, $i) Then _
    $sOut &= _GUICtrlListView_GetItemText($hListView, $i, 0) & ' / ' & _
    _GUICtrlListView_GetItemText($hListView, $i, 1) & @LF
    Next
    MsgBox(0, 'Markiert', $sOut)
    EndIf
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]
  • Probleme mit Checkboxen

    • BugFix
    • 8. September 2008 um 13:29

    Nochmals die Bitte: AutoIt-Tag und Spoiler-Tag verwenden

  • Probleme mit Checkboxen

    • BugFix
    • 8. September 2008 um 11:56

    Hi,
    du hast dir AddArrayItem() gebastelt. AutoIt hat die Funktion _ArrayAdd() ;)

    [autoit]

    for $x = 0 to $sRet[0]-1

    [/autoit]

    Hier hast du einen Fehler. $sRet[0] ist das erste Element in dem Array $sRet und führt die Anzahl der Elemente. Wenn du also alle Elemente durchlaufen möchtest mußt du von 1 bis $sRet[0] durchlaufen bzw. von 1 bis UBound($sRet) -1.
    Ich bevorzuge die UBound-Variante - damit vermeidest du solche Fehler von vornherein.

    Die Dynamik an sich ist kein Problem. Du fragst in der Schleife ab, ob das LV-Element per CheckBox markiert ist. Wenn ja liest du den Inhalt des ListView-Elements aus und arbeitest entsprechend damit weiter.

  • Auswahl mit checkboxen

    • BugFix
    • 8. September 2008 um 11:20

    Hab mal den Problemteil korrigiert:

    [autoit]

    ; Global $arBt[$FList[0]] $arBt war ein Bsp. von mir (Bt = Button in Bsp.-GUI) ==> überflüssig die Zeile

    [/autoit][autoit][/autoit][autoit]

    $newList = _ArrayTrim( $FList, 4, 1,1) ;letzten vier Zeichen werden abgetrennt

    [/autoit][autoit][/autoit][autoit]

    Global $y = 15
    ; Global $checkCN[UBound($arBt)] hier die Größe von FList einsetzen
    Global $checkCN[$FList[0]]

    [/autoit][autoit][/autoit][autoit]

    ; und jetzt natürlich mit $checkCN weiterarbeiten
    GUICreate(" Install Progs", 558, 900, 196, 125)
    For $i = 0 To UBound($checkCN) -1 ; Array beginnt bei 0 !!
    ; in $FList ist aber bei 0 der Zähler, erstes Element bei 1, also immer $i +1
    $checkCN[$i] = GUICtrlCreateCheckbox($FList[$i +1], 10, $y, 120, 20)
    $y += 20
    Next

    [/autoit]

    Wegen der Vielzahl von Elementen, mußt du halt festlegen, wieviel Elemente maximal dargestellt werden können. Wird die Anzahl überschritten erstellst du ein Tab und platzierst die restlichen Elemente dort (oder auf weiteren Tabs, je nach Anzahl).

  • ArrayMore.au3

    • BugFix
    • 8. September 2008 um 10:34

    Hi,
    irgendwann die Tage hatte jemand Interesse an einer Darstellung von Arrays als Elemente in einem Array gezeigt.
    Ich habe dazu mal die UDF _ArrayDisplay() etwas "vergewaltigt" :D und eine Anzeigemöglichkeit dafür geschaffen.
    Ist sicher noch nicht optimal gelöst aber funktioniert.
    Allerdings nur für 1D/2D-Arrays und auch nicht rekursiv (also kein Array im Array im Array....;-) ).
    - Ist ein Arrayelement selbst ein Array, so wird es in der Anzeige als [SubArray] dargestellt.
    - Mit rechtem Mausklick auf [SubArray] kann nun dieses Array angezeigt werden.

    Vielleicht probier ich nochmal bei Gelegenheit, die Funktion rekursiv zu gestalten. Aber ich denke, für den eher seltenen Einsatz solcher Darstellungen ist es ausreichend.

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <GuiListView.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $arSub = _GetTestArray(120)
    Global $arSub2 = _GetTestArray(120, 12)
    Global $arTest[4][3]=[ _
    [1,2,$arSub2], _
    [4,5,6], _
    [7,8,9], _
    [$arSub,11,12]]

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetTestArray($iUbDim1, $iUbDim2=0, $sValue='Wert ')
    Local $i, $k, $2ndDim = False
    Local $aOut[$iUbDim1]
    If $iUbDim2 > 1 Then
    $2ndDim = True
    ReDim $aOut[$iUbDim1][$iUbDim2]
    EndIf
    For $i = 0 To $iUbDim1 -1
    If $2ndDim Then
    For $k = 0 To $iUbDim2 -1
    $aOut[$i][$k] = $sValue & $i & '/ ' & $k
    Next
    Else
    $aOut[$i] = $sValue & $i
    EndIf
    Next
    Return $aOut
    EndFunc ;==>_GetTestArray

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _ArrayMultiDisplay($arTest)

    [/autoit] [autoit][/autoit] [autoit]

    ;==================================================================================================
    ; Function Name: _ArrayMultiDisplay
    ; Description:: Anzeige von 1D/2D-Arrays
    ; Array-Elemente, die selbst ein 1D/2D-Array darstellen, werden als "[SubArray]"
    ; markiert und können per Rechtsklick angezeigt werden.
    ; Parameter(s): Identisch zur Funktion _ArrayDisplay()
    ;==================================================================================================
    Func _ArrayMultiDisplay(Const ByRef $avArray, $sTitle = "Array: ListView Display", $iItemLimit = -1, $iTranspose = 0, $sSeparator = "", $sReplace = "|")
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)

    ; Array für Subfunktionen Global zur Verfügung stellen
    Global $avArrayMultiDisplay = $avArray

    [/autoit] [autoit][/autoit] [autoit]

    ; Dimension checking
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
    If $iDimension > 2 Then Return SetError(2, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Separator handling
    ;~ If $sSeparator = "" Then $sSeparator = Chr(1)
    If $sSeparator = "" Then $sSeparator = Chr(124)

    [/autoit] [autoit][/autoit] [autoit]

    ; Declare variables
    Local $i, $j, $vTmp, $aItem, $avArrayText, $sHeader = "Row", $iBuffer = 64
    Local $iColLimit = 250, $iLVIAddUDFThreshold = 4000, $iWidth = 640, $iHeight = 480
    Local $iOnEventMode = Opt("GUIOnEventMode", 0), $sDataSeparatorChar = Opt("GUIDataSeparatorChar", $sSeparator)

    [/autoit] [autoit][/autoit] [autoit]

    ; Swap dimensions if transposing
    If $iSubMax < 0 Then $iSubMax = 0
    If $iTranspose Then
    $vTmp = $iUBound
    $iUBound = $iSubMax
    $iSubMax = $vTmp
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Set limits for dimensions
    If $iSubMax > $iColLimit Then $iSubMax = $iColLimit
    If $iItemLimit = 1 Then $iItemLimit = $iLVIAddUDFThreshold
    If $iItemLimit < 1 Then $iItemLimit = $iUBound
    If $iUBound > $iItemLimit Then $iUBound = $iItemLimit
    If $iLVIAddUDFThreshold > $iUBound Then $iLVIAddUDFThreshold = $iUBound

    [/autoit] [autoit][/autoit] [autoit]

    ; Set header up
    For $i = 0 To $iSubMax
    $sHeader &= $sSeparator & "Col " & $i
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; Convert array into text for listview
    Local $avArrayText[$iUBound + 1]

    For $i = 0 To $iUBound
    $avArrayText[$i] = "[" & $i & "]"
    For $j = 0 To $iSubMax
    ; Get current item
    If $iDimension = 1 Then
    If $iTranspose Then
    $vTmp = $avArray[$j]
    Else
    $vTmp = $avArray[$i]
    EndIf
    Else
    If $iTranspose Then
    $vTmp = $avArray[$j][$i]
    Else
    $vTmp = $avArray[$i][$j]
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen ob SubArray und entsprechend markieren
    If IsArray($vTmp) Then
    $vTmp = '[SubArray]'
    Else
    ; Add to text array
    $vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)
    EndIf
    $avArrayText[$i] &= $sSeparator & $vTmp

    [/autoit] [autoit][/autoit] [autoit]

    ; Set max buffer size
    $vTmp = StringLen($vTmp)
    If $vTmp > $iBuffer Then $iBuffer = $vTmp
    Next
    Next
    $iBuffer += 1

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI Constants
    Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 0x66
    Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 0x40
    Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 0x0200
    Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 0x2
    Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 0x4
    Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
    Local Const $_ARRAYCONSTANT_LVIF_PARAM = 0x4
    Local Const $_ARRAYCONSTANT_LVIF_TEXT = 0x1
    Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (0x1000 + 29)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (0x1000 + 4)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (0x1000 + 44)
    Local Const $_ARRAYCONSTANT_LVM_INSERTITEMA = (0x1000 + 7)
    Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (0x1000 + 54)
    Local Const $_ARRAYCONSTANT_LVM_SETITEMA = (0x1000 + 6)
    Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 0x20
    Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 0x1
    Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 0x8
    Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 0x0200
    Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 0x00010000
    Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 0x00020000
    Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 0x00040000
    Local Const $_ARRAYCONSTANT_tagLVITEM = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns"
    Local Const $_ARRAYCONSTANT_WM_NOTIFY = 0x004E
    Local Const $_ARRAYCONSTANT_GUI_WS_EX_PARENTDRAG = 0x00100000

    [/autoit] [autoit][/autoit] [autoit]

    Local $iAddMask = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)
    Local $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]"), $pBuffer = DllStructGetPtr($tBuffer)
    Local $tItem = DllStructCreate($_ARRAYCONSTANT_tagLVITEM), $pItem = DllStructGetPtr($tItem)
    DllStructSetData($tItem, "Param", 0)
    DllStructSetData($tItem, "Text", $pBuffer)
    DllStructSetData($tItem, "TextMax", $iBuffer)

    [/autoit] [autoit][/autoit] [autoit]

    ; Set interface up
    Local $hGUI = GUICreate($sTitle, $iWidth, $iHeight, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX, $_ARRAYCONSTANT_GUI_WS_EX_PARENTDRAG))
    ; GUI Global zur Verfügung stellen
    Global $hArrayDisplayGUI = $hGUI
    Local $aiGUISize = WinGetClientSize($hGUI)
    Local $hListView = GUICtrlCreateListView($sHeader, 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    ; ListView Global zur Verfügung stellen
    Global $hArrayDisplayListView = $hListView
    Local $hCopy = GUICtrlCreateButton("Copy Selected", 3, $aiGUISize[1] - 23, $aiGUISize[0] - 6, 20)
    GUICtrlSetResizing($hListView, $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    GUICtrlSetResizing($hCopy, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)

    [/autoit] [autoit][/autoit] [autoit]

    ; Fill listview
    For $i = 0 To $iLVIAddUDFThreshold
    GUICtrlCreateListViewItem($avArrayText[$i], $hListView)
    Next
    For $i = ($iLVIAddUDFThreshold + 1) To $iUBound
    $aItem = StringSplit($avArrayText[$i], $sSeparator)
    DllStructSetData($tBuffer, "Text", $aItem[1])

    [/autoit] [autoit][/autoit] [autoit]

    ; Add listview item
    DllStructSetData($tItem, "Item", $i)
    DllStructSetData($tItem, "SubItem", 0)
    DllStructSetData($tItem, "Mask", $iAddMask)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_INSERTITEMA, 0, $pItem)

    [/autoit] [autoit][/autoit] [autoit]

    ; Set listview subitem text
    DllStructSetData($tItem, "Mask", $_ARRAYCONSTANT_LVIF_TEXT)
    For $j = 2 To $aItem[0]
    DllStructSetData($tBuffer, "Text", $aItem[$j])
    DllStructSetData($tItem, "SubItem", $j - 1)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETITEMA, 0, $pItem)
    Next
    Next

    ; ajust window width
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    If $iWidth < 250 Then $iWidth = 230
    WinMove($hGUI, "", Default, Default, $iWidth + 20)

    [/autoit] [autoit][/autoit] [autoit]

    ; Show dialog
    GUISetState(@SW_SHOW, $hGUI)
    GUIRegisterMsg($_ARRAYCONSTANT_WM_NOTIFY, "WM_DISPLAY_NOTIFY")
    Global $a_msgARRAY_DISPLAY
    If Not IsDeclared('hSubGUI') Then Global $hSubGUI

    While 1
    $a_msgARRAY_DISPLAY = GUIGetMsg(1)
    Switch $a_msgARRAY_DISPLAY[0]
    Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
    If $a_msgARRAY_DISPLAY[1] = $hGUI Then
    ExitLoop
    Else
    GUIDelete($hSubGUI)
    EndIf
    Case $hCopy
    Local $sClip = ""

    [/autoit] [autoit][/autoit] [autoit]

    ; Get selected indices [ _GUICtrlListView_GetSelectedIndices($hListView, True) ]
    Local $aiCurItems[1] = [0]
    For $i = 0 To GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
    If GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $i, 0x2) Then
    $aiCurItems[0] += 1
    ReDim $aiCurItems[$aiCurItems[0] + 1]
    $aiCurItems[$aiCurItems[0]] = $i
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; Generate clipboard text
    If Not $aiCurItems[0] Then
    For $sItem In $avArrayText
    $sClip &= $sItem & @CRLF
    Next
    Else
    For $i = 1 To UBound($aiCurItems) - 1
    $sClip &= $avArrayText[$aiCurItems[$i]] & @CRLF
    Next
    EndIf
    ClipPut($sClip)
    EndSwitch
    WEnd
    GUIDelete($hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", $iOnEventMode)
    Opt("GUIDataSeparatorChar", $sDataSeparatorChar)

    [/autoit] [autoit][/autoit] [autoit]

    Return 1
    EndFunc ;==>_ArrayMultiDisplay

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_DISPLAY_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    If Not IsDeclared('hArrayDisplayListView') Then Local $hArrayDisplayListView
    If Not IsDeclared('avArrayMultiDisplay') Then Local $avArrayMultiDisplay
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hArrayDisplayListView
    If Not IsHWnd($hArrayDisplayListView) Then $hWndListView = GUICtrlGetHandle($hArrayDisplayListView)

    Local Const $tagNMHDR = "hwnd hWndFrom;int IDFrom;int Code"
    Local Const $tagNMITEMACTIVATE = "hwnd hWndFrom;int IDFrom;int Code;int Index;int SubItem;int NewState;int OldState;" & _
    "int Changed;int X;int Y;int lParam;int KeyFlags"
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case -5
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $ItemIndex = DllStructGetData($tInfo, "Index"), $SubIndex = DllStructGetData($tInfo, "SubItem")
    If _GUICtrlListView_GetItemText($iIDFrom, $ItemIndex, $SubIndex) = '[SubArray]' Then
    If Not IsArray($avArrayMultiDisplay) Then Return
    Local $avArraySub = $avArrayMultiDisplay[$ItemIndex][$SubIndex - 1]
    If Not IsDeclared('hArrayDisplayGUI') Then Local $hArrayDisplayGUI
    Local $aMainPos = WinGetPos($hArrayDisplayGUI)
    Local $hSubGUI = GUICreate('SubArray', 640, 480, -1, -1, Default, 0x00000040, $hArrayDisplayGUI)
    Local $sItemText, $ub2nd, $sHeaderLV = 'Row | Col 1'
    If UBound($avArraySub, 2) > 1 Then
    $ub2nd = True
    $sHeaderLV = 'Row | '
    For $j = 0 To UBound($avArraySub, 2) -1
    $sHeaderLV &= 'Col ' & $j & ' | '
    Next
    $sHeaderLV = StringTrimRight($sHeaderLV, 2)
    Else
    $ub2nd = False
    EndIf
    Local $hSubLV = GUICtrlCreateListView($sHeaderLV, 0, 0, 640, 480, Default, 0x00000001)
    For $i = 0 To UBound($avArraySub) -1
    $sItemText = '[' & $i & ']' & '|'
    If $ub2nd Then
    For $j = 0 To UBound($avArraySub, 2) -1
    $sItemText &= $avArraySub[$i][$j] & '|'
    Next
    $sItemText = StringTrimRight($sItemText, 1)
    Else
    $sItemText &= $avArraySub[$i]
    EndIf
    GUICtrlCreateListViewItem($sItemText, $hSubLV)
    Next
    GUISetState(@SW_SHOW, $hSubGUI)
    EndIf
    EndSwitch
    EndSwitch
    Return 'GUI_RUNDEFMSG'
    EndFunc ;==>WM_DISPLAY_NOTIFY

    [/autoit]
  • GUI zu GUI

    • BugFix
    • 8. September 2008 um 09:11
    Zitat von moppel11

    ich möchte so etwa von einer anderen GUI aus machen.


    Ich verstehe auch nicht, was du meinst.
    "andere GUI" - Ist das eine selbsterstellte, oder wird sie von einem Programm zur Verfügung gestellt?

  • PING mit spezieller Ping Payload

    • BugFix
    • 8. September 2008 um 09:08

    Wenn du einen entsprechenden VB-Code hast, dann zeige ihn doch mal.
    Häufig läßt sich VB-Code in AutoIt übertragen. Ist abhängig von den verwendeten Objekten.

  • Taskmanager sperren

    • BugFix
    • 7. September 2008 um 14:16
    Zitat von funkey

    Wieso selber schreiben, wenn 'Windows+L' die Station sperrt?


    Weil das
    a) nicht generell so ist - dazu muß die entsprechende Anmeldeform in Windows aktiv sein
    b) Warum soll ich die Station sperren, wenn ich den Task-Manager deaktivieren will

  • Taskmanager sperren

    • BugFix
    • 7. September 2008 um 14:02

    Wozu Google, wenn die Forumsuche dafür eine AutoIt Funktion liefert :D

  • Auswahl mit checkboxen

    • BugFix
    • 6. September 2008 um 22:24

    Hier hast du ein Beispiel wie es automatisiert wird:

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $arBt[8]
    ; Größe des Array richtet sich nach Anzahl der Elemente
    ; $aFile = _FileListToArray($Path) dann ==> Global $arBt[$aFile[0]]
    Global $y = 15

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate('test')
    For $i = 0 To UBound($arBt) -1
    $arBt[$i] = GUICtrlCreateButton('Button', 10, $y, 60, 20)
    $y += 30
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]
  • array mit _arrayadd adden?

    • BugFix
    • 4. September 2008 um 21:26

    Die Struktur: Array als Element in einem Array hat noch einen Nachteil: Du kannst nicht direkt auf ein Element in dem SubArray zugreifen. Deshalb habe ich dafür auch die Funktionen _SubArrayGetEntry() und _SubArraySetEntry() erstellt. Findest du in meiner Funktionssammlung ArrayMore.au3, s. Signatur.

  • Gui mit Inputboxen für Email Script - Problem

    • BugFix
    • 31. August 2008 um 21:26
    Zitat von limette

    Dann kann man sich auch das Deklarieren vorweg
    sparen und hat dann die Variablen eben nur Lokal in
    der Funktion


    Man sollte sich angewöhnen, Variablen IMMER im entsprechenden Namespace zu deklarieren.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™