Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Bild im Zwischenspeicher als JPG Datei speichern?

Begonnen von Dagmar176, April 15, 2014, 19:42:02

⏪ vorheriges - nächstes ⏩

Dagmar176

Hallo Leute, hat jemand ein Code, wie ich eine Grafik aus dem Zwischenspeicher als JPG-Datei speichern kann.

Im vorraus besten Dank

database

Hallo,

ich glaube kaum dass jemand eine so NICHT-alltägliche Problemlösung parat hält.  :-\

Aber du kannst dich da mal schlau machen:

http://www.vbarchiv.net/workshop/workshop_25-die-zwischenablage-im-griff.html
http://www.office-loesung.de/ftopic448977_0_0_asc.php

In VB6 würde/sollte das in etwa so ablaufen:


Private Sub DeinButton_Click()
    Dim imgBild As StdPicture
    Set imgBild = Clipboard.GetData
    SavePicture imgBild, "X:\BildAusZwischenablage.jpg"
    Set imgBild = Nothing
End Sub



Ob das in VBA genauso läuft müsstest du ausprobieren

Dagmar176

Der Code sieht sehr einfach aus. Leider funktioniert er bei Access VBA nicht. Schade.

Hat jemand noch eine Idee bzw ein Code??

database

Hallo,

nun, Dr. Google und Co fördern bei entsprechender Suche doch einiges zu Tage  ;)

http://www.access-programmers.co.uk/forums/showthread.php?t=245198

Da findet sich eine Beispielanwendung (Access) mit der ein Bild kopiert und gespeichert wird - also mit Zugriff auf die Zwischenablage.

HTH

Dagmar176

Hallo database, besten Dank.
werde versuchen es für meine Anwendung umzubauen.

Ich beziehe die Grafik aus ein Activex Barcodemodul.
Mit dem Befehl  Barcode39_1.CopyMetafile wird die Grafik in den Zwischenspeicher übergeben.
Weiß du  in welchen codebereich / wie ich am besten die Grafik übergeben kann??

In diesen Bereich wird scheinbar ein Snapshot erstellt. Da müsste ich irgendwie meine Grafik hineinbekommen.

Sub AltPrintScreen()
    keybd_event VK_MENU, 0, 0, 0
    keybd_event VK_SNAPSHOT, 0, 0, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
End Sub

Ich bin leider noch anfänger

database

Hallo,

ich kann dir da leider nicht weiter helfen.
Ich habe mich mit diesen Dingen bis dato nie beschäftigt.

Wenn du die BeispielDB aus meinem Link gezogen hast, dann setze einen Haltepunkt in das Modul und lass dann mit F8 die Sache schrittweise ablaufen.
Was ich so mitbekommen habe, erstellt das Ding eine Kopie des Formularfensters und speichert dieses dann ab.
Aus der Codeablauf-Folge müsste ja ersichtlich sein, wo und wie die Graphik in und aus der Zwischenablage kommt.


Dagmar176

Besten Dank erst mal, den Code bin ich bereits schrittweise durchgegangen. Ist nicht ganz einfach zu verstehen. Ich werde mal ein bisschen testen.


bahasu

Hallo,

falls noch keine lauffähige Lösung vorhanden sein sollte, anbei zwei Links, die unter VBA
1. ein Screenshot erstellen:
http://www.vbarchiv.net/tipps/tipp_13-screenshots-per-quellcode-erstellen.html
und
2.  dieses abspeichern:
http://www.office-loesung.de/ftopic136951_0_0_asc.php  dort den Beitrag vom 09. Jun 2008, 10:44
Den dort aufgeführten Verweis bitte setzen.

Und noch eine kleine Abwandlung:
Public Function GrafikZwischenablage2Datei(DatName As String) As Boolean
    Dim lPicType As Long, oPic As Variant
   
    lPicType = xlBitmap
    Set oPic = PastePicture(lPicType)

    If Not oPic Is Nothing Then
        If lPicType = 2 Then DatName = DatName & ".jpg"
        SavePicture oPic, DatName
        GrafikZwischenablage2Datei = True
    End If
End Function



Der Aufruf erfolgt z.B. mit:
    MakeScreenshot (False)
    GrafikZwischenablage2Datei (CurrentProject.Path & "\" & "ZZZZ")


Statt dem "aussagekräftigem" Namen "ZZZZ" bitte eigene Vorstellungen verwenden.

Harald
Servus

bahasu

Hi,

und hier nun im Anhang ein Beispiel: Unzippen und die access-Anwendung aufrufen.
Diese minimiert sich dann.
Wird dann mit alt-Druck eine Bildschirm-Kopie in die Zwischenablage gebracht, wird diese im Verzeichnis der access-Anwendung unter dem Namen: HC_Jahr_Monat_Tag_Uhrzeit.jpg gespeichert.
Beendet wird das automatische Speichern {auf dass die Festplatte doch endlich voll werde  ;D} durch Schliessen der access-Anwendung.

Harald
Servus

HacklSchorsch

Hi Harald,
klingt gut, leider nur als *.mde ?  Würde ich gern an meine Anforderungen anpassen...  :-)

Gruß Georg


HacklSchorsch

Ah, ich dachte Du würdest die Datei als *.jpg speichern (danach hatte ich gesucht). Ist leider auch nur ein Bitmap, nur mit falscher Extension.

Gruß Georg

PhilS

Zitat von: HacklSchorsch am Juni 07, 2017, 20:48:51
Ah, ich dachte Du würdest die Datei als *.jpg speichern (danach hatte ich gesucht). Ist leider auch nur ein Bitmap, nur mit falscher Extension.

Hier ist ein Beispiel, wie man eine Bitmap in ein JPG umwandeln kann.
http://www.mvps.org/emorcillo/en/code/vb6/savejpggdip.shtml
Das ist allerdings etwas komplizierter, als nur die Dateiendung zu ändern. ;-)
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

bahasu

Hallo Phils

Danke für den Link. Funktioniert prima.

Harald
Servus