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:

angezeigten text in Zwischenablage kopieren

 
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
Devil



Anmeldungsdatum: 21.12.2005
Beiträge: 2

BeitragVerfasst am: 21.12.2005, 08:18    Titel: angezeigten text in Zwischenablage kopieren Antworten mit Zitat

hi, nachdem ich im forum nicht fündig geworden bin will ichs mal so versuchen. bin noch totaler anfänger.
ich möchte gern folgendes erreichen:
Beispiel: user print A Text soundso wird angezeigt. OK das hab ich schon hinbekommen .
was ich nicht weiss ist wie ich das problem lösen kann
user print 1 kopier den angezeigten text in zwischenablage, so das ich ihn einfach mit strg-V in einem anderen programm einfügen kann.
ich hoffe ich hab mich nicht zu unklar ausgedrückt und mit der frage nicht allzu grosse lachflashs ausgelöst grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeterHarder



Anmeldungsdatum: 27.03.2005
Beiträge: 45
Wohnort: Deutschland

BeitragVerfasst am: 22.12.2005, 00:25    Titel: Antworten mit Zitat

Hier ist mal die Procedure "SetClipboardText()" und die Function "GetClipboardText", so wie ich sie in GFA-Basic verwende. Dürfte kein Problem sein, die nach FreeBasic anzupassen (% ist in GFA-Basic 4-Byte, Procedure(...)=Sub(ByVal ...)).

Code:
Procedure SetClipboardText(txt$)
  Local lpMem%,  hGlobalClip%
  ' GLOBAL hGlobalClip%
  hGlobalClip% = GlobalAlloc(GMEM_MOVEABLE Or GMEM_SHARE, Len(txt$) + 1)
  If txt$ <> "" And hGlobalClip% <> 0
    If GlobalSize(hGlobalClip%) > 0
      If OpenClipboard(0)
        ~EmptyClipboard()
        txt$ = Left$(txt$, GlobalSize(hGlobalClip%) - 1) ' String kappen, falls zu lang
        txt$ = txt$ + Chr$(0)
        lpMem% = GlobalLock(hGlobalClip%)
        MemBFill lpMem%, GlobalSize(hGlobalClip%), 0  ' Alles mit Nullbytes auffüllen
        ~lstrcpy(lpMem%, V:txt$)
        ~GlobalUnlock(hGlobalClip%)
        ~SetClipboardData(CF_TEXT, hGlobalClip%)
        ~CloseClipboard()
      EndIf
    EndIf
  EndIf
  ~GlobalFree(hGlobalClip%)
Return

Function GetClipboardText$()
  Local txt$, hGlobal%, lpMem%
  If OpenClipboard(0)
    hGlobal% = GetClipboardData(CF_TEXT)
    If hGlobal% <> 0
      lpMem% = GlobalLock(hGlobal%)
      If lpMem% > 0
        txt$ = String$(lstrlen(lpMem%), " ")
        If txt$ <> ""
          ~lstrcpy(V:txt$, lpMem%)
        EndIf
      EndIf
      lpMem% = GlobalUnlock(hGlobal%)
    EndIf
    ~CloseClipboard()
  EndIf
  Return txt$
EndFunc


Eigentlich gehöft das ja nach "WinApi" rein, oder?

Frohe Weihnachten!

Gruß, Peter
_________________
Deutsche Mailingliste für freeBASIC: de.groups.yahoo.com/group/free-basic.
Zum Anmelden einfach eine leere E-Mail an free-basic-subscribe@yahoogroups.de senden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Devil



Anmeldungsdatum: 21.12.2005
Beiträge: 2

BeitragVerfasst am: 22.12.2005, 07:36    Titel: Antworten mit Zitat

danke für deine mühe nur wie ich oben schon sagte ich bin ANFÄNGER und hab so meine schwierigkeiten damit sowas umzusetzen.ich dachte das das irgendwie einfacher geht.
dir auch frohe weihnachten
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 22.12.2005, 19:20    Titel: Antworten mit Zitat

@PeterHarder
Von Einfach kann nicht die Rede sein ...
Scheinbar benötigt man noch die WinApi Definition, und die machen immer wieder Probleme ...
Bei Freebasic ist die WinApi schlecht intergriert, weil Freebasic Multiplatform ist.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dominik



Anmeldungsdatum: 22.12.2004
Beiträge: 172

BeitragVerfasst am: 31.12.2005, 18:26    Titel: Antworten mit Zitat

Hallo,
ich habe leider auch nur C++-Code zu bieten, aber der ist wesentlich einfacher....


Zwischenablage leeren und mit Text füllen:
Code:


hGlobal = GlobalAlloc (GHND | GMEM_SHARE, iLenght + 1);

pGlobal = Globalock (hGlobal);

for (i = 0 ; i < iLinght ; i++)
     *pGlobal++ = *pString++;

GlobalUnlock (hGlobal) ;

//hGlobal ist nun ein Handle zu dem String der in die Zwischenablage
//kopiert werden soll.

//Nun folgt öffnen und leeren der Zwischenablage.
OpenClipboard (hwnd) ;
EmptyClipboard () ;

//Jetzt noch Text in die Zwischenablage setzen.
SetClipboardData (CF_TEXT, hGlobal) ;

//Schließen der Zwischenablage (wichtig!, lässt andere Programme
//wieder auf die Zwischenablage zugreifen).
CloseClipboard() ;



Hoffe, es hat dir etwas geholfen. Die meisten Befehle laufen über die WinApi, d.h. dieser Code dürfte ziemlich einfach zu portieren sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 31.12.2005, 23:24    Titel: Antworten mit Zitat

Haha, WinApi ...
Als Standart Quelle für API Geschichten benutze ich http://www.vbarchiv.net/ und dort gibt es keinen Befehl OpenClipboard (hwnd) und auch nicht EmptyClipboard ().
Offen gesagt ist der C++ Code von dir nichts Wert, es fehlen alle Definitionen, die bei C++ einen viel höhren Stellwert einnehmen als in Basic ...

Wahrscheinlich ist er so einfach weil der wichtigste Teil des Codes nicht da ist ...
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dominik



Anmeldungsdatum: 22.12.2004
Beiträge: 172

BeitragVerfasst am: 02.01.2006, 14:43    Titel: Sorry, aber die gibt es doch! Antworten mit Zitat

Ich muss es leider wagen dich zu korrigieren, Michael Frey.
Auf Win32.hlp und ein Buch von Microsoft Press stützend behaupte ich, dass es alle genannten Funktionen gibt. Einzig und allein habe ich die Deklaration der Variablen weggelassen, weil FreeBasic andere Typen verwendet und stattdessen Präfixe (hGlobal = Globales Handle also in FreeBasic LONG und in C++ HGLOBAL und pGlobal ist in C++ PTSTR) verwendet.
Da Devil nach Code für FreeBASIC sucht und nicht nach C++ Code und er außerdem sagte er seie Anfänger dachte ich, ich mache es ihm damit einfacher.

Aber okay, war vielleicht keine so gute Idee. Hiermit hole ich das nach:

Code:

HGLOBAL      hGlobal;
PTSTR          pGlobal;
int                i;
int                iLenght; //Anzahl der zu kopierenden Zeichen.

hGlobal = GlobalAlloc (GHND | GMEM_SHARE, iLenght + 1);

pGlobal = Globalock (hGlobal);

for (i = 0 ; i < iLinght ; i++)
     *pGlobal++ = *pString++;

GlobalUnlock (hGlobal) ;

//hGlobal ist nun ein Handle zu dem String der in die Zwischenablage
//kopiert werden soll.

//Nun folgt öffnen und leeren der Zwischenablage.
OpenClipboard (hwnd) ;
EmptyClipboard () ;

//Jetzt noch Text in die Zwischenablage setzen.
SetClipboardData (CF_TEXT, hGlobal) ;

//Schließen der Zwischenablage (wichtig!, lässt andere Programme
//wieder auf die Zwischenablage zugreifen).
CloseClipboard()


[edit]
Mir fällt außerdem gerade auf, dass Peter Harder ein paar Beiträge weiter oben auch OpenClipboard und sogar EmptyClipboard verwendet. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 02.01.2006, 15:18    Titel: Antworten mit Zitat

Haha, und wo sind die Biblothek Deklartionen?
Die die etwa so aussehen:
Code:
#include <stdio.h>


Dein "Einfacher machen" nacht nur Probleme, einen Völlstandigen C++ Code zu übersetzen ist mühsam genug, aber solcher Code, bei dem die Hälfte fehlt ist ganz unmöglich!

Zudem: Ich hab mir die Datei "win32.hlp" aus dem Netzgezogen:
Ist dir Aufgefallen das das Ding "Win32 SDK Reference" heisst und nicht WinAPI?

Wenigstens hab ich jetzt einige einiger brauchbare Info's aus dieser Datei "win32.hlp" entnehmen können ...

_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 02.01.2006, 16:02    Titel: Antworten mit Zitat

Ich veröffentliche mal was ich geschaft habe:
Code:
Declare Function CloseClipboard          Lib "user32"   alias "CloseClipboard"    () As Integer
Declare Function EmptyClipboard          Lib "user32"   alias "EmptyClipboard"    () As Integer
Declare Function OpenClipboard           Lib "user32"   Alias "OpenClipboard"     (ByVal hwnd As Integer) As Integer

OpenClipboard (0)
EmptyClipboard ()
CloseClipboard()

Immerhin, kann man schon mal das Clipboard löschen ...
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 02.01.2006, 17:05    Titel: Antworten mit Zitat

Ich hab's grinsen:
Code:
#define CF_TEXT  1
#define GMEM_MOVEABLE  &H2
#define GMEM_SHARE  &H2000
Declare Function GlobalSize              Lib "kernel32" Alias "GlobalSize" (ByVal hMem As Integer) As Integer
Declare Function GlobalHandle            Lib "kernel32" Alias "GlobalHandle" ( ByRef wMem As ANY) As Integer
Declare Function GlobalUnlock            Lib "kernel32" Alias "GlobalUnlock" (ByVal hMem As Integer) As Integer
Declare Function GlobalLock              Lib "kernel32" Alias "GlobalLock"   (ByVal hMem As Integer) As Integer
Declare Function GlobalAlloc             Lib "kernel32" Alias "GlobalAlloc"       (ByVal wFlags As Integer, ByVal dwBytes As Integer) As Integer
Declare Function lstrcpy                 Lib "kernel32" Alias "lstrcpyA"          (ByVal lpString1 As integer, ByVal lpString2 As String) As Integer
Declare Function CloseClipboard          Lib "user32"   alias "CloseClipboard"    () As Integer
Declare Function EmptyClipboard          Lib "user32"   alias "EmptyClipboard"    () As Integer
Declare Function SetClipboardData        Lib "user32"   alias "SetClipboardData" (ByVal wFormat As Integer, ByVal hMem As Integer) As Integer
Declare Function OpenClipboard           Lib "user32"   Alias "OpenClipboard"     (ByVal hwnd As Integer) As Integer

dim txt as zstring*20
Dim poin AS INTEGER PTR

? "Was soll in's Clipboard?"
input txt

hGlobalClip = GlobalAlloc(GMEM_MOVEABLE Or GMEM_SHARE, 20)
OpenClipboard (0)
EmptyClipboard ()
lpMem=GlobalLock(hGlobalClip)
lstrcpy(lpMem, txt$)
GlobalUnlock(lpMem)
SetClipboardData (CF_TEXT, hGlobalClip)
CloseClipboard()

sleep

Oder auch http://fb.exp-soft.de/fbnp/index.php?view=138
Danke Dominik und vorrallem PeterHarder euer Code hat geholfen!

Zur Info:
Die Maximale länge des String ist 20 Zeichen, aber das lässt sich ohne grössere Probleme ändern.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 02.01.2006, 17:41    Titel: Antworten mit Zitat

Hallo.

Wie kann man Bilder aus dem Clipboard laden? Bei Text habe ich kein Problem damit, aber bei Bildern gehts irgendwie nicht. Bei VB Codes habe ich imemr was von hdc(gerätekontext oder so ) gelesen, weiß aber nciht wie man damit ein Bild aus der zwischenablage in ein array oder eine Datei laden kann. Würde mich sehr freuen, wenn das einer schafft.

Michael
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 02.01.2006, 18:18    Titel: Antworten mit Zitat

Ich sag's mal so:
http://www.activevb.de/rubriken/apikatalog/deklarationen/closeclipboard.html
http://support.microsoft.com/?kbid=159823
http://support.microsoft.com/?kbid=138909
http://support.microsoft.com/?kbid=138910
http://support.microsoft.com/?kbid=210213
http://www.activevb.de/rubriken/apikatalog/deklarationen/getclipboarddata.html
das sollte für den Anfang reichen, dann brauchst noch aus dem Freebasic Ordner:
\FreeBASIC\inc\win\kernel32.bi
\FreeBASIC\inc\win\user32.bi

Dann noch viel Spass durchgeknallt.

P.S.
Kannst du noch dennn Code für Text aus dem Clipboard laden Posten?
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dominik



Anmeldungsdatum: 22.12.2004
Beiträge: 172

BeitragVerfasst am: 02.01.2006, 18:45    Titel: Antworten mit Zitat

Den folgenden Code zum Laden von Text aus der Zwischenablage habe ich in meinem Buch zur Windowsprogrammierung gefunden:

Code:

#include <windows.h>

PTSTR   pText;
HGLOBAL   hGlobal;

OpenClipboard(hwnd);

if (hGlobal = GetClipboardData (CF_TCHAR))
{
   pGlobal = GlobalLock (hGlobal) ;
   pText = malloc (GlobalSize (hGlobal)) ;
   lstrcpy (pText, pGlobal) ; //Nun enthält pText den Text der Zwischenablage.
   CloseClipboard ();
}


Ich werde versuchen ihn heute Abend noch in Basic übersetzen, stelle ihn aber trozdem mal in C++ online, vielleicht ist jemand schneller zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 02.01.2006, 19:49    Titel: Antworten mit Zitat

Etwas Pfusch, aber es geht:
Code:
#define CF_TEXT  1

#define GMEM_MOVEABLE  &H2
#define GMEM_SHARE  &H2000
Declare Function GlobalSize              Lib "kernel32" Alias "GlobalSize" (ByVal hMem As Integer) As Integer
Declare Function GlobalHandle            Lib "kernel32" Alias "GlobalHandle" ( ByRef wMem As ANY) As Integer
Declare Function GlobalUnlock            Lib "kernel32" Alias "GlobalUnlock" (ByVal hMem As Integer) As Integer
Declare Function GlobalLock              Lib "kernel32" Alias "GlobalLock"   (ByVal hMem As Integer) As Integer
Declare Function GlobalAlloc             Lib "kernel32" Alias "GlobalAlloc"       (ByVal wFlags As Integer, ByVal dwBytes As Integer) As Integer
Declare Function lstrcpy                 Lib "kernel32" Alias "lstrcpyA"          (ByVal lpString1 As string, ByVal lpString2 As integer) As Integer
Declare Function CloseClipboard          Lib "user32"   alias "CloseClipboard"    () As Integer
Declare Function EmptyClipboard          Lib "user32"   alias "EmptyClipboard"    () As Integer
Declare Function SetClipboardData        Lib "user32"   alias "SetClipboardData" (ByVal wFormat As Integer, ByVal hMem As Integer) As Integer
Declare Function OpenClipboard           Lib "user32"   Alias "OpenClipboard"     (ByVal hwnd As Integer) As Integer
Declare Function GetClipboardData        Lib "user32"   Alias "GetClipboardData" (ByVal wFormat As Integer) As Integer

dim txt as zstring*20

txt="                          "

? OpenClipboard(0)

'hGlobal = GlobalAlloc(GMEM_MOVEABLE Or GMEM_SHARE, 30)
hGlobal = GetClipboardData(1)
? hGlobal
if hGlobal then
    pGlobal = GlobalLock(hGlobal)
    ? lstrcpy (txt, pGlobal)
    ? CloseClipboard ()
end if


? txt
sleep

_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 02.01.2006, 20:16    Titel: Antworten mit Zitat

Hier eine Brauchbare Version:
http://fb.exp-soft.de/fbnp/index.php?view=139
Das einzige was man eventuel noch anpassen muss, ist die Maximale Zeichenzahl.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 02.01.2006, 23:57    Titel: Antworten mit Zitat

Hallo.

Irgendwei aknn man vor dem auslesen schon sehen, wie lang das ist, ich hatte das vor ein paar tagen, habe den code aber übreschrieben, mal gucken, ob ich es schaffe.

Das Bilderauslesen schaffe ich nicht, auch nicht mit den tipps, da da immer was mit hdc etc. gemacht werden muss, wie man dass dann nacher in ein fb kompatibles format bekommt weiß ich nicht.

MIchael
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
oldirty



Anmeldungsdatum: 04.08.2005
Beiträge: 65

BeitragVerfasst am: 03.01.2006, 19:10    Titel: Habe nur VisualBasic-Codes zum o. g. Thema gefunden Antworten mit Zitat

VisualBasic-Code, der auch die Länge des Textes ermittelt: Zeile: lLength = lstrlen(hStrPtr)

Code:

Private Const CF_TEXT = 1
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Long, ByVal ByteLen As Long)
Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim hStrPtr As Long, lLength As Long, sBuffer As String
    OpenClipboard Me.hwnd
    hStrPtr = GetClipboardData(CF_TEXT)
    If hStrPtr <> 0 Then
        lLength = lstrlen(hStrPtr)
        If lLength > 0 Then
            sBuffer = Space$(lLength)
            CopyMemory ByVal sBuffer, ByVal hStrPtr, lLength
            MsgBox sBuffer, vbInformation
        End If
    End If
    CloseClipboard
End Sub


Hier VisualBasic-Code, der Bitmaps bereitsstellt, kann leider keine FreeBasic-Version liefern.

Vielleicht findet sich ja jemand, der den Code konvertiert.

Code:

Const LR_LOADFROMFILE = &H10
Const IMAGE_BITMAP = 0
Const IMAGE_ICON = 1
Const IMAGE_CURSOR = 2
Const IMAGE_ENHMETAFILE = 3
Const CF_BITMAP = 2
Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal dwImageType As Long, ByVal dwDesiredWidth As Long, ByVal dwDesiredHeight As Long, ByVal dwFlags As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim hDC As Long, hBitmap As Long
    'Load the bitmap into the memory
    hBitmap = LoadImage(App.hInstance, "c:\windows\logow.sys", IMAGE_BITMAP, 320, 200, LR_LOADFROMFILE)
    If hBitmap = 0 Then
        MsgBox "There was an error while loading the bitmap"
        Exit Sub
    End If
    'open the clipboard
    OpenClipboard Me.hwnd
    'Clear the clipboard
    EmptyClipboard
    'Put our bitmap onto the clipboard
    SetClipboardData CF_BITMAP, hBitmap
    'Check if there's a bitmap on the clipboard
    If IsClipboardFormatAvailable(CF_BITMAP) = 0 Then
        MsgBox "There was an error while pasting the bitmap to the clipboard!"
    End If
    'Close the clipboard
    CloseClipboard
    'Get the picture from the clipboard
    Me.Picture = Clipboard.GetData(vbCFBitmap)
End Sub
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: 03.01.2006, 20:42    Titel: Antworten mit Zitat

Hallo.

Erstmal danke für den Code, obwohl ich ja eigentlich auslesen wollte. Wenn ich das schreiben schaffe, wird das jedoch kein Problem mehr sein(denke ich). Danke.

Michael
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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