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

  • Hilfe bei Programm - Zeichen in Zeichenkette/String hinzufügen

    • Schnitzel
    • 8. April 2014 um 12:58

    Erstmal herzlich willkommen im Forum.
    Da das hier Hilfe und Unterstützung ist solltest du auch beschreiben wo dein Problem liegt.
    Und zur Beschreibung bitte auch deinen Quellcode posten, damit man genau sieht was du falsch machst.

    Evtl auch mal einen Blick auf den Thread werfen ;)
    Autoit-Anfänger Guide / Wie poste ich richtig?

  • @OSBuild welche Antworten möglich??

    • Schnitzel
    • 8. April 2014 um 09:08
    Zitat von elektronenpeter

    Bei mir auch so, ich hab XP und Laptop, hab keine ahnung woher der Fehler genau kommt, der Skript ist eigentl. OK


    Als der Thread erstellt wurde war das ja noch OK, aber der größte Fehler ist auf jeden Fall, dass du noch XP verwendest... :rolleyes:

  • Neue AutoIT SciTE V14.04.05.11 ab jetzt OHNE Obfuscator! - Alternative verfügbar?

    • Schnitzel
    • 7. April 2014 um 14:53

    Ich habs mir selbst noch nicht angesehen aber im Forum wurde schonmal ueber AutoCamo diskutiert
    Koennte eine Loesung fuer dich sein
    http://www.autoitscript.com/forum/topic/12…-8112-b-8214-b/

    Sorry fuer die Umlaute hab hier nur ne englische Tastatur :D

  • UBound Frage

    • Schnitzel
    • 26. März 2014 um 11:08

    In dem Array $aButton hast du die ControlID's. Die haben nicht direkt was mit deiner nummerierung zu tun.
    Natürlich sind sie auch fortlaufend weil du die Buttons nacheinander erstellst, aber sie beginnen eben nicht bei 1 sondern bei 8
    (bei 8 weil du davor ja schon andere Controls erstellst die die kleineren ID's haben)

    Wenn ich das richtig sehe musst du auch nur statt dem

    [autoit]

    $InI = IniRead(@ScriptDir & "/Settings.ini", "Path", "Button" & $aButton[$x]-7 ,"Not Found")

    [/autoit]


    das verwenden:

    [autoit]

    $InI = IniRead(@ScriptDir & "/Settings.ini", "Path", "Button" & $x ,"Not Found")

    [/autoit]

    Ubound hat damit auch nicht direkt was zu tun. Ubound gibt dir ja nur zurück wieviele Elemente in deinem Array sind. Also in deinem Fall wieviele ButtonID's du hast

  • Autom. AutoIT Installation (Select a default option for *.au3 files)

    • Schnitzel
    • 25. März 2014 um 14:25

    Hallo viper1000,

    Erstmal herzlich willkommen im forum ;)

    Das müsste hier liegen:
    hkey_classes_root->.au3
    bzw:
    hkey_classes_root->AutoIt3Script

    Dort müssten irgendwo (Default) Schlüssel liegen die angeben welches Program verwendet wird.
    D.h. das müsstest du einfach von Autoit3.exe auf Scite.exe ändern

    Bin leider gerade nur unter Linux unterwegs, sonst hätt ich es dir genauer rausgesucht ^^

  • Ini Werte einlesen in Inputbox

    • Schnitzel
    • 24. März 2014 um 10:43

    Wenn du von einer Inputbox redest dann denke ich solltest du einfach ein Stringreplace verwenden der dir alle | durch @Crlf ersetzt.

  • Hilfe zu einem Autoit-Skript (Zahlenraten)

    • Schnitzel
    • 21. März 2014 um 11:44
    Zitat von Pyruz

    Schnitzel: Dein Skript funktioniert bei mir leider auch nicht (Genau der gleiche Fehler wie bei mir)


    Du solltest auch den Text lesen den ich geschrieben habe:

    Zitat

    Ich hab mal im Script ein paar Gedanken notiert. Da du was lernen willst ist das ganze zum selbermachen ;)

    i2c hat eine schnelle Lösung für dein Problem gepostet.
    RR04 hat dein Script überarbeitet und einiges angepasst. Eben auch das mit dem festen Zahlenbereich. Das zu ändern wären aber nur 2 Inputboxen.
    Ich hab nur in dein Script nur ein paar Kommentare eingefügt. Ansonsten hab ich da nichts verändert, weil man von nem fertigen Script nicht soviel lernt wie wenn man es selber macht.
    Wenn du nur die Zeile von i2c eingebaut hast dann gibts da noch einiges zu verbessern...

  • Per Button schleife unterbrechen möglich?!

    • Schnitzel
    • 20. März 2014 um 11:59
    Zitat

    Ich wusste das die Frage kommt ^^
    Und hier meine alles beantwortende Antwort: 42 .... (Weil es funktioniert ;))

    Das Forum ist dazu gedacht dass wir richtige Hilfe/Antworten geben und nicht dass wir irgendeine Funktionierende Lösung posten.
    Wenn du schon weißt dass du beim Vergleich einer Zahl auch wirklich eine Zahl verwenden solltest dann gib dieses wissen doch auch bitte so weiter.

    Mal ganz davon abgesehen, dass hier ein Bool besser geeignet wäre.

  • Hilfe zu einem Autoit-Skript (Zahlenraten)

    • Schnitzel
    • 19. März 2014 um 13:05

    Das Problem mit der Zahl hat i2c ja schon gelöst.
    Bei Zeile 43 bis 45 würde ich aber eine andere Lösung vorschlagen.
    Ich hab mal im Script ein paar Gedanken notiert. Da du was lernen willst ist das ganze zum selbermachen ;)

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Outfile=zahlenraten.exe
    #AutoIt3Wrapper_Run_AU3Check=n
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #AutoIt3Wrapper_Run_Tidy=y
    #AutoIt3Wrapper_Tidy_Stop_OnError=n
    #Obfuscator_Parameters=/striponly
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <process.au3> ; für was?
    Opt('MustDeclareVars', 1)
    _main()
    Func _main()
    Local $grenze = InputBox("Grenze", "Bitte max. Wert eingeben:"); wie von i2c schon angesprochen musst du nach Int konvertieren
    Local $sTitle = "ZahlenRaten - Tut", $sDate = "13.09.2013", $sVersion = "0.4.3"
    Local $sMsgUpdate = '%s\n\nDer PC ermittelt eine zuf?llige Zahl, die von Dir\t' _
    & '\nmit so wenig wie m?glichen Versuchen,\nerraten werden soll.' _
    & '\nAls Hinweis bekommst Du eine Meldung,\nob Deine Zahl kleiner, gr??er oder richtig war.' _
    & '\n\nVersion:\t%s\nBuild:\t%s\n\nAutor:\nRitzelrocker04 / RR04' _
    & '\nritzelrocker04.bplaced.net\n\nWeiter zum UpdateCheck?'
    Local $nMsg, $btnClose, $btnGo, $iptNumber, $lblOut, $lblOutMsg, $btnNochmal
    Local $output, $number, $try = 0, $randomNumber = Random(0, $grenze, 1)

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

    GUICreate($sTitle, 300, 185)
    GUICtrlCreateLabel("Rate die Zahl zwischen 0 und " & $grenze, 35, 10, 230, 17, 0x0001); Speicher dir hier die Control-ID in eine Variable
    GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
    $iptNumber = GUICtrlCreateInput("", 35, 35, 230, 20, 0x200)
    ;$iptNumber = 0
    GUICtrlSetLimit(0, 9); das bewirkt nichts... Eine Control-ID 0 existiert nicht
    $lblOut = GUICtrlCreateLabel("Hinweise.", 35, 65, 230, 17, 0x001)
    GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
    $lblOutMsg = GUICtrlCreateLabel("Anzahl der Versuche :" & @TAB & $try, 35, 95, 230, 17, 0x001)
    GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
    $btnNochmal = GUICtrlCreateButton("&nochmal", 35, 140, 75, 22)
    $btnGo = GUICtrlCreateButton("&Start", 115, 140, 75, 22, 0x0001)
    $btnClose = GUICtrlCreateButton("&Beenden", 195, 140, 75, 22)
    GUISetState()
    While True
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3, $btnClose
    ExitLoop
    Case $btnNochmal ; Warum hier das Programm beenden und neu starten? Das ist sehr unschön :P
    ;Alles was du machen musst ist:
    ; eine neue Grenze definieren (wenn gewünscht)
    ; eine neue Zufallszahl generieren
    ; Versuchszähler ($try) auf 0 setzen
    ; Gui Zurücksetzen auf Anfangszustand: Also $iptNumber Input leeren und "Rate die Zahl..." Label neu setzen, $lblOut Label zurücksetzen
    GUIDelete()
    Local $grenze = InputBox("Grenze", "Bitte max. Wert eingeben:")
    ShellExecute("Zahlenraten.exe")
    Exit
    Case $btnGo
    $try += 1
    $number = GUICtrlRead($iptNumber)
    If ($number <> "") And ($number >= 0) And ($number <= $grenze) Then
    Switch $randomNumber
    Case $randomNumber < $number
    $output = "Die gesuchte Zahl ist kleiner."
    Case $randomNumber > $number
    $output = "Die gesuchte Zahl ist groesser."
    Case Else
    $output = "Super ! Du hast die Zahl geraten !"
    EndSwitch
    GUICtrlSetData($lblOut, $output)
    GUICtrlSetData($lblOutMsg, "Anzahl der Versuche :" & @TAB & $try)
    Else
    MsgBox(64, "Error", "Bitte eine Zahl zwischen 0 und " & $grenze & " eingeben !")
    EndIf
    EndSwitch
    WEnd
    EndFunc ;==>_main

    [/autoit]
  • Hilfe bei TCP Script

    • Schnitzel
    • 18. März 2014 um 16:28

    Geschlossen werden Themen hier generell nicht.
    Aber es wäre nett wenn du das Thema auf gelöst setzen könntest. Einfach ersten Post bearbeiten, Präfix gelöst wählen und Absenden ;)

  • Inputbox nach Eintrag weiter

    • Schnitzel
    • 18. März 2014 um 14:38

    Eine GUI mit Koda zusammenzuklicken zählt nicht als Eigeninitiative.
    Versuch es erst mal selbst.
    Im Forum gibts gefühlt > 1000 Threads die dir bei sowas weiterhelfen können...

  • Text einlesen umwandeln und wieder ausgeben

    • Schnitzel
    • 18. März 2014 um 12:20

    Ach das nach dem Komma ist schon Hex...
    Nächster versuch:

    Spoiler anzeigen
    [autoit]

    $aRead = StringSplit(StringReplace(FileRead('test.txt'), @CR, ''), @LF)
    $sOutput = ''
    For $i = 1 To $aRead[0]
    $aTmp = StringSplit($aRead[$i], ',', 2)
    If IsArray($aTmp) and UBound($aTmp) = 2 Then
    $sOutput &= "/sc0" & StringRight(Hex($aTmp[0]),2) & StringLeft($aTmp[1],2)
    Else
    MsgBox(64,'', 'Zeile "'&$aRead[$i]&'" entspricht nicht den Vorgaben')
    EndIf
    Next
    FileWrite('output.txt', $sOutput)

    [/autoit]
  • Mehrzeiliges Panoramabild erstellen

    • Schnitzel
    • 18. März 2014 um 12:13

    Bin jetzt zwar kein GDI+ Profi aber probiers mal so:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    Local $hBitmap1, $hBitmap2, $hContext

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

    ; Initialisiert (startet) Microsoft Windows GDI+
    _GDIPlus_Startup()

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

    $hBitmap1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Karte Gesamt.jpg")
    $hContext = _GDIPlus_ImageGetGraphicsContext($hBitmap1)

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

    For $x = 0 To 3 Step +1
    For $y = 0 To 3 Step +1
    $hBitmap2 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "" & $x & "_" & $y & ".jpg")
    _GDIPlus_GraphicsDrawImageRect($hContext, $hBitmap2, $x*258, $y*258, 258, 258)
    _WinAPI_DeleteObject($hBitmap2)
    Next
    Next
    ; Speichert das neue Bild
    _GDIPlus_ImageSaveToFile($hBitmap1, @ScriptDir & "\Karte Gesamt1.jpg")

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

    ; Ressourcen freigeben
    _GDIPlus_GraphicsDispose($hContext)
    _WinAPI_DeleteObject($hBitmap1)

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

    ; Gibt die durch Microsoft Windows GDI+ verwendeten Ressourcen wieder frei
    _GDIPlus_Shutdown()

    [/autoit]
  • Text einlesen umwandeln und wieder ausgeben

    • Schnitzel
    • 18. März 2014 um 11:29

    Sollte so ca funktionieren

    Spoiler anzeigen
    [autoit]

    $aRead = StringSplit(StringReplace(FileRead('test.txt'), @CR, ''), @LF)
    $sOutput = ''
    For $i = 1 To $aRead[0]
    $aTmp = StringRegExp($aRead[$i], '\d+', 3)
    If IsArray($aTmp) and UBound($aTmp) = 2 Then
    $sOutput &= "/sc0" & StringRight(Hex($aTmp[0]),2) & $aTmp[1]
    Else
    MsgBox(64,'', 'Zeile "'&$aRead[$i]&'" entspricht nicht den Vorgaben')
    EndIf
    Next
    FileWrite('output.txt', $sOutput)

    [/autoit]

    Da die Zahl vor der Komma auf zwei Hex zeichen begrenzt ist gehe ich mal davon aus dass keine Zahlen >255 vorkommen oder?

  • Bilddateien per Rechtsklickauswahl ein Programm starten lassen

    • Schnitzel
    • 13. März 2014 um 13:31

    Oder gleich bei uns im Forum. Wurde schon öfters mal gefragt.
    Z.b. hier:
    [ gelöst ] Tipps für ein Programm

  • Run Problem

    • Schnitzel
    • 13. März 2014 um 10:25

    Man kann im Forum keinen Backslash posten der alleine in Anführungszeichen steht.
    Ist ein Bug irgendwo in der Forensoftware. Hab das schonmal gemeldet aber irgendwie kümmert sich keiner darum :(

  • Edit Control langsam zu langsam, alternative?

    • Schnitzel
    • 12. März 2014 um 15:47

    Problem ist dass Änderungen an der Gui immer sehr lange dauern.
    Wenn man etwas wie GTASpider hat wo sehr viele Änderungen an der GUI zuviel Zeit brauchen dann kann man das Aktualisieren der GUI mit den beiden Befehlen mehr oder weniger blockieren und manuell auslösen.
    Beispiel:
    Wenn man 100 mal einen Text mit _GUICtrlEdit_AppendText() anhängt dann braucht man 100 mal diese Zeit zum aktualisieren der GUI
    Wenn man aber vor den 100 aktualisierungen ein _GUICtrlEdit_BeginUpdate und dannach ein _GUICtrlEdit_EndUpdate macht dann wird das Edit nur einmal aktualisiert und man braucht somit auch nur einmal diese Zeit abzuwarten.
    Nachteil ist dass man nach 50 Änderungen noch nichts sieht weil es nicht angezeigt wird.

  • Text aktualisieren

    • Schnitzel
    • 12. März 2014 um 15:36
    Zitat

    dein Script fliegt dir jedoch immernoch um die ohren wenn mehrere Files ausgewählt werden


    Es ist nur noch die einzelne Dateiauswahl möglich. Das Stringreplace ist dann natürlich umsonst ;)
    Beim Rest hast du natürlich recht. Am besten immer ordentlich öffnen und schließen.

    Ilse:
    Was mich auch noch ziemlich stört ist wie du die variable $var verwendest.
    1. $var sagt nichts aus. Nimm am besten Variablennamen die dir was sagen, bzw wo man am Namen schon erkennt wofür sie da sind.
    2. Wenn jemand zuerst den save button drückt dann hast du eine nicht deklarierte variable. Ok der User hat das Programm falsch verwendet, aber abstürzen tut es weil es unsauber ist.

  • Text aktualisieren

    • Schnitzel
    • 12. März 2014 um 13:35

    Also immer wenn du ein FileOpen machst sollte es auch ein Fileclose geben.
    Wenn du die Datei einmal lesen möchtest und zu einem anderen Zeitpunkt schreiben dann musst du immer sie an den Stellen im jeweiligen Modus öffnen.
    Eben weil du im Lesemodus nicht schreiben kannst und weil du im Schreibmodus die Datei überschreibst (also hilft dir ein lesen nichts, wenn die Datei leer ist)

    Das Filedelete funktioniert übrigens auch nicht weil du selbst die Datei geöffnet hast (In Zeile 12). Und solange die Datei geöffnet ist darf sie nicht gelöscht werden

    Dein Script bekommt auch Probleme wenn mehrere Dateien ausgewählt werden.
    Weil du in Zeile 12 dann ein FileOpen auf die ganze Dateiliste machst. Da solltest du besser mit Stringsplit und einer for schleife arbeiten.
    Ich würde an deiner Stelle das Script zunächst mal so auslegen dass nur eine Datei geöffnet werden kann. Ich glaube das macht es dir leichter.
    Und für mehrere Dateien umbauen kannst du es dann immer noch

  • Text aktualisieren

    • Schnitzel
    • 12. März 2014 um 12:52

    Hilfe Lesen

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™