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

  • Kleines Problem mit Variablen

    • BugFix
    • 26. Juli 2009 um 13:44

    Du solltest nur die Befehle (ohne ID-Variable) übergeben. Die ID's der erstellten Ctrls läßt du dir einfach in einem Array speichern.
    Übergib auch gleich ein Array, sparst du dir das Splitten.

    [autoit]

    Local $Cmd[4] = [ _
    'GUICreate("Form2", 131, 79, 192, 124)', _
    'GUICtrlCreateButton("Button1", 8, 8, 75, 25)', _
    'GUICtrlCreateButton("Button2", 8, 40, 75, 25)', _
    'GUISetState(@SW_SHOW)']

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

    $getID = _PlugIn_ExecAll($Cmd)
    Sleep(1000)
    GUISetState(@SW_MAXIMIZE, $getID[0])
    Sleep(1000)
    GUISetState(@SW_RESTORE, $getID[0])

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

    MsgBox(0, "ID Form2", $getID[0])

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

    Func _PlugIn_ExecAll($__CMD)
    Local $ret_ID[UBound($__CMD)]
    For $x = 0 To UBound($__CMD) -1
    $ret_ID[$x] = Execute($__CMD[$x])
    Next
    Return $ret_ID
    EndFunc ;==>_PlugIn_ExecAll

    [/autoit]
  • memread und if =/

    • BugFix
    • 26. Juli 2009 um 07:59

    [OT]
    Bitte benutze Groß-/Kleinschreibung UND Interpunktion! Es grenzt sonst an ein Ratespiel, dein Problem zu Erkennen. Und entsprechend wenig Resonanz wirst du haben.
    [/OT]

  • Fadenkreuz dauerhaft erhalten

    • BugFix
    • 24. Juli 2009 um 19:55
    Zitat von war10ck

    Was ich weis liegt das prob an autoit, daher kann man da eig nix machen, also glaub nict das das mal irgendwer schaffen sollte. Aber vllt mal mit ner neuen version von autoit od so. Aber derezit is dasa leider nicht möglich


    Man, was seit ihr negativ. :D
    Ein bischen Überlegen und dann fällt einem auch der richtige Weg ein:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <WinAPI.au3>

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

    Global $hDC, $hPen, $obj_orig
    Global $active, $lastActive = 0
    HotKeySet("!e", '_ende')

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

    AdlibEnable('_SetCrossToActive')

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

    While 1
    Sleep(100)
    WEnd

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

    Func _SetCrossToActive()
    $active = WinGetHandle('[ACTIVE]')
    If $lastActive = $active Then Return
    $lastActive = $active
    $hDC = _WinAPI_GetWindowDC($active)
    ShowCross($hDC, @DesktopWidth / 2, @DesktopHeight / 2, 20, 2, 0xFF)
    EndFunc

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

    Func ShowCross($hDC, $start_x, $start_y, $length, $width, $color)
    $hPen = _WinAPI_CreatePen($PS_SOLID, $width, $color)
    $obj_orig = _WinAPI_SelectObject($hDC, $hPen)
    _WinAPI_DrawLine($hDC, $start_x - $length, $start_y, $start_x - 5, $start_y) ; horizontal left
    _WinAPI_DrawLine($hDC, $start_x + $length, $start_y, $start_x + 5, $start_y) ; horizontal right
    _WinAPI_DrawLine($hDC, $start_x, $start_y - $length, $start_x, $start_y - 5) ; vertical up
    ; _WinAPI_DrawLine($hDC, $start_x, $start_y + $length, $start_x, $start_y + 5) ; vertical down
    _WinAPI_MoveTo($hDC, $start_x, $start_y + $length)
    _WinAPI_LineTo($hDC, $start_x, $start_y + 5)
    EndFunc ;==>ShowCross

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

    Func _ende()
    AdlibDisable()
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, BitOR($RDW_INVALIDATE,$RDW_ALLCHILDREN))
    _WinAPI_SelectObject($hDC, $obj_orig)
    _WinAPI_DeleteObject($hPen)
    _WinAPI_ReleaseDC(0, $hDC)
    Exit
    EndFunc

    [/autoit]
  • Error:

    • BugFix
    • 23. Juli 2009 um 22:30

    Du liest am Anfang 3 Parameter aus:

    [autoit]

    $main_pid = $CmdLine[1]
    $cool_key = $CmdLine[2]
    $cool_hwnd = $CmdLine[3]

    [/autoit]


    Das heißt aber auch, dass du zwingend dein Programm mit allen 3 Parametern aufrufen mußt. Verwendest du nur 2 kommt der Fehler:
    Error: Array variable subscript badly formatted

  • Tierstimmenrätsel (Spiel für Kinder)

    • BugFix
    • 23. Juli 2009 um 06:53
    Zitat von Oscar

    Aber wieso WAV-Dateien? Was für Probleme gibt es denn mit MP3?


    Das Ausführen von mp3 mit SoundPlay() od. _SoundPlay() funktioniert und bringt AutoIt-technisch auch keinen Fehler. Aber nach jedem Sound erhalte ich eine externe Fehlermeldung (Rückgabefehler) von einer .cpp-Datei. Da diese Datei irgendwo als Source eingebunden ist, habe ich keine Chance, die Fehlerquelle zu finden.
    Und wenn dies bei mir passiert, ist es nicht unwahrscheinlich, dass bei anderen derselbe Fehler auftaucht. Somit habe ich mich für die sichere Variante entschieden.
    Ich vermute, Windows ist von Haus aus aus Lizenzgründen nicht mit einem mp3-Encoder ausgestattet. Erst die Installation von Programmen, die diese Lizenzen führen, macht mp3-Betrieb möglich.
    Ich hätte auch lieber mp3 verwendet. Schließlich ist das Speicherverhältnis 1:10.

  • schrift auf dem desktop anzeigen lassen

    • BugFix
    • 22. Juli 2009 um 22:12

    Ja, das geht z.B. mit meiner Funktion _SplashOn.
    Damit kannst du auch Text mit transparentem Hintergrund frei positionieren.

  • Tierstimmenrätsel (Spiel für Kinder)

    • BugFix
    • 22. Juli 2009 um 21:48
    Zitat von MatthiasG.

    Wo hast du eigentlich die Geräuche her?


    Die findest du auf: https://autoit.de/www.partnersinrhyme.com und https://autoit.de/www.infilmserver.de

  • Tierstimmenrätsel (Spiel für Kinder)

    • BugFix
    • 22. Juli 2009 um 21:24

    Hi,
    nun habe ich mich auch mal drangesetzt und ein Spiel für Kinder erstellt. :D
    Beim Tierstimmenrätsel geht es darum, nacheinander 10 Tierstimmen zu erkennen.
    Es ertönt erst die Tierstimme, dann wird eine GUI mit 30 Tierbildern (Anordnung jedes mal wechselnd) eingeblendet. Je nach Level hat man 30, 20, 10 oder 5 Sekunden Zeit auf das richtige Bild zu klicken. Dabei zählt ein Punktwert von 100 gegen 0. Wird auf das Bild geklickt, bleibt der Punktwert stehen und wird, wenn es das richtige Bild ist, zu den Gesamtpunkten addiert.
    Ein Highscore mit 10 Einträgen für jedes Level wird geführt.
    Im Übungsmode werden alle Bilder eingeblendet und bei Klick ertönt der zugehörige Sound.
    Damit es überall abgespielt werden kann, liegen die Sounds als *.wav vor, was leider das Ganze aufbläht.
    Deshalb habe ich den gezipten Programmordner auf meinen Webspace gepackt.

    Anmerkung zum Urheberrechtsschutz:
    Die verwendeten Symbole/Klänge sind laut Info der Anbieter für die nichtkommerzielle Nutzung frei verwendbar.
    Eine Quellenangabe befindet sich in der Source.

    Download: animal.zip

    Und hier noch ein paar Bilder:

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • Variable Funktionen in der Laufzeit erstellen

    • BugFix
    • 22. Juli 2009 um 20:54
    Zitat von MMM

    Jetzt soll diese Datei ausgelesen werden und auf die jeweilige Taste per Send der String hinter dem ; ausgeführt werden.


    Na genau das geht doch mit dem Bsp., dass ich dir gezeigt habe.
    Per HotkeySet wird in der dazugehörigen Funktion die Dummy-Funktion mit dem jeweiligen Befehlsstring ausgeführt.

  • Erkennen das Schliessen eines Fensters

    • BugFix
    • 22. Juli 2009 um 10:37

    Mal unabhängig vom Lösungsweg:
    Ich persönlich finde es mehr als nervig, wenn bei irgendwelchen, nicht sicherheitsrelevanten Aktionen diese Abfrage: "Sind Sie sicher bla bla" auftaucht. Da frag ich mich immer: Hä, halten die Programmierer die User für grenzenlos dämliche Trottel, die ausnahmslos immer auf irgendwelche Button klicken? :rofl:
    Man muß nicht immer jede mögliche Dummheit abfangen. Ist auch ein Stück Lernprozeß für den User, wenn er ohne zu Denken klickt. :P

  • Spooler Dienst beenden, printers Verzeichnis leeren und neu starten

    • BugFix
    • 22. Juli 2009 um 10:15

    Geht auch ohne lästige Send-Befehle:

    [autoit]

    RunWait(@ComSpec & " /c " & 'net stop spooler', "", @SW_HIDE)
    Local $PID = Run(@ComSpec & " /c " & 'del %WINDIR%\System32\spool\PRINTERS\*.*', "", @SW_HIDE, 0x1)
    StdinWrite($PID, 'J')
    StdinWrite($PID)
    RunWait(@ComSpec & " /c " & 'net start spooler', "", @SW_HIDE)

    [/autoit]
  • Script Splitten und dabei Variabeln übernehmen

    • BugFix
    • 22. Juli 2009 um 09:40

    wie wär es denn, wenn du dein Skript auch mal zeigst. Aus deiner Beschreibung kann ich icht viel herauslesen.

  • Variable Funktionen in der Laufzeit erstellen

    • BugFix
    • 22. Juli 2009 um 09:36

    Erstelle doch eine Dummy-Funktion, der du den variablen Befehlsstring übergibst:

    [autoit]

    $ToDo = InputBox('Variable Befehle', 'Gib eine Befehlszeile ein', 'MsgBox(0, "TEST", "Das ist ein Testbefehl")')
    _Dummy($ToDo)

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

    Func _Dummy($ToDo)
    Execute($ToDo)
    EndFunc

    [/autoit]
  • ListView-Sortierung speichern und widerherstellen

    • BugFix
    • 22. Juli 2009 um 09:26
    Zitat von sc4ry

    2. Wie kann ich die Sortierung der Spalten im einem ListView speichern und Widerherstellen? Ich habe das ListView so eingestellt, dass man auf die Columns klicken kann und sich die Sortierung ändert ... nur wie stell ich das nach nem Neustart wieder her (mit ListView-Command)? Das ListView wird über eine DB gefüllt, die Einträge sind erstmal nach OID sortiert.


    Nach welcher Spalte sortiert wurde kannst du ja beim ColumnClick in einer Globalen Variable speichern.
    Und um die Sortierrichtung zu erfahren gehst du genau so vor, wie du es mit den Augen machst: Vergleiche die ersten beiden Einträge der Sortierspalte, dann kennst du auch die Sortierrichtung. ;)

  • Wie prüfe ich Array vor der Verarbeitung auf Fehler?

    • BugFix
    • 21. Juli 2009 um 08:58

    Du hast genau den Code weggelassen, der notwendig ist um dein Problem zu finden - nämlich die Erstellung/Befüllung des Array.
    Dieser Zugriff: $traffic = $array[3][2] verweist laut Fehlermeldung auf einen Bereich außerhalb des Arrays. Zeile4/Spalte3 gibt es also nicht. Das Array hat weniger Zeilen od. Spalten laut Fehlermeldung. Dort mußt du also deine Überprüfung ansetzen.

  • zählen

    • BugFix
    • 20. Juli 2009 um 15:46

    Sollte so gehen:

    [autoit]

    $fh = FileOpen("meine.txt",0)
    $text = FileRead($fh)
    FileClose($fh)
    $mp3 = StringRegExp($text, "\.mp3", 3)
    MsgBox(0, 'mp3', 'Anzahl .mp3 = ' & Ubound($mp3))

    [/autoit]
  • Linksklick an bestimmte Koordinate

    • BugFix
    • 20. Juli 2009 um 15:30

    ;) Eckige Klammern bedeuten: diese Parameter sind optional. Wenn du dafür Werte einsetzt, natürlich die Klammern weglassen.

  • als .EXE speichern

    • BugFix
    • 20. Juli 2009 um 09:59

    Hier mal mit Bildern:

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Alles andere erklärt sich selbst.

  • gibts ein gdi+ tut?

    • BugFix
    • 20. Juli 2009 um 09:43
    Zitat von FunH@cker

    Weist du wie oft ich das in diesem Forum gefragt habe ??? und wie viele Antworten ich bekommen habe "0"


    Naja, liegt vielleicht daran, dass das Thema nicht sehr "tutorialfreundlich" ist. :D
    Es gibt so viel verschiedene Möglichkeiten und jedes mal sind andere Dinge zu berücksichtigen. Wenn du das alles ins Tut schreibst, verstehts wieder keiner.

    Am Besten:
    Konkret fragen nach bestimmten Dingen. Dann hat man immer einen Ansatz, zu dem man einen Weg aufzeigen kann.
    Kannst ja mal eine Fragenliste erstellen, die man dann anhand von Beispielen abarbeitet.
    Also eine GDI+ FAQ erstellen.

  • Projektidee: AutoIT Setup Builder

    • BugFix
    • 19. Juli 2009 um 20:44
    Zitat von Deepred

    Gibt es dafür auch eine AutoIt Syntax?


    Ich glaube ja, aber das ist wenig empfehlenswert. Jeder User bekommt eine eigen Farbe beim Schreiben. So sieht man gut, wer was korrigiert. Da stört Syntaxhervorhebung nur.

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™