社区
Windows SDK/API
帖子详情
怎么收到系统中“文件粘贴”的消息?
berrey
2003-12-17 01:50:53
想用自己的应用程序监视资源管理器中是否有新的文件被“粘贴”进来了,应该怎么实现呢?
...全文
54
2
打赏
收藏
怎么收到系统中“文件粘贴”的消息?
想用自己的应用程序监视资源管理器中是否有新的文件被“粘贴”进来了,应该怎么实现呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小笨象
2003-12-20
打赏
举报
回复
void __fastcall TMainForm::WndProc(TMessage &Msg)
{
TForm::WndProc(Msg);
switch(Msg.Msg)
{
case WM_DRAWCLIPBOARD:
{
GetViewClipBoard(Msg);
break;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::GetViewClipBoard(TMessage &Msg)
{
//TODO: 处理监视剪贴板消息
//将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口
SendMessage(NextClipHwnd,Msg.Msg,Msg.WParam,Msg.LParam);
//查询剪贴板中特定格式的数据内容
if( (Clipboard()->HasFormat(CF_TEXT)) ||(Clipboard()->HasFormat(CF_OEMTEXT)))
{
if(GetActiveEditWindow()->DBFilePath!="")
{ //处理剪贴板中内容
AddTxtActionExecute(NULL);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ClipBardViewerActionExecute(
TObject *Sender)
{
//TODO:是否监视剪贴板。
ClipBardViewerAction->Checked=!ClipBardViewerAction->Checked;
if(ClipBardViewerAction->Checked)
{
//获得观察链中下一个窗口句柄
NextClipHwnd=SetClipboardViewer(Handle);
}
else
{
//从观察链中删除本观察窗口
ChangeClipboardChain(Handle,NextClipHwnd);
//将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口
SendMessage(NextClipHwnd,WM_CHANGECBCHAIN,(int)Handle,(int)NextClipHwnd);
}
}
//---------------------------------------------------------------------------
ktcserver
2003-12-17
打赏
举报
回复
定义一个钩子函数拦截对剪贴板的操作,然后对其做响应就可以了。
Windows SDK/API
1,222
社区成员
8,135
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章