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

Beiträge von Bitnugger

  • Wert aus einer Textdatei lesen

    • Bitnugger
    • 23. Juli 2016 um 23:28
    Zitat von Mojo

    2. $sRes in der Variante von @autoBert wird in der MsgBox als Zahl wiedergegeben aber speichert nicht die Variable $sRes als Zahl, oder?

    _StringBetween() liefert als Ergebnis ein Array, was so "$aRes =" besser erkennbar wäre.

    Den ersten Wert aus dem Array bekommst du mit $aRes[0], den zweiten mit $aRes[1], ...

    $sRes = $aRes[0] kopiert den ersten Wert aus dem Array in die String-Variable $sRes.


    AutoIt
    #include <String.au3>
    #include <Array.au3>
    
    
    Local $sEmail = 'eMail-Delay=6.67 OK - Login and Email successfull in 8 seconds, eMail-Delay 6.67 seconds'
    Local $aResArray = _StringBetween($sEmail, "eMail-Delay=", " ")
    If @error Then Exit MsgBox(0,'Error!!!', '_StringBetween() hat keinen String gefunden.')
    
    
    ConsoleWrite('========================================================================' & @CRLF)
    ConsoleWrite('! "' & $aResArray & '"' & @TAB & @TAB & '$aResArray  ist eine Variable des Typs "' & VarGetType($aResArray) & '"' & @CRLF)
    
    
    Local $sResString = $aResArray[0]	; ersten Wert (Index = 0) aus dem Array in Stringvariable kopieren
    ConsoleWrite('- "' & $sResString & '"' & @TAB & '$sResString ist eine Variable des Typs "' & VarGetType($sResString) & '"' & @CRLF)
    
    
    Local $fResNumber = Number($aResArray[0])
    ConsoleWrite('> "' & $fResNumber & '"' & @TAB & '$fResNumber ist eine Variable des Typs "' & VarGetType($fResNumber) & '"' & @CRLF)
    
    
    If StringIsFloat($fResNumber) Then ConsoleWrite('+ "' & $fResNumber & '"' & @TAB & '$fResNumber ist eine Fließkommazahl' & @CRLF)
    ConsoleWrite('========================================================================' & @CRLF)
    
    
    MsgBox(0,'$aResArray', '"$aResArray" ist eine Variable des Typs "' & VarGetType($aResArray) & '"' & @CRLF)
    _ArrayDisplay($aResArray, '$aResArray')
    Alles anzeigen
  • Gefilterte Eingabe: InputFilter.au3 (1.1)

    • Bitnugger
    • 20. Juli 2016 um 10:28

    Mit $INPUTFILTER_WHITELIST/$INPUTFILTER_BLACKLIST als Parameter und nur einem RegEx-Pattern will mir auch keine Lösung einfallen... doch nun beendet sich das Script auch dann sauber, wenn kein GUIDelete() aufgerufen wurde. Doch hier im Forum sind ja mehrere RegEx-Experten vertreten... wäre super, wenn sich da einer/alle der Sache annehmen würden. ;)

    Dateien

    InputFilter_1.2.rar 3,58 kB – 254 Downloads
  • Mauszeiger systemweit ändern bzw. verändern

    • Bitnugger
    • 13. Juli 2016 um 13:27

    Das Script sollte dir nur aufzeigen, wie man es generell macht - ich wollte damit keine Komplettlösung abliefern. ;)

    Im Anhang habe ich dir ein Archiv hochgeladen - dass ist das Cursor-Scheme, dass ich selbst derzeit benutze.

    Um dieses Cursor-Scheme dauerhaft verwenden zu können, musst du lediglich die im Archiv enthaltene Setup.inf via Kontextmenü (Rechtsklick) installieren.

    Nach der Installation kannst du das neue Cursor-Scheme in der Systemsteuerung unter dem Namen "Chrome Glass" auswählen und bei Bedarf diese Einstellung dauerhaft speichern.

    Wenn du das Windows-Theme änderst, setzt Windows wieder das Default-Cursor-Scheme, falls in diesem Theme das neue Cursor-Scheme noch nicht gespeichert wurde.

    Setup_Inf.pngEigenschaften_von_Maus.png

    Dateien

    Chrome Glass Cursor for Win 10.rar 59,22 kB – 226 Downloads
  • exe an cmd/dos

    • Bitnugger
    • 12. Juli 2016 um 16:22

    Warum nicht gleich ein neues Betriebssystem schreiben? ;)

  • exe an cmd/dos

    • Bitnugger
    • 12. Juli 2016 um 15:01

    Lies mal hier... Variable an Batchdatei zurückgeben

    Im gleichen Fenster geht schon, aber nur wenn das Batch von der Exe aufgerufen wurde und in die Exe das Batch mit Run('Batch.cmd', '', @SW_SHOW, $STDIN_CHILD) startet...

  • exe an cmd/dos

    • Bitnugger
    • 12. Juli 2016 um 14:39
    Zitat von Peter S. Taler

    4) Ich möchte den in der exe erstellten Wert sofort in dem Batch weiterverarbeiten in dem auch die exe gestartet wurde.

    Das kannst du vegessen...

    Das Übergeben von Enviroment-Variablen ist nicht möglich, weil die Exe (AutoIt) und das Batch jeweils mit einer eigenen Kopie des Enviroments hantieren, die sie beim Start mit auf den Weg bekommen haben. Der ReturnCode der Exe liefert lediglich eine Zahl als Ergebnis. Um eine Kombination aus Zahlen und Buchstaben zu übergeben, bleibt dir nur der Weg über eine (temporäre) Datei. Ob die Werte nun in eine Datei oder in der Registry abgelegt werden, macht nicht wirklich einen Unterschied, denn in beiden Fällen ist es ein Dateizugriff. Da mir das auch nicht gefiehl, habe ich im Laufe der Zeit alle meine Batch-Scripte in Rente geschickt und erledige so gut wie alles nur noch mit AutoIt-Scripten, die zum einen viel schneller sind und zum anderen auch mehr Möglichkeiten bieten.

    Edit: @peter, den ReturnCode fragst du im Batch mit ERRORLEVEL ab... und das Ergebnis ist immer eine Zahl...

    Echo %ERRORLEVEL%

  • Probleme nach M$ Patchday Juni-2016 [GELÖST - doch nicht]

    • Bitnugger
    • 11. Juli 2016 um 15:31

    Guck mal hier... http://answers.microsoft.com/en-us/windows/…a7-c297ceae3a96

    Meine erste Anlaufstelle für derartige Probleme ist http://eventid.net/

  • Datei gegen Zugriff von anderer Seite sperren

    • Bitnugger
    • 9. Juli 2016 um 12:44

    Das sollte hiermit doch auch gehen...

    #include <WinAPIFiles.au3>

    ; Locks the specified file for exclusive access by the calling process
    _WinAPI_LockFile ( $hFile, $iOffset, $iLength )

    ; Unlocks a region in an open file
    _WinAPI_UnlockFile ( $hFile, $iOffset, $iLength )

  • Mauszeiger systemweit ändern bzw. verändern

    • Bitnugger
    • 6. Juli 2016 um 06:23

    Vorab eine wichtige Info: AutoIt handhabt die Werte und Nummerierungen der CursorIDs anders, als Windows!

    Siehe Bild - ein Ausschnitt aus der AutoIt-Hilfe... und du suchst dann wohl die Funktion _WinAPI_SetSystemCursor()

    Das Beispiel in der AutoIt-Hilfe zu dieser Funktion zeigt den geänderten Cursor nur an, wenn der normale Mauszeiger aktiv ist, aber nicht, wenn z. B. ein Edit-Control (Text-Cursor) aktiv ist.

    So geht es mit allen IDs...
    AutoIt
    #include <WinAPIRes.au3>
    Global $SysCursorIDs = [$OCR_NORMAL, $OCR_IBEAM, $OCR_WAIT, $OCR_CROSS, $OCR_UP, $OCR_SIZE, $OCR_ICON, $OCR_SIZENWSE, $OCR_SIZENESW, $OCR_SIZEWE, $OCR_SIZENS, $OCR_SIZEALL, $OCR_ICOCUR, $OCR_NO, $OCR_HAND, $OCR_APPSTARTING, $OCR_HELP]
    Local $id = _MouseGetCursor()
    If Not @error Then
    	Local $hPrev = _WinAPI_CopyCursor(_WinAPI_LoadCursor(0, $id))
    	ConsoleWrite(_WinAPI_SetSystemCursor(_WinAPI_LoadCursorFromFile('C:\Program Files (x86)\AutoIt3\Examples\Helpfile\Extras\Lens.cur'), $id) & @CRLF)
    	Sleep(5000)
    _WinAPI_SetSystemCursor($hPrev, $id)
    EndIf
    Func _MouseGetCursor()
    	Local $aIDs = [[ 2, 0],[ 5, 1],[15, 2],[ 3, 3],[14, 4],[ 8, 5],[ 6, 6],[12, 7],[10, 8],[13, 9],[11,10],[ 9,11],[ 7,12],[ 0,13],[ 1,14],[ 4,15]]
    	Local $iAutoItCursorID = MouseGetCursor()
    	For $i = 0 To UBound($aIDs) -1
    		If $iAutoItCursorID = $aIDs[$i][0] Then Return $SysCursorIDs[$aIDs[$i][1]]
    	Next
    	Return SetError(1)
    EndFunc
    Alles anzeigen


    AutoIt-Suche - Cursor.png

  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 30. Juni 2016 um 15:18

    Und wenn du dir das erste Bild von mir angeschaut hast, siehst du, dass deine Funktion immer noch nicht zu 100% so sortiert, wie die mit dem DllCall()... :D

    Edit: Nimm alles zurück... jetzt, wo ich _ArrayNaturalSort() rausgenommen habe, sortiert deine Funktion 1:1 wie die mit dem DllCall()... verstehen tue ich es aber nicht... wieso das vorher nicht korrekt war.

  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 30. Juni 2016 um 15:00

    Ähm... der Fehler tritt in der Funktion _ArrayNaturalSort() auf... hat also nichts mit deiner Funktion zu tun, oder bin ich jetzt total panne?

    Und wieder spinnt der Editor hier und will mit aller Gewalt die halbe Zeile mit in die nächste Zeile nehmen, wenn ich Enter drücke... grrr

    Vor Enter...
    Ähm... der Fehler tritt in der Funktion _ArrayNaturalSort() auf... hat also nichts mit deiner Funktion zu tun, oder bin ich jetzt total panne?


    Nach Enter... (Cursor steht hinter 'panne?')

    Ähm... der Fehler tritt in der Funktion _ArrayNaturalSort() auf... hat
    also nichts mit deiner Funktion zu tun, oder bin ich jetzt total panne?

    Und der Cursor steht dann vor 'also'...

    Aso, mit Shift+Enter geht es dann...

  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 30. Juni 2016 um 14:28

    Habe das Script im Angang hinzugefügt...

  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 30. Juni 2016 um 14:13

    Ja du hast Recht - die normale Sortierung wird demnach definitiv benötigt.

    Hm... da stimmt aber noch etwas nicht mit der Sortierung... siehe Bild.

    Nachtrag: Und jetzt wo ich die Zahlen eingebaut habe, bekomme ich bei jedem 3-5 Aufruf einen Fehler... siehe Bild (WEnd.png).

    Dateien

    Sortierung.png 41,46 kB – 0 Downloads WEnd.png 46,17 kB – 0 Downloads _ArraySortShowDiff.au3 5,59 kB – 276 Downloads
  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 30. Juni 2016 um 13:34

    Wow!!!

    Das ist ja jetzt mal echt mega-geil, was du hier abziehst!

    Wirklich sehr schön finde ich, dass du das ursprüngliche 'Beispiel' nun doch perfektioniert hast und man somit immer eine echte Alternative zu dem DllCall() hat.


    Bin echt begeistert...

    Hm, bei der Explorer-Lösung scheint mir die normale Sortierung aber überflüssig... die wird wohl nie ausgeführt.


    __
    Grrr, was ist das denn für ein oberschwuler Editor hier auf autoit.de? Der spinnt zeitweise aber total. Will ich mit Enter einen Zeilenumbruch generieren, nimmt der die halbe Zeile einfach mit in die neue Zeile!? Im erweiterten Modus geht es aber dann.

    Boar, will mittlerweile in jedem Editor mit Strg+Shift+Up/Down die Zeilen vertauschen... und wundere mich gerade, dass es hier nicht geht.

  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 29. Juni 2016 um 00:05

    Ich verstehe deinen Einwand!

    Meine Aussage bezieht sich allerdings nur auf die Ergebnisse der hier vorgestellten Funktionen, ohne deren Status zu analysieren.

    Bezieht man den Status mit ein, dürfte deine Funktion natürlich nicht (ohne erklärenden Kommentar) in dieser Liste aufgeführt werden.

    Wie hätte ich es denn besser formulieren sollen?

    Dein erweitertes Beispiel liefert übrigens dasselbe Ergebnis, wie die einfache Funktion.

  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 27. Juni 2016 um 22:23

    Ich habe hier mal alle Ergebnisse in einem Array zusammengefaßt, damit man besser vergleichen kann, welche Funktion wie sortiert.

    Keine macht es zu 100% so, wie der Explorer.

    Spoiler anzeigen
    AutoIt
    #include <Array.au3>
    #include <_ArrayNaturalSort.au3>
    #include <_ArraySortLikeExplorer.au3>
    #include <DynArray.au3>
    
    
    ;-- TIME_STAMP   2016-06-27 22:06:02
    
    
    Local $aArray[] = ['{2} Bla','{1} Bla','[2] Bla','[1] Bla','(1) Bla','(10) Blub','(11) Ccc','(12) Ddd','(2) Haa','(3) Hoo','(4) Muh','(5) Wuff','(6) Brr','(7) Klirr','(8) Knarr','(9) Uff','Hallo','Welt','AutoIt', 'Bla 10', 'Bla 9','1 Bla','10 Blub','11 Ccc','12 Ddd','2 Haa','3 Hoo','4 Muh','5 Wuff','6 Brr','7 Klirr','8 Knarr','9 Uff',' Space']
    Local $aExplorer = [' Space','(1) Bla','(2) Haa','(3) Hoo','(4) Muh','(5) Wuff','(6) Brr','(7) Klirr','(8) Knarr','(9) Uff','(10) Blub','(11) Ccc','(12) Ddd','[1] Bla','[2] Bla','{1} Bla','{2} Bla','1 Bla','2 Haa','3 Hoo','4 Muh','5 Wuff','6 Brr','7 Klirr','8 Knarr','9 Uff','10 Blub','11 Ccc','12 Ddd','AutoIt','Bla 9','Bla 10','Hallo','Welt']
    
    
    Local $aShowAll[UBound($aArray)+1][6], $sSpacer = '~~~~~~~~~~~~~~~~'
    
    
    _ArrayShuffle($aArray)
    _Add1DTo2D($aArray, $aShowAll, 0)
    
    
    _ArraySort($aArray)
    _Add1DTo2D($aArray, $aShowAll, 1)
    
    
    _ArraySortLikeExplorer($aArray)
    _Add1DTo2D($aArray, $aShowAll, 2)
    
    
    _ArrayNaturalSort($aArray)
    _Add1DTo2D($aArray, $aShowAll, 3)
    
    
    _ArraySortFlexible($aArray, MyCompare)
    _Add1DTo2D($aArray, $aShowAll, 4)
    
    
    _Add1DTo2D($aExplorer, $aShowAll, 5)
    _ArrayDisplay($aShowAll, 'AllSort', '', 0, Default, 'Shuffled|_ArraySort|_ArraySortLikeExplorer|_ArrayNaturalSort|_ArraySortFlexible|Explorer')
    
    
    Func _Add1DTo2D(ByRef $aArray1D, ByRef $aArray2d, $iColumn)
    	For $i = 0 To UBound($aArray1d) -1
    		$aArray2d[$i][$iColumn] = $aArray1D[$i]
    	Next
    	$aArray2d[$i][$iColumn] = $sSpacer
    EndFunc
    
    
    ; eigene Vergleichsfunktion um individuelle Sortierregeln umzusetzen
    Func MyCompare($A, $B)
    	Local $pat_A = "^\((\d+)\)"
    	; Falls Zahlen in Klammer am Anfang:
    	If StringRegExp($A, $pat_A) And StringRegExp($B, $pat_A) Then
    		Local $dA = Number(StringRegExp($A, $pat_A, 1)[0]), $dB = Number(StringRegExp($B, $pat_A, 1)[0])
    		If $dA > $dB Then
    			Return 1
    		ElseIf $dA < $dB Then
    			Return -1
    		EndIf
    	EndIf
    	; ganz normale Sortierung
    	Return $A > $B ? 1 : $A < $B ? -1 : 0
    EndFunc   ;==>MyCompare
    Alles anzeigen

    Dateien

    AllSort.jpg 174,05 kB – 0 Downloads
  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 26. Juni 2016 um 23:27

    _ArraySortLikeExplorer() wird mit einem 1D-Array gefüttert und gibt ein 2D-Array zurück...

  • Sortierung, wie im Explorer-Tree - wie gehts?

    • Bitnugger
    • 26. Juni 2016 um 17:16

    Vielleicht hilft dir das hier weiter: https://www.autoitscript.com/forum/topic/10…ee-in-treeview/


    AutoIt
    DllCall('user32.dll','int','SendMessage','hwnd',$hWnd,'uint',$TVM_SORTCHILDREN,'wparam',true,'lparam',$hItem)
  • Ergebnisse in unterschiedlichen Farben darstellen

    • Bitnugger
    • 17. Juni 2016 um 00:38

    Dazu fallen mir spontan zwei Lösungen ein...

    1.) du benutzt anstelle eines einfachen Edit-Controls ein RichEdit-Control.

    2.) du benutzt ein Listview und fängst die Message $NM_CUSTOMDRAW ab.
    Unterschiedliche-Textfarben-innerhalb-einer-ListView

  • Foren-Suchfunktion

    • Bitnugger
    • 15. Juni 2016 um 08:52
    Zitat von Yaerox

    Ich hatte mal ein nettes Buch als PDF, wie man mit Google richtig googled. Werd bei Gelegenheit mal schauen ob ich das noch finde und kann das dann bei Bedarf gern anhängen, da waren viele viele Tricks in ganz kurzen Abschnitten erklärt ;)

    Hier ist es auch sehr gut beschrieben: http://techify.de/google-suche-r…er-suchbefehle/

    Hier noch besser: https://support.google.com/websearch/answer/134479?hl=de

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™