Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
pebisoft gesperrt
Anmeldungsdatum: 28.11.2004 Beiträge: 131
|
Verfasst am: 21.09.2006, 21:56 Titel: ein bild aus der windowsablage herauslesen und hineinschreib |
|
|
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 |
|
|
Eisbaer
Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
|
Nach oben |
|
|
pebisoft gesperrt
Anmeldungsdatum: 28.11.2004 Beiträge: 131
|
Verfasst am: 22.09.2006, 15:03 Titel: |
|
|
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 |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 22.09.2006, 15:23 Titel: |
|
|
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 |
|
|
pebisoft gesperrt
Anmeldungsdatum: 28.11.2004 Beiträge: 131
|
Verfasst am: 22.09.2006, 17:52 Titel: |
|
|
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 |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 22.09.2006, 18:06 Titel: |
|
|
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 |
|
|
Eisbaer
Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
Verfasst am: 23.09.2006, 11:57 Titel: Clipboard Funktionen nutzen... |
|
|
@ 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 |
|
|
pebisoft gesperrt
Anmeldungsdatum: 28.11.2004 Beiträge: 131
|
Verfasst am: 23.09.2006, 13:46 Titel: |
|
|
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 |
|
|
pebisoft gesperrt
Anmeldungsdatum: 28.11.2004 Beiträge: 131
|
Verfasst am: 23.09.2006, 14:42 Titel: |
|
|
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 |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
|
Nach oben |
|
|
pebisoft gesperrt
Anmeldungsdatum: 28.11.2004 Beiträge: 131
|
Verfasst am: 23.09.2006, 19:41 Titel: |
|
|
das bild sehe ich immer noch nicht auf dem bildschirm. |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 23.09.2006, 23:25 Titel: |
|
|
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 |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 24.09.2006, 00:08 Titel: |
|
|
Siehe englisches Forum
Ich denke, dieser Code sollte genügen, um eine DIB2Image Function zu schreiben. |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 26.09.2006, 09:06 Titel: |
|
|
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 |
|
|
pebisoft gesperrt
Anmeldungsdatum: 28.11.2004 Beiträge: 131
|
Verfasst am: 26.09.2006, 12:13 Titel: |
|
|
bekomme keine verbindugn dort hin.
"no found"
mfg |
|
Nach oben |
|
|
|