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

Beiträge von Runa

  • Datensicherung

    • Runa
    • 25. Februar 2016 um 16:30

    Was meinst du denn mit Backup-Art?

    Du hast in der kostenlosen Variante die Wahl zwischen "Entire computer", "Volume Level Backup" sowie "File level backup". Und bei diesen wählst du aus, wo diese gespeichert werden soll, wie viele Versionen er behalten soll, was du gerne für nen Dateiformat hättest und so weiter.... meine Backups sind zum Beispiel täglich (!) Vollbackups im ISO-Format.

  • Datensicherung

    • Runa
    • 25. Februar 2016 um 07:36

    Ich nehme schlicht die Freeware VEEAM EndpointBackup. Solltest du dir vielleicht mal angucken, auch wenn es ein Imageprogramm ist und somit nicht so restriktiv wie ein Backupprogramm.

  • erste schritte

    • Runa
    • 22. Februar 2016 um 15:09

    Des Weiteren empfehle ich dir nicht irgendeine verkürzte Fassung durchzulesen, die nicht einmal die Grundfunktionen ausreichend behandelt. Skriptsprachen sind wie auch Hochsprachen keine Sache die man "eben schnell" versteht und gut ist. Alleine AutoIt hat bereits weit mehr Standardfunktionen (mitgelieferte UDFs ausgeschlossen) als von Netzwelt auch nur erwähnt werden, ganz zu schweigen von ihren sehr schwammigen und teils falschen Erklärungen, die nur von einem Aushilfsazubi kommen können, der sich die Sprache eben in der Mittagspause angeguckt hat und gedacht hat er schreibt mal eben ein Tutorial, damit er auf seinen "Soll" kommt.

    Mal ein paar "Meisterwerke" aus den ersten beiden Seiten Text auf netzwelt.de:

    "(...) Der erste Befehl lautet "run", er öffnet eine Datei im gleichen Ordner. (...)" - Inhaltlich FALSCH. Run öffnet nur Programme - und da auch nur spezielle Dateiformate - siehe oben.

    "(...) an den Anfang und das Ende noch ein zusätzlicher Befehl gehängt: BlockInput(1). Damit schottet sich die Installation von allen externen Eingaben ab. (...)" - FALSCH. BlockInput blockiert ALLE Eingaben von Tastatur und Maus. Also auch das "Surfen im Internet" von dem er schreibt.

    Der Trend geht auf den Folgeseiten weiter: Von allen Funktionen, die er auch nur einmal kurz anspricht, sind mehr als 50% falsch erklärt und daher vollkommen irreführend. Links sind alle auf eine andere Seite auf Netzwelt gesetzt (egal ob passend oder nicht). Ich bin überzeugt: Es hat schon seinen Grund, dass der Autor mehrfach beruflich gewechselt ist, und nun in einem ganz anderen Bereich tätig ist...

  • erste schritte

    • Runa
    • 22. Februar 2016 um 14:45

    Mal getestet:

    Du brauchst statt Run (Starten von externen Programmen (exe, bat, com oder pif) - siehe Hilfe) den Befehl "ShellExecute" (Öffnen von externen Dateien [alle registrierten Dateiendungen mit einem Standardprogramm) - selbe Parameter.

  • erste schritte

    • Runa
    • 19. Februar 2016 um 12:17

    Ein paar Dinge vorab bevor ich dir deine Frage beantworte:

    • Bitte verwende eine Überschrift, die einen Zweck erfüllt und nicht nur als Platzhalter dient. Für diesen Fall wäre zum Beispiel etwas wie "Anzeige der Schritte des Scripts zur Laufzeit" deutlich sinnvoller gewesen als "erste schritte".
    • Für AutoIt-Code solltest du wenn möglich den "Code"-Button verwenden. Er ist hier im Editor als </> dargestellt. Dies fördert die Lesbarkeit des Codes und des Beitrags enorm.
    • Versuch bei einem Thread bei bloß einem Thema zu bleiben. Dann kann dir gezielter geholfen werden und auch andere Nutzer die diesen Thread hier lesen können von den Hilfestellungen profitieren.
    • Versuche mal deinen Code zu kommentieren - lies in der Hilfe, welche deiner Funktionen was tut. Das habe ich für dich mal übernommen.

    Zu deiner Frage:

    • BlockInput sperrt Nutzereingaben. Demnach müsstest du davon ausgehen, dass eine Nutzereingabe das Problem verursacht, allerdings sagtest du, dass er während der Laufzeit wartet.
    • Sleep sorgt nur dafür, dass das Script für eine Zeitdauer pausiert wird. Also eigentlich nichts, was dich weiter bringt.
    • Mit "ToolTip" kannst du dir Dinge aus dem Programmablauf anzeigen - zum Beispiel eigene "Meilensteile" definieren:
    AutoIt
    ToolTip("Starte 7zip-Installations Paket", 0, 0, "DEBUG")
    Run("7z920-x64.msi") ;=> Startet ein Programm
    
    
    ToolTip("Warte bis 7-Zip Fenster existiert", 0, 0, "DEBUG")
    WinWait("7-Zip 9.20 (x64 edition) Setup") ;=> Wartet, bis das Fenster existiert
    
    
    ToolTip("Klicke auf Weiter Button", 0, 0, "DEBUG")
    ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Next", "Button1") ;=> Klickt ein Control
    
    
    ToolTip("Warte bis 7-Zip Fenster existiert", 0, 0, "DEBUG")
    WinWait("7-Zip 9.20 (x64 edition) Setup") ;=> Wartet, bis das Fenster existiert
    
    
    ToolTip("Klicke auf Remove-Button", 0, 0, "DEBUG")
    ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Remove", "Button3") ;=> Klickt ein Control
    
    
    ToolTip("Warte bis 7-Zip Fenster existiert", 0, 0, "DEBUG")
    WinWait("7-Zip 9.20 (x64 edition) Setup") ;=> Wartet, bis das Fenster existiert
    
    
    ToolTip("Klicke auf Remove-Button", 0, 0, "DEBUG")
    ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Remove", "Button2") ;=> Klickt ein Control
    
    
    ToolTip("Warte bis 7-Zip Fenster existiert", 0, 0, "DEBUG")
    WinWait("7-Zip 9.20 (x64 edition) Setup") ;=> Wartet, bis das Fenster existiert
    
    
    ToolTip("Klicke auf beenden Button", 0, 0, "DEBUG")
    ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Finish", "Button1") ;=> Klickt ein Control
    Alles anzeigen


    Hier fallen gleich mehrere Dinge auf.

    • Du prüfst nicht, ob ein Vorgang abgeschlossen wurde - du versuchst einfach alle 4 Buttons direkt hintereinander zu drücken
    • Du hast die Hilfe zu den Funktionen nicht gelesen, sonst hättest du nicht statt dem Window-Text den Button-Text in den Parameter geschrieben.
    • Siehe 2 - du hast nur eine einzige Funktion in deinem Script, dass das Script pausiert. Da dein Script durchgehend läuft - wie du geschrieben hast - ändert sich während des Prozesses offenbar der Titel des Fensters und er wartet ewig auf das Fenster.
  • Probleme eine Dropdown Liste im IE herauszufiltern

    • Runa
    • 19. Februar 2016 um 09:20
    AutoIt
    #include <IE.au3>
    
    
    $oIE = _IECreate("file:///C:/Users/Me/Desktop/Code.html")
    $oForm = _IEGetObjById($oIE, "zusatzdaten")
    $oSelect = _IEFormElementGetObjByName($oForm, "zusatzdaten:1:Wert:auswahl", 0)
    If @error Then MsgBox(64, "", @error)
    _IEFormElementOptionSelect($oSelect, "0")
    
    
    Sleep(10000)
    _IEQuit($oIE)
    Alles anzeigen
  • Remote-Desktop-Konfigurations-Befehl funktioniert nicht 100 %ig

    • Runa
    • 18. Februar 2016 um 19:22

    Eigentlich ist das kein AutoIt-Thema (da du kein AutoIt-Problem hast, sondern eher damit dich mit Windows und deren Hilfe-Dateien auseinander zu setzen) und die Überschrift ist auch unpassend, aber egal. Das hier löst dein Problem:

    AutoIt
    MsgBox(64, "Script...", "Remote deaktivieren..")
    RegWrite("HKLM\SYSTEM\ControlSet001\Control\Remote Assistance\", "fAllowToGetHelp", "REG_DWORD", 0x00000000)
    Run(@ComSpec & " /c " & 'sysdm.cpl,5', "", @SW_HIDE)
    
    
    MsgBox(64, "Script...", "Remote aktivieren..")
    RegWrite("HKLM\SYSTEM\ControlSet001\Control\Remote Assistance\", "fAllowToGetHelp", "REG_DWORD", 0x00000001)
    Run(@ComSpec & " /c " & 'sysdm.cpl,5', "", @SW_HIDE)
  • Notification von PC an IOS - Gerät senden

    • Runa
    • 18. Februar 2016 um 00:59
    Zitat von Bioshade

    (...) Mail-Adressen (...)

    Zitat von misterspeed


    (...) die gute alte Email (...)

    Zitat von Xorianator

    Warum eigentlich keine E-Mails? (...)


    Gute Ideen wiederholen sich immer wieder :P

  • Notification von PC an IOS - Gerät senden

    • Runa
    • 17. Februar 2016 um 16:12
    Zitat von Homer J. S.

    Stoani:

    Zu a: 4,99€ finde ich persönlich in Ordnung

    Zu b: Der feed Push ist auch eine extra App

    Allgemein: Pushover hat dafür eine offene dokumentierte API -> https://pushover.net/api

    Gruß
    Homer J. S.


    Mit denen habe ich mich auch mal befasst... die 5€ wären ja prinzipiell in Ordnung. ABER:

    "After a 7-day free trial, it costs $4.99 USD once, per-platform (iOS, Android, Desktop)"

    Du zahlst für jede Platform die du nutzt, und für jeden Nutzer, der diese erhalten soll.

    Mal eine kleine Rechnung für den Fall, den wir gehabt haben: Ein kleineres Team zum Thema Datensicherung, welches über den aktuellen Zustand benachrichtigt werden sollte - möglichst direkt per Push. Gegoogled, und auch auf den Laden gestoßen.

    Wir sind insgesamt 12 Leute in diesem Team. Bedeutet, dass die "einmaligen Kosten" - kleingedruckt: Nur solange man unter 7.500 Nachrichten in einem Monat bleibt - bereits 60 $ betragen hätten. 7.500 Nachrichten sind schon bei 12 Personen recht wenig: Maximal 625 Pushs pro Monat. Was etwa 20 am Tag sind. Klingt viel - ist es aber eigentlich nicht. Gerade, wenn man die Pushs nicht verwenden möchte, um etwaige Backup-Jobs zu überwachen (Starten / Abgeschlossen) - aber selbst da würde es schon problematisch werden. Schon alleine von den Backups her - wenn die darüber überwacht werden würden - bräuchten wir über 200 Nachrichten pro Tag. Das macht 73.000 benötigte Pushs im Monat. Davon sind 7.500 frei. Bleiben 65.500, für die man dann monatlich hätte 250$ ausgeben müssen.

    Oder anders formuliert: Ein guter Witz und nur brauchbar, wenn man wirklich als einziger oder nur selten benachrichtigt werden möchte.

    Zum Thema:

    Wir haben einen Webspace gemietet (7,00 € pro Monat insgesamt), dort Mail-Adressen eingerichtet und innerhalb von vielleicht einer Stunde eine eigene API erstellt, mit der eine Mail an alle versendet werden kann. Auf den Mobilgeräten ist für das neue Postfach die Push-Benachrichtigung aktiviert und schon .... hat man den gleichen Effekt wie bei Pushover für deutlich weniger Geld mit deutlich mehr Möglichkeiten. Vielleicht ist das auch für unseren Stoani eine Option (vor allem, wenn er bereits einen Webspace hat).

  • svchost verbraucht Internet

    • Runa
    • 17. Februar 2016 um 01:15

    chip: Es ist nur eine Frage der Zeit, bis Windows 10 auch in DE ein "empfohlenes Update" wird und somit beim nächsten normalen Updatevorgang gezogen wird. Dann lieber meine Methode und es komplett abschießen, dass an den Windows Updates herumzuspielen, die zu deaktivieren usw.

    Vier Schritte braucht es:

    1. Prozess "GWX.exe" abschießen
    2. via WUSA KB3035583 deinstallieren
    3. Registy-Schlüssel setzen (u.a. hier)
    4. TakeOwn und anschließendes Löschen von C:/Windows/System32/GWX/

    Danach macht er - vorerst - nichts mehr in Richtung Windows 10 :) Und man ist das dauerhafte Herunterladen von den insgesamt 6 GB los. :)

  • svchost verbraucht Internet

    • Runa
    • 15. Februar 2016 um 18:47

    Nur eine falsch konfigurierte Firewall macht Probleme :P Und das soll sie sogar :D

  • svchost verbraucht Internet

    • Runa
    • 15. Februar 2016 um 14:47

    Prinzipiell ist es möglich die SVCHOST.exe vom Netzwerkverkehr auszuschließen. Sogar recht einfach - mit Microsoft-Bordmitteln wie der Firewall. Folgendes Script blockiert die SVCHOST.exe solange ein Prozess läuft... im Beispiel ist es der Internet Explorer.

    AutoIt: Block svchost.au3
    #RequireAdmin
    
    
    $sRulename		= "_SVCHOST-BLOCK"	; => Wie soll die Firewall-Regel heißen?
    $sProcess		= "iexplore.exe"	; => Welcher Prozess soll überwacht werden?
    $sx86_Suffix	= "x86"				; => Suffix für die 32-Bit Version
    $sx64_Suffix	= "x64"				; => Suffix für die 64-Bit Version
    
    
    ; => Eigentliches Programm
    
    
    #Region Verbieten von SVC-HOST
    	If @OSArch = "x86" Then
    		$sSvcHostx86 = "%SystemRoot%\System32\Svchost.exe"
    
    
    		_BlockProgram($sRulename & $sx86_Suffix, "yes", "out", $sSvcHostx86, "block")
    		If @error Then _BlockProgramError(@error)
    	Else
    		$sSvcHostx64 = "%SystemRoot%\System32\Svchost.exe"
    		$sSvcHostx86 = "%SystemRoot%\SysWOW64\Svchost.exe"
    
    
    		_BlockProgram($sRulename & $sx64_Suffix, "yes", "out", $sSvcHostx64, "block")
    		If @error Then _BlockProgramError(@error)
    		_BlockProgram($sRulename & $sx86_Suffix, "yes", "out", $sSvcHostx86, "block")
    		If @error Then _BlockProgramError(@error)
    	EndIf
    #EndRegion
    
    
    Do
    	Sleep(1000)
    Until ProcessExists($sProcess)
    ConsoleWrite("+ Process found..." & @CRLF)
    While ProcessExists($sProcess)
    	Sleep(1000)
    WEnd
    ConsoleWrite("! Process closed..." & @CRLF)
    
    
    #Region Erlauben von SVC-HOST
    	If @OSArch = "x86" Then
    		$sSvcHostx86 = "%SystemRoot%\System32\Svchost.exe"
    
    
    		_BlockProgram($sRulename & $sx86_Suffix, "no", "out", $sSvcHostx86, "block")
    		If @error Then _BlockProgramError(@error)
    	Else
    		$sSvcHostx64 = "%SystemRoot%\System32\Svchost.exe"
    		$sSvcHostx86 = "%SystemRoot%\SysWOW64\Svchost.exe"
    
    
    		_BlockProgram($sRulename & $sx64_Suffix, "no", "out", $sSvcHostx64, "block")
    		If @error Then _BlockProgramError(@error)
    		_BlockProgram($sRulename & $sx86_Suffix, "no", "out", $sSvcHostx86, "block")
    		If @error Then _BlockProgramError(@error)
    	EndIf
    #EndRegion
    
    
    Func _BlockProgram($sRulename, $sEnable = "yes", $sDir = Default, $sProgram = Default, $sAction = Default)
    	Local $fNewRule = False, $sMessage = "", $sCommand = "netsh advfirewall firewall"
    
    
    	#Region Prüfen, ob es sich hierbei um eine neue Regel handelt
    		$sMessage = _getDOSOutput('netsh advfirewall firewall show rule name="' & $sRulename & '"')
    		If StringStripWS($sMessage, 3) = "Keine Regeln stimmen mit den angegebenen Kriterien berein." Then $fNewRule = True
    	#EndRegion
    
    
    	#Region Neue Regel erstellen
    		If $fNewRule Then
    
    
    			If $sDir	 = Default Then Return SetError(-1)
    			If $sProgram = Default Then Return SetError(-1)
    			If $sAction  = Default Then Return SetError(-1)
    
    
    			$sCommand &= ' add rule'
    			$sCommand &= ' name="'		& $sRulename	& '"'
    			$sCommand &= ' dir="'		& $sDir			& '"'
    			$sCommand &= ' program="'	& $sProgram		& '"'
    			$sCommand &= ' action="'	& $sAction		& '"'
    			$sCommand &= ' enable="'	& $sEnable		& '"'
    			$sReturn = _getDOSOutput($sCommand)
    			If $sReturn <> "OK." Then Return SetError(-2)
    			Return 1
    		EndIf
    	#EndRegion
    
    
    	#Region Bestehende Regel
    		$sCommand &= " set rule"
    		$sCommand &= ' name="'		& $sRulename & '"'
    		$sCommand &= " new"
    		If $sDir <> 	Default	Then $sCommand &= ' dir="'		& $sDir		& '"'
    		If $sProgram <> Default	Then $sCommand &= ' program="'	& $sProgram & '"'
    		If $sAction <> 	Default Then $sCommand &= ' action="'	& $sAction	& '"'
    		If $sEnable <> 	Default Then $sCommand &= ' enable="'	& $sEnable	& '"'
    
    
    		If $sCommand = "netsh advfirewall firewall set rule" & ' name="'		& $sRulename & '"' & " new" Then Return SetError(-3)
    		$sReturn = _getDOSOutput($sCommand)
    		If Not StringInStr($sReturn, "OK.") Then SetError(-4)
    	#EndRegion
    EndFunc
    
    
    Func _BlockProgramError($iErrorCode)
    	Switch $iErrorCode
    		Case -1
    			MsgBox(16, "_BlockProgram", "Es wurden nicht alle notwendigen Parameter angegeben.")
    		Case -2
    			MsgBox(16, "_BlockProgram", "Unbekannter Fehler: Regel konnte nicht erstellt werden.")
    		Case -3
    			MsgBox(16, "_BlockProgram", "Es wurde kein Parameter zum aktualisieren angegeben.")
    		Case -4
    			MsgBox(16, "_BlockProgram", "Unbekannter Fehler: Regel konnte nicht aktualisiert werden")
    	EndSwitch
    EndFunc
    
    
    Func _getDOSOutput($sCommand)
        Local $sText = "", $iPID = Run('"' & @ComSpec & '" /c ' & $sCommand, '', @SW_HIDE, 2 + 4)
        While 1
                $sText &= StdoutRead($iPID, False, False)
                If @error Then ExitLoop
                Sleep(10)
        WEnd
        Return StringStripWS($sText, 7)
    EndFunc   ;==>_getDOSOutput
    Alles anzeigen

    Leider brauchen viele Programme eben die Dienste die in der svchost behandelt werden. Kannst ja mal testen, ob dein Spiel ohne die SVCHOST auskommt.


    autoBert: Ich habe ein Script, dass das Zwangsupdate auf Windows10 komplett blockiert... ;) Run Once, happy forever. Muss man halt wieder zurückbauen, wenn man das Update doch mal ausführen möchte.

  • RegWrite - Voodoo

    • Runa
    • 9. Februar 2016 um 11:07

    Hallo Freunde,

    ich fasse mich kurz:

    Zwei Mal exakt die gleiche Maschine. Zwei Mal exakt der gleiche Key. (

    AutoIt
    $sPath = "HKLM\SOFTWARE\Microsoft\Windows\CurentVersion\Policies\System"
    ;Auf x64 wird ZUSÄTZLICH hierher geschrieben: HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\System
    $sType = "REG_DWORD"
    $sKey = "EnableLinkedConncections"
    $iValue = 1

    Ich schreibe einen HKLM-Key via AutoIt in die Registrierung. Das Programm wird dabei als Administrator ausgeführt. Kein Fehler bei RegWrite (@error = 0). Ein Blick in die RegEdit sagt: Yup, alles okay. PC neugestartet, zur Sicherheit nachgeguckt - Key noch immer da. Aber dennoch werden in Installationen, die als Administrator gestartet werden, die Netzlaufwerke nicht angezeigt. (Das ist der Zweck dieses Keys: Klick mich)

    Jetzt kommt der Voodoo: Ich nehme den Key, in dem gerade 1 drin steht, öffne ihn einmal zum Bearbeiten und schieße ihn unverändert direkt wieder ab mit der gleichen 1. PC neustart, und das ganze funktioniert so, wie eigentlich gedacht.


    Kennt jemand dieses Voodoo-Problem oder - noch besser - die Lösung bzw. ein Lösungsansatz dazu?

  • Eigentlich schon zu spät...

    • Runa
    • 28. Januar 2016 um 09:13

    Mars: Oder Menschen die Hessen mögen. Aber ja, ich komme aus Hessen. Mein Dialekt "is aber en Mix aus viele Dialekte in Deutschland". Ist bisschen hessisch, bisschen berlinerisch, bisschen sächsisch und sogar ein bisschen bayrisch drin. Meine Kollegen ausm Teamspeak sind zu verteilt... :thumbup:

  • @crlf umwandeln in echten Zeilenumbruch, in Analogie @tab etc.

    • Runa
    • 27. Januar 2016 um 00:09

    @Aspirin: Ja, das ist momentan noch der anfällige Punkt - siehe oben. Beides erfüllt dennoch die hier gestellte Aufgabe zu 100%.

    misterspeed: Deine Anmerkungen zum Buch ignoriere ich, weil du nicht weißt wovon es handelt. Deine zuletzt veröffentlichte Version zum Beispiel ist deutlich besser als die letzte.

    Und nun: Diskussion Ende? Mir geht es darum diese Standards auch bei Hilfestellungen soweit möglich einzuhalten. :theke:

  • @crlf umwandeln in echten Zeilenumbruch, in Analogie @tab etc.

    • Runa
    • 26. Januar 2016 um 21:41

    misterspeed:

    Betrachten wir deinen Code. Er funktioniert wie eine gut konfigurierte Firewall: Alles was durch darf, muss explizit erlaubt werden. Ergo: Immer wenn ein neues Makro erlaubt werden soll, welches ebenfalls ersetzt werden soll, muss man bei dir nicht nur wieder eine neue Zeile hinzufügen, sondern auch das ganze Programm neu kompilieren und wieder neu verteilen. Und - der größte Nachteil: Es ist ein Ansatz, der nur auf dieses eine Problem passt - und selbst da nur solange die Anforderungen sich um keinen Millimeter verändern. Die simple Lösung in allen Ehren, aber hier wird am falschen Ende gespart. Denn bei der Aufgabe wird in 95% der Fälle immer der Funktionsumfang erweitert aka "Ach, wenn mer scho ma dabei sin, ne...".

    Meine Lösung unterstützt etwa 100 AutoIt-Makros bereits "von Haus aus". Ich finde dafür sind 11 Zeilen Code nicht zu viel (11+3 Zeilen Fragmentation = 14 Zeilen). Sie ist einfach deutlich flexibler und bietet die gleiche Scheinsicherheit wie dein Ansatz. Er erfordert schlicht deutlich weniger "Wartung" im Verlauf der Programmentwicklung. Daher rate ich zu der Methode, statt einer, die über alle Maßen restriktiv ist und dafür keinerlei Vorteile mitbringt außer dass sie äußerst kurzsichtig mal Arbeit gespart hat.

    Für ausführlichere Erklärungen, warum mein Code in vielen Punkten zielführender ist, als deiner, obwohl beide die gleiche Aufgabe mit 100% der Punktzahl abschließen, kannst du dem Buch "Weniger schlecht Programmieren" entnehmen. Eine Empfehlung für alle die gerne Programmieren. Mal in Stichworten: Fragmentierung (möglicherweise wiederkehrende Programmteile in Funktionen auslagern), Sprache (immer Englisch... du merkst doch selbst, dass es auf deutsch nicht funktioniert, wenn du dir alleine "Schlüssel" anguckst), Universalität (deine Lösung passt auf genau EIN Problem. Bedeutet: Auch wenn du ähnliche Anforderungen hast, musst du komplett neu anfangen), Notation (auch in AutoIt hat sich die ungarische Notation durchgesetzt. Mit ihr gibt man unter anderem an, was man erwartet in der Variable zu speichern...), Formatierung (in deinem Falle: Nicht konsequent und zudem noch zutiefst unübersichtlich...), usw.

    Damit du mich nicht falsch verstehst: Dein Code ist richtig und führt zur Lösung. Vermutlich sogar Sekundenbruchteile schneller als meiner. Er folgt schlicht keinem Standard der professionellen Programmentwicklung. Das muss nicht unbedingt schlecht sein, aber solltest du planen in dieser Richtung tätig zu werden, solltest du dich schnell an die Standards gewöhnen, da du es dir sonst nur unglaublich schwer machst. Zum Thema der Sprache merke ich nur eines an:

    AutoIt
    $zovut = "Iosif"  ;Как тебя зовут


    Ich denke das sagt alles.

  • RegEx

    • Runa
    • 26. Januar 2016 um 17:19

    Schwierig, ohne den Rest des Dokuments zu kennen ... kannst du mir mal ein paar Auszüge zukommen lassen, gerne auch verfremdet? Je nach Aufbau lässt sich das ganze leichter oder schwieriger mit nem RegEx lösen... :)

  • Eigentlich schon zu spät...

    • Runa
    • 26. Januar 2016 um 17:12

    Ja, in DE gibt es auch die Bionade, das stimmt schon. Dennoch war das schon lange Zeit mein Nick und dabei bleibe ich auch. Hatte den schon bevor ich Bionade kannte. :D

    Außerdem: Die machen hier auch noch ganz anderes Zeug... ich muss mich ja nicht immer daran halten, was alle anderen hier machen *fg*

  • Eigentlich schon zu spät...

    • Runa
    • 26. Januar 2016 um 16:48

    Herzlich willkommen in meinem Vorstellungs-Fred! Wobei - da wo ich herkomme, und lebe fasst man sich immer kurz, also den Satz mal in meinem Dialekt verpackt: Guuhde!

    Viele von euch kennen mich ja bereits von hier und anderen Foren, andere glauben es zu tun, weil sie versuchen Querverweise von meiner Person auf andere Personen herzustellen und wieder andere kennen sogar das Gesicht hinter dem Namen "Bioshade". Abgesehen von dem Pseudonym "Bioshade" höre ich auf den Namen Sophie, bin momentan noch (bis Karfreitag) 22 Jahre alt und je nachdem wen man fragt, und in welcher Lebensphase mich dieser Mensch kennengelernt hat etwas zwischen "nen echt geiler Mensch" und "verzogenes Drecksgör". Ich lasse hier mal die aus, die mir noch immer einen möglichst qualvollen Tod wünschen, denn auch die werden irgendwann erwachsen genug zu wissen, dass ihr Hass zweckfrei ist. Was gibt es sonst so zu mir zu sagen? Ich bin nach wie vor im Übergang von jugendlicher Naivität zu erfahrenem Pessismismus, spreche fließend Sarkasmus, Ironie und Zynismus und trinke meinen Kaffee nicht so schwarz, wie ich meinen Humor zeitweise genieße - was nicht unbedingt immer als solcher aufgefasst wird.

    Was kann ich zu dem Thema AutoIt sagen, ohne mich direkt unbeliebt zu machen?

    Lange Zeit habe ich nicht programmiert. Wenn es hoch kommt, habe ich in einem der vielen Foren mir alles mögliche an Software gezogen, diese getestet, wenn sie nicht funktioniert hat wieder runtergeworfen und dementsprechend häufig mein System von Viren und ähnlichem befreit und ziemlich oft komplett neu installiert, weil das System komplett durch war. Dann habe ich geguckt, wie ich meine Probleme selbst lösen kann. Damals war ich noch der festen Überzeugung, dass ohnehin kein Programm zweckdienlicher sein kann, als die, die ich selbst schreibe. Ein Irrtum. Meist waren die Scripts langsam, fehleranfällig und haben nicht richtig funktioniert. Hauptursache hierfür: Das X-Y-Problem. Ich habe oftmals nach einem Weg gefragt, wie ich meinen in den Kopf gesetzten Weg umsetzen kann, statt zu fragen, wie ich es eigentlich besser machen könnte. Dabei ignorierte ich auch jeden Hinweis, wie ich es hätte besser machen können...

    So landete ich in einem anderen AutoIt-Forum. Es wurden kaum Fragen gestellt und nur selten ein weiterer Weg genannt. Na ja, mal abgesehen von dem obligatorischen "warum will man sowas tun?", das nicht nur nicht beim Problem hilft, sondern auf den ersten Blick auch den Eindruck erweckt jemand hätte bereits eine Idee vorgetragen... ich hasse diese Nutzer. Warum muss man sich so den Beitrags-Score erhöhen? Aber ich schweife ab. Dieses Forum hat mich in vielen Dingen geprägt. Im Laufe der Zeit habe ich immer mehr feststellen können, welche Personen dort unterwegs sind, und warum sie dort unterwegs sind, obwohl es andere, zweckdienlichere Foren dafür gibt. [Nein, da rede ich nicht ausschließlich vom "Bösen Bruder"... ] Auch fing ich an zu hinterfragen, warum ich eigentlich in dem Forum unterwegs bin - sind es die Restriktionen in diesem Forum, die es verbieten Automationen anzufertigen, sofern diese gegen die Nutzungsbestimmungen der Seite verstoßen? Ist es die Community, die hier sehr schnell verurteilt? Oder ist es schlicht ein Versuch uneinsichtig meinen Willen durchzusetzen?

    So kam ich nach nicht all zu langer Zeit - und nach etwa drei Ansagen à la "Löscht mich, ich komm eh nicht wieder -.-#" - wieder hier in dieses Forum und wurde entsprechend meiner vorherigen Entgleisungen und Aussagen behandelt. Wem soll ich das verübeln? Ich glaube nicht, dass ich anders reagiert hätte als die meisten, wenn mir heute jemand versuchen würde auf die Art zu kommen. Im Laufe dieser ganzen Zeit hat sich mein Wissen über AutoIt und auch das Windows-Betriebssystem selbst immer weiter vertieft... mittlerweile bin ich fast nur noch hier, um anderen Leuten Hilfestellungen zu geben. Ein kleiner Teil von mir verfolgt andere Ziele: Er möchte auch dem letzten Mitglied dieser Community zeigen, dass ich mich verändert habe. Dass ich reifer geworden bin, und dass sich dieser Vorgang fortsetzen wird.

    Nun seid ihr gefragt: Bombadiert mich ruhig mit Fragen, die bei euch noch offen geblieben sind. Ich werde sie bei Gelegenheit - vielleicht - beantworten.

    Liebe Grüße
    Bioshade

  • Levenshtein-Distanz

    • Runa
    • 26. Januar 2016 um 16:07

    Gut möglich. Ich weiß nur, dass ich hier im Forum keine gefunden habe, die zum einen nicht versucht eine (in den meisten Fällen) nichtssagende Prozentzahl daraus zu machen, und zudem nicht eine extra DLL verwendet...

    Die von bernd670 verwendet beispielsweise eine DLL, die man erst noch herunterladen müsste ... des Weiteren scheint sie keine Umsetzung der Levenshtein-Distanz zu sein, sondern die exakte Inversion, wenn ich den Beitrag von Andy betrachte. Das scheint hier im Forum allerdings auch die einzige zu sein, die hier noch herumgeistert, und auf die immer wieder verwiesen wird.

    Das war übrigens kein Schreibfehler... der Typ nannte sich wirklich "Levenshtein" ... ;) Demnächst mal "tiefer" graben ... irgendwo auf der alten Platte habe ich auch noch meine gewichtete Levenshtein Distanz, die sich noch an der klassischen deutschen QWERTZ-Tastatur orientiert... :)

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™