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

Beiträge von BugFix

  • StringSplit-Frage

    • BugFix
    • 1. Oktober 2006 um 17:18

    Also bei mir funktionierts. Habe mal auskommentiert, was ich zum Test nicht brauche.
    Wenn du im Eingabefeld eingibst:
    "aa {TAB} bb {ENTER}
    cc {TAB} dd"
    (Für TAB im Eingabefeld mußt du STRG+TAB drücken.), dann kommt in der MsgBox
    bei Durchlauf 1: [1.]aa[2.]bb
    bei Durchlauf 2: [1.]cc[2.]dd

    Genau, wie es soll.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    ; == GUI generated with Koda ==
    $Form1 = GUICreate("Vokabeln eingeben", 540, 441, 192, 125)
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 537, 377)
    GUICtrlSetData($Edit1, "")
    $Button1 = GUICtrlCreateButton("Start", 224, 392, 75, 25, 0)
    GUISetState(@SW_SHOW)
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    GUISetState(@SW_HIDE)
    $Zeilen = GUICtrlRead($Edit1)
    $Zeile = StringSplit($Zeilen, @LF)
    ;~ Run("C:\HEUREKA\VOXYGB5\VOXY.EXE GB5")
    ;~ Sleep(2000)
    ;~ Send("Kevin")
    ;~ Send("{TAB}")
    ;~ Send("Kevin")
    ;~ Send("{ENTER}")
    ;~ MouseMove(408, 280)
    ;~ MouseClick("left")
    ;~ Sleep(500)
    ;~ Send("!d")
    ;~ Sleep(500)
    ;~ Send("{DOWN}")
    ;~ Send("{DOWN}")
    ;~ Sleep(500)
    ;~ Send("{ENTER}")
    For $i = 1 To $Zeile[0]
    $Vokabel = StringSplit($Zeile[$i], @TAB)
    MsgBox(0,"","[1.]"&$Vokabel[1]&"[2.]"&$Vokabel[2])
    ;~ Send("^n")
    ;~ Send($Vokabel[1])
    ;~ Send("{TAB}")
    ;~ Send($Vokabel[2])
    ;~ Send("^s")
    ;~ Sleep(1000)
    Next
    ;~ GUISetState(@SW_Show)
    EndSelect
    WEnd
    Exit

    [/autoit]
  • Ausführen-Feld in GUI einbauen?

    • BugFix
    • 1. Oktober 2006 um 16:46

    Was genau willst du machen?
    Befehlszeile in Inputfeld einlesen und dann das Original Windows "Programme -Ausführen" öffnen und den Befehl übergeben?

    Dein bisheriger Code stimmt auch nicht - du hast keine GUI erstellt und falsche Zuweisung.
    Hier mal korrigiert:

    [autoit]

    $GUI = GUICreate("Meine GUI", 400, 250, -1, -1)
    $run_input="Ausführen!"
    $run_inputfield=GUICtrlCreateInput($run_input, 10, 30, 100, 20)
    $run_button=GUICtrlCreateButton("Ready", 115, 30, 100, 20)

    [/autoit]

    Sag mal, was du genau willst.

    Edit:
    Di Spinne war wieder schneller - Sauerei. ;)

  • StringSplit-Frage

    • BugFix
    • 1. Oktober 2006 um 16:19

    du verwendest in äußerer und innerer Schleife die gleiche Zählvariable "$i" . Das geht schief.
    STRG+S =

    [autoit]

    Send("^s")

    [/autoit]
  • Tab wird nicht korrekt angezeigt!

    • BugFix
    • 30. September 2006 um 17:20

    Hi,
    neben dem fehlenden Abschluß hast du den GUI-Status an der falschen Stelle gesetzt. Dadurch wird die Tabreihenfolge nicht berücksichtigt.
    So funktionierts:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <IE.au3>

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

    GUICreate("µTorrent-Toolbox",225,220)
    ;~ GUISetState(@SW_SHOW) HIER NICHT!
    GUISetIcon("files\gfx\main.ico")
    GUISetFont(9, "", "", "SegoeUI", "")
    GUISetBkColor("black")

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

    ;~ GUI-Buttons Start

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

    $Tab=GUICtrlCreateTab(0, 0, 225, 220)

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

    $i1=GUICtrlCreateTabItem ("Leech")
    $leechfakeup=GUICtrlCreateButton("Leech Fake UP 3x",10,30,200,20,-1,-1)
    $leechmulti10=GUICtrlCreateButton("Leech Multi10",10,50,200,20,-1,-1)
    $emu14=GUICtrlCreateButton("Leech Emu1.4 Multi10",10,70,200,20,-1,-1)

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

    $i2=GUICtrlCreateTabItem ("Seed")
    $onlyup=GUICtrlCreateButton("Seed OnlyUpload",10,70,200,20,-1,-1)
    $seedfakeup=GUICtrlCreateButton("Seed Fake UP 3x",10,30,200,20,-1,-1)
    $seedmulti10=GUICtrlCreateButton("Seed Multi10",10,50,200,20,-1,-1)

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

    $i3=GUICtrlCreateTabItem ("Misc")
    $noleech=GUICtrlCreateButton("Original Client",10,50,200,20,-1,-1)
    $stealth=GUICtrlCreateButton("Stealth-Mod",10,30,200,20,-1,-1)
    $nrpg=GUICtrlCreateButton("NRPG RatioMaster",10,70,200,20,-1,-1)

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

    $i4=GUICtrlCreateTabItem ("Tools")
    $close=GUICtrlCreateButton("Kill all µTorrent-Processes",10,30,200,20,-1,-1)
    $webui=GUICtrlCreateButton("Install µTorrent-WebUI",10,50,200,20,-1,-1)
    $clean=GUICtrlCreateButton("Clean µTorrent-Folder",10,70,200,20,-1,-1)
    $gfx=GUICtrlCreateButton("Install GFX-Pack",10,90,200,20,-1,-1)
    $links=GUICtrlCreateButton("Open Links.htm",10,110,200,20,-1,-1)
    $zip=GUICtrlCreateButton("Compress torrents to a zip-file",10,130,200,20,-1,-1)

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

    $i5=GUICtrlCreateTabItem ("About")
    $label_author=GUICtrlCreateLabel("Author: Alex Irsi", 70, 80)
    $label_email=GUICtrlCreateLabel("alexirsi@googlemail.com", 40, 110)
    $label_name_number=GUICtrlCreateLabel("µTorrent-Toolbox v0.8", 55, 50)
    $label_picture=GUICtrlCreatePic("icon.gif", 50, 140, 128, 48)
    GUICtrlCreateTabItem("") ;muß sein
    GUISetState(@SW_SHOW) ;erst hier
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd
    Exit

    [/autoit]
  • WEB.DE vergrault User

    • BugFix
    • 21. September 2006 um 18:46

    Meine "offizielle" Mailadresse mit Real-Name habe ich auch bei GMX.
    Für den "spamlastigen" Verkehr hab ich ein paar Adressen bei WEB.DE.

  • WEB.DE vergrault User

    • BugFix
    • 21. September 2006 um 18:12

    Der Freemailer WEB.DE hat sich selbst ein Ei gelegt.
    Als guter Service gedacht, wurde ein Virenschutz implementiert, der solchermaßen schlecht konfiguriert ist, dass er neben *.ZIP und *.EXE sogar PDF-Dateien verwirft! Der Nutzer hat keine Konfigurationsmöglichkeit und wundert sich über anhanglose Mails. Er wird auch nicht darüber informiert, dass ein (vermeintlich) virusbehafteter Anhang gelöscht wurde.
    Ich hab ein entsprechendes Feedback an WEB.DE geschickt. Sollte sich daran aber nichts ändern ist WEB.DE für mich gestorben.

  • Filegrößenbestimmung auf 200 Server bei min. 3Usern

    • BugFix
    • 20. September 2006 um 20:18

    Bemerkung am Rande:

    Zitat

    (das muss sein wei der Linux server nicht ordentlich funktioniert)

    Was habt ihr denn da verbockt? Was zuverlässigeres als einen Linux Mailserver hab ich bisher noch nicht kennengelernt. Ich hoffe, ihr seid vom Exchange nachher nicht enttäuscht. Soweit ich weiß, ist vom Konfigurationsumfang her Linux eindeutig besser.

  • Array sortieren die 2.

    • BugFix
    • 18. September 2006 um 20:22

    ;) alles klar, war schon total am grübeln

  • Array sortieren die 2.

    • BugFix
    • 18. September 2006 um 20:08

    Hmm.. du hast recht. Das Ergebnis ist falsch. Nur kann ich bisher nicht erkennen warum der Fehler entsteht. Wenn ich mir in der Schleife die Werte anzeigen lasse, ist alles korrekt ( $i=1; $xma[7]=$tmp[1] ) usw.
    Lasse ich mir aber das fertige array anzeigen, sind die Einträge völlig durcheinander bzw. einer fehlt sogar.
    Ich such mal weiter.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    Dim $tmp[25] ; $tmp[0] lassen wir leer, damit Index 1 auch Eintrag 1 ist
    Dim $xma[25]

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

    For $i = 1 To 24
    $tmp[$i] = "$tmp-Pos: "&$i ; die Daten, die nach dem Muster von $sortIndex sortiert werden sollen
    Next
    $tmpsort="7,19,11,23,5,17,6,18,8,19,3,15,12,24,1,13,2,14,4,16,10,22,9,21"
    $sortIndex = StringSplit($tmpsort,",")
    _ArrayDisplay($sortIndex,"SortIndex") ; hier stimmt alles
    For $i = 1 To $sortIndex[0]
    $xma[$sortIndex[$i]] = $tmp[$i] ; auch das ist alles OK
    Next
    _ArrayDisplay($xma,"Sortiert nach Schlüssel") ; nur noch Schwachsinn :(

    [/autoit]
  • Array sortieren die 2.

    • BugFix
    • 18. September 2006 um 18:42

    Dann poste doch mal das, was nicht funzt - vielleicht kriegen wirs gebacken.

  • Hallo zusammen

    • BugFix
    • 18. September 2006 um 18:14

    Wöukomme, mier sy mega härzig. ;)

    Ich hoffe, dass kommt deiner Sprache nahe. Neben Scriptsprachen sind wir auch bereit Dialekte zu lernen, naja zumindest ein bischen.
    Also fühl dich wie zuhause. :kiss:

  • Array sortieren die 2.

    • BugFix
    • 18. September 2006 um 18:00

    $sortIndex ist ein Array, durch StringSplit erzeugt, das mit den Elementen von $tmpsort befüllt ist.
    $sortIndex[0] enthält die Anzahl der Elemente und der Rest lt. Index
    $sortIndex[1]=7 ; $sortIndex[2]=19 ; $sortIndex[3]=11 usw.

    Also die Lösung von Bernd macht genau das, was du gewünscht hast. Oder wolltest du doch was anderes? :rolleyes:

  • FileFindFirstFile & FileFindNextFile

    • BugFix
    • 17. September 2006 um 19:46

    Hi DJMANU,

    Pee hat mir mal empfohlen, wenigstens einmal komplett die Hilfe durchzulesen. Auch wenn ich das bis jetzt noch nicht ganz geschafft habe, kann ich nur sagen: Recht hat er, der Pee!
    Auch dir würde ich das dringend nahelegen. Vor allem, da du dich zur Zeit in einem 'Funktionserstellungswahn' :) befindest und oft genug das Rad neu erfinden willst.

  • FAQ

    • BugFix
    • 17. September 2006 um 13:26

    Wie kann ich auf dem ausführenden Rechner bestimmte Datums-oder Ländereinstellungen garantieren?

    Erzeuge ich z.B. ein Datumsauswahlfeld

    [autoit]

    GUICtrlCreateDate("", 384, 50, 120, 21,$DTS_SHORTDATEFORMAT) ; Kurzform TT.MM.JJJJ

    [/autoit]


    ist die Darstellung abhängig von den Ländereinstellungen in der Systemsteuerung des Rechners auf dem das Programm läuft.
    Um sicherzugehen, dass das von mir erforderte Format erscheint, muß ich es in der Registry überprüfen und ggf. korrigieren.
    Zum Programmende muß natürlich der Originalzustand wiederhergestellt werden.

    Mein Bsp. überwacht die Darstellung des Datums in der Kurzform (Registry 'sShortDate') und kann natürlich analog für die anderen Werte verwendet werden.

    Spoiler anzeigen
    [autoit]

    #region - Datumeinstellung überprüfen / korrigieren
    $currVal = RegRead("HKEY_CURRENT_USER\Control Panel\International\","sShortDate")
    $RegChanged = 0
    If $currVal <> "dd.MM.yyyy" Then
    RegWrite("HKEY_CURRENT_USER\Control Panel\International\","sShortDateTMP","REG_SZ",$currVal) ; Einstellung sichern
    RegWrite("HKEY_CURRENT_USER\Control Panel\International\","sShortDate","REG_SZ","dd.MM.yyyy"); alten Eintrag überschreiben
    $RegChanged = 1
    EndIf
    #endregion - Datumeinstellung
    ;;
    ;;
    ;; Code
    ;;
    ;;
    ; Registry geändert ?
    If $RegChanged = 1 Then
    $tmpVal = RegRead("HKEY_CURRENT_USER\Control Panel\International\","sShortDateTMP") ; gesicherten Wert lesen
    RegWrite("HKEY_CURRENT_USER\Control Panel\International\","sShortDate","REG_SZ",$tmpVal) ; Originalzustand wiederherstellen
    EndIf
    Exit

    [/autoit]
  • überprügung ob ein script schon einmal ausgeführt wurde

    • BugFix
    • 15. September 2006 um 12:41

    Ich nehme mal an, dass du dein Logfile löscht, wenn keine Einträge sind.
    Dann füge vor den eigentlichen Programmcode diese Abfrage ein:

    [autoit]

    If FileExists("C:\Logs\logfile") Then Exit

    [/autoit]

    Wenn also ein Logfile existiert bricht das Programm sofort ab.

  • SciTE Step by Step Script ablauf

    • BugFix
    • 15. September 2006 um 11:24

    Hier ein Auszug aus der Hilfe:

    Zitat

    Ctrl+Shift+D - Add Debug msgbox
    This function will add a MSGBOX below the current line that contains the Var the cursor is at
    $a = $b + 1 (Put the cursor on $b and press Ctrl+Shift+D the following line will be added)
    MsgBox(4096,'debug:' & $b,$b) ;### Debug MSGBOX

    auf deutsch:
    Setze den Cursor vor die Variable, die du überwachen willst und drücke STRG+SHIFT+D. Es wird eine Messagebox eingefügt, die dir den Wert der Variable ausgibt.
    Um Fehler zu verfolgen ist "Extras" "Trace: Add Trace Lines" vllt. die bessere Wahl. Mußt du dir ausprobieren.

    Edit:
    Du kannst dir die Werte einer Variablen auch auf die Console ausgeben lassen. Ist besser, wenn die Variable z.B. in einer Schleife liegt, müßtest du jedes mal die MsgBox anklicken.
    Ausgabe an Console: Cursor vor Variable, ALT+D
    Hab mal ein Beispiel angehängt, wie das aussieht:

    Spoiler anzeigen
    [autoit]

    $string= "abc,+12-tzr563Q><?9" ;num=125639
    $zahl= _StringNumExtract($string)
    MsgBox(0,"","numerisch: "&$zahl[1]& @LF &"nichtnumerisch: "&$zahl[2])

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

    Func _StringNumExtract($fullstring)
    Dim $array[3]
    $num=""
    $nonum=""
    $len=StringLen($fullstring)
    For $i=1 To $len
    $pos=StringMid($fullstring,$i,1)
    If StringIsDigit($pos) Then
    $num=$num&$pos
    ConsoleWrite('@@ Debug(13) : $num = ' & $num & @lf & '>Error code: ' & @error & @lf) ;### Debug Console
    Else
    $nonum=$nonum&$pos
    EndIf
    Next
    If $num <>"" Then
    $array[1]= $num
    $array[0]= 0 ; numerische Elemente enthalten
    Else
    $array[0]= -1 ; String enthält keine numerischen Elemente
    EndIf
    $array[2]= $nonum ; alle nichtnumerischen Elemente
    Return $array ; Rückgabe Array [0] enthält Status 0 od. -1; [1] enthält num. Teil; [2] enthält nichtnum. Teil
    EndFunc

    [/autoit][autoit]

    >"H:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "H:\Dokumente und Einstellungen\Worker_Admin\Desktop\_AU3\TEST.au3" /autoit3dir "H:\Programme\AutoIt3" /UserParams
    +> Starting AutoIt3Wrapper v.1.7.1
    >Running AU3Check (1.54.3.0) params: from:H:\Programme\AutoIt3
    +>AU3Check ended.rc:0
    >Running:(3.2.0.1):H:\Programme\AutoIt3\autoit3.exe "H:\Dokumente und Einstellungen\Worker_Admin\Desktop\_AU3\TEST.au3"
    @@ Debug(13) : $num = 1
    >Error code: 0
    @@ Debug(13) : $num = 12
    >Error code: 0
    @@ Debug(13) : $num = 125
    >Error code: 0
    @@ Debug(13) : $num = 1256
    >Error code: 0
    @@ Debug(13) : $num = 12563
    >Error code: 0
    @@ Debug(13) : $num = 125639
    >Error code: 0
    +>AutoIT3.exe ended.rc:0
    >Exit code: 0 Time: 4.401

    [/autoit]
  • Nicht nummerische aus string entfernen

    • BugFix
    • 14. September 2006 um 21:09

    Wenn du das mehr als einmal verwendest, kannst du es auch als eigene Funktion schreiben. Dann hast du natürlich auch nur noch einen Befehl zum Aufruf:

    Spoiler anzeigen
    [autoit]

    $string="abc,+12-tzr563Q><?9" ;num=125639
    MsgBox(0,"numerisch:",_StringNumExtract($string))

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

    Func _StringNumExtract($fullstring)
    $num=""
    $len=StringLen($fullstring)
    For $i=1 To $len
    $pos=StringMid($fullstring,$i,1)
    If StringIsDigit($pos) Then $num=$num&$pos
    Next
    If $num <>"" Then
    Return $num
    Else
    Return -1 ; String enthält keine numerischen Elemente
    EndIf
    EndFunc

    [/autoit]

    Edit:
    Ich hab mal die Funktion noch erweitert. Sie gibt nun Status (numerisch enthalten oder nicht), numerischen und nichtnumerischen Stringteil in ein Array aus:

    Spoiler anzeigen
    [autoit]

    $string= "abc,+12-tzr563Q><?9" ;num=125639
    $zahl= _StringNumExtract($string)
    MsgBox(0,"","numerisch: "&$zahl[1]& @LF &"nichtnumerisch: "&$zahl[2])

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

    Func _StringNumExtract($fullstring)
    Dim $array[3]
    $num=""
    $nonum=""
    $len=StringLen($fullstring)
    For $i=1 To $len
    $pos=StringMid($fullstring,$i,1)
    If StringIsDigit($pos) Then
    $num=$num&$pos
    Else
    $nonum=$nonum&$pos
    EndIf
    Next
    If $num <>"" Then
    $array[1]= $num ; alle numerischen Elemente
    $array[0]= 0 ; numerische Elemente enthalten
    Else
    $array[0]= -1 ; String enthält keine numerischen Elemente
    EndIf
    $array[2]= $nonum ; alle nichtnumerischen Elemente
    Return $array ; Rückgabe Array [0] enthält Status 0 od. -1; [1] enthält num. Teil; [2] enthält nichtnum. Teil
    EndFunc

    [/autoit]
  • Nicht nummerische aus string entfernen

    • BugFix
    • 14. September 2006 um 08:24

    Falls du kein include möchtest, ein paar Schritte mehr, geht aber auch:

    [autoit]

    $string="abc,+12-tzr563Q><?9" ;num=125639
    $num=""
    $len=StringLen($string)
    For $i=1 To $len
    $pos=StringMid($string,$i,1)
    If StringIsDigit($pos) Then $num=$num&$pos
    Next
    MsgBox(0,"numerisch:",$num)

    [/autoit]
  • string trimmen

    • BugFix
    • 13. September 2006 um 21:18

    Zum Thema Laufwerkserkennung hatten wir auch hier einiges. Vielleicht hilft es dir.

  • Icon + Text im Button, und es geht doch

    • BugFix
    • 13. September 2006 um 17:37

    Hab's mal getestet - es geht mit eigenen Icons.
    Aber Syntax nicht:

    Code
    $icon1 = GUICtrlCreateIcon("Anzeige.ico", "", 25, 25, 16, 16)

    sondern:

    Code
    $icon1 = GUICtrlCreateIcon("Anzeige.ico", -1, 25, 25, 16, 16)

    ;)

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™