Clipboard mit Grafik-Kopie ausstatten

  • Musste mich leider neu registrieren, ich hatte einen alten Account aber der ist wohl beim Wechsel
    des Betriebssystems übern Jordan gegangen.

    Ich arbeite zur Zeit an einem einfachen Tool das einem eine grosse Hilfe bei der Web-Recherche sein soll.
    Man kann damit wenn es fertig ist, eine begrenzte Anzahl Text-Schnipsel HyperLinks und eben auch Bilder in

    einem Durchgang kopieren und sie in einem geeigneten
    Programm(Office und vergleichbares) wieder einfügen. So wäre es zumindest geplant.

    Links und Texte kopieren funktioniert schon mal fehlerfrei. Aber bei den Bildern

    scheitert es schon stundenlang. Was ich schon festgestellt hab ist, daß Windows die Bilder leider
    auch nur als "Temporäre Datei" abspeichert und dann anscheindend auf eine spezielle Art per

    Clipboard wieder einfügt, das kann ich leider nicht nachvollziehen.

    Und ausserdem wäre mir ein Möglichkeit lieber die mir erlaubt per Rechtsklick im Browser auf Grafik kopieren,

    das Bild direkt im Speicher abzulegen (ohne Dateisystem) und dann per Clipboard (Ctrl + v)

    wieder einzufügen. Das einzige was ich dabei bekomme,

    ist ein Dateipfad der eingefügt wird aber ich kriege kein Bild eingefügt.
    Das schon existierende Script, möchte ich erst später einstellen, da es aussieht wie eine furchtbare Baustelle

    und daher nicht hilfreich wäre um das Problem zu lösen.

    Aber wenn wir da eine Lösung finden, werde ich so gut ich kann aufräumen und das fertige Script
    dann natürlich einstellen, damit alle was davon haben.
    Das würde ich gerne auf Autoit verwirklichen und hoffe auf Eure Hilfe.


    Wo dürfte ich das lauffähige Tool einstellen ?

    Grüsse und ein herzliches Dankeschön an alle die mir geholfen haben.
    Tuxedo


    Herzlichen Dank Tuxedo :D

    8 Mal editiert, zuletzt von Tuxedo (17. Juli 2017 um 19:10)

  • Wenn du die entsprechenden Funktionen verwendest, dann kannst du in dem Clipboard auch Bilder abspeichern.
    Du musst uns nur noch verraten von wo du diese Bilder herkriegst. Wenn es eine Website ist, die du mit dem Internet Explorer ansteuerst, dann kannst du mit InetGet und dem Src-Attribut die Datei downloaden und mit den _ClipBoard_*-Funktionen es dort einfügen.
    Wenn du eine Datei auf dem System hast, dann sollte das auch mit den Funktionene gehen.

    https://www.autoitscript.com/autoit3/docs/l…ard_SetData.htm

  • Danke Alpines ich hab mir den Link angesehen, aber da ich schon stunden vergeblich daran sitze, sehe ich leider
    im Moment den Wald vor lauter Bäumen nicht mehr. Ein kleines Beispiel wie man den Befehl mit einem
    Bild im Clipboard platziert würde mich vielleicht wieder auf die spur bringen.
    Und ausserdem ginge das wohl auch wieder nur mit externen Dateien auf der Festpaltte, gibt es keine
    Möglichkeit das nur über den Speicher zu lösen.
    Und zu deiner anderen Frage, ich verwende nur den Firefox(Grafik kopieren), aber es wäre natürlich wünschenswert,
    wenn es auf anderen Browsern auch läuft, sollen ja alle Leute nutzen können.

  • Du kannst ein GDI Bild mit

    AutoIt
    _ClipBoard_SetDataEx($hHBitmap, $CF_BITMAP)

    in den Clipboard kopieren, musst vorher noch das Bild mit

    AutoIt
    _WinAPI_CopyImage()

    umwandeln, z.B.


    AutoIt
    $hHBitmap = _WinAPI_CopyImage($hHBmp, 0, 0, 0, BitOR($LR_COPYDELETEORG, $LR_COPYRETURNORG))

    $hHBmp ist ein GDI Handle -> nicht GDI+!

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Es ist zum "Kreide Fressen", aber ich kriege damit kein Ergebnis hin, und das Absolut besch.... ist, daß ich
    keine Möglichkeit habe zu überprüfen "Was und Wie" es im Clipboard aussieht.

    Ich weiss nicht ob wegen eines Fehlers nix im Clipboard landet oder ob was im Clipboard ist,
    aber ich es nicht herausbekomme.

  • Am besten gibst du uns mal den Code, oder beispielcode, bei dem der Fehler auftritt, dann kann man das bestimmt ausbessern.
    Wenn du nicht auf der Festplatte speichern möchtest schau dir mal diese Funktionen an:

    AutoIt
    InetRead("URL",8);Gibt dir Binary vom Bild
    _GDIPlus_BitmapCreateFromMemory ;erstellt dir ein Bitmap vom InetRead.

    Das erstellte Bild kannst du dir dann ja auch mal auf eine Gui-zeichnen lassen, dann weißt du, ob du es richtig runterlädst und kannst dann schauen, dass du es ins clipboard bekommst.

  • Danke Kanashius dein Tipp bringt mich schon etwas vorwärts mit folgendem Code bekomme ich schon mal
    den Binarycode in die Zwischenablage. Allerdings kriege ich es nicht hin das ganze so ins Clipboard zu bringen,
    daß es mit "Ctrl + V" als Bild in der Zielanwendung eingefügt wird.
    Entweder bekomme ich gar nix oder nur den Hexcode eingefügt. Was muss ich anstellen, damit ich den Code als
    Bild eingefügt bekomme.
    UEZ dein Tipp bringt mich leider auch nicht weiter, trotzdem danke.


    Einmal editiert, zuletzt von Tuxedo (13. Juli 2017 um 10:10)

  • Probiere es mal damit:

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Herzlichen Dank "UEZ", das funktioniert bestens und genauso wie ich es wollte.
    Ich verstehe noch nicht wie es funzt aber es geht bestens, dann werde ich mich da mal reinstudieren und
    wenn ich es begriffen habe integriere ich es in mein bestehendes Script, und stelle es dann ein.

    Schönen Tag und Danke an die Helfer
    Tuxedo

  • Ich hoffe, ich darf den Thread wieder aktivieren, es hat sich einiges getan. Ich dachte nicht daß ich es so schnell schaffe.
    Das Tool ist inzwischen brauchbar und ich könnte es einstellen, soll ich das hier im ersten Thread reinstellen, wenn ja wie am Besten(als au3 Datei oder als Code oder muss ich Spoiler verwenden), wenn nein soll ich es unter der Rubrik Scripte
    reinstellen. Es läuft ist aber noch nicht ganz fertig, könnte noch Fehler enthalten.
    Habe aber gestern schon viele Fehler ausgebessert.

    Ausserdem haben sich neue Probleme gezeigt, die Tipps von "UEZ" haben mir sehr weitergeholfen, aber das geht
    leider nur für PNG Files. Ich dachte ich könnte es für die gängigsten Internet-üblichen Bildformate wie Gif (Nicht Animierte)
    JPG( JPEG) / PNG verwenden. Ich denke das sollte die meistverwendeten Bilder abdecken, falls ich Fehl-informiert bin
    bitte mich zu korrigieren.
    Es stellt sich also noch die Frage wie kann man das Bespiel von UEZ an die anderen Formate anpassen, ich habe keinen
    Hinweis darauf gefunden. Wo nehmen eigentlich die guten Progammierer solche Infos her.
    Am Infos finden behindern mich leider zudem meine sehr eingeschränkten Englisch-Sprachkenntnisse.
    Ich verstehe meistens nur einen halben Satz (oder weniger), so ist es sehr mühsam englische Texte zu lesen,
    verstehen ist meistens nicht drin.


    Wie lässt sich dieses Beispiel auf die anderen Bildformate(JPG(JPEG) GIF anpassen ?

    Einmal editiert, zuletzt von Tuxedo (14. Juli 2017 um 13:12)

  • Hallo @Tuxedo,

    ich habe eben mal das Skript von UEZ ausprobiert. Sowohl jpg als auch gif machen hier keine Probleme und funktionieren genau wie png.

    Spoiler anzeigen

    Grüße autoiter

  • Danke für die Antwort, wenn das tatsächlich so ist muss ich den Fehler in meinem Script finden.
    Denn bei mir wird nur bei PNGs das Bild eingefügt, bei GIF oder JPG bekomme ich nur den Hex-Code eingefügt.

    Aber Warum?

    Edit: Danke @autoiter , nach deiner Aussage daß alles funktionieren würde, habe ich nochmal mein Script genauer
    durchgesehen und den Fehler gefunden. Ich verstehe es zwar noch nicht ganz, aber ich hatte wohl einen Fehler
    bei der Erkennung der eingefügten Blid-Dateitypen, jetzt läuft es auch bei mir, Danke.

    6 Mal editiert, zuletzt von Tuxedo (14. Juli 2017 um 21:07)

  • Hallo Kollegen, es gibt doch noch Probleme mit dem Script, aber jetzt weiss ich wo genau der Fehler entsteht.
    Irgendwas scheint mit dem Download schif zu laufen, deshalb meint autoiter auch es ginge bei Ihm und bei mir
    kam eben nichts an.
    Merkwürdig ist, daß es auf unzähligen Seiten sauber läuft, auf anderen seiten hingegen kommt nix an.
    Im ScriptSample sollte ein Avatarbild von dieser Seite geladen werden, in der $Url steht auch immer
    die richtige Adresse, aber in $Clip kommt eben nix an. Ersichtlich ist lediglich, daß statt der erforderlichen
    32209 Bytes nur 12157 Bytes ankommen. Warum weiss ich leider auch nicht.
    Passiert das bei anderen Usern auch oder nur bei mir?

    Falls inetread hier ein Problem hat, gibt es eventuell eine Alternative Möglichkeit die Blidchen direkt in den
    Speicher einzulesen ?

  • Ich denke, das Problem hat mit dem Sicherheitszertifikat von AutoIt.de zu tun.
    Das habe ich schon mehrmals beobachtet, mit WinHttp kommt man nicht auf die Seite hier, InetRead versagt auch völlig und der Internet Explorer schafft es ebenfalls nicht.

    Mit anderen Seiten klappt es nämlich:

    AutoIt
    $Url = "https://upload.wikimedia.org/wikipedia/commons/5/5b/PallasJupiter.GIF"
    	MsgBox(4096, "Meldung", $Url)
    	;HttpSetUserAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0")
    	$Clip = InetRead($Url,16+1);Gibt dir Binary vom Bild
    	MsgBox(4096, "Meldung", $Clip&@CRLF&@extended);es sollten 32209 Bytes sein nicht 12157
    	$hFIle = FileOpen("test.gif", 16 + 1)
    	FileWrite($hFIle,$Clip)
    	FileClose($hFIle)
    	$ClipAlt = ClipGet()
  • Das ist aber schade, Winhttp hätte ich als Alternative angedacht.
    Das kann ich mir dann also auch sparen wenn ews mit inet nicht geht. Deine Meldung bedeutet also, daß ich solche
    nur mit https Seiten habe.
    Lässt sich das Zertifikat von Autoit irgendwie austauschen oder muss ich mit dem Sch... leben.

  • Also ich habe gar keine Probleme mit dem von dir geposteten Link auf alpines Avatar und InetRead..

    Ich glaube eher an lokale Probleme. Schlechtes Internet oder so. ^^
    Vielleicht hilft dir der Download mit InetGet? Da habe ich dir mal einfach den Code aus der Hilfe zu InetGetInfo in das Skript von UEZ kopiert. Wird hier bei dir erfolgreich heruntergeladen?

    Spoiler anzeigen

    Grüße autoiter