Visual Basic 2010 - Datei in Zwischenablage

  • VB.NET
  • .NET (FX) 4.0

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von kimo.

    Visual Basic 2010 - Datei in Zwischenablage

    Hallo zusammen.
    Ich möchte mit VB 2010 Express eine Datei (aus Pfad) in die Zwischenablage laden.
    bei der Datei handelt es sich um eine CLP-Datei welche mit der Windows Zwischenablage via "Datei-Speichern unter.." erstellt wurde.
    Es muss doch möglich sein diese aus einem Pfad heraus wieder in die Zwischenablage zu laden ?
    So dass der Anwender diese einfach mit Ctrl+V wieder einfügen kann.. :whistling:

    Vielen Dank für Eure Hilfe

    Label korrigiert. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Hallo,

    also erstmal kenne ich solche Dateien nicht, könntest du eventuell mal ein Beispiel schicken.

    Du kannst dir aber auch mal den Link anschauen:
    docs.microsoft.com/de-de/dotne…eading-from-the-clipboard

    Viele Grüße
    Florian
    ----

    WebApps mit C#: Blazor
    Hallo Florian.
    Es gab bei früheren indows Versionen ein Programm (clipbrd.exe) mit welchem man den Inhalt der Zwischenablage einsehen konnte.
    Man konnte den Inhalt auch als 'clp' Datei abspeichern und später auch wieder öffnen.
    Meine Dateien enthalten Symbole aus einem CAD Programm.. also nicht einfach nur reinen Text oder so.
    Es muss auch nicht zwingend via 'cl'p gehen.. Ich möchte einfach den Inhalt der Zwischenablage speichern und später wieder per vb-Code laden.
    Hallo,

    dann versuche es mal mit den Methoden aus dem Link:

    Mit

    VB.NET-Quellcode

    1. My.Computer.Clipboard.GetText()

    bekommst du den aktuellen Text in der Zwischenablage.

    Hier kannst du ihn dann z.B. in eine Textdatei schreiben und ihn beim erneuten Programmstart wieder auslesen.

    Mit

    VB.NET-Quellcode

    1. My.Computer.Clipboard.SetText("Hier steht dein Text")

    kannst du deinen ausgelesenen Text in die Zwischenablage speichern.

    Ich hoffe das war einigermaßen verständlich erklärt und funktioniert auch. :)

    Viele Grüße
    Florian
    ----

    WebApps mit C#: Blazor

    kimo schrieb:

    Ich möchte aber eine CAD Grafik speichern.
    Schreib mal eine vollständige und belastbare Aufgabenstellung.
    Es sieht mir eher aus, als wolltest Du den Inhalt einer solchen Datei in die Zwischenablage kopieren.
    Das dürfte auch für einen fortgeschrittenen Programmierer nicht ganz trivial sein, denn dazu muss das Format dieser Datei bekannt sein.
    Wenn es sich hierbei um ein speziell registriertes Sonderformat handeln sollte, solltest Du Dich mit dem Vertreiber dieses Programms unterhalten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich konnte jetzt die CAD Grafik als Windows Metafile (wmf) speichern. Kann ich denn diese nicht per VB in die Zwischenablage kopieren ?
    Das File liegt im Verzeichnis C:\Grafik.wmf und soll in die Zwischenablage kopiert werden...

    Vielen Dank für Eure Hilfe !
    @kimo Ganz pauschal gugst Du hier:
    dotnet-snippets.de/snippet/dat…wischenablage-kopieren/52
    Das Problem ist, dass die Datei, die sich in der Zwischenablage befindet, halt eine Datei ist, die eine beliebige Extension haben kann, die in keinem Bezug zu ihrem Inhalt hat.
    Beispiel:
    Kopiere eine JPG-Datei in die Zwischenablage und versuche sie in Paint oder IrfanView einzufügen, das feht nicht.
    Also:
    Lies Dir Post #6 noch mal durch und schreibe, was ganz genau Du eigentlich erreichen willst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    wmf Datei in Zwischenablage

    Hallo zusammen.
    So, ich habe jetzt so eine Metadatei (Symbol.wmf) hochgeladen..
    Scheinbar ist nicht ganz klar was ich machen will.. Sorry für die undeutliche Fragestellung :whistling:
    Ich habe in einem Verzeichnis solche Metadateien welche aus einem CAD Programm stammen.
    Nun möchte ich per VB Code (Visual Basic 2010 Express) den Inhalt so einer Datei in die Zwischenablage kopieren.
    Der Anwender muss dann im CAD nur noch Ctrl+V drücken, und kann das Symbol absetzen.
    Die Symbole bestehen aus Vektoren wie Linien oder Kreise und auch Text.
    Das wmf Format muss doch dafür geeignet sein. Denn gemäss Wikipedia wurde es extra dafür entwickelt:

    Windows Metafile (WMF) ist ein proprietäres Metafile-Grafikformat der Firma Microsoft. Es wurde für den Austausch von Grafiken über verschiedene Programme hinweg entwickelt und findet unter anderem in der Windows-Zwischenablage Verwendung. Werden Grafiken im WMF-Format abgespeichert, so tragen die Dateien die dreibuchstabige Dateinamenserweiterung .wmf. WMF ist ein 16-bit-Format, das bereits mit Microsoft Windows 3.0 eingeführt wurde.

    WMF ist ein vektorbasiertes Dateiformat. Das heißt, scharfe Kanten bleiben auch nach beliebiger Vergrößerung scharf. Zusätzlich können Flächen mit Rastergrafik gefüllt werden.

    Der Namensbestandteil „Meta“ weist darauf hin, dass dieses Format für den Datenaustausch über die Zwischenablage entworfen wurde.



    Vieln Dank für Eure Hilfe !!
    Dateien
    • Symbol.zip

      (1,74 kB, 96 mal heruntergeladen, zuletzt: )
    Dafür muss man herausfinden, welche Clipboard-Format-Angabe das CAD-Programm erwartet.
    Das geht nicht direkt, weil du kannst in den CAD-Code ja nicht reingucken.
    Du kannst aber das wmf-File ins Clipboard nehmen auf eine Weise, von der du weist, dass das CAD-Prog es akzeptiert.
    Und dann mit einem selbstgeschriebenen Proggi nachgucken, welche FormatAngaben im Clipboard präsent sind - es sind oft mehrere.
    Wenn du dann codeseitig ein wmf ins Clipboard steckst, dann unter einer dieser FormatAngaben - muss man rumprobieren.

    Guck dirmal diesen AVB-Tipp an: activevb.de/tipps/vbnettipps/tipp0086.html%0D%0A
    (kann sein du musst dich auf der Site registrieren)
    Dort wird mit Clipboard.GetDataObject und IDataObject.GetFormats operiert, um die Formate des aktuell im Clipboard liegenden Objekts rauszukriegen.
    @kimo Also:
    Besser ist es, Du verwendest das neuere EMF-Format, WMF ist nicht ganz .NET-kompatibel.
    Ich hab mal ein kleines Beispielprojekt gemacht, das eine EMF-Datei der Zwischenablage hinzufügt.
    Ist elementar einfach und selbsterklärend.
    EmfToClipboard.zip
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo RodFromGermany.
    Vielen Dank !!! Das funktioniert einwandfrei. :thumbsup:
    Habe jetzt etwas damit herumexperimentiert... Leider gehen Hyperlinks welche den Grafiken zugewiesen sind verloren. Das könnte
    noch zum Problem werden auf meinem weiteren Weg :/ Manche Grafiken brauchen zwingend Hyperlinks um damit verknüpfte Fotos zu öffnen.
    Aber vielleicht gibt's auch dafür noch eine Lösung..

    Jedenfalls Vielen Dank an Alle die mir geholfen haben !

    kimo schrieb:

    Hyperlinks welche den Grafiken zugewiesen sind verloren
    Kannst Du rauskriegen, ob das beim Konvertieren zu EMF passiert (ich hab das mit dem Irfanview gemacht)?
    Mit solchen Hyperlinks hab ich noch nicht gearbeitet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!