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

Beiträge von meistertogo

  • Buttonklick erkenne trotz Schleife in Unterfunktion

    • meistertogo
    • 2. Juli 2011 um 12:01

    @ misterspeed:

    Zitat

    "Anstatt die GUI ständig abzufragen, um herauszufinden ob etwas passiert ist, lässt du im OnEvent Modus die GUI zeitweise dein Skript anhalten und eine vordefinierte Funktion aufrufen, um das Ereignis zu behandeln. Wenn zum Beispiel ein Nutzer auf Button1 klickt, hält die GUI dein Hauptskript an und ruft eine vorher von dir definierte Funktion auf, die für Button1 zuständig ist. Wenn diese Funktion abgearbeitet ist, wird das Hauptskript fortgesetzt."

  • Buttonklick erkenne trotz Schleife in Unterfunktion

    • meistertogo
    • 1. Juli 2011 um 16:25

    Um die GUI über das Kreuz in der rechten oberen Ecke des Fensters beenden zu können, müsstest Du folgende Zeilen hinzufügen:

    [autoit]


    #include-once
    #include <GUIConstants.au3>

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

    ;Erstellen der GUI
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Beenden")

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

    Func _Beenden ()
    Exit
    EndFunc

    [/autoit]
  • Buttonklick erkenne trotz Schleife in Unterfunktion

    • meistertogo
    • 1. Juli 2011 um 16:18

    Du musst, wenn Du den GUIOnEventMode verwenden möchtest, auch die Zeile, die ich in meinem letzten Post aufgeführt habe, am Anfang Deines Scripts einfügen. Sonst befindet sich Deine GUI im GuiGetMsgMode.
    Außerdem würde ich Dir empfehlen, die verschiedenen Controls selbst ebenfalls mit Funktionen zu verknüpfen.

    [autoit]


    ;die Erstellung der GUI
    $Button = GUICtrlCreateButton("Test", 0, 0, 75, 75)
    GUICtrlSetOnEvent(-1, "_Test")
    Func _Test ()
    ;hier kommt der Code der Funktion
    EndFunc

    [/autoit]
  • Mausangucker

    • meistertogo
    • 1. Juli 2011 um 16:10

    Hallo hauke96,
    zuerst würde ich die Position der Mouse mit

    [autoit]

    MouseGetPos()

    [/autoit]

    abfragen.
    Den Pfeil könntest Du mit einer transparenten GUI und GDIPlus-Funktionen darstellen.

  • Buttonklick erkenne trotz Schleife in Unterfunktion

    • meistertogo
    • 1. Juli 2011 um 15:41

    Hallo Steffen,
    um Dein Vorhaben zu realisieren empfehle ich Dir die Verwendung des "OnEventMode".

    [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit]


    Lies Dir am besten die entsprechenden Einträge in der Hilfe dazu durch (GUIOnEvent Modus ).

  • Potenzenrechner bis 99 hoch 99

    • meistertogo
    • 30. Juni 2011 um 12:57

    Habe meinem Rechner noch die Funktion für Dezimalzahlen hinzugefügt und die wissenschaftliche Schreibweise (Zehnerpotenzen) implementiert.

  • _ArraySearch - habe ich da was falsch verstanden?

    • meistertogo
    • 30. Juni 2011 um 12:51

    Hallo Scritch,
    ich verstehe unter "Subitem" die Angabe der zu durchsuchenden Dimension (Spalte) des Arrays.
    Vielleicht hilft Dir das Array-Tutorial von BugFix beim Verstehen weiter.
    Außerdem ist der "default"-Wert dieses Parameters "-1".
    Übrigens wurde dasselbe Problem in diesem Forum schonmal gelöst. Der dritte Treffer, wenn man in einer Suchmaschine "_ArraySearch", "AutoIt" und "Subitem" eingibt...

  • An die Mathe Profis: Schnitt zweier Flächen?

    • meistertogo
    • 29. Juni 2011 um 16:02

    Ich bin mir nicht sicher ob Dir das weiterhilft, aber eigentlich müsste man, wenn ich das Problem richtig verstanden habe, nur die "Einzugsbereiche" der beiden Mikrofone als Kugeln darstellen.
    Die Schnittmenge (http://de.wikipedia.org/wiki/Mengenlehre#Schnittmenge) der beiden Kreise bzw. Kugeln beinhaltet dann Punkte (in diesem Fall Signale), die beide Mikrofone gleich-laut empfangen (vermutlich die Punkte, die auf der die Schnittpunkte verbindenden Linie liegen).

  • eingegebene Ip Adresse kopieren und löschen

    • meistertogo
    • 29. Juni 2011 um 15:50

    Hallo Higggiii,
    vielen Dank für den guten Ratschlag.
    Allerdings verwende ich keine fette Schrift und versuche ebenfalls nicht, durch eine größere Schrift "Schreien" auszudrücken.
    Ich verwende lediglich die Schriftart Courier New, Schriftgröße 14.

  • eingegebene Ip Adresse kopieren und löschen

    • meistertogo
    • 28. Juni 2011 um 21:12

    Hallo bbm1995,
    ich bin mir nicht sicher ob alle Nutzer der von Dir genannten Community damit einverständen wären, dass Du ihre IP-Adressen speicherst.
    Außerdem solltest Du überlegen, ob ein derartiges Programm nicht vielleicht gegen das Gesetz ("Hackerparagraph") oder zumindest gegen die Regeln dieses Forums (Forenregeln) verstößt.
    Sollte ich die Sachlage falsch aufgefasst haben oder Dich zu Unrecht verdächtigen, bitte ich Dich um Entschuldigung.

  • Sound aufnehmen von Headset

    • meistertogo
    • 28. Juni 2011 um 21:04

    Hallo CodaXYZ,
    in AutoIt gibt es zur Handhabung und Verarbeitung von Sounds die Bass-UDF von BrettF und eukalytpus.
    Außerdem gibt es die Möglichkeit über Funktionen der Sound-Bibliothek wie z. B.

    [autoit]


    #include-once
    #include <Sound.au3>
    _SoundOpen()
    _SoundPlay()
    _SoundClose()

    [/autoit]


    usw. mit Sounds umzugehen.
    Bei weiteren Fragen helfe ich Dir gerne im Rahmen meiner Möglichkeiten weiter.

  • Potenzenrechner bis 99 hoch 99

    • meistertogo
    • 28. Juni 2011 um 20:36

    Um meine Hilfe kurz zu erklären:
    1. Ich habe das Script mit Absicht in einem Spoiler gepostet, damit Luwid es sich ansehen kann, wenn er eigene Entwürfe angefertigt hat.
    2. Man kann mit meinem mittlerweile editierten Rechner problemlos 99^99 rechnen (was man übrigens auch vor den Editierungen konnte).
    3. Mein Lösungsvorschlag beinhaltet eine Rechenfunktion.
    Mein Code beinhaltet Funktionen, die für AutoIt-Neueinsteiger schwer verständlich sein könnten. Deshalb war es nicht meine Absicht, Luwid das gesamte Script "vorzukauen", sondern vielmehr, ihm Ideen und Funktionen zu geben, mit denen er eigene Ansätze entwickeln kann. Ich wollte lediglich veranschaulichen, wie man das Problem hätte lösen können.

  • Potenzenrechner bis 99 hoch 99

    • meistertogo
    • 28. Juni 2011 um 17:37

    Hier der vollständige Code, den ich mir gerade für Dich ausgedacht habe:

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <EditConstants.au3>
    #include <GUIConstants.au3>
    #include <GUIEdit.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global Const $ButtonBreite = 50, $ButtonHoehe = 50
    Global $x = 0, $String = "", $ArrayString

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

    HotKeySet("{BS}", "_Loeschen")
    HotKeySet("{ENTER}", "_IstGleich")
    HotKeySet("{^}", "_Hoch")
    For $i = 0 To 9
    HotKeySet($i, "_Ziffer")
    Next

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

    $Rechner = GUICreate("Rechner für Potenzen", 520, 250)
    GUISetFont(18)
    $TextAusgabe = _GUICtrlEdit_Create($Rechner, "", 10, 10 ,500, 100, BitOR($ES_READONLY, $ES_MULTILINE))
    $Ziffer0 = GUICtrlCreateButton("0", 10, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer1 = GUICtrlCreateButton("1", 10+$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer2 = GUICtrlCreateButton("2", 10+2*$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer3 = GUICtrlCreateButton("3", 10+3*$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer4 = GUICtrlCreateButton("4", 10+4*$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer5 = GUICtrlCreateButton("5", 10+5*$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer6 = GUICtrlCreateButton("6", 10+6*$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer7 = GUICtrlCreateButton("7", 10+7*$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer8 = GUICtrlCreateButton("8", 10+8*$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Ziffer9 = GUICtrlCreateButton("9", 10+9*$ButtonBreite, 120, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Ziffer")
    $Loeschen = GUICtrlCreateButton("Löschen", 10, 180, $ButtonBreite*2, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Loeschen")
    $Beenden = GUICtrlCreateButton("Beenden", 10+2*$ButtonBreite, 180, $ButtonBreite*2, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Beenden")
    GUICtrlSetBkColor(-1, 0xFF0000);rot hinterlegter Button
    $Hoch = GUICtrlCreateButton("^", 10+4*$ButtonBreite, 180, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Hoch")
    $IstGleich = GUICtrlCreateButton("=", 10+5*$ButtonBreite, 180, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_IstGleich")
    $GanzenEditLoeschen = GUICtrlCreateButton("Zurücksetzen", 10+7*$ButtonBreite, 180, $ButtonBreite*3, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Zuruecksetzen")
    $Punkt = GUICtrlCreateButton(".", 10+6*$ButtonBreite, 180, $ButtonBreite, $ButtonHoehe)
    GUICtrlSetOnEvent(-1, "_Punkt")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Beenden")
    GUISetState(@SW_SHOW)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func _Beenden ()
    Exit
    EndFunc

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

    Func _Ziffer ()
    Switch IsInt(_GUICtrlEdit_GetLineCount($TextAusgabe)/7)
    Case 1
    _GUICtrlEdit_SetText($TextAusgabe, "")
    $x = 0
    ContinueCase
    Case Else
    Switch @HotKeyPressed
    Case ""
    _GUICtrlEdit_InsertText($TextAusgabe, GUICtrlRead(@GUI_CtrlId))
    Case Else
    _GUICtrlEdit_InsertText($TextAusgabe, @HotKeyPressed)
    EndSwitch
    EndFunc

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

    Func _Loeschen ()
    _GUICtrlEdit_SetText($TextAusgabe, StringTrimRight(_GUICtrlEdit_GetText($TextAusgabe), 1))
    EndFunc

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

    Func _Hoch ()
    _GUICtrlEdit_InsertText($TextAusgabe, "^")
    EndFunc

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

    Func _IstGleich ()
    $x = $x+1
    $String = Execute(_GUICtrlEdit_GetLine($TextAusgabe, $x-1))
    Select
    Case StringInStr($String, "e") <> 0
    $ArrayString = StringSplit($String, "e")
    If StringInStr($ArrayString[2], "+") <> 0 Then $ArrayString[2] = StringTrimLeft($ArrayString[2] ,1)
    $String = $ArrayString[1]&"*10^"&$ArrayString[2]
    ContinueCase
    Case Else
    _GUICtrlEdit_AppendText($TextAusgabe, " = "&$String&@CRLF)
    EndSelect
    EndFunc

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

    Func _Zuruecksetzen ()
    _GUICtrlEdit_SetText($TextAusgabe, "")

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

    Func _Punkt ()
    _GUICtrlEdit_InsertText($TextAusgabe, ".")
    EndFunc
    EndFunc

    [/autoit]


    P. S.: Die Formatierung ist grauenhaft :rolleyes: ...

  • _GDIPlus_PenCreate(Farbe) gibt "True" zurück, funktioniert dennoch nicht

    • meistertogo
    • 19. Juni 2011 um 19:35

    Vielen Dank an euch beide für die schnelle und gute Hilfe!
    Eure Lösungen funktionieren fehlerfrei!

  • _GDIPlus_PenCreate(Farbe) gibt "True" zurück, funktioniert dennoch nicht

    • meistertogo
    • 19. Juni 2011 um 18:09

    Hallo AutoIt-community,
    habe ein Problem mit GDI+.

    [autoit]


    ;vorher wird ein GUI erstellt (Handle = $GUIHandle)
    _GDIPlus_Startup()
    $Grafik = _GDIPlus_GraphicsCreateFromHWND($GUIHandle)
    $Stift = _GDIPlus_PenCreate(0x00FF00);grün

    [/autoit]


    Wenn ich jetzt versuche irgendeine Form zu zeichnen, passiert nichts, obwohl die jeweilige Funktion "

    [autoit]

    True

    [/autoit]

    " zurückgibt.
    Lasse ich das Erstellen des Stifts weg, funktioniert alles ganz normal.
    Ich hoffe ihr könnt mir helfen!

  • Textdateien auslesen bei diesem Script ?

    • meistertogo
    • 15. Juni 2011 um 20:38

    Hallo White,
    wenn ich das richtig sehe bindest Du die

    [autoit]

    #include <File.au3>

    [/autoit]

    Bibliothek nicht in Dein Script ein. Diese wird aber benötigt, um

    [autoit]

    _FileReadToArray()

    [/autoit]

    ausführen zu können.
    Außerdem fehlt in Zeile 20 eine eckige Klammer, um die Wertzuweisung des Arrays zu beenden.
    Dein eigentliches Problem könntest Du dann mit

    [autoit]

    _ArraySearch()

    [/autoit]

    und

    [autoit]

    StringReplace()

    [/autoit]

    oder vielleicht auch mit

    [autoit]

    StringInStr()

    [/autoit]

    lösen.
    Eventuell könnte Dir

    [autoit]

    StringRegExp()

    [/autoit]

    ebenfalls weiterhelfen.

  • Icon für einen Button in den Quelltext implementieren

    • meistertogo
    • 14. Juni 2011 um 16:06

    Hallo Prixma,
    die Lösung mit

    [autoit]

    FileInstall()

    [/autoit]

    halte ich nicht für sehr "datenmüllerzeugend", weil man die Datei ja nicht immer wieder neu installieren muss, wenn sie einmal (beim ersten Programmstart), erzeugt wurde. Der Pfad ist somit immer relativ zum Script und einfach mit

    [autoit]

    @ScriptDir

    [/autoit]

    aufzurufen. Eventuell noch 'nen eigenen Ordner für die Icons anlegen lassen und das Problem sollte gelöst sein.

  • Edit gesammten Inhalt in eine .ini abspeichern

    • meistertogo
    • 9. Juni 2011 um 19:02

    Es wäre hilfreich, wenn Du den Code mit

    [autoit]

    GuiCtrlRead()

    [/autoit]

    ebenfalls posten würdest, sodass man eventuelle Fehler dort ausschließen könnte, da die Hilfe zu besagter Funktion eigentlich angibt, dass der gesamte Inhalt des Controls zurückgegeben wird.
    Dein Problem müsste dann mit

    [autoit]

    GuiCtrlRead()

    [/autoit]

    ,

    [autoit]

    IniWrite()

    [/autoit]

    und

    [autoit]

    IniRead()

    [/autoit]

    zu lösen sein.

  • Darf ich Bilder von Koda Form Designer benutzen?

    • meistertogo
    • 9. Juni 2011 um 17:41

    Dazu solltest Du am besten die Nutzungsbedingungen/Lizenzvereinbarungen des Koda Form Designers lesen.

  • Variable in GUI anzeigen

    • meistertogo
    • 3. Juni 2011 um 12:44

    Dazu könntest Du zum Beispiel in Deiner GUI mit

    [autoit]

    GUICtrlCreateLabel()

    [/autoit]

    ein Textfeld erstellen, das Du dann mit

    [autoit]

    GUICtrlSetData()

    [/autoit]

    aktualisierst.

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™