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

  • AutoIt Bilderwettbewrb 2011

    • name22
    • 30. April 2011 um 21:03

    Minecraft Freak ^^ . Na dann werde ich meins auch mal posten...

    Dateien

    AutoIt Matrix.jpg 596,14 kB – 0 Downloads
  • Mit Unicode Notenschriftzeichen ausgeben

    • name22
    • 30. April 2011 um 20:13

    Cool. Die Funktion werde ich mir aufheben ;). Ich dachte AutoIt unterstützt nur UTF-8...

  • Mit Unicode Notenschriftzeichen ausgeben

    • name22
    • 30. April 2011 um 18:47

    Auf jeden Fall nicht mit ChrW... Ob es eine andere Möglichkeit gibt weiß ich nicht. Ich werde mal Google befragen...

    Edit: Ich habe gerade in Wikipedia etwas dazu entdeckt...

    Zitat von http://de.wikipedia.org/wiki/Unicode

    Mittlerweile hat der Coderaum von Unicode/ISO einen Umfang angenommen (mehr als 100.000 Schriftzeichen), der sich nicht mehr vollständig in einer Schriftdatei unterbringen lässt. Die heute gängigsten Schriftdateiformate, TrueType und OpenType, können maximal 65.536 Zeichen enthalten. Unicode/ISO-Konformität einer Schrift bedeutet also nicht, dass der komplette Zeichensatz enthalten ist, sondern lediglich, dass die darin enthaltenen Zeichen normgerecht kodiert sind. Die derzeit umfangreichste Schrift ist die in drei Dateien aufgeteilte Shareware Code2000 bis Code2002 von James Kass.[26] Auch diese bildet jedoch nicht jedes Unicode-Zeichen ab.

  • Mit Unicode Notenschriftzeichen ausgeben

    • name22
    • 30. April 2011 um 18:43

    Zitat aus der Hilfe:

    Zitat

    Gibt einen leeren String zurück und setzt @error auf 1 wenn der UNICODE-Code größer als 65535 ist.

  • Tortendiagramm in einer transparenten GUI

    • name22
    • 30. April 2011 um 17:16
    Zitat

    Wie kann ich das Tortendiagramm sauberer Zeichnen?


    Mit GDI+ und _WinAPI_UpdateLayeredWindow, wie es in dem Beispiel von UEZ oder in Meinem zu sehen ist.

  • GDI+ Animationen

    • name22
    • 30. April 2011 um 13:44

    Ja, genau. Wenn du dich ein bisschen mehr damit auskennst, kannst du ja eine UDF daraus machen (oder zumindest eine Funktion ;)).

  • Tortendiagramm in einer transparenten GUI

    • name22
    • 30. April 2011 um 13:32
    Zitat

    Wie kommt man eigentlich an den Quelltext von GUICtrlCreateLabel ?


    Ähm gar nicht? Zumindest nicht legal, da das eine interne AutoIt Funktion ist. ;) Du kannst entweder den Entwickler ansprechen oder dich mit der Funktion

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GUICtrlEdit_Create
    ; Description ...: Create a Edit control
    ; Syntax.........: _GUICtrlEdit_Create($hWnd, $sText, $iX, $iY[, $iWidth = 150[, $iHeight = 150[, $iStyle = 0x003010C4[, $iExStyle = 0x00000200]]]])
    ; Parameters ....: $hWnd - Handle to parent or owner window
    ; $sText - Text to be displayed in the control
    ; $iX - Horizontal position of the control
    ; $iY - Vertical position of the control
    ; $iWidth - Control width
    ; $iHeight - Control height
    ; $iStyle - Control styles:
    ; |$ES_AUTOHSCROLL - Automatically scrolls text to the right by 10 characters when the user types a character at the end of the line.
    ; |$ES_AUTOVSCROLL - Automatically scrolls text up one page when the user presses the ENTER key on the last line.
    ; |$ES_CENTER - Centers text in a edit control.
    ; |$ES_LEFT - Aligns text with the left margin.
    ; |$ES_LOWERCASE - Converts all characters to lowercase as they are typed into the edit control.
    ; |$ES_MULTILINE - Forced
    ; |$ES_NOHIDESEL - The selected text is inverted, even if the control does not have the focus.
    ; |$ES_NUMBER - Allows only digits to be entered into the edit control.
    ; |$ES_OEMCONVERT - Converts text entered in the edit control.
    ; |$ES_READONLY - Prevents the user from typing or editing text in the edit control.
    ; |$ES_RIGHT - Right-aligns text edit control.
    ; |$ES_UPPERCASE - Converts all characters to uppercase as they are typed into the edit control.
    ; |$ES_WANTRETURN - Specifies that a carriage return be inserted when the user presses the ENTER key.
    ; |$ES_PASSWORD - Displays an asterisk (*) for each character that is typed into the edit control
    ; -
    ; |Default: $ES_MULTILINE, $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL
    ; |Forced : WS_CHILD, $WS_VISIBLE, $WS_TABSTOP unless $ES_READONLY
    ; $iExStyle - Control extended style. These correspond to the standard $WS_EX_ constants.
    ; Return values .: Success - Handle to the Edit control
    ; Failure - 0
    ; Author ........: Gary Frost
    ; Modified.......:
    ; Remarks .......: This function is for Advanced users and for learning how the control works.
    ; Related .......: _GUICtrlEdit_Destroy
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _GUICtrlEdit_Create($hWnd, $sText, $iX, $iY, $iWidth = 150, $iHeight = 150, $iStyle = 0x003010C4, $iExStyle = 0x00000200)
    If Not IsHWnd($hWnd) Then Return SetError(1, 0, 0) ; Invalid Window handle for _GUICtrlEdit_Create 1st parameter
    If Not IsString($sText) Then Return SetError(2, 0, 0) ; 2nd parameter not a string for _GUICtrlEdit_Create

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

    If $iWidth = -1 Then $iWidth = 150
    If $iHeight = -1 Then $iHeight = 150
    If $iStyle = -1 Then $iStyle = 0x003010C4
    If $iExStyle = -1 Then $iExStyle = 0x00000200

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

    If BitAND($iStyle, $ES_READONLY) = $ES_READONLY Then
    $iStyle = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE, $iStyle)
    Else
    $iStyle = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE, $__EDITCONSTANT_WS_TABSTOP, $iStyle)
    EndIf
    ;=========================================================================================================

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

    Local $nCtrlID = __UDF_GetNextGlobalID($hWnd)
    If @error Then Return SetError(@error, @extended, 0)

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

    Local $hEdit = _WinAPI_CreateWindowEx($iExStyle, $__EDITCONSTANT_ClassName, "", $iStyle, $iX, $iY, $iWidth, $iHeight, $hWnd, $nCtrlID)
    _SendMessage($hEdit, $__EDITCONSTANT_WM_SETFONT, _WinAPI_GetStockObject($__EDITCONSTANT_DEFAULT_GUI_FONT), True)
    _GUICtrlEdit_SetText($hEdit, $sText)
    _GUICtrlEdit_SetLimitText($hEdit, 0)
    Return $hEdit
    EndFunc ;==>_GUICtrlEdit_Create

    [/autoit]

    zufriedengeben, die dir auch ein paar Einblicke in den Aufbau eines GUI Controls gewährt.

  • GDI+ Animationen

    • name22
    • 30. April 2011 um 13:27

    Die Ideen gefallen mir (besonders Nummer 3), aber die Umsetzung könnte man noch verbessern... z.B. Solltest du die Animation nicht in der MessageLoop ablaufen lassen, sondern eher zusammen mit den Berechnungen in eine Funktion packen die du mit AdlibRegister abrufst. Dadurch wird u.A. verhindert, dass unnötige Frames gezeichnet werden (d.h. es wird gezeichnet, auch wenn keines der Objekte die Position geändert hat).

  • Tortendiagramm in einer transparenten GUI

    • name22
    • 29. April 2011 um 22:10

    Wieso erfahre ich erst jetzt, dass es diese Funktion in der gdiplus.dll gibt? :pinch:
    Danke UEZ :).

  • Unglaublich: Engländer und Engländerin heiraten!

    • name22
    • 29. April 2011 um 21:41

    Schrecklich... Mehr kann ich zu diesem Hype nicht sagen...

  • Tortendiagramm in einer transparenten GUI

    • name22
    • 29. April 2011 um 21:34

    Das liegt daran, dass bei _WinAPI_SetLayeredWindowAttributes der Alpha Channel nicht beachtet wird. Man könnte es auch mit WinAPI_UpdateLayeredWindow machen, aber das ist ein wenig komplizierter. Vor allem wird Text dann immer noch eigenartig dargestellt, ich musste das ganze mit den Path Funktionen aus der GDIP.au3 machen damit der Text sauber gezeichnet wurde...

    Spoiler anzeigen
    [autoit]

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

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

    Opt("GUIOnEventMode", 1)

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

    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", 300)
    DllStructSetData($tSize, "Y", 100)
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    $tPoint = DllStructCreate($tagPOINT)
    $pPoint = DllStructGetPtr($tPoint)
    DllStructSetData($tPoint, "X", 0)
    DllStructSetData($tPoint, "Y", 0)

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

    $hWnd = GUICreate("Test", 300, 100, Default, Default, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOPMOST)
    GUISetState()

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

    $hDC_Window = _WinAPI_GetDC($hWnd)
    $hDC_Buffer = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hGDI_Bitmap = _WinAPI_CreateCompatibleBitmap($hDC_Window, 300, 100)
    _WinAPI_SelectObject($hDC_Buffer, $hGDI_Bitmap)

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

    _GDIPlus_Startup()

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

    $hGraphics = _GDIPlus_GraphicsCreateFromHDC($hDC_Buffer)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)

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

    $hBrush_Text = _GDIPlus_BrushCreateSolid(0xFFFF0000)

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

    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Segoe UI")
    $hFont = _GDIPlus_FontCreate($hFamily, 25)
    $tLayout = _GDIPlus_RectFCreate(5, 5)

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

    $hPath = _GDIPlus_PathCreate()

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hWnd)

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

    _GDIPlus_PathAddString($hPath, "AutoIt Rocks!", $tLayout, $hFamily, 0, 50, $hFormat)
    _GDIPlus_GraphicsFillPath($hGraphics, $hPath, $hBrush_Text)

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

    ;~ _GDIPlus_GraphicsDrawStringEx($hGraphics, "AutoIt Rocks!", $hFont, $tLayout, $hFormat, $hBrush_Text)

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

    _WinAPI_UpdateLayeredWindow($hWnd, $hDC_Window, 0, $pSize, $hDC_Buffer, $pSource, 0, $pBlend, 2)

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

    While Sleep(1000)
    WEnd

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

    Func _Exit()
    _WinAPI_ReleaseDC($hWnd, $hDC_Window)
    _WinAPI_DeleteDC($hDC_Buffer)
    _WinAPI_DeleteObject($hGDI_Bitmap)

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

    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BrushDispose($hBrush_Text)
    _GDIPlus_PathDispose($hPath)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_Shutdown()

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

    Exit
    EndFunc

    [/autoit]
  • Tortendiagramm in einer transparenten GUI

    • name22
    • 29. April 2011 um 18:15

    1. Dafür gibt es den erweiterten Fenster Stil $WS_EX_TOPMOST
    2.

    Spoiler anzeigen
    [autoit]

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

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

    Opt("GUIOnEventMode", 1)

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

    $vUser32Dll = DllOpen("user32.dll")

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

    $hWnd = GUICreate("Test", 400, 400)
    GUISetState()

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hWnd)
    GUISetOnEvent($GUI_EVENT_SECONDARYDOWN, "_Drag", $hWnd)

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

    While Sleep(1000)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    Func _Drag()
    $aMousePosWindow = GUIGetCursorInfo()
    While _IsPressed("02", $vUser32Dll) And Sleep(10)
    $aMousePosDesktop = MouseGetPos()
    WinMove($hWnd, "", $aMousePosDesktop[0] - $aMousePosWindow[0] - 3, $aMousePosDesktop[1] - $aMousePosWindow[1] - 23)
    WEnd
    EndFunc ;==>_Drag

    [/autoit]

    Edit: Raupi war schneller... Aber ich dachte er wollte das Fenster mit der rechten Maustaste verschieben? :huh:

  • Funktion aus Inputbox starten

    • name22
    • 27. April 2011 um 20:44
    Zitat von Hugbert

    ging aber auch nicht...


    Kein Wunder, du hast auch vergessen Klamern zu verwenden...

    [autoit]

    Call(guictrlread($Input1))

    [/autoit]
  • Funktion aus Inputbox starten

    • name22
    • 27. April 2011 um 20:40

    Dazu kannst du entweder Execute, oder Call verwenden. In diesem Fall ist Call aber wahrscheinlich die bessere Wahl. Aber du kannst auch einfach eine Switch Abfrage o.Ä. benutzen, dann brauchst gar keine Funktion.
    Beispiel:

    [autoit]

    Switch GUICtrlRead($Input)
    Case "Test1"
    MsgBox(0,"","Bla")
    Case "ABC"
    MsgBox(0,"","Test")
    EndSwitch

    [/autoit]
  • Könnt man eine selbst weiterentwickelnde Software schreiben?

    • name22
    • 27. April 2011 um 18:27

    Normalerweise (d.h. in so ziemlich allen MMOPRGs ;)), gibt es so eine KI gar nicht, da wird nicht analysiert sondern einfach nur draufgehauen. Wenn die Entwickler einen unbesiegbaren Endgegner machen wollen, geben sie ihm einfach eine absurd hohe Regenerationsrate oder Spezielattacken die dich mit einem Schlag besiegen...

  • dynamisch erstelle Buttons ... klick abfragen??

    • name22
    • 27. April 2011 um 01:58

    Nimm dazu ein Array, das ist viel einfacher zu verwalten.

  • FTP-Upload "freezt" Script ?

    • name22
    • 26. April 2011 um 18:07

    Nehmt doch InetGet, man muss ja nicht alles über das FTP Protokoll machen ;).

  • GDI+ Buchstaben Rotation

    • name22
    • 26. April 2011 um 17:25

    Das sind Befehle für den Compiler bzw. den Obfuscator und wirken sich nicht auf das Script aus. ;) Hier ist eine Auflistung der "Befehle" und ihrer Funktionen.

  • An den Anfang und das Ende jeder Zeile etwas schreiben

    • name22
    • 25. April 2011 um 22:48

    $sStart ist das was am Anfang angefügt werden soll, und $sEnd ist das was am Ende angefügt werden soll. Logisch oder? Start für den Anfang und End für das Ende...
    $sText ist der Text der bearbeitet werden soll.

    Zitat

    Ah, "line" ist der Text.
    Aber wie gebe ich dann die Zeile an?


    Gar nicht, die Funktion hängt nur an das Ende einer Datei etwas an. Du kannst aber natürlich auch _FileWriteToLine verwenden da wird in eine bestimmte Zeile geschrieben.

  • Könnt man eine selbst weiterentwickelnde Software schreiben?

    • name22
    • 25. April 2011 um 22:38
    Zitat

    Wenn man eine wirlich gut organisierte Organisation ist, dann würde man das schaffen. Es gibt ja schließlicht genug Wikis und sonstiges freiverfügbares Wissen im Internet.


    Organisierte Organisationen... ^^
    Das Problem ist nicht, dass nicht genügend Wissen vorhanden ist, sondern das das Programm mit diesem nichts anfangen kann. Da müssen wir es zuerst in eine andere Form bringen, oder das Programm so schreiben, dass es die Informationen verstehen kann. Außerdem redete er ja davon, dass sich das Programm das lernen selbst bbeibringt, und sich somit immer weiter selbst entwickeln könnte.

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™