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

Beiträge von name22

  • Brauche Hilfe bei Keybinder

    • name22
    • 22. November 2010 um 20:14
    Zitat

    Kannst Du mir bitte verraten wie der Befehl lautet,
    das er beim nächsten Input wenn dort der Key steht der als nächstes ausgewählt ist
    nicht gedrückt wird?


    Wie schon gesagt, du kannst während der Text gesendet wird temporär alle HotKeySet Befehl deaktivieren.

  • Vollbildmodus: Schließen mit ESC verhindern

    • name22
    • 22. November 2010 um 20:08
    Zitat

    Warum soll man ein Quizprogramm nicht Schliesen können oO
    Ich ahne Schreckliches :D


    Ich sehe es schon kommen:

    [autoit]

    MsgBox(64, "QuizInfo", "Das Quiz lässt sich erst nach 100 richtig beantworteten Fragen schließen. [InsertEvilLaughing]")

    [/autoit]


    :rofl:

  • Vollbildmodus: Schließen mit ESC verhindern

    • name22
    • 22. November 2010 um 19:58

    So kannst du das senden von $GUI_EVENT_CLOSE beim ESC drücken verhindern:

    [autoit]

    Opt("GUICloseOnESC", 0)

    [/autoit]
  • Map Zeichnen...

    • name22
    • 22. November 2010 um 19:56

    Also bei mir ist es weder langsam, noch funktioniert es wie es sollte... :D

  • Brauche Hilfe bei Keybinder

    • name22
    • 22. November 2010 um 18:56

    Ich habe so was auch mal gemacht... Hier mal eine überarbeitete Version meines alten Scripts. Vielleicht kannst du dir ja was abgucken ;).

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIListView.au3>
    #include <Array.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $aKeyBinds[1][2]
    $aKeyBinds[0][0] = 0

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

    $hWnd = GUICreate("KeyBinder", 400, 385)
    $cListView_Keys = GUICtrlCreateListView("Key|Text", 5, 5, 390, 290)
    $cInput_Key = GUICtrlCreateInput("Key", 5, 300, 60, 20)
    $cInput_Text = GUICtrlCreateInput("Text", 70, 300, 325, 20)
    $cButton_AddKey = GUICtrlCreateButton("Hinzufügen", 5, 325, 390, 25)
    $cButton_DeleteKey = GUICtrlCreateButton("Löschen", 5, 355, 390, 25)
    GUISetState(@SW_SHOW)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hWnd)
    GUICtrlSetOnEvent($cButton_AddKey, "_AddKeyBind")
    GUICtrlSetOnEvent($cButton_DeleteKey, "_DeleteKeyBind")

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

    While Sleep(1000)
    WEnd

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

    Func _AddKeyBind()
    If GUICtrlRead($cInput_Key) = "" Or GUICtrlRead($cInput_Text) = "" Then Return

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

    $aKeyBinds[0][0] += 1
    ReDim $aKeyBinds[$aKeyBinds[0][0] + 1][2]

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

    $aKeyBinds[$aKeyBinds[0][0]][0] = GUICtrlRead($cInput_Key)
    $aKeyBinds[$aKeyBinds[0][0]][1] = GUICtrlRead($cInput_Text)
    HotKeySet($aKeyBinds[$aKeyBinds[0][0]][0], "_HotKeyEvent")
    _UpdateKeyList()
    EndFunc

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

    Func _HotKeyEvent()
    For $i = 1 To $aKeyBinds[0][0]
    If @HotKeyPressed = $aKeyBinds[$i][0] Then
    HotKeySet($aKeyBinds[$i][0])
    Send($aKeyBinds[$i][1])
    HotKeySet($aKeyBinds[$i][0], "_HotKeyEvent")
    EndIf
    Next
    EndFunc

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

    Func _UpdateKeyList()
    _GUICtrlListView_BeginUpdate($cListView_Keys)
    _GUICtrlListView_DeleteAllItems($cListView_Keys)
    For $i = 1 To $aKeyBinds[0][0]
    GUICtrlCreateListViewItem($aKeyBinds[$i][0] & "|" & $aKeyBinds[$i][1], $cListView_Keys)
    Next
    _GUICtrlListView_EndUpdate($cListView_Keys)
    EndFunc

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

    Func _DeleteKeyBind()
    $iCurSel = _GUICtrlListView_GetSelectionMark($cListView_Keys)
    If $iCurSel = -1 Then Return

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

    HotKeySet($aKeyBinds[$iCurSel + 1][0])
    _ArrayDelete($aKeyBinds, $iCurSel + 1)
    $aKeyBinds[0][0] -= 1
    _UpdateKeyList()
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]


    In meinem Script wird der Hotkey während vor dem Send Befehl temporär deaktiviert, so kannst du dein Problem umgehen ;) .

  • Impulssimulation (physikalisch richtig)

    • name22
    • 21. November 2010 um 21:20
    Zitat

    Wenn jemand noch mal Fehlerlesen könnte, damit auch keine Fehler unentdeckt bleiben, fänd ich das super, denn ich überseh manchmal welche :S .


    Fehler sind meiner Meinung nach in "Spaghetticode" auch schwer zu finden :D. Ich denke mit ein paar mehr Funktionen könnte man das auch übersichtlicher gestalten. So fällt die Fehlersuche oft leichter.

  • Gui in dem Bilder angezeit werden

    • name22
    • 21. November 2010 um 21:15
    Zitat

    und es ist auch nicht wirklich sinnvoll Resourcen 3x zu laden.


    In der Funktion wird überprüft ob die Ressourcen schon geladen sind, das ist also nicht das Problem. Es sorgt allerdings für Verwirrung ;).

  • [GDI+] Verwischen / Unscharf machen

    • name22
    • 21. November 2010 um 19:56

    Du meinst so eine Art Gaußschen Weichzeichner? Das gibt es soweit ich weiß nicht in der GDIPlus.dll...
    Ich glaube jemand hat mal so eine Funktion gebastelt, die war aber unglaublich langsam (Es bringt ja nichts wenn das Bild 20 Sekunden zum Berechnen braucht). ^^
    Vielleicht kann man auch was mit der GDIP.au3 basteln, aber ob das dann schnell gennug ist.

  • Problem mit Func

    • name22
    • 21. November 2010 um 19:52
    Zitat

    Der dll Aufruf kann dann aber wieder raus, nachdem du das Beenden ebenfalls per hotkey machst wie ursprünglich vom Threadersteller so gedacht. ;)


    Da waren die Finger mal wieder schneller als der Verstand :rolleyes: .

    Jetzt aber!
    [autoit]

    HotKeySet("^!s", "_MeinStart")
    HotKeySet("^!x", "_MeinExit")

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

    While Sleep(100)
    WEnd

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

    Func _MeinStart()
    While Sleep(10)
    $Position = PixelSearch(0, 0, 1280, 720, 0xFF00FF, 100, 3)
    If Not @error Then MouseMove($Position[0], $Position[1], 0)
    WEnd
    EndFunc ;==>_MeinStart

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

    Func _MeinExit()
    Exit
    EndFunc ;==>_MeinExit

    [/autoit]
  • Gui in dem Bilder angezeit werden

    • name22
    • 21. November 2010 um 19:49
    Zitat

    Das Script ist funktionsfähig! :cursing:


    Nicht auf meinem PC, ich habe weder die WinApiEx.au3 noch die verwendeten Bilder. Das habe ich mit schlecht vorstellbar gemeint, ein Script in Action zu sehen bringt halt meistens mehr wenn du es nicht geschrieben hast. ;)
    Das Bild wird doch mit $a=_GDIPlus_GraphicsDrawImage ($ToBild2,$himg3, 400, 210) auf das andere gezeichnet oder? Dann ersetzt du halt _GDIPlus_GraphicsDrawImage durch _GDIPlus_GraphicsDrawImageRect. Dann kannst du nicht nur X und Y Position festlegen, sondern auch Breite und Höhe.

  • Problem mit Func

    • name22
    • 21. November 2010 um 19:39

    Meine Güte da muss halt noch ne Endlosschleife rein... Ist das wirklich so schwer.

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

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

    HotKeySet("^!s", "_MeinStart")
    HotKeySet("^!x", "_MeinExit")

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

    $hDll = DllOpen("user32.dll")

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

    While Sleep(100)
    WEnd

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

    Func _MeinStart()
    While Sleep(10)
    $Position = PixelSearch(0, 0, 1280, 720, 0xFF00FF, 100, 3)
    If Not @error Then MouseMove($Position[0], $Position[1], 0)
    WEnd
    EndFunc ;==>_MeinStart

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

    Func _MeinExit()
    DllClose($hDll)
    Exit
    EndFunc ;==>_MeinExit

    [/autoit]
  • "Karte" zeichnen

    • name22
    • 21. November 2010 um 19:35
    Zitat

    Das mit der Kollision @oben; ich meinte dein Script hatte keine Kollision.


    Ach so. Das dürfte nicht all zu schwer sein, schließlich hab ich das mit Kollisionen schon so oft gemacht. :)
    Rein theoretisch müsste man nur die Koordinaten von Spieler und Hindernissen in 2 For Schleifen mit Arrays vergleichen.

  • "Karte" zeichnen

    • name22
    • 21. November 2010 um 19:27
    Zitat

    Was ein Beispiel *-* xD


    Was hab ich denn jetzt wieder falsch gemacht? :(

  • Problem mit Func

    • name22
    • 21. November 2010 um 19:25
    Zitat

    wenn ich das jetzt richtig verstanden habe, dann ist das doch STRG + Alt + X oder?


    Ja, aber um das herauszufinden braucht man nicht die Hilfe eines Forums :thumbdown: .

  • "Karte" zeichnen

    • name22
    • 21. November 2010 um 19:12

    Ich hatte gerade Lust ein Beispiel zu schreiben, vielleicht kannst du ja etwas damit anfangen...

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstants.au3>
    #include <Misc.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $iGUIColorBG = 0xFFFFFFFF
    $iGUIWidth = 400
    $iGUIHeight = 400
    $FPS = 30

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

    $iX_CameraPos = 0
    $iY_CameraPos = 0

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

    $hWnd = GUICreate("Test", $iGUIWidth, $iGUIHeight)
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iGUIWidth, $iGUIHeight, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)

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

    $hImageBG = _GDIPlus_BitmapCreateFromGraphics(1000, 1000, $hGraphic)
    $hImageBG_Context = _GDIPlus_ImageGetGraphicsContext($hImageBG)
    _GDIPlus_GraphicsSetSmoothingMode($hImageBG_Context, 2)
    _GDIPlus_GraphicsClear($hImageBG_Context, 0xFFFFFFFF)
    $hBrushTmp = _GDIPlus_BrushCreateSolid("0xFF" & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2))
    For $i = 1 To Random(50, 100, 1)
    _GDIPlus_GraphicsFillRect($hImageBG_Context, Random(0, 950, 1), Random(0, 950, 1), Random(20, 50, 1), Random(20, 50, 1), $hBrushTmp)
    _GDIPlus_BrushSetSolidColor($hBrushTmp, "0xFF" & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2))
    Next
    _GDIPlus_BrushDispose($hBrushTmp)
    _GDIPlus_GraphicsDispose($hImageBG_Context)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    AdlibRegister("_DrawCurrentFrame", Round(1 / $FPS * 1000))

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

    While Sleep(1000)
    WEnd

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

    Func _DrawCurrentFrame()
    $iX_CameraPos += 5
    $iY_CameraPos += 4
    $hBitmapCopyTmp = _GDIPlus_BitmapCloneArea($hImageBG, $iX_CameraPos, $iY_CameraPos, $iGUIWidth, $iGUIHeight)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $hBitmapCopyTmp, 0, 0, $iGUIWidth, $iGUIHeight)
    _GDIPlus_BitmapDispose($hBitmapCopyTmp)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iGUIWidth, $iGUIHeight)
    EndFunc

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

    Func _Exit()
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_BitmapDispose($hImageBG)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

    [/autoit]
  • "Karte" zeichnen

    • name22
    • 21. November 2010 um 18:44
    Zitat

    Das per _IsPressed() zu verschieben ist ja nicht die extrem kunst xD


    Mag sein, aber es funktioniert :P.

    Zitat

    name22, aber auch ohne Kollision.


    Was? ?(

  • Gui in dem Bilder angezeit werden

    • name22
    • 21. November 2010 um 18:41
    Zitat


    Ich möchte die Bilder genau so speichern wie Sie in dem GUI angezeigt werden!


    Wie abspeichern? Als Bild? Das ist schwer vorstellbar ohne funktionsfähiges Script. :S

  • "Karte" zeichnen

    • name22
    • 21. November 2010 um 18:35

    Aber mich kannst du fragen, ich hab nämlich auf Anfrage schon mal so etwas ähnliches geschrieben (auch als Pokemon Grundlage). ;)

  • "Karte" zeichnen

    • name22
    • 21. November 2010 um 18:03

    Ich glaube er will nur einen Ausschnitt der Map zeichnen weil die Map größer als die sichtbare Zeichenfläche ist, und das ansonsten zu lange dauert. Also hilft auch kein übermalen, da bleibt das Bild gleich groß.
    Die einfachste Methode wäre wohl die Map einmal ganz zu zeichnen und dann immer nur den sichtbaren Bereich.

  • Zeilen im Textdokument suchen

    • name22
    • 21. November 2010 um 17:59

    So meinst du? Da es immer 6 zusammenhanglose Zeichen vor dem eigentlichen Text sind werden einfach 6 Zeichen von Links abgeschnitten.

    [autoit]

    MsgBox(0,"",StringTrimLeft("935FR4Langestraße", 6))

    [/autoit]

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™