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

Beiträge von autoBert

  • Excel-, Word-, CSV-Dateien nach einem Suchbegriff durchsuchen

    • autoBert
    • 9. September 2016 um 08:51
    Zitat von water

    No records found" isn't returned as an error by Excel. The function just returns an empty array. So you need to check for the number of rows in the array.

    Und du weißt doch schon wie du dies überprüfen kannst:

    Zitat von autoiter
    AutoIt
    If UBound($aResult) > 0 Then MsgBox(0, "", "Treffer")
  • Excel-, Word-, CSV-Dateien nach einem Suchbegriff durchsuchen

    • autoBert
    • 8. September 2016 um 23:27

    Ist ein AutoIt Bug, lies dazu: https://www.autoitscript.com/forum/topic/18…r-autoit-33120/

  • Windows Pfad öffnen, Dateien gleich nach Neuesten sortieren und große Symbole anzeigen

    • autoBert
    • 8. September 2016 um 01:08
    Zitat von Kanashius

    Das ist kein Autoit. Ist bei allen Bios: Du kannst Programmen argumente mitgeben.

    was hat Parameterübergabe mit dem Bios zu tun?

  • Reguläre Ausdrücke

    • autoBert
    • 7. September 2016 um 15:56

    Ich würde es so lösen:

    AutoIt
    $sData=FileRead('Neues Textdokument 2.0.txt')
    $sData=Stringreplace($sData,' '&@CRLF,'')
    $sData=Stringreplace($sData,' rt','')
    $sData=StringStripWS($sData,7)
    ConsoleWrite($sData)
    $hFile=FileOpen('New.txt',2)
    FileWrite($hFile,$sData)
    FileClose($hFile)
    ShellExecute('New.txt')

    auch kein RegEX, aber wie du siehst es geht auch ohne.

  • Array crash dimension range exceeded

    • autoBert
    • 7. September 2016 um 12:48

    Ich würde dafür ein 1 basiertes Array nehmen:

    AutoIt
    #include <Array.au3>
    Global $aAll[1], $aBlack[1]
    
    
    For $i=1 to 10
    	_ArrayAdd($aAll,$i)
    	_ArrayAdd($aBlack,$i)
    Next
    
    
    $aAll[0]=UBound($aAll)-1
    $aBlack[0]=UBound($aBlack)-1
    
    
    For $i=$aAll[0] to 1 Step -1
    	ConsoleWrite('I: '&$i&$aAll[$i]&@TAB)
    	If _ArraySearch($aBlack,$aAll[$i],1) Then
    		_ArrayDelete($aAll,$i)
    		$aAll[0]-=1
    	EndIf
    Next
    _ArrayDisplay($aAll)
    
    
    ConsoleWrite('Elements left: '&$aAll[0]&@CRLF)
    Alles anzeigen
  • Prüfung einer Datei

    • autoBert
    • 6. September 2016 um 19:47
    Zitat von nwmbd

    Ich habe hierzu ein Code gefunden der aber ab einer bestimmten Größe ein Ereignis auslöst.

    Ich möchte wenn Person X / Programm Y etwas in eine Datei schreibt, dass PC Z eine MSGBOX erhält.

    ja und warum machst du das nicht? Ich erkenne keine Frage im Thema!

  • Computer Startuptime auslesen und in Array schreiben

    • autoBert
    • 6. September 2016 um 12:58
    Zitat von autoiter

    Das Datumsformat ist mm.dd.yyyy.

    liegt wohl daran, daß @n00b-it script aus dem englischsprachigen Raum kommt und die Funktion:

    AutoIt: WMIDateStringToDate
    <strong>Func WMIDateStringToDate($dtmDate)</strong>
    <strong>	Return (StringMid($dtmDate, 5, 2) & "/" & StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate, 13, 2))</strong>
    <strong>EndFunc   ;==>WMIDateStringToDate</strong>


    nicht eingedeutsch bzw. internationalisiert wurde.


    hier die dt. Version:

    AutoIt
    <strong>Func WMIDateStringToDate($dtmDate)</strong>
    <strong>	Return (StringMid($dtmDate, 7, 2) & "/" & StringMid($dtmDate, 5, 2)& "/" & StringLeft($dtmDate, 4) & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate, 13, 2))</strong>
    <strong>EndFunc   ;==>WMIDateStringToDate</strong>

    und jetzt noch die internationale Variante:

    AutoIt
    <strong>Func WMIDateStringToDate($dtmDate)</strong>
    <strong>	;bnötigt #include <Date.au3></strong>
    <strong>	ConsoleWrite($dtmDate&@CRLF)</strong>
    <strong>	$sDate=StringLeft($dtmDate,4)&'/'& StringMid($dtmDate, 5, 2)&'/'&StringMid($dtmDate, 7, 2)&' '&StringMid($dtmDate,9,2)&':'&StringMid($dtmDate,11,2)&':'&StringMid($dtmDate,13,2)</strong>
    <strong>	Return _DateTimeFormat($sDate)</strong>
    <strong>EndFunc   ;==>WMIDateStringToDate</strong>



    hier wird automatisch das Datumsformat lt. den Ländereinstellungen genommen.


    Zitat von kaesereibe

    Ich fahre mein PC jeden Tag hoch und runter =)

    Bist du dir da sicher? Ausschalten über PowerOff heißt bei Win10 nicht unbedingt herunterfahren, kommt auf die Einstellungen an:
    101_Systemeinstellungen.jpg

  • Computer Startuptime auslesen und in Array schreiben

    • autoBert
    • 5. September 2016 um 18:49
    Zitat von Hector

    Was liest der Script denn genau aus`? wie lange der Computer läuft, oder wie lange der tatsächliche start des Computers gedauert hat`? Also von "On/Off" drücken bis Login Screen / Desktop?

    wann der letzte "Kalt'-Start von Windows war.

  • Darstellungsproblem Bei Text (Label) auf GUI

    • autoBert
    • 1. September 2016 um 21:34
    Zitat von MrB

    UUpps, dachte das wäre offensichtlich.

    Offensichtlich wäre es vielleicht, wenn ein lauffähiges Skript zum Testen verbügbar wäre! Aber immerhin weis ich jetzt, daß sich "daneben" nicht auf die Position bezieht.

  • Darstellungsproblem Bei Text (Label) auf GUI

    • autoBert
    • 1. September 2016 um 20:56
    Zitat von MrB

    nur ist die Darstellung des Textes ein wenig "daneben"

    was erwartest du wenn der Text rechts ausgerichtet wird? Bersuch es mit $SS_CENTER.

    Vor allem solltest du mal ein wenig "daneben" definieren!

  • Array variable has incorrect number... - verstehe es nicht

    • autoBert
    • 1. September 2016 um 16:47
    Zitat von dost0011

    WO GENAU steht, dass das Ergebnis ein 2D Array ist?

    weis ich nicht, aber wenn es einer weis, dann water.

    Aber spätestens durch _Arraydisplay weist du ja das es ein 2D-Array ist:

    Zitat von dost0011

    Das funktioniert und ich kann es mit _Arraydisplay anschauen.

  • Array variable has incorrect number... - verstehe es nicht

    • autoBert
    • 31. August 2016 um 12:43

    Jede Funktion hat einen Rückgabewert. Die warscheins von dir verwendete _Excel_RangeRead
    gibt bei mehrern Zellen logischerweise ein Array zurück. Wie man mit Array's umgeht kann man in https://www.autoitscript.com/wiki/Arrays nachlesen.

    @BugFix hat auch ein Arraytutorial geschrieben, sollte in seiner Signatur verlinkt sein.

  • Wie kann ich von einem Button weiterleiten auf eine neue seite?

    • autoBert
    • 31. August 2016 um 12:22

    Mit Seite meinst du GUI?

    einfach GuiSetState mit allen Parametern benutzen. Wichtiger bei Programmen mit mehreren GUI's ist allerdings das korrekte Zuordnen der Events, dazu benutzt man am besten GUIGetMsg im extended Modus:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    Global $hGui1, $hGui2 = -99, $idMsgBox, $idZurueck, $idbtnExit2
    ;_CreateGui2() ;entweder hier oder erst wenn benötigt ($idbtmToGui2 Klick)
    #Region GUI1 #####################################################################################
    $hGui1 = GUICreate('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX),$WS_EX_TOPMOST)
    ;erzeugt eine GUI , das zurückgebebene Handle wird in der Variablen $hGui1 gespeichert
    ;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
    $idbtnToGui2 = GUICtrlCreateButton('&Aufruf GUI 2', 20, 20, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "Aufruf Gui 2" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    $idbtnICQ = GUICtrlCreateButton('&ICQ', 20, 50, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "ICQ" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    $idbtnExit1 = GUICtrlCreateButton('be&enden', 280, 225, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
    ;verankert den Button "beenden" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    GUISetState(@SW_SHOW, $hGui1)
    #EndRegion ###########################################################################################
    While 1
    	$nMsg = GUIGetMsg(1) ;extended Modus wichtig!!
    	Switch $nMsg[1] ;für welches Fenster ist die Message
    		Case $hGui1 ;ab hier ist Gui 1 dran
    			Switch $nMsg[0] ;welche Message wurde ausgelöst
    				Case $idbtnToGui2
    					GUISetState(@SW_DISABLE, $hGui1) ;Gui 1 gegen Benutzereingaben sperren
    					If $hGui2 = -99 Then _CreateGui2() ;nur wenn noch nicht erzeugt
    					GUISetState(@SW_SHOW, $hGui2) ;Gui 2 anzeigen
    				Case $idbtnICQ
    					MsgBox(0, "", "Jetzt würde ICQ gestartet", 0, $hGui1)
    					;Run("C:\Program Files\ICQ7.0\ICQ.exe")
    				Case $idbtnExit1, $GUI_EVENT_CLOSE
    					_end()
    			EndSwitch
    		Case $hGui2 ;ab hier ist Gui 2 dran
    			Switch $nMsg[0] ;welche Message wurde ausgelöst
    				Case $idMsgBox
    					MsgBox(0, 'Test', 'Test', 0, $hGui2)
    				Case $idZurueck, $GUI_EVENT_CLOSE
    					GUISetState(@SW_ENABLE, $hGui1) ;Gui 1 wieder entsperren
    					GUISetState(@SW_HIDE, $hGui2) 	;Gui 2 verstecken
    				Case $idbtnExit2
    					_end()
    			EndSwitch
    	EndSwitch
    WEnd
    Func _CreateGui2()
    	$hGui2 = GUICreate('GUI 2', 400, 280, 200, 50, -1, -1, $hGui1) ;wichtig ist der letzte Parameter
    	;erzeugt eine GUI als Child von Gui1, das zurückgebebene Handle wird in der Variablen $hGui2 gespeichert
    	$idMsgBox = GUICtrlCreateButton('&MsgBox', 20, 20, 100, 21)
    	$idZurueck = GUICtrlCreateButton('&Zurück zu GUI 1', 20, 50, 100, 21)
    	$idbtnExit2 = GUICtrlCreateButton('be&enden', 280, 250, 100, 21)
    	GUISetState(@SW_HIDE, $hGui2) ;Gui 2 vorerst verstecken
    EndFunc   ;==>_CreateGui2
    Func _end()
    	GUIDelete($hGui2)
    	GUIDelete($hGui1)
    	Exit
    EndFunc   ;==>_end
    Alles anzeigen
  • ERLEDIGT --> Raspberry Pi® 2 Model B Advanced-Set 1 GB

    • autoBert
    • 31. August 2016 um 12:11

    Abschließend noch ein Tip: http://www.heise.de/newsticker/mel…et-3307325.html

  • Functions abbrechen

    • autoBert
    • 29. August 2016 um 18:06
    Zitat von Xorianator

    Einfach nicht mehr antworten, das wäre auch eine Lösung.

    zu Tode reden posten die andere.

  • Functions abbrechen

    • autoBert
    • 29. August 2016 um 17:58
    Zitat von autoiter

    Ich denke er möchte in seinem Fall keinen Exitloop, sondern die Möglichkeit an einem früheren Punkt wieder einzusteigen.

    Wer redet den von ExitLoop? ContiniueLoop scheint das gewünschte zu sein:

    Code
    While 1 
    	Case $Button1
    		Function1()
    		if @Error then continueloop
    		Function2()
    		if @Error then continueloop
    		Function3()
    		if @Error then continueloop
    		Function4()
    		if @Error then continueloop
    		Function5()
    WEnd
    Alles anzeigen

    aber da der TE sich so stark weigert ein komplett laufbares (Demo?)-Skript einzustellen, votiere ich hiermit dafür das Them zu schliessen!

  • Passwort- und Datenspeicher in DB mit Eingabe- und Suchmaske

    • autoBert
    • 27. August 2016 um 13:02

    Hier zwei kleine Demoskripte:

    • 1. PasswortCreator2.au3 damit werden die Passwörter für alle Benutzer verschlüsselt in einer INI gespeichert.
    • 2. LoginCheck2.au3 prüft ob die Logindaten korrekt sind.

    mfg (auto)Bert

  • Funktion "_RecursiveFileListToArray" auf mehere Laufwerke ausweiten - aber wie? (ANFÄNGER)

    • autoBert
    • 25. August 2016 um 17:44
    Zitat von kilo

    PS: Derzeit frage ich mit einer einer For-Next-Schleife die Laufwerke nacheinander ab und bekomme so bis zu 5 Arrays, die ich dann zusammenführe, aber wirklich sauber, oder gar elegant ist das nicht ...

    Genau so würde ich es auch lösen.

  • Battle: Autoit vs. FreeBasic - Runde 1+2+3

    • autoBert
    • 24. August 2016 um 15:21
    Zitat von UEZ

    Nun ja, definiere "ähnliches".

    Ich erinnere mich an ein Script (mit Dali als Bild) bei dem das Gesicht sich verändert. Es handelt sich um https://autoit.de/index.php/Atta…ave-v1-3-2-au3/ in dem ich spaßhalber Dali (aus CosinusBrothers) eingesetzt habe, läuft bei mir mit 2 FPS.

  • Battle: Autoit vs. FreeBasic - Runde 1+2+3

    • autoBert
    • 24. August 2016 um 12:46
    Zitat von UEZ

    Ich habe jetzt den Code angepasst, sodass nur im gleichen Pfad geschaut wird, d.h. sollte jetzt funzen.

    Bitte mal testen!

    Funktioniert auf win10 x64 mit 7 FPS. Afair hast du aber schon einmal ein ähnliches mit AutoIt geschriebenes Skript eingestellt. Und da ich dem Source entnehme, das du zeitkritische Aufgaben mit Inlineassembler löst, sollte der Nachteil von AutoIt nicht so stark zum tragen kommen.

    mfg (auto)Bert

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™