Kieli on c++, käyttis windows xp. Kuinka saisin winapilla kopioitua muistiin ku copyis jonku tiedoston, eli samaltaval menis muistii ku painais ctrl+c?
Ei siihen winapia tarvita. Luet tiedoston ihan normaalisti muistiin. Tutustu fstreamiin.
Muttakun se pitäs saada sitte ctrl+veellä pastettuu jonneki :(
ifstreamella luetaan ja ofstreamilla kirjoitaan, niitä sitten käytetään tähän tyyliin.
Tiedoston kopiointi leikepöydälle onnistuu näin:
#include "shlobj.h"
void Kopioi (char *filu){
if (OpenClipboard(NULL)) {
EmptyClipboard();
DROPFILES filuTieto;
filuTieto.pFiles = sizeof(filuTieto);
filuTieto.fWide = 0;
HGLOBAL hGlobal = GlobalAlloc(GHND, sizeof(DROPFILES) + strlen(filu)+1);
unsigned char*ptr = (unsigned char*)GlobalLock(hGlobal);
memcpy(ptr,&filuTieto,sizeof(DROPFILES));
memcpy(ptr+sizeof(DROPFILES),filu,strlen(filu)+1);
GlobalUnlock(hGlobal);
SetClipboardData(CF_HDROP,ptr);
CloseClipboard();
GlobalFree(hGlobal);
}
}Kuinka tota käytetää? Annanko tiedostonnimen parametriksi vai jotain muuta?
Aihe on jo aika vanha, joten et voi enää vastata siihen.