我在控制檯應用程序中有一個ASCII字符串(一個null結束字符數組) 。在windows中設置GLOBAL剪貼板文本,本地C++
我想要做的就是讓我的應用程序將此字符串放入「全局剪貼板」 中,以便在運行後,我可以在任何標準應用程序(本例中爲visual studio)中按Ctrl + v和我的字符串將被粘貼!
我該怎麼做?
我做:
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();
}
我已經試過CF_TEXT,CF_OEMTEXT,CF_UNICODE,我打開剪貼板
似乎沒有任何工作時,曾試圖NULL和GetDesktopWindow()。 編輯: 上面的代碼總是'工作'它從來沒有錯誤,它只是從來沒有做我想要的!
FYI的設置文本:不是'INT 3'你可以叫'的DebugBreak();'。 – 2010-07-05 05:14:37