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

Beiträge von Oscar

  • FReigabe von USB Laufwerken

    • Oscar
    • 31. März 2009 um 04:17

    Schau Dir mal das Beispiel zu DriveGetDrive in der Hilfe an.
    Wenn kein Laufwerk vorhanden ist, dann ist @error <> 0. Das musst Du entsprechend abfragen, damit diese Zeile

    [autoit]

    If $CurrentRemoveabledevices[0] > $Removeabledevices[0] Then

    [/autoit]


    nicht zu einem Fehler führt (Array nicht vorhanden).
    Das heißt: Vor der obigen Zeile mit

    [autoit]

    If @error Then ...

    [/autoit]


    oder mit

    [autoit]

    If IsArray($CurrentRemoveabledevices) Then ...

    [/autoit]


    diese Möglichkeit ausschliessen.

  • regulärer Ausdruck

    • Oscar
    • 30. März 2009 um 15:56

    Ja, genau 1 = Treffer und 0 = keine Übereinstimmung

  • regulärer Ausdruck

    • Oscar
    • 30. März 2009 um 15:32

    So?

    [autoit]


    $string = '3673e-b02b60'
    MsgBox(0, '', StringRegExp($string, '\d{4}[[:alpha:]]{1}(-|_)[[:alpha:]]{1}\d{2}[[:alpha:]]{1}\d{2}'))

    [/autoit]
  • ini auslesen, bearbeiten, wieder einfügen als richtige ini

    • Oscar
    • 30. März 2009 um 15:16

    Für mich sieht das ganz nach einem Bot aus...
    Du hast noch eine Chance das klarzustellen.

  • FReigabe von USB Laufwerken

    • Oscar
    • 29. März 2009 um 23:10

    Ähem...dann habe ich das falsch verstanden.
    Beschreib doch mal genauer, was Du vorhast. Was soll passieren, wenn Du einen beliebigen USB-Stick ansteckst?

  • FReigabe von USB Laufwerken

    • Oscar
    • 29. März 2009 um 22:23

    Benutze DriveGetSerial() um den USB-Stick eindeutig zu identifizieren.
    Und mit $WM_DEVICECHANGE kannst Du auch direkt auf das anstecken des USB-Sticks reagieren, ohne das immer in einer Schleife abfragen zu müssen.

  • Key.au3

    • Oscar
    • 29. März 2009 um 14:39

    @mazo: Auf welches Script beziehst Du Dich mit Deiner Aussage?
    nof@kers Script besteht aus Funktionen. Den Auruf musst Du selbst übernehmen.
    Mein Script könnte mit Vista Probleme machen (hab kein Vista), wegen Schreibzugriff. Ein #RequireAdmin am Scriptanfang sollte helfen.

  • Browser-Überwachung mit Passwortschutz !!

    • Oscar
    • 29. März 2009 um 14:18

    Es wird davon noch eine neue Version geben (ist noch nicht ganz fertig).
    Konfiguration ist vorgesehen, sowie ein deaktivieren des Taskmanagers.

    Eine normale GUI ist ungeeignet, da man sie einfach in den Hintergrund packen und so den Browser weiter nutzen kann.

  • Browser-Überwachung mit Passwortschutz !!

    • Oscar
    • 29. März 2009 um 13:50

    Ich hatte sowas mal programmiert: Browserstart überwachen

  • PCTools falsche Trojanermeldung???

    • Oscar
    • 28. März 2009 um 18:21

    Ich benutze AntiVir von Avira. Besitze die "Premium Security Suite" und bin damit sehr zufrieden.
    Als es vor kurzem mal zu einem Fehlalarm mit AutoIt-Programmen kam, habe ich eine EMail an den Support geschrieben und kurze Zeit später kam ein Update raus. Die sind sehr freundlich und antworten auch individuell auf EMails (keine Standard-Mail-Antworten). :thumbup:

  • Probleme mit starten einer Anwendung mit Parametern und Beenden von Anwendungen

    • Oscar
    • 28. März 2009 um 18:08

    Wenn die Dateien mit den jeweiligen Programmen verknüpft sind, kannst Du auch ShellExecute($neueste) zum starten benutzen.

  • Wie zur Laufzeit an ControlID kommen?

    • Oscar
    • 28. März 2009 um 17:56

    Ich weiß zwar nicht wozu das gut sein soll, aber warum so umständlich? Macht AutoIt doch sowieso von sich aus:

    [autoit]


    $hex = 0x0000015E
    MsgBox(0, 0, $hex)

    [/autoit]
  • Aus Dateipfad, Ordnerpfad machen

    • Oscar
    • 28. März 2009 um 17:44

    Mit dem ersten Beispiel hast Du recht.
    Beim zweiten Beispiel bekommst Du aber nicht nur den Dateinamen, sondern auch die Dateiendung.

  • Fragen zu den File... Funktionen

    • Oscar
    • 28. März 2009 um 17:37

    Das liegt daran, das der FileOpenDialog das @WorkingDir auf das ausgewählte Verzeichnis setzt. Somit ist das Verzeichnis gelockt.
    Um das rückgängig zu machen, musst Du das @WorkingDir auf ein anderes Verzeichnis setzen:
    z.B.:

    [autoit]

    FileChangeDir(@WindowsDir)

    [/autoit]

    Edit: Mist, zu langsam... ;)

  • Key.au3

    • Oscar
    • 28. März 2009 um 17:26

    Seriennummern sehen doch meist eher so aus: QQ32-1EXG-VM41-TDC2-J1N7

    Ist nicht so schwer und geht ganz ohne Arrays. Includes braucht man auch keine. ;)

    Hab das mal schnell gescriptet. Wenn Du es selbst versuchen willst, den Spoiler nicht öffnen! :)

    Spoiler anzeigen
    [autoit]


    MsgBox(0, '', _KeyGen(4, @ScriptDir & '\test.txt'))

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

    Func _KeyGen($iCount, $sFile)
    Local $hFile = FileOpen($sFile, 2) ; Datei zum speichern öffnen
    If $hFile <> -1 Then ; wenn erfolgreich, dann...
    Local $sOut = '' ; Ausgabevariable deklarieren
    For $i = 1 To $iCount ; Schleife für die Anzahl der Seriennummern
    For $j = 1 To 20 ; Schleife für die Anzahl der Buchstaben/Zahlen
    $sOut &= StringMid('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', Random(1, 36, 1), 1) ; zufällige(n) Buchstaben/Zahl hinzufügen
    If $j/4 = Int($j/4) And $j < 20 Then $sOut &= '-' ; nach jeweils 4 Zeichen ein Bindestrich einfügen
    Next
    $sOut &= @CRLF ; Zeilenumbruch für die nächste Seriennummer
    Next
    FileWrite($hFile, StringTrimRight($sOut, 2)) ; alle Seriennummern abspeichern
    FileClose($hFile) ; Datei schließen
    Return $sOut ; die Seriennummern als String zurückgeben
    Else
    Return SetError(1, 0, 0) ; Fehler beim öffnen der Datei (@error = 1, Rückgabe = 0)
    EndIf
    EndFunc

    [/autoit]
  • PCTools falsche Trojanermeldung???

    • Oscar
    • 28. März 2009 um 04:37

    AntiViren-Programme machen immer mal wieder Probleme mit AutoIt-Programmen. Meist wegen des Packers "UPX". Von daher gehe ich auch von einem Fehlalarm aus.

    Was die Digitaluhr angeht: Die zugehörigen Dateien sind soweit alle gleich. Das Script und die Exe sind bei mir schon anders, aber das liegt daran, dass ich noch ein paar Änderungen vorgenommen habe.
    Ist aber egal, da Du Dir ja eine eigene Exe compilieren kannst. Bei meinen Scripten sind immer alle Dateien dabei. Starte einfach "AutoIt3Wrapper_Gui.exe" (liegt im Verzeichnis "C:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\") und wähle "Digitaluhr.au3" aus, danach klickst Du auf "Compile Script" und schon hast Du Deine eigene Exe. Wenn das AntiViren-Programm auch dort meckert, dann ist das ein Fehlalarm.

  • Aus Dateipfad, Ordnerpfad machen

    • Oscar
    • 28. März 2009 um 04:13

    Oder die Klammern bei StringRegExpReplace anders setzen:

    [autoit]


    $pfad='D:\TEMP\abc\xyz\IMG.jpg'
    $pfad = StringRegExpReplace($pfad, '.*\\(.*)\..*', '$1')
    MsgBox(0,0, $pfad)

    [/autoit]
  • Wie zur Laufzeit an ControlID kommen?

    • Oscar
    • 27. März 2009 um 21:03

    Versuch's mal mit: _WinAPI_GetDlgCtrlID()

  • Aus Dateipfad, Ordnerpfad machen

    • Oscar
    • 27. März 2009 um 20:48

    Hier mal mit Kommentar:

    [autoit]


    $pfad='D:\TEMP\abc\xyz\IMG.jpg'
    $pfad = StringRegExpReplace($pfad, '(.*\\).*\..*', '$1')
    ; der . steht für ein beliebiges Zeichen
    ; der * dahinter bedeutet: 0 bis x mal, also beliebig oft
    ; dann folgt ein Backslash, der hat bei StringRegExp aber eine besondere Bedeutung,
    ; muss also maskiert werden (das geschieht mit einem Backslash) ergibt \\
    ; diese Gruppe ist in Klammern eingeschlossen, dass bedeutet, das man darauf verweisen kann (mit dem '$1' im Ersetzen-Parameter)
    ; danach folgt wieder .* was wieder für beliebig viele Zeichen steht
    ; dann folgt ein maskierter Punkt \. damit wird nach einem Punkt in der Zeichenkette gesucht
    ; und nach dem Punkt dürfen dann wieder beliebig viele Zeichen stehen .*
    ;
    ; wenn man der ersten Gruppe (.*\\) kein Fragezeichen ? hinzufügt, dann verhält sich StringRegExp
    ; sehr "gefrässig", schnappt sich also alles vom ersten Zeichen bis zum letzten Backslash
    ; das ist hier so gewollt, deshalb kein Fragezeichen
    ; anders wäre es, wenn man das so schreibt: (.*?\\)
    ; dann würde nur der Teil bis zum ersten Backslash ausgewählt werden.
    MsgBox(0,0, $pfad)

    [/autoit]
  • µit - März

    • Oscar
    • 27. März 2009 um 19:54

    Nein, aufgeben und die Lösungen veröffentlichen finde ich nicht gut. Warum auch?
    Einige haben doch bereits fertige Scripte (wenn ich das richtig interpretiere). Vielleicht könnten wir uns auf bestimmte Sudokus einigen, sodass man nicht alle Strategien umsetzen muss und somit die Effektivität des (bisherigen) Algorithmus erhöhen kann. Sprich: mehr in Richtung Speed zielen, als auf das lösen aller Sudokus.

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™