windows服务访问粘贴板

chenhao1988 2011-03-20 03:00:06
windows xp自己写了一个服务程序,在里面需要读取粘贴板得内容,我的代码如下:这段代码在普通的应用程序中是可以读出粘贴板得内容的,在服务中就不行,不知道什么原因。

//获取粘贴板内容
LPWSTR szFiles = NULL;
DWORD dwEffect;
DWORD *dw;
UINT cFiles=0;
UINT uDropEffect = RegisterClipboardFormat(L"Preferred DropEffect");
//打开粘贴板
if(!OpenClipboard( NULL))
{
return FALSE;
}
//获取粘贴板句柄
HDROP hDrop = HDROP( GetClipboardData( CF_HDROP));
if(!hDrop)
{
//这里出错,hDrop为空
return FALSE;
}
dw=(DWORD*)(GetClipboardData( uDropEffect));
if(dw==NULL)
dwEffect=DROPEFFECT_COPY;
else
dwEffect=*dw;

//获取文件数
cFiles = DragQueryFile( hDrop, (UINT) -1, NULL, 0);

//文件数为0 则退出,即没选中文件
if(cFiles==0)
{
CloseClipboard();
return FALSE;
}
...全文
96 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

6,850

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧