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

Beiträge von Schnitzel

  • @Macro

    • Schnitzel
    • 14. Mai 2011 um 15:58

    Jup schon klar, er braucht entweder n vernünftiges Trennzeichen oder n Array mit allen Makros. Aber grundsätzlich kann er die Makros mit Execute umwandeln

  • @Macro

    • Schnitzel
    • 14. Mai 2011 um 15:22

    Du könntest die Makros mithilfe von RegEx o.Ä. herrausfischen und dann mithilfe von Execute ausführen lassen.
    Was besseres fällt mir da im Moment auch nicht ein^^
    Ein Trennzeichen um Makros abzugrenzen wäre in dem Fall denke ich Recht gut.

    Also iwie so:

    [autoit]

    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    $str = 'Teststringblablabla|@YEAR|WeitererString'
    $a = StringRegExp($str, "(\|@\w+\|)", 3)
    If IsArray($a) Then
    For $i = 0 To UBound($a) - 1
    $str = StringReplace($str, $a[$i], Execute(StringReplace($a[$i], "|", "")))
    Next
    EndIf

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"", $str)

    [/autoit]
  • WD - oder: Wo lassen manche Hersteller denken...

    • Schnitzel
    • 14. Mai 2011 um 14:54

    Wow das is echt ne Frechheit. Ein NAS gehört für mich ins Lan ohne das dort Internet vorhanden ist. Im Gegenteil...
    Da braucht man sich echt nicht wundern wenn durch Fehlkonfigurationen vom Verbraucher die Daten im Internet landen.
    Da kann man die Schuld auch ganz schnell beim Hersteller sehen.
    Rein Sicherheitstechnisch geht das ja mal garnich.

    Schade weil ich mit WD eigentlich noch keine schlechten Erfahrungen gemacht habe. Hab aber bisher auch nur HDD's gekauft.

  • Wieso nach GUIDELETE kein neues GUI?

    • Schnitzel
    • 14. Mai 2011 um 13:54

    Da sind wirklich viele Fehler drin. Du solltest unbedingt mal die Grundlagen durchlesen. (Tutorials siehe meine Signatur)

    Der Teil gehört z.B. so:

    [autoit]

    $Ziel1 = DirCreate($Ziel & '\UBSBackup')
    DirCopy( 'C:\Users\' & $Ordner & '\Music', $Ziel1, 1)
    DirCopy( 'C:\Users\' & $Ordner & '\Videos', $Ziel1, 1)
    DirCopy( 'C:\Users\' & $Ordner & '\Downloads', $Ziel1, 1)
    DirCopy( 'C:\Users\' & $Ordner & '\Documents', $Ziel1, 1)
    MsgBox(0, 'Abgeschlossen','Backup Abgeschlossen!Dateien in ' & $Ziel1 & '\UBSBackup!')

    [/autoit]

    Außerdem würde ich statt Inputboxen oft etwas anderes verwenden. Für die Ordnerauswahl z.B.

    [autoit]

    FileSelectFolder

    [/autoit]
  • Wieso nach GUIDELETE kein neues GUI?

    • Schnitzel
    • 14. Mai 2011 um 12:24

    Einfache ' machens dir viel leichter ;)

    [autoit]

    MsgBox (0, 'Willkommen', 'Drücken Sie auf OK')
    $Eingeben = InputBox('Befehl eingeben', 'Wollen sie User Backup Starter starten? Wenn ja, bitte "Ja" eingeben')

    [/autoit][autoit][/autoit][autoit]

    If $Eingeben = 'Ja' Then
    ShellExecute('C:\Program Files (x86)\StevenX Media\WT Launcher\WT LauncherDE.exe')
    Endif

    [/autoit]

    Bitte verwende auch die autoit Tags

  • Verzeichnisse übers Internet abgleichen - Hypothetische Fragen

    • Schnitzel
    • 13. Mai 2011 um 11:44

    Jup Verbesserungen gibts natürlich noch viele. Grundsätzlich wollte ich ersteinmal von der Maschentopologie abraten an die er zuerst dachte. Ein Zentraler Speicherort wäre für die erste Version der beste Einstieg denke ich. Dannach kann man es ja immer noch um so viele Dinge erweitern (Protokoll, Userauthentifizierung, Versionierung, Zugriffsrechte, Gruppenfreigaben, ....). Sofern mans kann, kann mans ;)

    Grundsätzlich dachte ich also: Nimm dir nich zuviel für die erste Version vor^^

  • Verzeichnisse übers Internet abgleichen - Hypothetische Fragen

    • Schnitzel
    • 13. Mai 2011 um 10:25

    Ich würde das Problem an deiner Stelle etwas anders angehen.
    Du schreibst dir ein kleines FTP Programm:
    Du hast ein zentrales Verzeichnis auf dem FTP und ein lokales bei jedem PC.
    Jeder PC connected zum FTP und überprüft ob im FTP-Verzeichnis neue Dateien vorhanden sind.
    Wenn neue Dateien vorhanden sind läd er diese herrunter.
    Außerdem wird in bestimmten Zeitabständen überprüft ob der User im lokalen Verzeichnis Dateien angelegt bzw verändert hat.
    Wenn das zutrifft werden die Daten auf den FTP geladen.

    Dadurch ergeben sich für dich 2 enorme Vorteile:
    1. Jeder kann sich die aktuellen Daten holen und die Daten im FTP aktualisieren ohne dass jemand anderes erreichbar ist
    2. Du brauchst kein NAT am Router zu konfigurieren. (NAT leitet anfragen von deinem Router zum PC im Netz weiter. Ich würde das als ziemliches Sicherheitsrisiko sehen, weil du damit Leuten aus dem Internet zugriff auf deinen PC ermöglichst. Natürlich kann man das auch gut absichern, aber dazu sollte man sich auch gut damit auskennen)

    Ok du hast auch einen Nachteil:
    Deine FTP Daten müssen im Script hinterlegt werden. Per decompilieren oder Netzwerksniffing wären diese dann auslesbar. Aber das lässt sich mit reinem FTP nicht verhindern

    Hoffe ich konnte dir etwas weiterhelfen^^

    Gruß

  • Grafische Auswertung in Autoit

    • Schnitzel
    • 13. Mai 2011 um 10:14

    Das stichwort heißt GDI+
    Damit kann man alles mögiche zeichnen, auch solche Graphen
    Hier mal 3 links die dir weiterhelfen könnten:

    Gdi+ Tutorial [Part 5]
    GDIPlusObjekt.au3
    Graphen zeichnen

  • Zufallszahl nur einmal geben

    • Schnitzel
    • 13. Mai 2011 um 08:52

    Du hast da ein paar Denkfehler und ein paar Dinge die umständlich gelöst sind...
    1. Du musst natürlich erst überprüfen ob die IP schon im Array ist und dann erst (wenn sie nicht vorhanden ist) die neue einfügen.
    2. Du machst ständig das selbe Stringsplit in das selbe Array.
    3. Du solltest ganzzahlige Randomzahlen generieren.
    4. Winwaitactive finde ich sehr fehleranfällig, Send noch mehr ^^
    5. Es gibt keine IP's über 255 :D

    Deswegen hier mal 2 Vorschläge von mir:

    [autoit]


    #include <Array.au3>
    Local $sIpTmp, $aIp[1]
    While 1
    $sIpTmp = "192.168." & Random(0, 255, 1) & "." & Random(0, 255, 1); Beispielsweise mit IP's aus einem privaten Bereich (192.168...)
    _ArraySearch($aIp, $sIpTmp)
    If @error Then
    _ArrayAdd($aIp, $sIpTmp)
    ConsoleWrite($sIpTmp & @CRLF)
    Else
    ConsoleWrite($sIpTmp & " existiert schon" & @CRLF)
    EndIf
    WEnd

    [/autoit]

    Notepad Version:

    [autoit]


    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    HotKeySet("{Esc}", "quit")
    Local $sIpTmp, $aIp[1]
    ShellExecute("notepad.exe")
    WinWait("Unbenannt - Editor")

    [/autoit][autoit][/autoit][autoit]

    While WinExists("Unbenannt - Editor")
    $sIpTmp = "10." & Random(0, 255, 1) & "." & Random(0, 255, 1) & "." & Random(0, 255, 1); Beispielsweise mit IP's aus einem anderen privaten Bereich (10...)
    _ArraySearch($aIp, $sIpTmp)
    If @error Then
    _ArrayAdd($aIp, $sIpTmp)
    ControlSend("Unbenannt - Editor", "", "[CLASS:Edit; INSTANCE:1]", $sIpTmp & @CRLF)
    Else
    ControlSend("Unbenannt - Editor", "", "[CLASS:Edit; INSTANCE:1]", "Die generierte IP: " & $sIpTmp & " existiert schon." & @CRLF)
    EndIf
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func quit()
    Exit
    EndFunc

    [/autoit]
  • Event

    • Schnitzel
    • 12. Mai 2011 um 11:06

    Gute Frage. Nur kann man die Antwort leider nur erraten...

    Ich schätze mal du möchtest ein Event auf ein GuiControl legen.
    Dazu musst du den GuiOnEventMode verwenden und dann gehts mit

    [autoit]

    GuiCtrlSetOnEvent

    [/autoit]


    Sie dir doch einfach mal die hilfe dazu an ;)
    Einfach alles zu GUI-Referenz

  • Probelm mit Array: Array ist plötzlich kein Arry mehr?

    • Schnitzel
    • 12. Mai 2011 um 11:03

    Du überprüfst nicht ob es sich um ein Array handelt. D.h. es ist eben nicht unbedingt ein ordentliches Array
    Wenn du Arraysearch auf eine normale Variable anwendest bekommst du auch j = -1.
    D.h. statt zu prüfen ob j = -1 solltest du lieber prüfen ob @error = 6 ist.
    @error = 6 Steht für Suchstring nicht gefunden (Siehe Hilfe)
    Ein Array kann maximal 16 777 216 Indizies haben.
    Also geht das gerade noch:
    Dim $aArray[4096][4096]
    Mehr geht aber nicht

  • Zufallszahl nur einmal geben

    • Schnitzel
    • 12. Mai 2011 um 08:36

    Du brauchst ein Array in dem du alle IP's speicherst.

    einfach so:

    [autoit]


    Dim $aIP[1]
    _ArrayAdd($aIP, $ip)

    [/autoit]

    Und dann musst du vor dem Senden von dem ganzen Text überprüfen ob die IP schon einmal vorkam
    so z.B.

    [autoit]


    _ArraySearch($aIP, $ip)
    if @error Then
    send(...)
    Else
    ;ip kam schon vor
    EndIf

    [/autoit]
  • Wie ändere ich die Hintergrundfarbe von meinem Gui?

    • Schnitzel
    • 9. Mai 2011 um 19:27

    Beispiel ist in der Hilfe!!!

  • [Tutorial] Login + Registrierung über eine MySql-DB [+ Hilfedateien]

    • Schnitzel
    • 8. Mai 2011 um 22:04

    Läuft auch dein Apache?

  • Standard TrayItems umbenennen?

    • Schnitzel
    • 8. Mai 2011 um 14:35

    Sie dir doch mal die Hilfebeispiele an.
    Z.B. hier:

    [autoit]

    TrayCreateMenu

    [/autoit]
  • FileOpenDialog - Locked Files

    • Schnitzel
    • 7. Mai 2011 um 17:55

    Gesperrt = Gesperrt ^^

    Wenndann musst du sie erst entsperren. Z.B. mit sowas: link
    Ansonsten google mal nach gesperrte Dateien freigeben oder Ähnlichem.

  • FileOpenDialog - Locked Files

    • Schnitzel
    • 7. Mai 2011 um 17:41

    Backup Tools laufen egtl immer unter einem anderen Adminbenutzer.
    Das würde ich dir für deinen Fall auch empfehlen, weil die ntuser.dat nicht die einzige gesperrte Datei ist auf die du treffen wirst^^.
    Gesperrte Dateien sind "gesperrt" deshalb lassen sie sich nicht öffnen^^
    Das hat nichts mit autoit zu tun. Gibt aber für die meisten Daten auch möglichkeiten diese zu entsperren.
    Aber wie gesagt, unter nen anderen benutzer laufen lassen und gut is...

  • Weiteren Wert in Datenfeld von Array hinzufügen

    • Schnitzel
    • 6. Mai 2011 um 16:56

    Die generelle maximale Stringlänge ist 2147483647 Byte. Allerdings weiß ich nicht ob die auch für ein Array gelten

  • Weiteren Wert in Datenfeld von Array hinzufügen

    • Schnitzel
    • 6. Mai 2011 um 15:27

    Autoit hat natürlich für einige Sachen bestimmte grenzen. z.B. kannst du maximal ein Array mit 16 777 216 Indizies erzeugen.
    Es gibt auch maximale Stringlängen und so weiter.
    An deiner Stelle würde ich alles von autoit in eine Datenbank schreiben lassen und diese dann auswerten.
    Oder du überlegst dir was um nicht alles auf einmal in ein Array zu schreiben. Wie gesagt das is egtl nicht sinn und zweck eines Programmes den Ram aufzupumpen oder sonst was.

  • Weiteren Wert in Datenfeld von Array hinzufügen

    • Schnitzel
    • 6. Mai 2011 um 12:37

    Auch wenn ich generell davon abraten würde mehrere Daten in ein Feld zu schreiben.
    Aber das kommt drauf an was du damit vorhast^^
    Im Prinzip ginge es in diesem speziellen Fall z.B. so:

    [autoit]

    #include <Array.au3>
    Dim $aAuto[2][2] = [['(auto12)', '(auto34)'], _
    ['(auto56)', '(auto78)']]

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($aAuto)

    [/autoit][autoit][/autoit][autoit]

    $aAuto[0][1] = StringReplace($aAuto[0][1], ")", ", auto9)")

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($aAuto)

    [/autoit]

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™