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

Beiträge von Lottich

  • Forenupdate - September 2017 - Probleme / Anregungen / Feedback - Sammelthread

    • Lottich
    • 5. September 2017 um 14:43

    Problem in der Mitgliederverwaltung?

    Ich wollte nochmal den Versuch starten mit Andy eine bestehende Konversation fortzuführen. Da aber gemeldet wird, dass ich in der Konversation alleine bin, obwohl

    Andy in der Teilnehmerliste steht, wollte ich ihn nochmal neu hinzufügen. Hab dann Andy eingetragen doch im Auswahlfenster taucht der Name gar nicht auf.

    Auch nicht wenn ich den letzten Buchstaben weg lasse. Dann hab ich in der Mitgliederliste nachgesehen, ihn gefunden und darüber eine neue Konversation gestartet.

    Das scheint geklappt zu haben, zumindest ist sie raus gegangen.

  • Forenupdate - September 2017 - Probleme / Anregungen / Feedback - Sammelthread

    • Lottich
    • 4. September 2017 um 17:20

    Bereits bestehende Konversationen (PNs) können offenbar nicht fortgeführt werden. Erst kommt der hinweis, dass niemand es lesen wird ... lol ...

    dann wenn man auf Absenden klickt, kommt die Meldung, dass erst das Eingabefelld ausgefüllt werden soll... obwohl Text darin steht.

    Beim Versuch einer neuen Konversation, zb mit Andy, kommt diese Meldung:

    "Andy hat das zulässige Limit für Konversationen bereits erreicht und kann an keinen neuen Konversationen teilnehmen!"

  • Poker-Card-Machine v3

    • Lottich
    • 24. August 2017 um 22:07

    Bau doch beide Varianten als Option ein. Wie zB bei Solitär, das man als Spieler wählen kann ob nur eine oder immer gleich 3 Karten gezogen werden.

  • Beispiel.exe verhindert einen Neustart, Lösungsansatz?

    • Lottich
    • 9. Juni 2017 um 22:16

    Hey, kann natürlich sein,dass ich jetzt Blödsinn schreibe. Wenn dem so ist, dann ignoriert mich einfach...

    Wenn ich das richtig deute, erkennt dein Programm nicht, dass sich Windows neu starten will.
    Versuch doch mal am Scriptanfang die Funktion OnAutoitExitRegister() zu setzen.
    Beispiel:

    AutoIt
    OnAutoItExitRegister("_Exit")
    
    
    Func _Exit()
    	Exit
    EndFunc
  • Benennung von Anhängen in Forumsbeiträgen

    • Lottich
    • 1. Juni 2017 um 07:02
    Zitat von BugFix

    ... Das wird m. M. nach in Zukunft auf allen Systemen Standard werden. ...


    Wenn ich mich recht erinnere, dann gab es vor etlichen Jahren bereits eine Ankündigung seitens Microsoft, dass sie ein neues OS bauen wollten das auf "WinFS" basiert. Windows Future Storage... anstelle von NTFS

    Das sollte angeblich genau das machen. Speichern und suchen via Tags. Wenn mich nicht alles täuscht, sollte bereits Win7 oder Win8 damit ausgestattet werden. Kam aber nicht dazu. Weiss der Geier warum.
    Vllt war das System einfach noch nicht umsetzbar oder ausgereift genug?! Dann kam irgendwann Win10 und vermutlich wurde die Idee WinFS entweder verworfen oder zurück ihn den Tresor gelegt...

  • In 30 Minuten Zyklen ein Programm starten, beenden und wieder neu starten?

    • Lottich
    • 12. Dezember 2016 um 22:18

    Sicher ist das möglich, recht einfach sogar. Aber ist es nicht sinvoller daran zu arbeiten, dass das Programm nicht mehr abstürzt?
    Sowas hat ja Ursachen, die sich unter Umständen beseitigen lassen.

    Darf man nach dem Programm fragen um das es dir geht?

  • Hauptform sperren/entsperren

    • Lottich
    • 17. November 2016 um 14:48

    Hey

    einfach nach dem GUISetState(@SW_ENABLE... folgende Zeile einfügen:

    AutoIt
    WinActivate("Installierte Produkte - Windows 7 32bit (Lenovo T450)")

    Das ist der Titel deiner GUI. Mit WinActivate bekommt die GUI wieder den Fokus.

    Nachtrag: Wenn sich der Titel im Programmverlauf mal ändern sollte, dann würd ich den Titel bei einer Änderung in eine globale Variable speichern und
    diese Variable bei WinActivate eintragen.

  • keine Anmeldung in Domäne möglich

    • Lottich
    • 10. Oktober 2016 um 11:52

    Das Domänenanmelden mit DOMÄNE\Administrator war mir klar, habs auch so versucht,jedoch ohne Erfolg.

    @chip Danke, das ist die Lösung, habe versucht mich nur als Admin oder meinen anderen Account einzuloggen, was auch nicht geklappt hat.
    Aber jetzt mit dem .\ vorneweg klappts und ich bin wieder eingeloggt. Mal sehen, wie ich die anderen Benutzerkonten abändern kann, dass das mit dem
    Anmelden in der Domäne klappt.

  • keine Anmeldung in Domäne möglich

    • Lottich
    • 10. Oktober 2016 um 01:12

    Juhuu, ich hab wieder bockmist gebaut...

    Ich hab nen Rootserver mit Win Server 2012 R2 als OS bekommen. Hab mir dann verschiedene Tutorials angesehen bei denen folgendes kein Problem war.
    -> AD domänencontroller und DNS Rollen zu installieren

    Hab alles nach Tutorial gemacht (von Tech Impact Deutschland) und dann kam der Punkt wo der Root neu gestartet werden musste... gesagt getan...
    Im Tutorial konnte sich der Moderator wieder anmelden, bei mir jedoch klappt das nicht. kommt immer wieder "falscher Benutzer / falsches Passwort"

    Das PW kann nicht falsch eingegeben sein, hab das jetzt schon 10 - 20 mal neu eingegeben und genau abgelesen und genau auf meine Finger geguckt, was ich tippe...

    Muss ich das OS jetzt wieder neu aufsetzen????

  • Link Fehler im Tutorial (autoit.de/wiki/index.php/Tutorial)

    • Lottich
    • 7. Oktober 2016 um 17:10

    Die sehen optisch beide gleich aus und machen auch das gleiche, nur dass der "neue" Editor mehr Funktionen zu bieten hat,
    die dir das Programmieren erleichtern.

  • Tutorial - Erste Schritte

    • Lottich
    • 7. Oktober 2016 um 17:00

    Was für ein Windows benutzt du?

    Für mich klingt das so, als wäre die Dateiendung nicht registriert worden. Warum setzt du bein "öffne mit..." Dialog nicht den haken bei "immer öffnen"?
    Dann wählst du Scite und schon sollte zumindest das mit dem Doppelklick funktionieren.

    Du kannst wegen der Endungsregistrierung in der Systemsteuerung nachsehen.
    bei Win7 eürde das so sein:

    Systemsteuerung -> Indizierungsoptionen -> Erweitert -> Dateitypen
    Systemsteuerung -> Standardprogramme -> Dateizuordnungen festlegen

    In dieser alphabetischen Liste sollte au3 vorhanden sein. Falls nicht würde ich das ganze neu installieren.

  • Tutorial - Erste Schritte

    • Lottich
    • 7. Oktober 2016 um 16:41

    Du musst den neuen Ordner nicht zwingend dort anlegen. Kannst den an jedem x beliebigen Ort erstellen, zB auf dem Desktop.
    Das hier ist der Standard Installationspfad: C:\Program Files (x86)\AutoIt3

    Theoretisch sollte auch die Vorlage geladen werden. Hast du die Standardvorlage verändert und diese auch tatsächlich als .au3 Datei gespeichert, oder ist daraus eine .au3.txt geworden?

  • Link Fehler im Tutorial (autoit.de/wiki/index.php/Tutorial)

    • Lottich
    • 7. Oktober 2016 um 16:32

    hey, das letztere ist, wie da schon steht ein Zip-file was an einem Ort deiner Wahl extrahiert werden kann.
    Ich würde die AutoIt Fullinstallation und den zusätzlichen Editor wählen.

    Der Standard Scite Editor, der bereits im Komplettpaket enthalten ist, ist eine abgespeckte bzw Standardversion.
    der optionale Editor bietet viel mehr Funktionen.

  • Einträge in Excel einfügen ohne die Datei geöffnet zu lassen ( im Hintergrund o.ä.)

    • Lottich
    • 7. Oktober 2016 um 14:26

    Zeile 22 so ändern: Local $oExcel = _Excel_Open(False)
    Das sollte es auch schon gewesen sein ;)

  • StringRegExp Bitte um Hilfe

    • Lottich
    • 5. Oktober 2016 um 16:34

    Ich habs ein wenig anders gelöst als @autoBert, allerdings auch mit Stringsplit
    Bei meinem Beispiel bekommst du, anders als bei AutoBert, für jede Textzeile separate Arrays.
    Je nachdem unter welcher Variable du so eine Zeile einliest, bekommst du diese Variable als Array
    in genau der Form zurück, wie du im Startpost angegeben hast. Denk ich zumindest. ;)

    AutoIt
    #include "array.au3"
    
    
    $string1 = _StringToVar("Teilweise bedeckt. Höchsttemperatur 11C. Wind aus NNO mit 15 bis 25 km/h.")
    $string2 = _StringToVar("Bedeckt. Tiefsttemperatur 5C. Wind aus NNW mit 10 bis 15 km/h.")
    $string3 = _StringToVar("Morgens Schauer. Höchsttemperatur 12C. Wind aus N mit 10 bis 15 km/h. Regenrisiko 30 %.")
    $string4 = _StringToVar("Zunächst Schauer. Tiefsttemperatur 6C. Wind aus NNO und wechselhaft. Regenrisiko 40 %.")
    $string5 = _StringToVar("Teilweise bedeckt. Höchsttemperatur 13C. Wind aus NNO und wechselhaft.")
    $string6 = _StringToVar("Meistens klar. Tiefsttemperatur 3C. Wind aus NNO und wechselhaft.")
    $string7 = _StringToVar("Meistens bewölkt. Höchsttemperatur 12C. Wind aus NNO mit 10 bis 15 km/h.")
    $string8 = _StringToVar("Teilweise bedeckt. Tiefsttemperatur 3C. Wind aus NNO und wechselhaft.")
    
    
    Func _StringToVar($CheckString, $trenner = "|")
    	Local $aRet = "", $that, $this = StringSplit(StringTrimRight($CheckString, 1), ".")
    	For $i = 1 To $this[0]
    		If StringLeft($this[$i], 1) = " " Then $this[$i] = StringTrimLeft($this[$i], 1)
    		If StringInStr($this[$i], "temperatur") Then
    			$that = StringSplit($this[$i], " ")
    			$aRet &= $that[1] & $trenner & $that[2] & $trenner
    		ElseIf StringInStr($this[$i], "Wind aus") Then
    			If StringInStr($this[$i], " mit ") Then
    				$that = StringReplace($this[$i], " mit ", $trenner)
    			Else
    				$that = StringReplace($this[$i], " und ", $trenner)
    			EndIf
    			$aRet &= $that & $trenner
    		Else
    			$aRet &= $this[$i] & $trenner
    		EndIf
    	Next
    	Return StringSplit(StringTrimRight($aRet, 1), $trenner)
    EndFunc
    
    
    _ArrayDisplay($string1)
    _ArrayDisplay($string2)
    _ArrayDisplay($string3)
    _ArrayDisplay($string4)
    _ArrayDisplay($string5)
    _ArrayDisplay($string6)
    _ArrayDisplay($string7)
    _ArrayDisplay($string8)
    Alles anzeigen
  • Link Fehler im Tutorial (autoit.de/wiki/index.php/Tutorial)

    • Lottich
    • 4. Oktober 2016 um 15:59

    Das Tutorial kann ich leider nicht anbieten, aber hier ist der Link zu den wichtigsten AutoIt Tools, u.a. auch scite

    https://www.autoitscript.com/site/autoit/downloads/

  • RegRead Benutzername von Winlogon

    • Lottich
    • 21. September 2016 um 08:36

    Hi,
    jenachdem, welche "Bit Variante" das Windows ist, also entweder x64 oder x86, muss der Registry Pfad angepasst werden.
    Näheres dazu findest du in der AutoIt Hilfe bei den Registry Befehlen.
    Dieser Code funktioniert für 64 Bit Systeme:

    AutoIt
    MsgBox(1, "Benutzername", "Der Benutzername ist: " & RegRead("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName"))
  • Prüfung einer Datei

    • Lottich
    • 18. September 2016 um 11:32

    Nö, musst du nicht. Es gibt Macros, die sich dafür wunderbar eignen.

    @YEAR, @MON, @MDAY oder gleich die Funktion _NowDate()/_NowCalcDate()...

    Du musst lediglich deinen Code an die Macros anpassen, sodass es dann letztendlich so funktioniert wie du es willst.

  • Array crash dimension range exceeded

    • Lottich
    • 7. September 2016 um 11:55
    meinst du so?
    AutoIt
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Outfile=serviceadv.exe
    #AutoIt3Wrapper_UseUpx=y
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <File.au3>
    
    
    
    
    Global $excludes, $temp[0], $exit[0]
    
    
    _FileReadToArray(@ScriptDir & "\dependencies\excluded_services.txt", $excludes, 1) ;array count first element
    
    
    
    
    $objWMIService = ObjGet('winmgmts:\\.\root\cimv2')
    $colItems = $objWMIService.ExecQuery("Select * From Win32_Service WHERE Startmode='auto'") ;alle Services im Automatisch Mode
    
    
    If IsObj($colItems) Then
    	For $objItem In $colItems
    		If $objItem.State <> "Running" Then ;Wenn automatisch Mode und nicht Running
    			_ArrayAdd($temp, $objItem.Displayname) ;safe in Array $temp
    		Else
    			_ArrayAdd($exit, $objItem.Displayname) ; alle anderen in $exit
    		EndIf
    
    
    	Next
    EndIf
    
    
    If IsArray($temp) Then
    	For $s = UBound($temp) - 1 To 0 Step -1
    		For $x = UBound($excludes) -1 To 0 Step -1
    			If $temp[$s] = $excludes[$x] Then ;wenn array $temp in $excluded liste dann 
    				_ArrayDelete($temp, $s) ; lösche element ; hier crashed es wenn die excludes komplett in $temp enthalten sind. Also das array komplett geleert wird
    			EndIf
    		Next
    	Next
    
    
    	For $j = 0 To UBound($temp) - 1
    		$code = "2"
    		ConsoleWrite($code & "|" & $temp[$j] & " ist down !" & @LF)
    		If $j == UBound($temp) - 1 Then
    			Exit ($code)
    		EndIf
    	Next
    EndIf
    
    
    $allitems = UBound($exit)
    If $temp = @error Then
    	$code = 0
    	ConsoleWrite($code & "|Alle " & $allitems & " Services im automatisch Status laufen!" & @LF)
    	Exit ($code)
    EndIf
    Alles anzeigen

    Auf isObj prüfst du ja bereits, das kannst du auch beim Array machen. Alternativ kannst du auch prüfen ob Ubound($temp) grösser als null ist,
    damit er auch das -1 machen kann. Ist vielleicht nicht das beste, was man machen kann, aber quick&dirty sollte erstmal klappen.

  • Prüfung einer Datei

    • Lottich
    • 6. September 2016 um 23:12

    Hi!

    Eines dieser Daten solltest du dir in einer INI oder in der Registry hinterlegen, damit sie dann zur Prüfung herangezogen werden können.

    AutoIt
    Global $iSize = FileGetSize("Pfad der Datei") ; Gibt dir die Grösse der Datei in Bytes an.
    Global $iTime = FileGetTime("Pfad der Datei") ; Gibt zeitbezogene Informationen der Datei an.
    Global $iHash = _MD5ForFile("Pfad der Datei") ; Gibt dir den MD5 Hashwert der Datei an.
    ; Diese Funktion benötigt als Include die WinAPI.au3
    _MD5ForFile
    AutoIt
    ; #FUNCTION# ;===============================================================================
    ;
    ; Name...........: _MD5ForFile
    ; Description ...: Calculates MD5 value for the specific file.
    ; Syntax.........: _MD5ForFile ($sFile)
    ; Parameters ....: $sFile - Full path to the file to process.
    ; Return values .: Success - Returns MD5 value in form of binary data
    ;                          - Sets @error to 0
    ;                  Failure - Returns empty string and sets @error:
    ;                  |1 - CreateFile function or call to it failed.
    ;                  |2 - MD5Init function or call to it failed.
    ;                  |4 - ReadFile function or call to it failed.
    ;                  |5 - MD5Update function or call to it failed.
    ;                  |6 - MD5Final function or call to it failed.
    ; Author ........: trancexx
    ;
    ;==========================================================================================
    Func _MD5ForFile($sFile)
    
    
        Local $a_hCall = DllCall("kernel32.dll", "hwnd", "CreateFileW", _
                "wstr", $sFile, _
                "dword", 0x80000000, _ ; GENERIC_READ
                "dword", 1, _ ; FILE_SHARE_READ
                "ptr", 0, _
                "dword", 3, _ ; OPEN_EXISTING
                "dword", 0, _ ; SECURITY_ANONYMOUS
                "ptr", 0)
    
    
        If @error Or $a_hCall[0] = -1 Then
            Return SetError(1, 0, "")
        EndIf
    
    
        Local $hFile = $a_hCall[0]
    
    
        Local $tMD5_CTX = DllStructCreate("dword i[2];" & _
                "dword buf[4];" & _
                "ubyte in[64];" & _
                "ubyte digest[16]")
    
    
        DllCall("advapi32.dll", "none", "MD5Init", "ptr", DllStructGetPtr($tMD5_CTX))
    
    
        If @error Then
            _WinAPI_CloseHandle($hFile)
            Return SetError(2, 0, "")
        EndIf
    
    
    	Local $tBuffer = DllStructCreate("byte[524288]")
    	Local $pBuffer = DllStructGetPtr($tBuffer), $iSize
    
    
    	Local $iReadErr = True
    	While _WinAPI_ReadFile($hFile, $pBuffer, 524288, $iSize) And $iSize
    		$iReadErr = False
    
    
    		DllCall("advapi32.dll", "none", "MD5Update", _
                "ptr", DllStructGetPtr($tMD5_CTX), _
                "ptr", $pBuffer, _
                "dword", $iSize)
    
    
    		If @error Then
    			_WinAPI_CloseHandle($hFile)
    			Return SetError(5, 0, "")
    		EndIf
    
    
    	WEnd
    	If $iReadErr Then
    		_WinAPI_CloseHandle($hFile)
            Return SetError(4, 0, "")
        EndIf
    
    
        DllCall("advapi32.dll", "none", "MD5Final", "ptr", DllStructGetPtr($tMD5_CTX))
    
    
        If @error Then
    		_WinAPI_CloseHandle($hFile)
            Return SetError(6, 0, "")
        EndIf
    
    
        _WinAPI_CloseHandle($hFile)
    
    
        Local $sMD5 = DllStructGetData($tMD5_CTX, "digest")
    
    
        Return SetError(0, 0, $sMD5)
    
    
    EndFunc   ;==>_MD5ForFile
    Alles anzeigen

    Je nach dem, wie du die Daten zur Prüfung hinterlegt hast, rufst du sie auf, mit BEINAHE den selben Code. Aufpassen musst du nur bei dem letzten Beispiel mit _MD5ForFile.
    Beim Prüfen musst du dieses durch

    AutoIt
    _Crypt_HashFile("Pfad der Datei", $CALG_MD5)


    ersetzen. Denn es soll ja keine neue Prüfnummer erstellt, sondern diese Nummer abgerufen werden. Das wiederum benötigt aber die Crypt.au3 als Include.

    Letztendlich kommt es dann zur Prüfung.

    AutoIt
    If "originaldaten" <> "geprüfte Datei" Then MsgBox(0,"", "Datei wurde geändert.")

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™