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

Beiträge von Andy

  • Fenster-Focus

    • Andy
    • 5. Oktober 2009 um 16:21

    Hallo,
    schau dir mal in der Hilfe bei GuiCreate() oder im Anhang die GUIControl-Stile an.
    Speziell $DS_MODALFRAME und $WS_EX_TOPMOST sollten dir da weiterhelfen
    ciao
    Andy

  • Checkboxen die markiert sind sollen kopiert werden

    • Andy
    • 5. Oktober 2009 um 15:16

    zu 2 GidF hats gefunden

  • Checkboxen die markiert sind sollen kopiert werden

    • Andy
    • 5. Oktober 2009 um 15:10
    Zitat

    Aber es passiert gar nichts wenn ich auf den button klicke ?

    Stimmt nicht! Selbstverständlich "passiert etwas", nur nicht so wie du dir das vorstellt. Die Hilfe bietet in diesem Fall nicht viel Hilfe^^ ich habe das Beispiel deshalb etwas erweitert

    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Local $checkCN, $msg
    GUICreate("My GUI Checkbox") ; will create a dialog box that when displayed is centered

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

    $checkCN = GUICtrlCreateCheckbox("CHECKBOX 1", 10, 10, 120, 20)

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

    GUISetState() ; will display an dialog box with 1 checkbox

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    If $msg = $checkCN Then ;die checkbox sendet eine Nachricht
    If GUICtrlRead($checkCN) = $GUI_CHECKED Then ;der Status des Checkbox-Controls wird festgestellt, wenn "angehakt" dann
    ToolTip("Checkbox angehakt") ;infotext anzeigen
    Else ;ansonsten
    ToolTip("Checkbox NICHT angehakt")
    EndIf
    Sleep(1000) ;eine Sekunde text anzeigen
    ToolTip("") ;toolbox löschen
    EndIf

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

    WEnd
    EndFunc ;==>Example

    [/autoit]
    Zitat

    das ich vorher noch das Verzeichnis auswählen kann

    [autoit]

    FileSelectFolder ;sollte dir weiterhelfen

    [/autoit]
  • Combobox, Letzter inhalt abspeichern, Ideen gesucht

    • Andy
    • 5. Oktober 2009 um 14:28

    Hi,
    ob du deine Variable in die Registry einträgst, oder in eine TXT oder in eine INI-Datei oder in ein "Binär"-File bleibt vollkommen wurscht. Überall werden Dateien geöffnet, die Daten eingetragen und beim Starten deines Programms ausgelesen. Such die FÜR DICH einfachste Möglichkeit aus, funktionieren werden alle...und sind m.E auch mit gleichem Aufwand zu handhaben, also Geschmacksache :D

  • Was ist besser?

    • Andy
    • 5. Oktober 2009 um 13:04
    Zitat

    C++ hat eindeutig den Geschwindigkeitsvorteil, aber auch so seine Tücken, Pointer etc - unmanaged code halt

    Ja, für denjenigen, der in den Eingeweiden des BS und/oder auch der Hardware graben muss, ist C sicherlich erste Wahl. Über den Geschwindigkeitsvorteil beim AUSFÜHREN der Programme braucht man auch kein Wort zu verlieren. Interessant wirds bei der Programmerstellung an sich, da sind "Spezialsprachen" für bestimmte Anwendungsfälle (da zähle ich jetzt auch mal AutoIt dazu) wesentlich im Vorteil. Mal schnell in 2 Minuten in einer Scriptsprache einen 10-Zeiler "hinrotzen", da dauert die Suche nach den passenden Bibliotheken in C schon länger, vorrausgesetzt, die gesuchte Funktion ist darin überhaupt vorhanden (wovon ich ausgehe).
    Wenn man sich die Möglichkeiten der dotnet-Familie mal vor Augen führt fragt man sich doch, warum nicht "alle" damit programmieren. Das Konzept überzeugt jedenfalls.
    ABER: Die Hilfe und die darin vorhandenen Beispiele sowie die Beschaffung von Informationen rund um das programmtechnische Problem sind m.E. wesentlich höher einzustufen wie die eigentlichen Fähigkeiten der Programmiersprache. (gutes Beispiel ist die Existenz von Trolltechs Qt!)
    Ganz ehlich gesagt bin ich gerade von der Hilfe innerhalb der .NET-Sprachen herb enttäuscht, mit einigen hunderttausend Mannjahren weniger Entwicklungspower haben "unsere" AutoIt´ler da m.E. die Nase sogar vorne!
    Sicherlich hat die Oberfläche von.z.B. Visual-Basic superfeine "Goodies", aber irgendwie vergleiche ich das immer mit der Brücke eines Supertankers oder Verkehrsflugzeugs. Wer täglich stundenlang damit zu tun hat, für den ist das einfach, aber wenn jemand 3x in der Woche ein kurzes Programm schreiben möchte, für den wäre ein "Noob"-Modus sicherlich sinnvoll. Code in den Editor kloppen, F7 drücken, läuft; das fällt leider bei .NET aus...(zu 90%)!
    Die Grätsche zwischen Supertankerkapitän und Paddelbootfahrer schaffen die zzt NOCH nicht.... ;(

  • Gui Fragen

    • Andy
    • 5. Oktober 2009 um 11:29

    Hallo,

    Zitat

    Der nutzer hat nun 9 ausgewählt wie kann ich nun herrausbekommen das er die 9 angewählt hat ???

    [autoit]

    guictrlread() ;sollte dir weiterhelfen

    [/autoit]

    Weiterhin benutzt du den OnEventMode zusammen mit dem MessageMode, das KANN problemlos funktionieren, muss aber nicht (sieht man schön an deinem Beispiel^^)
    Wenn du den Oneventmodus nutzt, musst du sicherstellen, daß dar Anwender nicht während der Ausführung einer Funktion schon die nächste startet.
    Daher wäre mein Rat bei dieser GUI zunächst den Messagemode zu verwenden.
    Ausserdem bietet sich, wenn du mit mehreren "Seiten" innerhalb der GUI arbeiten möchtest, ein sog. TAB (Karteireiter) an. Somit brauchst du dich nicht mehr um @SW_SHOW und @SW_HIDE zu kümmern. Schau dir mal das Hilfebeispiel zu

    [autoit]

    GUICtrlCreateTab

    [/autoit]

    an. Beachte aber bei der Erstellung der Tabs mit KODA, dass der Inhalt eines Tabs sofort nach der Definition dieses Tabs erfolgen muss, da der Inhalt sonst auf ALLEN TAB-Seiten dargestellt wird.

  • Was ist besser?

    • Andy
    • 4. Oktober 2009 um 18:25
    Zitat

    Was meinst du damit?:

    Ich meine, daß du ein Fahhrad nimmst wenn man ein Fahrrad benötigt, und wahrscheinlich nimmst du einen Sattelschlepper, wenn man einen Sattelschlepper benötigt :thumbup:
    Wollte dein Zitat nur noch mal "verbildlichen" :D

  • FirePlayer 1.3

    • Andy
    • 4. Oktober 2009 um 18:20

    Hi, so kannst du überprüfen, wie viele und welche Dateien per drag&drop auf deine EXE gezogen wurden. Das Limit liegt aber bei (ich müsste nachschauen) 67 Dateien...

    [autoit]

    $anzahl=$cmdline[0]
    $dateien=""
    if $anzahl=0 then
    msgbox(0,0,"keine Dateien ausgewählt")
    Else
    for $i=1 to $anzahl
    $Dateien&=$cmdline[$i]&@CRLF
    next
    msgbox(0,$anzahl,$dateien)
    endif

    [/autoit]

    So kannst du dein Programm auch über den "Senden an"-Befehl im Kontextmenü des Explorere erreichbar machen. Dateien markieren, rechtklick, in "Senden an" wechseln und dein Programm auswählen

    [autoit]

    $ret = FileCreateShortcut(@ScriptDir & "\easyupload.exe", @UserProfileDir & "\sendto\EasyUpload.lnk") ; sendto-eintrag zeigt jetzt auf easyupload_temp.exe
    If $ret = 0 Then MsgBox(0, "Fehler", "Fehler beim Schreiben der Verknüpfung in den " & @UserProfileDir & "\sendto\ -Ordner")

    [/autoit]
  • FTP zickt rum - Lösung / Alternativen ?

    • Andy
    • 4. Oktober 2009 um 17:48

    Hallo,
    ich benutze haupsächlich einen lokal installierten FTP-Server und ab und zu mal einen "externen" im I-Net...
    Auch mit AutoIt-Programmen ist mir dabei nie aufgefallen, daß Dateien nicht oder nicht richtig downgeloaded oder geupped werden. Ja, es kann vorkommen, daß eine sehr große Datei gerade auf dem Server upgedatet wird, diese steht natürlich dann auch im Verzeichnis, aber ein versuchter Download wird (richtigerweise) verhindert, da die Datei zu diesem Zeitpunkt ja noch beschrieben wird. Aber das ist bei anderen BS auch nicht anders.

    Zitat

    AutoIt findet geuploadetet Dateien erst ca. 20 Minuten später

    Kann ich von hier aus nicht bestätigen, wie gesagt, schon während des Uploads werden die angelegten Files angezeigt. Der Download schlägt (solange upgeloadet wird) natürlich fehl....s.o., d.h. wenn der Upload 20 min dauert, dann kann auch niemand in dieser Zeit diese Datei downloaden.

  • Was ist besser?

    • Andy
    • 4. Oktober 2009 um 14:45
    Zitat

    also mit was man persönlich besser zurecht kommt

    Dazu fällt mir nur mein Standardspruch bzgl. Werkzeug auf der Baustelle ein: "Soviel wie nötig, so einfach wie möglich!". Es gibt Leute, die tragen 2 Werkzeugkisten in den 7. Stock obwohl die Arbeit die dort verrichtet werden soll, nur einen Einstellschlüssel und "Hosentaschenwerkzeug" erfordert. Ebendiese Leute klagen regelmäßig in der Mittagspause schon über Kreuzweh infolge der "ewigen Schlepperei" und erledigen die restliche Arbeit eher langsam....
    Was das mit deiner Frage zu tun hat? Generationen von Programmierern kamen bisher sehr gut ohne C++ zurecht, und in Zukunft werden es eher mehr als weniger werden die liebend darauf verzichten werden. Nimm das zu deinem Problem passende Werkzeug, bei dem du am schnellsten zu deinem Ergebnis kommst ohne massig Ballast mitzuschleppen!

    Zitat

    Aber da ich meistens eher kleiner Projekte mache, arbeite ich meistens mit Autoit

    Jede Wette, dieser Mann fährt nicht mit einem Sattelschlepper morgens zum Brötchenholen^^

  • Nach Zahlen in einem String suchen

    • Andy
    • 4. Oktober 2009 um 14:25

    autoBert
    der TA wollte nicht die ANZAHL der eingegebenen Zeichen begrenzen sondern beim Input nur Einsen und Nullen zulassen....irgendwo hatte ich da extra mal ne Funktion für geschrieben.....oder war dein Post auf den von mir erwähnten Stolperstein bezogen? :D
    Aber auch dann verstehe ich den Zusammenhang nicht :?:

  • Nach Zahlen in einem String suchen

    • Andy
    • 4. Oktober 2009 um 11:43

    ...und wenn man keinerlei Ahnung von RegExen hat...

    [autoit]

    $string = '0101200101'
    $test=stringreplace(stringreplace($string,"0","1"),"1","1")
    if @extended<>stringlen($string) then
    MsgBox(0,0, 'Fehler! Bitte nur Nullen und Einsen eingeben!')
    Else
    MsgBox(0,0, 'Eingabe ok!')
    EndIf

    [/autoit]

    wobei dort zugegebenermaßen ein FETTER Stolperstein drin sitzt, wer findet ihn?^^

  • Wie komme ich an die ControlID des zuletzt erstellten Controls?

    • Andy
    • 3. Oktober 2009 um 21:39

    Hallo Raupi,
    die ControlID´s werden m.E. nach der Reihe bei Entstehung durchnummeriert. Das Control mit der "größten" ID ist dann das zuletzt erstellte
    ciao
    Andy

  • _Pack_String() & _DePackString()

    • Andy
    • 2. Oktober 2009 um 17:17
    Zitat

    Für Textdateien, ok, aber bei Binärdaten wird das nicht funktionieren.
    Dort gibt es keine "Leerzeichen" und "Wörter".

    naja, 2x8Bit sind ja auch ein "word"^^
    Das Prinzip ist jedenfalls universell anwendbar, bei einer 2-Farben Bitmap (Monochrom) die nicht gerade extrem gedithered ist, sollte man auch zu schönen Ergebnissen kommen. Bei einem gescannten Text zum Beispiel.
    Hast mich auf ne Idee gebracht....

  • Nochmal WM_Command - Enter Taste beim Input-Control

    • Andy
    • 2. Oktober 2009 um 13:42
    Zitat

    Bei $BS_DEFPUSHBUTTON gibt teilweise Problem, wenn ein anderer Button den Fokus hat.

    Das verstehe ich nicht, entweder soll mit einem "Enter" der Fokus auf das nächste Inputfeld geschaltet werden, oder es soll ein Button gedrückt werden. Beides zusammen geht nicht, bzw ist ein Problem der Programmlogik.
    Die ausgefüllten Inputfelder sollen doch irgendwann weiterverarbeitet werden (Button am Ende der Maske). Da könnte man doch Oskars Idee weiterverarbeiten und nach dem Enter im letzten Inputfeld direkt auf den Button springen. Das ergäbe m.E, auch Sinn in der Usability. Wenn man vom letzten Inputfeld per TAB(s) zum Button springen muss, dann kann man gleich (wie gehabt) durch die Felder Tabben...

    */EDIT/* wg Langsamkeit

    Zitat

    In WM_Command den Fokus bestimmten und in Abjängigkeit vom Fokus reagieren.

    so hatte ich das gemeint^^

  • Nochmal WM_Command - Enter Taste beim Input-Control

    • Andy
    • 2. Oktober 2009 um 12:58

    so ggf....

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Global $eventCount = 0
    $sHeader = "Input1|Input2|Input3"
    Global $hGui = GUICreate("", 400, 400, -1, -1)
    Global $aHeader = StringSplit($sHeader, '|') ; Überschriften-Array
    Global $aNew[$aHeader[0]] ; Array für die Input-IDs
    Global $aInputWidth[$aHeader[0]] = [100, 100, 100] ; hier die Länge (in Pixel) der Inputfelder eintragen
    Global $xPos = 20
    For $i = 1 To $aHeader[0]
    GUICtrlCreateLabel($aHeader[$i], $xPos + 2,200, 110, 20) ; Überschriften-Label erstellen
    GUICtrlSetFont(-1, 8, 400, 0, 'Verdana') ; Schriftgröße und -art der Überschriften festlegen
    $aNew[$i - 1] = GUICtrlCreateInput("", $xPos, 220, $aInputWidth[$i - 1], 20,Default, $WS_EX_STATICEDGE) ; Eingabefelder erstellen
    GUICtrlSetFont(-1, 10, 600, 0, 'Verdana') ; Schriftgröße und -art der Eingabefelder festlegen
    $xPos += $aInputWidth[$i - 1] + 5
    Next

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

    $btn_virtuell=GUICtrlCreateButton("test",10,10,10,10,$BS_DEFPUSHBUTTON) ;button erstellen

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

    GUISetState(@SW_SHOW, $hGui)
    GUIRegisterMsg($WM_Command ,"WM_COMMAND")
    GUIctrlSetState($btn_virtuell,$GUI_hide ) ;button unsichtbar machen

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

    While 1
    $nMsg = GUIGetMsg(1) ; Message-Event holen (1) = erweiterter Modus
    Switch $nMsg[0] ; anhand der Control-ID das entsprechende Case aufrufen
    case $btn_virtuell
    Tooltip("Enter gedrückt")
    sleep(1000)
    Tooltip("")

    case $anew[0]
    GUICtrlSetState($aNew[1], $GUI_FOCUS)
    #Region Schließen
    Case $GUI_EVENT_CLOSE ; User hat auf das Schließen-Symbol geklickt (bzw. die ESC-Taste gedrückt)
    Switch $nMsg[1] ; erweiterte Abfrage für welches Fenster
    Case $hGui ; User will das Hauptfenster schließen
    exit

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

    EndSwitch

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

    #EndRegion Schließen
    EndSwitch

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

    WEnd

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hwndFrom, $iIDFrom, $iCode
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $iIDFrom
    case $anew[0]
    switch $iCode
    case 0
    GUICtrlSetState($aNew[1], $GUI_FOCUS)
    EndSwitch
    case $anew[1]
    switch $icode
    case 0
    GUICtrlSetState($aNew[2], $GUI_FOCUS)
    EndSwitch
    case $anew[2]
    switch $iCode
    case 0
    GUICtrlSetState($aNew[0], $GUI_FOCUS)
    EndSwitch

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

    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAN

    [/autoit]
  • Camera fern steuern

    • Andy
    • 2. Oktober 2009 um 02:29

    Hallo,
    vielleicht kannst du dieses Programm (oder ein anderes) über die Kommandozeile steuern, dann würde eine enfache Batch-(oder AutoIt-)Datei reichen.

    Oder du steuerst das Programm über Controlclicks, so wie das aussieht, sollte es auch kein Problem darstellen, zur Not reicht ja auch ein "Mausclick"-Script.
    In Scite gibts auch bei EXTRAS den Recorder, für einen Versuch der erste Anfang^^

    ciao
    Andy

  • Pixelsearch

    • Andy
    • 2. Oktober 2009 um 02:10

    Hi,
    zum Beispiel da könnte man sich anschauen wie man "mehrere"^^ Pixel finden kann....

    ciao
    Andy

    */Tante Edith sagt:/* Bei den "Bottern" im benachbarten Forum findes du aber sicherlich wesentlich bessere Beispiele....da hats haufenweise Spezialisten^^
    und weils so schön ist, dieser Beitrag passt wieder mal zum Thema!!!
    :rock:

  • GDI+ Bitmap speichern...

    • Andy
    • 29. September 2009 um 17:58

    thx vielmals...
    aber:^^
    Man bekommt beim Beispiel1 den "richtigen" Fensterinhalt in die Datei gespeichert, auch wenn GuiSetState() ausgeklammert ist. Das verstehe ich, man speichert ja direkt die Bitmap.

    Im 2. Beispiel wird, wenn ich die Bildbearbeitung im "Hintergrund" laufen lasse, nur eine Bildschirmcopy gespeichert. Das hat wohl den Grund, daß die devicecontexte die Bitmapdaten an der Position der (unsichtbaren) GUI auf dem Bildschirm kopieren. Wie müsste man das Script ändern, daß sowohl bei "eingeschalteter" GUI, als auch im Hintergrund die richtigen Bitmaps gespeichert werden?

  • GDI+ Bitmap speichern...

    • Andy
    • 29. September 2009 um 15:36

    Hallo,
    mal 2 Beispielscripte, ich hab gerade nen Gehirnkrampf und komme nicht weiter....
    Wie bekomme ich die die BITMAPS (innerhalb des Fensters) gespeichert...

    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, $hFormat, $hFamily, $hFont, $tLayout

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

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

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

    ; Draw a string
    _GDIPlus_Startup ()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hWnd)
    $hBrush = _GDIPlus_BrushCreateSolid (0x7F00007F)
    $hFormat = _GDIPlus_StringFormatCreate ()
    $hFamily = _GDIPlus_FontFamilyCreate ("Arial")
    $hFont = _GDIPlus_FontCreate ($hFamily, 12, 2)
    $tLayout = _GDIPlus_RectFCreate (140, 110, 100, 20)
    _GDIPlus_GraphicsDrawStringEx ($hGraphic, "Hello world", $hFont, $tLayout, $hFormat, $hBrush)

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

    ;*********************Bitmap soll gespeichert werden********************

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    ; Clean up resources
    _GDIPlus_FontDispose ($hFont)
    _GDIPlus_FontFamilyDispose ($hFamily)
    _GDIPlus_StringFormatDispose ($hFormat)
    _GDIPlus_BrushDispose ($hBrush)
    _GDIPlus_GraphicsDispose ($hGraphic)
    _GDIPlus_Shutdown ()

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

    EndFunc ;==>_Main

    [/autoit]


    oder hier....

    Spoiler anzeigen
    [autoit]

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

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

    Opt('MustDeclareVars', 1)

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

    _GDIPlus_Startup()

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

    local $hfile_Source = _GDIPlus_ImageLoadFromFile(@WindowsDir & "\web\wallpaper\Tulpen.jpg")
    local $hfile_dest = _GDIPlus_ImageLoadFromFile(@WindowsDir & "\web\wallpaper\Mondkrater.jpg")
    local $iX1 = 300;_GDIPlus_ImageGetWidth($hSource1)
    local $iY1 = 400;_GDIPlus_ImageGetHeight($hSource1)
    local $iX2 = 300;_GDIPlus_ImageGetWidth($hSource2)
    local $iY2 = 400;_GDIPlus_ImageGetHeight($hSource2)

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

    ;****************GUI DEST*******************
    local $hGui_dest = GUICreate("DEST", $iX1 , $iY1)
    local $hPic_dest = GUICtrlCreatePic('', 0,0, $iX1 , $iY1)
    local $hWnd_dest = WinGetHandle($hGui_dest)
    GUISetState(@sw_show,$hgui_dest)

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

    local $hGraphic_dest = _GDIPlus_GraphicsCreateFromHWND($hWnd_dest)
    local $hDestination_dest = _GDIPlus_BitmapCreateFromGraphics($iX1, $iY1, $hGraphic_dest)
    local $hGraphiccontext_dest = _GDIPlus_ImageGetGraphicsContext($hDestination_dest)
    _GDIPlus_GraphicsDrawImage($hGraphiccontext_dest, $hfile_dest, 0, 0) ;ziel in context schreiben
    _GDIPlus_GraphicsDrawImage($hGraphic_dest, $hfile_dest, 0, 0); ziel ist fenster

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

    ;****************GUI source*******************
    local $hGui_source = GUICreate("SOURCE", $iX2 , $iY2,10,10)
    local $hPic_source = GUICtrlCreatePic('', 0,0, $iX2 , $iY2)
    local $hWnd_source = WinGetHandle($hGui_source)
    GUISetState(@sw_show,$hgui_source)

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

    local $hGraphic_source = _GDIPlus_GraphicsCreateFromHWND($hWnd_source)
    local $hDestination_source = _GDIPlus_BitmapCreateFromGraphics($iX2, $iY2, $hGraphic_source)
    local $hGraphiccontext_source = _GDIPlus_ImageGetGraphicsContext($hDestination_source)
    _GDIPlus_GraphicsDrawImage($hGraphiccontext_source, $hfile_Source, 0, 0) ;wenn man das bild in den Context schreibt, kann man es speichern
    _GDIPlus_GraphicsDrawImage($hGraphic_source, $hfile_Source, 0, 0) ;bild in das Fenster zeichnen

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

    ;*************BITBLT*****************
    local $verfahren=$mergepaint
    local $hdc_dest = _WinAPI_GetDC($hgui_dest)
    local $hdc_source = _WinAPI_GetDC($hgui_source)
    sleep(1000)
    _WinAPI_BitBlt($hDC_dest, 0, 0, $ix1, $iy1, $hDC_source, 0,0, $verfahren)

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

    ;**************BITMAP aus Fenster DEST soll gespeichert werden**************

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

    Do
    Until GUIGetMsg() = -3

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

    _GDIPlus_Shutdown()

    [/autoit]

    thx vorab
    Andy

    EDIT/ soll nicht per screencopy, sondern "direkt aus dem Context gespeichert werden

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™