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

Beiträge von Ahnungslos

  • GDI+ Problem: Grafik erst erstellen, dann in Hauptgrafik einfügen. (Viele kleine PNG-Bilder zu Grp zusammenfassen, dann einfügen)

    • Ahnungslos
    • 30. November 2009 um 09:40

    Kanns gerade nicht testen, aber sieht soweit ich das erkenne schonmal sehr gut aus.

    Tausch mal die Zeilen 24 und 25, also zuerst das Fenster anzeigen und dann auf dieses zeichnen.
    Außerdem müsste es m.E. _GDIPlus_GraphicsDrawImage($hGraphicsGUI, $hBmpBackBuffer, 0, 0) heißen,
    also immer die Bitmap auf die Graphic zeichnen.

    lg ahnungslos

  • GDI+ Farbverlauf erstellen

    • Ahnungslos
    • 24. November 2009 um 10:52

    Als ich mich etwas mit GDI+ auseinander gesetzt habe, ist mir aufgefallen das Farbverläufe jedesmal manuell mit _GDIPlus_GraphicsDrawLine umgesetzt waren. Anbei eine andere Möglichkeit, vielleicht kann es ja mal jemand gebrauchen.

    Funktion:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>

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

    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $hGUI, $hWnd, $hGraphic, $hBrush

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

    ; Erstellt eine GUI
    $hGUI = GUICreate("GDI+", 400, 300)
    $hWnd = WinGetHandle("GDI+")
    GUISetState()

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

    ; Zeichnet und füllt ein Rechteck
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBrush = _GDIPlus_BrushCreateLinear(0, 0, 200, 0)
    _GDIPlus_GraphicsFillRect($hGraphic, 0, 0, 200, 50, $hBrush)
    _GDIPlus_GraphicsFillRect($hGraphic, 0, 70, 400, 50, $hBrush)
    _GDIPlus_BrushDispose($hBrush)

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

    $hBrush = _GDIPlus_BrushCreateLinear(0, 140, 0, 190, 0xFF00FF00, 0xFFFF0000)
    _GDIPlus_GraphicsFillRect($hGraphic, 0, 140, 200, 50, $hBrush)

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    ; Ressourcen freigeben
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

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

    EndFunc ;==>_Main

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

    Func _GDIPlus_BrushCreateLinear($iX1, $iY1, $iX2, $iY2, $iARGB1 = 0xFF000000, $iARGB2 = 0xFFFFFFFF)
    Local $aResult, $start, $end, $sPoint, $ePoint

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

    $start = DllStructCreate("int X;int Y")
    DllStructSetData($start,"X",$iX1)
    DllStructSetData($start,"Y",$iY1)
    $sPoint = DllStructGetPtr($start)

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

    $end = DllStructCreate("int X;int Y")
    DllStructSetData($end,"X",$iX2)
    DllStructSetData($end,"Y",$iY2)
    $ePoint = DllStructGetPtr($end)

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

    $aResult = DllCall($ghGDIPDll, "int", "GdipCreateLineBrushI", "ptr", $sPoint, "ptr", $ePoint, "int", $iARGB1, "int", $iARGB2, "int", 0, "int*", 0)
    If @error Then Return SetError(@error, @extended, 0)

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

    Return SetError(0, $aResult[0], $aResult[6])
    EndFunc ;==>_GDIPlus_BrushCreateLinear

    [/autoit]


    Erklärung:

    Spoiler anzeigen
    Code
    _GDIPlus_BrushCreateLinear
    --------------------------------------------------------------------------------
    
    
    Erstellt ein Pinselobjekt mit linearen Farbverlauf
    
    
    
    
    #Include <GDIPlus.au3>
    _GDIPlus_BrushCreateLinear($iX1, $iY1, $iX2, $iY2[, $iARGB1 = 0xFF000000[, $iARGB2 = 0xFFFFFFFF]])
    
    
    
    
    Parameter:
     
    $iX1 Die X-Koordinate des Startpunktes der Linie 
    $iY1 Die Y-Koordinate des Startpunktes der Linie 
    $iX2 Die X-Koordinate des Endpunktes der Linie 
    $iY2 Die Y-Koordinate des Endpunktes der Linie 
    $iARGB1  Die Farbe des Startpunktes der Linie 
    $iARGB2  Die Farbe des Endpunktes der Linie 
    
    
    
    
    Rückgabewert:
    
    
    Erfolg: Handle zu einem Pinselobjekt mit linearen Farbverlauf
    Fehler: False
    
    
    
    
    Bemerkung:
    
    
    Wenn man mit dem Pinselobjekt fertig ist, ist _GDIPlus_BrushDispose aufzurufen, um die Ressourcen wieder freizugeben
    Alles anzeigen


    Falls es die Funktion schon geben sollte, dann hab ich dies wohl übersehen :whistling:

    edit: verbessert, danke UEZ, war nur zum Testen

  • [String] StringIsSpace - Leerstellen in einem String wegmachen

    • Ahnungslos
    • 19. November 2009 um 17:01

    schau dir mal StringMid an

    Spoiler anzeigen
    [autoit]


    HotKeySet ("{Numpad5}","mach")
    While (1)
    Sleep (1000)
    WEnd

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

    Func mach ()
    $Text = InputBox ("","")
    $count = StringLen ($Text)
    For $i = 1 to $count
    If StringMid($Text, $i, 1) <> " " Then
    Send (StringLeft ($Text,$i))
    Send ("{Enter}")
    EndIf
    Next
    EndFunc

    [/autoit]


    ungetestet (hab hier leider kein Autoit)

  • [gelöst] Drucker: Canon IP-1600

    • Ahnungslos
    • 18. November 2009 um 11:31

    müsste dieser sein:
    http://de.software.canon-europe.com/software/0024837.asp?model=

    lg

  • GDI+ - ungewollter Farbverlauf beim Strecken von Bildern

    • Ahnungslos
    • 4. November 2009 um 11:52

    Ja, das ist ne gute Idee :)

    Ich erstelle nun ein Bitmap, lasse dieses mit der For-schleife bezeichnen
    und muss nun nur noch das Bitmap anzeigen lassen.

    Danke

  • GDI+ - ungewollter Farbverlauf beim Strecken von Bildern

    • Ahnungslos
    • 4. November 2009 um 10:05

    Das Bild befindet sich in Post 4 (der dünne Strich) und versucht hatte ich es auch wie du vorgeschlagen hast.
    Also Beispielcode siehe Post 7.

  • GDI+ - ungewollter Farbverlauf beim Strecken von Bildern

    • Ahnungslos
    • 4. November 2009 um 09:42

    UEZ: da entsteht genau das gleiche Problem

    habs auch schon mit _GDIPlus_GraphicsDrawImageRectRect _GDIPlus_DrawImagePoints probiert,
    klappt aber nicht ;(

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>
    _GDIPlus_Startup()

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

    $Pic = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\FrameTop.png") ;entsprechend abändern!
    $width = _GDIPlus_ImageGetWidth($Pic) * 150
    $height = _GDIPlus_ImageGetHeight($Pic) * 1
    $hGui = GUICreate("Test", $width, $height, -1, -1)
    $hGDI = _GDIPlus_GraphicsCreateFromHWND($hGui)

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

    GUISetState()
    _GDIPlus_GraphicsDrawImageRect($hGDI, $Pic, 0, 0, $width, $height)

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

    Do
    Until Not Sleep(50) + GUIGetMsg() = -3

    [/autoit]


    mit dem Bild aus Post 4 kommt folgender Farbverlauf herraus:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Bilder

    • screenshot.png
      • 7,72 kB
      • 156 × 58
  • GDI+ - ungewollter Farbverlauf beim Strecken von Bildern

    • Ahnungslos
    • 4. November 2009 um 00:11

    Danke euch beiden.
    Mit Schnitzels Methode geht es ohne das Bild jedesmal neu zu laden :thumbup:

    @Prog@ndy: klappt leider nicht, mich würde aber trotzdem mal interessieren ob und wie das in GDI umsetzbar ist

    Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>

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

    $hGui = GUICreate("Test", 150,100)
    _GDIPlus_Startup()
    $hGDI = _GDIPlus_GraphicsCreateFromHWND($hGui)
    $Pic = _GDIPlus_ImageLoadFromFile(@ScriptDir&"\FrameTop.png")
    $hMatrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixScale($hMatrix, 150, 1)
    _GdipSetInterpolationMode($hGDI, 7)
    _GDIPlus_GraphicsSetTransform($hGDI, $hMatrix)

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

    GUISetState()
    _GDIPlus_GraphicsDrawImage($hGDI,$Pic,0,0)
    Sleep(5000)

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

    Func _GdipSetInterpolationMode($pGraphics, $iInterpolMode)
    ;Author: Prog@ndy
    Local $aResult = DllCall($ghGDIPdll, "int", 'GdipSetInterpolationMode', 'ptr', $pGraphics, 'dword', $iInterpolMode)
    If @error Then Return SetError(1,0,0)
    Return SetError($aResult[0], 0, $aResult[0]=0)
    EndFunc

    [/autoit]

    Bilder

    • FrameTop.png
      • 170 Byte
      • 1 × 25
  • GUISetCursor funktioniert nicht wie gedacht

    • Ahnungslos
    • 3. November 2009 um 19:07

    in $maus[4] befindet sich die buttonID wenn du über den button bist

    lg

  • GDI+ - ungewollter Farbverlauf beim Strecken von Bildern

    • Ahnungslos
    • 3. November 2009 um 18:57

    Hi,

    wie der Titel schon sagt, wollte ich mit GDI+ Bilder strecken,
    nur leider wird es zum Ende hin immer transparenter.

    Da die Fenstergröße variabel ist, kann ich die Bilder auch nicht in festen Größen nutzen,
    und GuiCtrlCreatePic ist für das was ich vorhab zu langsam :(

    Kennt ihr ne Möglichkeit das Problem zu umgehen?

    Danke, schonmal!!!

    Dateien

    Messager.bmp 257,24 kB – 355 Downloads
  • String in unbekannten Format umwandeln

    • Ahnungslos
    • 1. November 2009 um 10:31

    ja gut danke
    ich versuch mich mal weiter im übersetzen

  • String in unbekannten Format umwandeln

    • Ahnungslos
    • 1. November 2009 um 09:49

    Guten Morgen,

    ich bekomme vom Server einen String zugesendet in einem mir unbekannten Format.
    Kennt dieses vllt. jemand oder sind hier gute Dechiffrierer unterwegs?

    Bin euch für eure Hilfe sehr dankbar, da ich schon nen paar Stunden drüber sitze.

    Beispiele:

    Spoiler anzeigen
    Code
    AAFBAAA       	A
    AAJBQQAA    	      AA
    AANBQUEAAA         AAA
    
    
    AAFhAAA             a
    AAJhYQAA    	aa
    AANhYWEAAA   aaa
    
    
    AAFiAAA       	     b
    AAJhYgAA     	   ab
    AAJiYgAA      	    bb
    
    
    AAF6AAA          z
    AAJ6egAA                 zz
    AAN6enoAAA	zzz
    
    
    AAxIZWxsbyBXb3JsZCEAAA  	Hello World!
    AAtUZXN0IHN0cmluZwAA     	  Test string
    AAExAAA	1
    AAE5AAA	9
    AAEuAAA	.
    Alles anzeigen


    PS: Die ersten 3 Zeichen scheinen die Stringlänge zu sein!?

  • Tasten "Tauschen" im Spiel (PES 2010)

    • Ahnungslos
    • 23. Oktober 2009 um 18:36

    zur Windows-Taste:

    wenn du sie sonst nicht nutzt, kannst du diese auch komplett deaktivieren
    Neustart erforderlich

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

    Dateien

    win-taste deaktivieren.zip 315 Byte – 233 Downloads
  • GUICtrlCreateListViewItem einer ListView in eine andere ListView per Drag & Drop Einfügen

    • Ahnungslos
    • 23. Oktober 2009 um 18:22

    So würde es gehen: (ist noch ausbaufähig)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>

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

    $main = GUICreate("Testlistview", 600, 400)
    $listview = GUICtrlCreateListView("Gruppe1", 10, 10, 100, 100)
    $listview2 = GUICtrlCreateListView("Gruppe2", 150, 10, 100, 100)
    GUICtrlSetState($listview2, $GUI_DROPACCEPTED)
    $listitem = GUICtrlCreateListViewItem("test", $listview)

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

    GUISetState()
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_DROPPED Then GUICtrlCreateListViewItem (GuiCtrlRead(GuiCtrlRead($listview)), $listview2 )
    If $msg = $GUI_EVENT_CLOSE Then Exit
    WEnd

    [/autoit]
  • Text soll nicht über den Rand hinaus gehen

    • Ahnungslos
    • 23. Oktober 2009 um 17:47

    lass mal bei den GuiCtrlCreateEdit den $ES_AUTOHSCROLL Style weg

    lg

  • Fehler beim Entschlüsseln eines Textes

    • Ahnungslos
    • 22. Oktober 2009 um 18:33

    anbei das geänderte Script:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <file.au3>
    #include <string.au3>
    HotKeySet("{F4}", "schliessen")
    MsgBox(48, "Information", "Zum schließen des Schul-Chats einfach nur <F4> drücken")
    $pfad = @DesktopDir & "\NetControl.new"
    $user = @UserName
    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Schul-Chat", 467, 442, 405, 112)
    Global $Edit1 = GUICtrlCreateEdit("", 9, 6, 442, 298, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN, $WS_VSCROLL))
    Global $Edit2 = GUICtrlCreateEdit("", 12, 318, 442, 73, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_VSCROLL))
    Global $Button1 = GUICtrlCreateButton("Senden", 351, 405, 103, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    Global $Form1_AccelTable[1][2] = [["{ENTER}", $Button1]]
    GUISetAccelerators($Form1_AccelTable)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    ;GUICtrlSetData($Edit1, "")
    $read2 = _StringEncrypt(0, FileRead($pfad), "1")
    If $read2 <> GuiCtrlRead($Edit1) Then GUICtrlSetData($Edit1, $read2) ; <-- aktualisiert nur bei Änderung
    ;Sleep(80)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    schliessen()
    Case $Button1
    $read = GUICtrlRead($Edit2)
    If $read = "" Then
    MsgBox(48, "Information", "Du kannst keine Nachricht ohne Inhalt senden!")
    Else
    FileDelete($pfad)
    FileWrite($pfad, _StringEncrypt(1, $read2 & $user & ": " & $read & @CRLF, "1"))
    GUICtrlSetData($Edit2, "")
    EndIf
    EndSwitch
    WEnd

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

    Func schliessen()
    FileDelete($pfad) ; <-- Nachrichtendatei löschen
    Exit
    EndFunc ;==>schliessen

    [/autoit]


    Edit: verdammt, zu langsam gewesen^^

  • Fehler beim Entschlüsseln eines Textes

    • Ahnungslos
    • 22. Oktober 2009 um 17:56

    hm, ich schaus mir zuhause mal an, wenn bis dahin kein anderer geantwortet hat
    hab hier halt leider kein autoit

    i-wann knack ich das sch..ß admin passwort^^

  • Fehler beim Entschlüsseln eines Textes

    • Ahnungslos
    • 22. Oktober 2009 um 17:46

    schreib mal über den FileWrite noch nen FileDelete, sonst steht die letzte verschlüsselte Nachricht noch in der Datei

  • Fehler beim Entschlüsseln eines Textes

    • Ahnungslos
    • 22. Oktober 2009 um 17:34

    siehe edit oberer post

  • Fehler beim Entschlüsseln eines Textes

    • Ahnungslos
    • 22. Oktober 2009 um 17:24

    kanns leider gerade nicht testen, aber was mir auffällt:
    du löscht das $Edit1 nach etwas über 80ms wieder
    das gibt max ein kurzes aufflackern der Nachricht

    Spoiler anzeigen
    [autoit]


    While 1
    ;GUICtrlSetData($Edit1, "") ; <-- löscht Nachricht
    $read2 = _StringEncrypt(0,fileread($pfad), "1") ; <-- erst lesen, dann entschlüsseln
    GUICtrlSetData($Edit1, $read2) ; <-- schreibt Nachricht
    Sleep(80)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $read = GUICtrlRead($Edit2)
    If $read = "" then
    msgbox(48, "Information", "Du kannst keine Nachricht ohne Inhalt senden!")
    else
    FileWrite($pfad,_StringEncrypt(1, $user&": "&$read&@CRLF, "1"))
    GUICtrlSetData($Edit2, "")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Edit: außerdem musst du die ausgelesenen Daten entschlüsseln

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™