Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

ein bild aus der windowsablage herauslesen und hineinschreib

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 21.09.2006, 21:56    Titel: ein bild aus der windowsablage herauslesen und hineinschreib Antworten mit Zitat

hallo, ich möchte ein bild aus der windowsablage herauslesen und hineinschreiben, wie kann ich das bewerkstelligen?

in der bi von windows habe ich folgendes gefunden:
declare function SetClipboardData (byval as UINT, byval as HANDLE) as HANDLE

wie setze ich das jetzt in freebasic um, um ein bmp-bild in die ablage zu packen?

mfg
pebisoft
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eisbaer



Anmeldungsdatum: 16.10.2004
Beiträge: 354
Wohnort: Deutschland,Bayern

BeitragVerfasst am: 22.09.2006, 08:41    Titel: das selbe :-) Antworten mit Zitat

Selbes vorgehen....

http://forum.qbasic.at/viewtopic.php?t=3271

Gruß eisbaer
_________________
Eigene Webseite:
http://www.eisbaer-studios.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 22.09.2006, 15:03    Titel: Antworten mit Zitat

es geht auch darum wie ein bmp-bild in ein handle umgewandelt wird.

man kann 100mal lesen, ich brauche direkte hilfe. dieses ist ein dll-problem.

die datei die du vorgeschlagen hast, löst nicht das problem.
ich glaube, du weisst nicht ganz genau um was es geht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1875
Wohnort: D59192

BeitragVerfasst am: 22.09.2006, 15:23    Titel: Antworten mit Zitat

Hi pebisoft,
es gibt hier eine Suchfunktion, die so manches Problem schneller erledigt als auf eine passende Antwort Tage zu warten.
Ok, nicht jedes Thema wurde hier im Forum schon besprochen aber in den fast zwei Jahren FreeBasic ist schon eine Menge zusammen gekommen.
In deinem Fall versuch doch mal nach 'SetClipboardData' hier zu suchen und du wirst sofort fündig.
Weiter gibt es noch das engl. Forum oder google.
Mit diesem einfachen Informationsmanagement kann ich zu 99% die passenden Informationen erhalten.

Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 22.09.2006, 17:52    Titel: Antworten mit Zitat

mit text ist kein problem, habe ich gelöst.
es geht um grafik.

"DIM hbmClip AS HBITMAP" , dieses kann ich in freebasic nicht umsetzen.

so sieht es in "bcxtoc aus" :

SUB GetClipBoard_Grafik ()
DIM hbmClip AS HBITMAP
OpenClipboard (0)
hbmClip = GetClipboardData(CF_BITMAP)
CloseClipboard ()
BCX_PUT (Form1,hbmClip,200,100,200,200)
End Sub

SUB SetClipBoard_Grafik ()
DIM hbmClip AS HBITMAP
OpenClipboard (0)
hbmClip = BCX_GET(Form1,20,50,100,100)
EmptyClipboard ()
SetClipboardData (CF_BITMAP,hbmClip)
CloseClipboard ()
end Sub
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.09.2006, 18:06    Titel: Antworten mit Zitat

pebisoft hat Folgendes geschrieben:
mit text ist kein problem, habe ich gelöst.
es geht um grafik.

"DIM hbmClip AS HBITMAP" , dieses kann ich in freebasic nicht umsetzen.

so sieht es in "bcxtoc aus" :
Code:

SUB GetClipBoard_Grafik ()
   DIM hbmClip AS HBITMAP
   OpenClipboard (0)
   hbmClip = GetClipboardData(CF_BITMAP)
   CloseClipboard ()
   BCX_PUT (Form1,hbmClip,200,100,200,200)
End Sub

SUB SetClipBoard_Grafik ()
   DIM hbmClip AS HBITMAP
   OpenClipboard (0)
   hbmClip = BCX_GET(Form1,20,50,100,100)
   EmptyClipboard ()
   SetClipboardData (CF_BITMAP,hbmClip)
   CloseClipboard ()
end Sub
Wenn du deinen Code in Code-Tags packst, sieht es
genauso schick aus..
[ code ]
..
ProgrammText
..
[ /code ]
(ohne Leerzeichen bei den eckigen Klammern, sie dienen hier nur zur Darstellung..)
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eisbaer



Anmeldungsdatum: 16.10.2004
Beiträge: 354
Wohnort: Deutschland,Bayern

BeitragVerfasst am: 23.09.2006, 11:57    Titel: Clipboard Funktionen nutzen... Antworten mit Zitat

@ pebisoft

Da ich ja sehe das der Herr die PureBasic Sprache besitzt, und ich diese ja auch habe, weiß ich das es möglich ist in selbiger Sprache eine DLL Datei zu compilieren, so.. und PB hat eine wunderschöne Funktion um ein Bild oder einen Text in das Clipboard zu kopieren...

Also könnte man ja mit dieser Funktion und einer eigenen DLL diesen Aufruf erledigen lassen, und die an die eigene DLL übergebene Grafik dann ins Clipboard pusten.

Oder www.google.de für Infos.

zb. VB
http://www.aboutvb.de/vba/artikel/vbaclipboard.htm


Zitat:
Für alle die es interessiert, der Parameter bzw. die Identifizierung ob eine BITMAP im Cliboard ist, muß mittels CF_DIB und nicht mittels CF_BITMAP erfolgen.
CF_DIB hat den Wert 8.



Gruß Eisbaer
_________________
Eigene Webseite:
http://www.eisbaer-studios.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 23.09.2006, 13:46    Titel: Antworten mit Zitat

ich besitze mehrere sprachen : visualbasic pro 5.0 deutsch, purebasic version 4.0, blitzbasic3d, bcxtoc, aber ich möchte es in freebasic lösen.
daran habe ich auch gedacht (dll wäre einfach), aber es müsste doch auch in freebasic gehen, zumal die textablage beschrieben und gelesen werden kann und die befehle in der windows.bi intregiert sind:

Code:

#include "windows.bi"

Declare sub WRITEclipboard(text as string)
Declare function READclipboard() as string

dim a$

    a$="hallo pebisoft, es geht doch !!!"
    WRITEclipboard(a$)
    sleep
    b$=READclipboard()
    print b$
    input a
end

sub WRITEclipboard(text as string)
    dim lpMem       as any ptr
    Dim hGlobalClip as any ptr

    hGlobalClip = GlobalAlloc(GMEM_MOVEABLE Or GMEM_SHARE, len(text)+1)
    OpenClipboard(0)
    EmptyClipboard()
    lpMem=GlobalLock(hGlobalClip)
    lstrcpy(lpMem, strptr(text))
    GlobalUnlock(lpMem)
    SetClipboardData (CF_TEXT, hGlobalClip)
    CloseClipboard()
end sub

function READclipboard() as string
    dim hGlobal as any ptr
    dim pGlobal as any ptr
    dim txt     as string

    OpenClipboard(0)
    hGlobal = GetClipboardData(1)
    if hGlobal then
        pGlobal = GlobalLock(hGlobal)
        txt=space(lstrlen(pGlobal)) 'Txt auf die Länge des Clipboards bringen
        lstrcpy(strptr(txt), pGlobal)
        READclipboard=txt
    end if


mir geht es um diesen befehl : DIM hbmClip AS HBITMAP

ich such in freebasic die lösung für eine dimvariable die als hbitmap funktioniert (zeiger). ich versteh das nicht so recht, wie ich das hier hinbekomme.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 23.09.2006, 14:42    Titel: Antworten mit Zitat

habe diese einmal genommen .
Code:

#include "windows.bi"

Option Explicit
Dim img As Integer Ptr
Dim As Integer breit, hoch

Screen 18,32 'Bit per Pixel = 32
breit = 256 'Bildbreite und
hoch = 256   'Bildhöhe sind bekannt
img = ImageCreate (breit, hoch) 'Image bilden

OpenClipboard (0)
img = GetClipboardData(CF_DIB)
CloseClipboard ()
Put (20,20), img, PSet         'Image anzeigen
Print "mit Tastendruck geht es weiter.. ";
Sleep

ImageDestroy img 'Image aus dem Speicher löschen
End


das bild kommt noch nicht auf dem bildschirm. der innere ablauf muss schon funktionieren, weil er bei einer bildfreien ablage meckert.
wenn mir jetzt noch einer auf die sprünge helfen würde, wie man evtl die bildvariable konstruieren muss, müsste es eigentlich funktionieren. denn die img ptr geht wohl so nicht. in der ablage wird immer ein bmp-bild abgelegt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 23.09.2006, 18:14    Titel: Antworten mit Zitat

Mach den Bildzeiger lieber als ANY PTR.

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 23.09.2006, 19:41    Titel: Antworten mit Zitat

das bild sehe ich immer noch nicht auf dem bildschirm.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1875
Wohnort: D59192

BeitragVerfasst am: 23.09.2006, 23:25    Titel: Antworten mit Zitat

eine Lösung kann ich dir nicht bieten ..
aber warum es nicht funktioniert kann ich mir denken.
Das Format mit dem die Ablage bei CF_DIB arbeitet ist dem BMP-Format (Header) sehr ähnlich (oder sogar gleich?).
Das Format eines Image ist aber sehr einfach und nicht mit dem BMP Format vergleichbar.
Was man also braucht ist ein DIB2Image Tool (Konvertierer).
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 24.09.2006, 00:08    Titel: Antworten mit Zitat

Siehe englisches Forum

Ich denke, dieser Code sollte genügen, um eine DIB2Image Function zu schreiben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1875
Wohnort: D59192

BeitragVerfasst am: 26.09.2006, 09:06    Titel: Antworten mit Zitat

ja, sehr gutes Prog aber für das Clipboard speziell ist
http://www.freebasic.net/forum/viewtopic.php?p=46882#46882
(Clip.rar) genau richtig.

Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 26.09.2006, 12:13    Titel: Antworten mit Zitat

bekomme keine verbindugn dort hin.
"no found"

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz