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.