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

  • Timer mit Progressbar der läuft während ein Programm läuft

    • autoBert
    • 9. März 2016 um 02:18

    Eine ProgressBar die schon 100% zeigt bevor das Backup fertig ist, wirkt nicht nur unschön sondern verleitet auch dazu schon abzustpüseln. Daher rate ich zur Marquee-Progressbar. Timer kannst du mit AdLibRegister machen.

    AutoIt: OnEvent-Modus
    #include <GUIConstantsE x.au3>
    #include <SendMessage.au3>
    #include <ProgressConstants.au3>
    
    
    Opt("GUIOnEventMode", 1)
    
    
    $Form1 = GUICreate("Form1", 545, 125, 5, 5);, $WS_POPUP, $WS_EX_TOOLWINDOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    $Button1 = GUICtrlCreateButton('&STOP Marquee', 5, 5)
    GUICtrlSetOnEvent(-1, "StopResumeMarquee")
    $Timer = GUICtrlCreateLabel('Zeit: ', 470, 5, 70)
    $Progress1 = GUICtrlCreateProgress(0, 95, 545, 25, $PBS_MARQUEE)
    $hProgress = GUICtrlGetHandle($Progress1) ;wichtig
    _SendMessage($hProgress, $PBM_SETMARQUEE, True, 10) ;Handle verwenden
    GUISetState(@SW_SHOW)
    $dtStart = TimerInit()
    
    
    AdlibRegister('Timer', 1000)
    
    
    While 1
    	Sleep(100)
    WEnd
    
    
    Func Timer()
    	Local $Time = TimerDiff($dtStart) / 1000
    	Local $HOUR = Int($Time / 3600)
    	Local $MIN = Int(($Time - $HOUR * 3600) / 60)
    	Local $SEC = $Time - $HOUR * 3600 - $MIN * 60
    	GUICtrlSetData($Timer, StringFormat("%02i:%02i:%02i", $HOUR, $MIN, $SEC))
    EndFunc   ;==>Timer
    
    
    Func StopResumeMarquee()
    	If GUICtrlRead($Button1) = '&STOP Marquee' Then
    		_SendMessage($hProgress, $PBM_SETMARQUEE, False, 10)
    		GUICtrlSetData($Button1, '&Resume Marquee')
    	Else
    		_SendMessage($hProgress, $PBM_SETMARQUEE, True, 10)
    		GUICtrlSetData($Button1, '&STOP Marquee')
    	EndIf
    EndFunc   ;==>StopResumeMarquee
    
    
    Func Form1Close()
    	Exit
    EndFunc   ;==>Form1Close
    Alles anzeigen
    AutoIt: MsgLoop-Modus
    #include <GUIConstantsEx.au3>
    #include <SendMessage.au3>
    #include <ProgressConstants.au3>
    
    
    
    
    $Form1 = GUICreate("Form1", 545, 125, 5, 5);, $WS_POPUP, $WS_EX_TOOLWINDOW)
    $Button1 = GUICtrlCreateButton('&STOP Marquee', 5, 5, 200)
    $Timer = GUICtrlCreateLabel('Zeit: ', 470, 5, 70)
    $Progress1 = GUICtrlCreateProgress(0, 95, 545, 25, $PBS_MARQUEE)
    $hProgress = GUICtrlGetHandle($Progress1)
    _SendMessage($hProgress, $PBM_SETMARQUEE, True, 10)
    GUISetState(@SW_SHOW)
    $dtStart = TimerInit()
    
    
    
    
    AdlibRegister('Timer', 1000)
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $Button1
    			If GUICtrlRead($Button1) = '&STOP Marquee' Then
    				_SendMessage($hProgress, $PBM_SETMARQUEE, False, 10)
    				GUICtrlSetData($Button1, '&Resume Marquee')
    			Else
    				_SendMessage($hProgress, $PBM_SETMARQUEE, True, 10)
    				GUICtrlSetData($Button1, '&STOP Marquee')
    			EndIf
    		Case $GUI_EVENT_CLOSE
    			Exit
    	EndSwitch
    WEnd
    
    
    Func Timer()
    	Local $Time = TimerDiff($dtStart) / 1000
    	Local $HOUR = Int($Time / 3600)
    	Local $MIN = Int(($Time - $HOUR * 3600) / 60)
    	Local $SEC = $Time - $HOUR * 3600 - $MIN * 60
    	GUICtrlSetData($Timer, StringFormat("%02i:%02i:%02i", $HOUR, $MIN, $SEC))
    EndFunc   ;==>Timer
    Alles anzeigen
  • For Next Schleife - Wert der Variablen

    • autoBert
    • 9. März 2016 um 00:56

    Bei For ... Next Schleifen wird die zu Iteriende Variable bei jedem Next um Step (default 1) erhöht und das nächste For prüft auf Gültigkeit und bricht bei Bedarf ab.

    @CentuCore: Zählschleifen sind eine Sonderform einer Kopfgesteuerten Schleife:

    AutoIt: Gegenüberstellung von Schleifen
    For $i=1 to 2
    	ConsoleWrite('For Schleife: '&$i&@CRLF)
    Next
    ConsoleWrite('nach For Schleife: '&$i&@CRLF)
    
    
    $i=1
    While $i<=2
    	ConsoleWrite('while Schleife: '&$i&@CRLF)
    	$i+=1
    WEnd
    ConsoleWrite('nach while Schleife: '&$i&@CRLF)
    $i=1
    Do
    	ConsoleWrite('do Schleife: '&$i&@CRLF)
    	$i+=1
    Until $i>2
    ConsoleWrite('nach do Schleife: '&$i&@CRLF&@CRLF)
    
    
    ConsoleWrite('Bedingung von Amfang überschritten'&@CRLF)
    For $i=3 to 2  	;Start is absichtlich höher als Endwert
    	ConsoleWrite('For Schleife: '&$i&@CRLF)
    Next
    ConsoleWrite('nach For Schleife: '&$i&@CRLF)
    
    
    $i=3
    While $i<=2
    	ConsoleWrite('while Schleife: '&$i&@CRLF)
    	$i+=1
    WEnd
    ConsoleWrite('nach while Schleife: '&$i&@CRLF)
    $i=3
    Do
    	ConsoleWrite('do Schleife: '&$i&@CRLF)
    	$i+=1
    Until $i>2
    ConsoleWrite('nach do Schleife: '&$i&@CRLF)
    Alles anzeigen
  • CPU Auslastung verringern - objwmiservice.execquery( select * from win32_service")

    • autoBert
    • 8. März 2016 um 16:15

    liefert diese func:

    Code
    #Region Statusmode
    Func _statusmode()
    	Local $objWMIService = ObjGet('winmgmts:\\.\root\cimv2')
    	Local $colItems = $objWMIService.ExecQuery("Select * From Win32_Service")
    	If IsObj($colItems) Then
    		For $objItem In $colItems
    			For $i = 0 To _GUICtrlListView_GetItemCount($listview) - 1
    				If _GUICtrlListView_GetItemText($listview, $i, 2) = $objItem.DisplayName Then
    					_GUICtrlListView_SetItemText($listview, $i, $objItem.StartMode, 0)
    					_GUICtrlListView_SetItemText($listview, $i, $objItem.State, 1)
    				EndIf
    			Next
    		Next
    	EndIf
    EndFunc   ;==>_statusmode
    #EndRegion Statusmode
    Alles anzeigen

    nicht das gleiche Ergenisse wie deine, nur etwas schneller?

  • Programm läuft nicht überall?!?

    • autoBert
    • 7. März 2016 um 20:34
    Zitat von AspirinJunkie

    Dein gezeigter code ist kein minimalbeispiel. Es sind nur lose codefetzen die keiner so ausführen kann.
    Mach doch einfach ein ganz normales Miniskript was das Problem bei anderen direkt reproduzierbar macht.

    Du schriebst, dass du Probleme beim ausführen von sql-befehlen hast. Die ganzen cryptsachen können da ja für ein Minibeispiel raus. Und so dünnst du schrittweise dein Skript auf das eigentliche Problem aus. Und mit etwas Glück stößt du bei diesem ausdünnungsprozess darauf, dass dein eigentliches Problem doch an einer ganz anderen stelle zu suchen ist.

    Und behalte immer den Satz im Hinterkopf: Warum sollte jemand mehr Zeit in die Beantwortung deiner Frage investieren als du selbst in die Aufstellung der Frage investiert hat?

    meist findet sich auf diesem Weg auch der Fehler. _SQLite_LibVersion
    ( ) solltest du in dein Beispiel aufnehmen um die genutzte DLL-Version vergleichen zu können.

  • Mehrere Variablen zusammensetzten mit Eval () - Fehler

    • autoBert
    • 7. März 2016 um 12:33

    Kannst du mir sagen warum du eine Endlosschleife in deinem Skript hast? Daß du endlos viele C:\Users\blabla\chromeXXXXXX.Lnk-Files hast wage ich zu bezweifeln.

  • Output device bei Sound wiederhabe spezifizieren?

    • autoBert
    • 5. März 2016 um 14:22

    Dieser Beitrag könnte zur Lösung beitragen.

  • Meine Reaktion auf gewisse Nutzer ...

    • autoBert
    • 5. März 2016 um 01:18
    Zitat von Bioshade

    Aber einen riesen Aufstand machen, wenn man ÖFFENTLICH ZUGÄNGLICHE Informationen über dich benutzt, die du selbst erst zugänglich gemacht hast.

    Es macht einen Unterschied ob du jemanden über den Usernamen oder den Klarnamen angreifst. Das jeder Interessierte den Klarnamen durch eigene Recherche ermitteln könnte tut imho nichts zur Sache. Und Leute die ihn persönlich kennen bzw. seine Geschäftpartner würden wohl nie einen Bezug zwischen beiden herstellen können.
    Daß du soweit gehst und dieses Thema mittlerweile in deiner Signatur verlinkst geht imho auch zu weit. Dadurch sind die Chancen gestiegen, daß auch nicht Programmierer einen Bezug zwischen User- und Klarnamen herstellen können. Aus diesem Grund solltest du den Klarnamen und den Link zu seiner Seite herauseditieren. (Gleiches gilt natürlich auch für @Blaxxun für alle seine Beiträge, damit es Sinn macht.)
    Oder hat jemals einer, der sich durch dich angegriffen gefühlt hat, einen Link zu einem Thema von dir in seiner Signatur eingestellt, auch wenn man allein dadurch noch nicht auf deinen Klarnamen kommen kann?

  • Meine Reaktion auf gewisse Nutzer ...

    • autoBert
    • 4. März 2016 um 20:09

    Der Vermutung des Doppelaccounts wage ich zu widersprechen, denn wie du selbst bemerkt hast:

    Zitat von Bioshade

    noch veröffentlichen sie Seiten in mittelmäßigem Englisch

    aber ******* kommt mit Englisch ja gar nicht zurecht. Der sogenannte Doppelaccount ist jetzt im Entwicklerforum, übrigens dort hättest du für diesen Post und einige Bemerkungen in anderen Posts schon >=1 gelbe Karte gezeigt bekommen. Habe ich dort für auch schon bekommen, daß ich bei allzu dummen Fragen gerne gezeigt habe, allerdings meist mit Hinweis was sie lesen sollen.

  • Dynamische Variablen (Variablennamen) aus IniReadSection heraus

    • autoBert
    • 4. März 2016 um 12:22

    Ich denke diese UDF kann so etwas handlen.

  • String in Array übergeben jeden Buchstaben einzeln

    • autoBert
    • 3. März 2016 um 14:32

    Nur der Vollständigkeit halber, es funktioniert natürlich auch mit StringSplit:

    Code
    #include <Array.au3>
    
    
    $sValue = "Dies ist ein Texttesttext"
    $aChars = StringSplit($sValue, "", 2)
    _ArrayDisplay($aChars)

    in diesem Fall ist der Delimiter ein Leerstring:

    Zitat von Dt. Hilfeübersetzung


    Bemerkungen
    Wird als Tennzeichen ein Leerstring "" angegeben, so wird jedes Zeichen des Strings im Array als Element zurückgegeben.

    die Hilfe sollte schon gelesen werden, denn wer sein Werkzeug nicht kennt kann es nicht einsetzen. _StringExplode verwendet auch StringSplit ist sozusagen _StringSpliteEx.
    Es ist keine Schande wenn man eine Funktion nicht auf die Reihe bekommt, denn viele Wege führen zum Ziel.

    Zitat von Blaxxun


    Wozu ist denn so ein Forum gut wenn sowieso alles in der Hilfe steht???

    In der Hilfe steht eben nicht alles, die Programmlogik (und das Zusammenarbeiten der verschiedenen Funktionen) muss man sich erst noch erarbeiten bzw. erfragen.

  • Gui mit TrayItem

    • autoBert
    • 2. März 2016 um 14:26

    Du kannst doch beides in einer einzigen Schleife erledigen, schön getrennt in 2 Switch ... EndSwitch Blöcken. Im Anhang ein Beispiel dazu, geht leider nicht anders da die eingebetten Binärdaten evtl. WBB durcheinanderbringen. Der Link im Guifenster ist mittlerweile tot.

    Dateien

    numpad.au3 79,71 kB – 303 Downloads
  • CPU effektiver bei Script Ausführung einsetzten

    • autoBert
    • 29. Februar 2016 um 22:35

    Wenn ich die 1. Schleife auf 10 Mio setze und dafür die 2. weglasse benötigt mein NetBook 50 Sekunden, davon 30 mSek zum schreiben. Eine Progressbar marquee würde da schon Sinn machen.

  • CPU effektiver bei Script Ausführung einsetzten

    • autoBert
    • 29. Februar 2016 um 21:29

    Das Skript und die Beschreibung aus dem Eröffnungsbeitrag passen nicht zueinander. Vor allem scheint die gepostete Funktion eine Encryption-Mehode zu sein, siehe

    Code
    GUICtrlSetData($lb_Progress,"Encrypt: Please wait... " & $new_perc & "%")


    Mein alter Kopf ist allerdings noch nicht dahintergekommen wie sie funktionieren soll. :/
    Aber für encrypt gibt es ja schon _Crypt_EncryptData.

    Hier eine Methode die dem Eröffnungsbeitrag entspricht:

    Code
    $s1=''
    $dtStart=TimerInit()
    For $i = 1 To 100000
    	$s1 &= Chr(Random(0, 255, 1))
    Next
    ConsoleWrite(TimerDiff($dtStart)&@CRLF)
    $dtStart=TimerInit()
    $hFile = FileOpen('random.tst',2)
    for $i=1 to 100
    	FileWrite($hFile,$s1)
    Next
    FileClose($hFile)
    ConsoleWrite(TimerDiff($dtStart)&@CRLF)
    Alles anzeigen

    Mein Netbook braucht dafür keine Sekunde. Diesen zufälligen Text auch noch zu encrypten erschien mir unnötig. Eine Fortschrittsanzeige würde mehr Laufzeit verschwenden als das Skript benötigt, also auch weggelassen.
    Übrigens anders als beim Skript des TE's werden die Daten wirklich in eine Datei geschrieben.

  • CPU effektiver bei Script Ausführung einsetzten

    • autoBert
    • 29. Februar 2016 um 14:34

    bei solchen Spielereien:

    Code
    $posRandomName = Random($int*0.1,$int*0.9,1)
    			Do
    				$posRandomTimer = Random($int*0.1,$int*0.9,1)
    			Until $posRandomName <> $posRandomTimer

    braucht man sich nicht wundern, daß das Skript zwar eine CPU 100% auslastet aber trotzdem schläft.

  • CPU effektiver bei Script Ausführung einsetzten

    • autoBert
    • 29. Februar 2016 um 12:50

    Auf meinem NetBook ist die Stringmethode bei 1 Mio Chr um 3 * schneller als die Struct Methode.

  • TCP Server kann Anfragen nicht verarbeiten

    • autoBert
    • 28. Februar 2016 um 16:13

    Ich bezweifle das dein Serverskript funktioniert:

    Code
    >Running AU3Check (3.3.14.2)  from:C:\Program Files\AutoIt3  input:C:\Users\Bert\AutoIt3.My\Test\TCP-Server.au3
    "C:\Users\Bert\AutoIt3.My\Test\TCP-Server.au3"(5,42) : error: _resetConnection()(): undefined function.
    OnAutoItExitRegister("_resetConnection()")
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\Bert\AutoIt3.My\Test\TCP-Server.au3 - 1 error(s), 0 warning(s)


    wenn du dies so schreibst:

    Code
    OnAutoItExitRegister("_resetConnection")

    und Zeile 28 so:

    Code
    $pack = StringStripWS(TCPRecv ($ConnectedSocket, 2048),3)


    läuft es.

  • autoit.de goes professional

    • autoBert
    • 28. Februar 2016 um 02:07

    Stimmt ne PN häts auch getan. Da ich aber nicht weiß wer alles von hier aucg bei XING ist erschien mir dies der bessere Weg.

  • autoit.de goes professional

    • autoBert
    • 28. Februar 2016 um 00:10

    <p>Hallo Gunny,</p><p><br></p><p>bin heute über http://www.codebot.de/index.php/Thre…e-an-Expression gestolpert. Xing ist auch schon durch Spam-Bots mit Multi-Accounts geplagt. <br></p>

  • Datensicherung

    • autoBert
    • 27. Februar 2016 um 13:07

    In Zeile 79 ist definitv ein Fehler, denn der Filter ("*") ist der 2. Paramater, daß du

    • dem Path den du aus der Ini liest auch noch den Computernamen anhängst und
    • als Path den Zielpfad benutzt

    irritiert mich noch mehr.

    @Error=4 bedeutet übrigens keine Dateien gefunden.

  • AdvanceLcd - UDF für alle Logitech Produkte (G15, G19 etc.)

    • autoBert
    • 27. Februar 2016 um 05:04

    chip: Sorry, aber Titel: AdvanceLcd - UDF für alle Logitech Produkte (G15, G19 etc.)

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™