J'ai une chaîne de caractères ASCII (un tableau de caractères à terminaison nulle) dans une application console.
Je veux juste faire en sorte que mon application mette cette chaîne dans le "presse-papier global". de sorte qu'après l'avoir exécutée, je puisse faire ctrl+v dans n'importe quelle application standard (dans ce cas, Visual Studio) et ma chaîne sera collée !
comment faire ?
Je l'ai fait :
void SetClipboardText(char* txt)
{
if(!OpenClipboard(NULL))
{
__asm int 3;
}
int l = PIstrlen(txt);
HLOCAL la = GlobalAlloc(LMEM_MOVEABLE,l+1);
void* dest = GlobalLock(la);
PImemcpy(dest,txt,l+1);
GlobalUnlock(la);
if(!SetClipboardData(CF_OEMTEXT,la))
{
__asm int 3;
}
CloseClipboard();
}
J'ai essayé CF_TEXT, CF_OEMTEXT, CF_UNICODE, j'ai essayé NULL et GetDesktopWindow() lors de l'ouverture du presse-papiers.
rien ne semble fonctionner. Modifier : le code ci-dessus "fonctionne" toujours, il n'y a jamais d'erreur, mais il ne fait jamais ce que je veux !