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. alpines

Beiträge von alpines

  • Frage zu GUICtrlCreateTab

    • alpines
    • 25. Februar 2017 um 14:00

    Setz den Case auf das Tab-Control. Dann kannst du mit GUICtrlRead($hTabControl) auslesen welcher Tab gerade aktiv ist.
    Das ganze funktioniert indexweise und fängt bei 0 an zu zählen (+1, +1, +1, ...).

    Im Case kannst du dann abfragen welcher Tab nun aktiviert wurde und die entsprechenden Infos anzeigen.

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 615, 438, 192, 124)
    $Tab1 = GUICtrlCreateTab(32, 32, 481, 273)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
    $TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
    $TabSheet4 = GUICtrlCreateTabItem("TabSheet4")
    GUICtrlSetState(-1,$GUI_SHOW)
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    
    		Case $Tab1
    			WinSetTitle($Form1, "", GUICtrlRead($Tab1))
    
    
    	EndSwitch
    WEnd
    Alles anzeigen
  • Verwirrung bei X:\ProgramData\Key-Base\05202499.051\CODE.PKD/CODE.PK_

    • alpines
    • 25. Februar 2017 um 11:26

    Wenn es ein Systemordner wäre dann hätte ihn jeder drauf oder? Ich habe Windows 7 x64 und von dem Ordner fehlt jede Spur.

  • Verwirrung bei X:\ProgramData\Key-Base\05202499.051\CODE.PKD/CODE.PK_

    • alpines
    • 25. Februar 2017 um 11:17

    Hast du selber mal dein System gescannt?

  • StringMid return Binär? o_O

    • alpines
    • 25. Februar 2017 um 00:02

    Klappt das bei den großen Dateien auch?

  • StringMid return Binär? o_O

    • alpines
    • 24. Februar 2017 um 23:26

    Schau dir mal VarGetType von einem StringToBinary-Rückgabewert an. Das ist "Binary", das was du machst ist ein String.
    Das ist natürlich optisch vielleicht dasselbe, aber AutoIt mag das nicht.

    Bei deinem sparta Beispiel würde ich nicht mit Binary arbeiten sondern die Stringfunktionen auch wirklich auf Strings anwenden und anschließend zu Binary kodieren wenn es funktioniert.

  • StringMid return Binär? o_O

    • alpines
    • 24. Februar 2017 um 21:35

    Sorry aber ich blick durch den Code echt nicht durch. Mir kräuseln sich die Fingernägel.
    Kannst du bitte das sauber formatieren und einigermaßen kommentieren?

  • StringMid return Binär? o_O

    • alpines
    • 24. Februar 2017 um 21:13

    @Candyland

    Dann funktioniert es jetzt oder wie? Hab den Edit zu spät gesehen.

  • StringMid return Binär? o_O

    • alpines
    • 24. Februar 2017 um 20:38

    Du kannst das ruhig drinne lassen ist kein Problem. Öffne mal die Datei in der du dieses "-=TESTME=-" schreibst und such mal nach dem String. Findest du ihn da wirklich drinne?
    Ich glaube nicht.

    Ich hab keine Testdateien jetzt da, kannst du einen Ordner fertigmachen und hochladen? Dann kann ich mir das gleich genauer ansehen und dir ein Beispiel schicken.
    Du musst einfach nur das "-=TESTME=-" für StringMid binär danach suchen und statt StringLen dann StringLen vom StringToBinary("-=TESTME=-") - 2 (wegen den 0x).

  • Text in League of Legends zeichnen

    • alpines
    • 24. Februar 2017 um 20:05

    @Candyland natürlich kann man das so machen, und das ist dann auch nicht gegen unsere Spielregeln oder gegen die von den Machern von League of Legends.
    Aufm Desktop zeichnen oder eine transparente GUI drüberlegen ist absolut erlaubt aber das ganze funktioniert bei Vollbild nunmal wegen dem DX/oGL-Layer nicht.

    Zitat von Candyland

    Der FensterModusRandlos ist super sinnvoll wenn du gerne mal herausswitcht ohne dabei den Focus vom Spiel zu verlieren. Ich nutze das bei verschiedenen Spielen sehr gerne da ich mehere Monitore besitze.

    Laggt aber ziemlich krass um ehrlich zu sein.

  • StringMid return Binär? o_O

    • alpines
    • 24. Februar 2017 um 20:02
    Zitat von Candyland

    1mb<

    Bähh, wenn du sagen möchtest das es langsamer arbeitet wenn etwas größer 1 MB ist dann schreibt man das immer so: >1MB. Das Größer/Kleiner-Zeichen steht immer vorne.
    Deshalb in AutoIt auch <= >= <> und nicht => =< ><.

    Zitat von Candyland

    $ZS = FileRead(FileOpen(@ScriptDir & "\1\FILE2.txt",16))
    $ZCR = FileRead(FileOpen(@ScriptDir & "\1\2RC4E.txt", 16))

    Sowas ist schon grob fahrlässig und sollte auf jeden Fall vermieden werden.
    Die Handles bleiben offen auch wenn du sie in keine Variable speicherst, in einem großen Projekt kannst du so ziemlich einfach ein Speicherleck unabsichtlich coden und dann flutet dir dein Programm den RAM voll.

    Dein Code sollte immer so viele FileCloses wie FileOpens haben!

    Zitat von Candyland

    $DS = FileRead(FileOpen(@ScriptDir & "\1\3BIND.txt", 16))
    $sSeparatedData = StringMid($DS, StringInStr($DS, "-=TESTME=-") + StringLen("-=TESTME=-"),-1)

    Ich schätze mal ganz einfach daran das es nicht funktioniert, weil du die Dateien binär liest und der String -=TESTME=- auch binär vorliegt.
    Du müsstest mit StringToBinary erstmal zum Binärformat umwandeln.

    Achtung!
    Der String der aus StringToBinary zurückkommt ist im Binärformat und fängt mit einem 0x an. Das musst du bei deiner Längenberechnung unbedingt beachten sonst parst du den falschen Teil.

    Zitat von Candyland

    PS: ich komme mir hier langsam wie ein Nervbold vor, ich hoffe das ist nicht so.

    Gab schon schlimmere als dich, kannste mir glauben.

  • Probleme mit DirRemove

    • alpines
    • 24. Februar 2017 um 16:15

    Auszug aus der AutoIt-Hilfe zu DirRemove:

    Zitat

    Some directory attributes can make the deletion impossible, therefore if this is the case look at FileSetAttrib() to change the attributes of a directory.

  • Fehler 429 Activex Komponente kann kein Objekt erstellen

    • alpines
    • 24. Februar 2017 um 14:30

    Wird es eventuell als anderer User gestartet oder mit zu wenig Rechten?

  • Fehler 429 Activex Komponente kann kein Objekt erstellen

    • alpines
    • 24. Februar 2017 um 13:48
    Zitat von maumi

    Den Gedankengang mit dem WorkingDirectory finde ich spannend. Welches müßte deiner Meinung den das WorkingDirectory sein?

    Kannst du ganz einfach testen, schreib ein Script das @WorkingDirectory als MsgBox ausgibt und starte es einmal normal und einmal mit dem Programm.
    Es kann sein das er auf alte COM-Objekte zurückgreift, für den Fehler 429 finde ich bei MS nur folgendes: https://support.microsoft.com/de-de/help/244…ce-applications

    Wenn du keine Lösung findest, dann starte aus WatchDirectory die Exe die dann eine andere startet die das COM-Objekt und den Code beinhaltet, so als Notlösung.

  • Fehler 429 Activex Komponente kann kein Objekt erstellen

    • alpines
    • 24. Februar 2017 um 13:33

    Wie ruft WatchDirectory deine Anwendung denn auf? Hat sie eventuell zu wenig Rechte, oder gibt ein falsches Working Directory an?

  • Read->EncBase64->EncRC4->Save|Read->DecRC4->DecBase64->Save

    • alpines
    • 24. Februar 2017 um 13:12

    Es liegt daran das du die Binärdateien nicht binär schreibst sondern als Text.
    Benutz mal bei FileOpen die Flags 16 + 1 (16 = binary mode, 1 = write) und du wirst sehen das result.jpg richtig gespeichert wird.

  • Listview mit Gruppen

    • alpines
    • 24. Februar 2017 um 09:56
    Zitat von nuts

    Irgendwie scheint mir ein 2D Array für ein ganzes Listview mit Gruppen ungeeignet zu sein.

    Warum das denn? Ich finde es eignet sich hervorragend.
    Man könnte sogar so weit gehen ein 3D-Array daraus zu machen und die SubItems der Items in den Groups in die unterste Dimension einzufügen.

    Das war zumindest eine Implementation wie ich sie vorgenommen hätte und wie sie mir gefällt.
    Du kannst ja daran rumbasteln und dir dein eigenes Format ausdenken, hat ja niemand was dagegen.

  • 1D Array Splitten mit Regex

    • alpines
    • 24. Februar 2017 um 09:18
    Zitat von littleman

    MAche ich das am besten mit einer IF-Abfrage?

    Das musst du selber entscheiden. Ich kenne deine Codestruktur nicht.
    Schau in die Dokumentation von der AD-UDF und sieh nach was sie returnt wenn sie fehlschlägt, darauf kannst du dann prüfen.

  • Listview mit Gruppen

    • alpines
    • 23. Februar 2017 um 23:00
    Zitat von nuts

    Also wirklich zufrieden bin ich mit meiner Lösung noch nicht ... was soll die Eile?

    Die Fragestellung wurde beantwortet. Nur weil der Haken gesetzt ist bedeutet das nicht, dass jede Diskussion hier im Keim erstickt wird sondern gerne weiterdiskutiert werden darf.
    Du musst nur ReDimmen wenn du out-of-bounds wärst.

    Ich hab das ganze mal so implementiert wie ich mir das vorgestellt habe, vielleicht gefällts dir ja. Wenn du die Items haben willst, musst du GetItemText durch GetItem ersetzen, das GetItemText steht nur drinne um _ArrayDisplay richtig nutzen zu können

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>
    #include <MsgBoxConstants.au3>
    #include <Array.au3>
    
    
    Example()
    
    
    Func Example()
    	Local $hImage, $idListview
    
    
    	GUICreate("ListView Get Item Group ID", 400, 300)
    	$idListview = GUICtrlCreateListView("", 2, 2, 394, 268)
    	GUISetState(@SW_SHOW)
    
    
    	; Load images
    	$hImage = _GUIImageList_Create()
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($idListview, 0xFF0000, 16, 16))
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($idListview, 0x00FF00, 16, 16))
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($idListview, 0x0000FF, 16, 16))
    	_GUICtrlListView_SetImageList($idListview, $hImage, 1)
    
    
    	; Add columns
    	_GUICtrlListView_AddColumn($idListview, "Column 1", 100)
    	_GUICtrlListView_AddColumn($idListview, "Column 2", 100)
    	_GUICtrlListView_AddColumn($idListview, "Column 3", 100)
    
    
    	; Add items
    	_GUICtrlListView_AddItem($idListview, "Row 1: Col 1", 0)
    	_GUICtrlListView_AddSubItem($idListview, 0, "Row 1: Col 2", 1)
    	_GUICtrlListView_AddSubItem($idListview, 0, "Row 1: Col 3", 2)
    	_GUICtrlListView_AddItem($idListview, "Row 2: Col 1", 1)
    	_GUICtrlListView_AddSubItem($idListview, 1, "Row 2: Col 2", 1)
    	_GUICtrlListView_AddItem($idListview, "Row 3: Col 1", 2)
    
    
    	; Build groups
    	_GUICtrlListView_EnableGroupView($idListview)
    	_GUICtrlListView_InsertGroup($idListview, -1, 1, "Group 1")
    	_GUICtrlListView_InsertGroup($idListview, -1, 2, "Group 2")
    	_GUICtrlListView_SetItemGroupID($idListview, 0, 1)
    	_GUICtrlListView_SetItemGroupID($idListview, 1, 2)
    	_GUICtrlListView_SetItemGroupID($idListview, 2, 2)
    
    
    	$aReturn = _GUICtrlListView_GetItemsGrouped($idListview)
    	$aReturn2 = _GUICtrlListView_GetItemsGrouped($idListview, 2)
    
    
    	_ArrayDisplay($aReturn)
    	_ArrayDisplay($aReturn2)
    
    
    	; Loop until the user exits.
    	Do
    	Until GUIGetMsg() = $GUI_EVENT_CLOSE
    	GUIDelete()
    EndFunc   ;==>Example
    
    
    Func _GUICtrlListView_GetItemsGrouped($hWnd, $iGroup = Default)
    	If $iGroup = Default Then
    		Local $aEntries[0][1]
    
    
    		For $i = 0 To _GUICtrlListView_GetItemCount($hWnd)
    			$iCurrentId = _GUICtrlListView_GetItemGroupID($hWnd, $i) - 1
    
    
    			If $iCurrentId < 0 Then ContinueLoop
    
    
    			If UBound($aEntries) < $iCurrentId + 1 Then
    				ReDim $aEntries[$iCurrentId + 1][UBound($aEntries, 2)]
    			EndIf
    
    
    			If $aEntries[$iCurrentId][UBound($aEntries, 2) - 1] <> "" Then
    				ReDim $aEntries[UBound($aEntries)][UBound($aEntries, 2) + 1]
    			EndIf
    
    
    			$aEntries[$iCurrentId][UBound($aEntries, 2) - 1] = _GUICtrlListView_GetItemText($hWnd, $i)
    		Next
    	Else
    		Local $aEntries[0]
    
    
    		For $i = 0 To _GUICtrlListView_GetItemCount($hWnd)
    			If _GUICtrlListView_GetItemGroupID($hWnd, $i) = $iGroup Then
    				ReDim $aEntries[UBound($aEntries) + 1]
    
    
    				$aEntries[UBound($aEntries) - 1] = _GUICtrlListView_GetItemText($hWnd, $i)
    			EndIf
    		Next
    	EndIf
    
    
    	Return $aEntries
    EndFunc
    Alles anzeigen
  • Listview mit Gruppen

    • alpines
    • 23. Februar 2017 um 22:04

    Na wie wäre es denn mit einem zweidimensionalen Array wo [x][n] die Gruppe bezeichnet und [n][x] die Items in der Gruppe, nennen kannst du sie dann _GUICtrlListView_GetItemsGrouped().
    Ich hab den grünen Haken für erledigt / gelöst gesetzt (du kannst das in Zukunft auch machen, einfach den 1. Beitrag im Thread editieren und Threadstatus anpassen).

  • Listview mit Gruppen

    • alpines
    • 23. Februar 2017 um 21:27

    Klappt es denn auch?

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™