如何通过代码或win32 API调用windows的复制功能

EVERMORE1991 2015-03-17 04:34:20
想实现这样一种功能, 比如用户在文件浏览器中选中一个文件, 然后通过快捷键或者其他方式启动我的程序, 我的程序先复制, 然后把复制的文件修改一下或者粘贴其他位置等等,
简单来说就是类似于按键精灵一样, 为了简化操作.
请教各位能否通过代码或者win32API来实现跟按下Ctrl+C相同的复制操作, 不想通过模拟键盘按键来实现.
...全文
506 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
assky124 2015-03-19
  • 打赏
  • 举报
回复
注册右键菜单是个很常用的功能,网上一搜就有了。(C# 系统右键) 链接 我没测试过,你自己试试
EVERMORE1991 2015-03-19
  • 打赏
  • 举报
回复
引用 7 楼 assky124 的回复:
我觉得你应该往注册快捷键上下功夫。 比如我需要Word文件注册一个上传到网盘的快捷键,应该是点按键的时候把文件名作为参数传给服务,而不是发送复制指令
你说的注册快捷键是RegisterHotKey吗? 如何做到在按下快捷键的时候传递参数? 如果能传递参数的话也能解决问题.
marswangbo 2015-03-18
  • 打赏
  • 举报
回复
System.Winforms.Clipboard...
於黾 2015-03-18
  • 打赏
  • 举报
回复
引用 4 楼 tcmakebest 的回复:
看似简单的CTRL-C复制操作, 实际内部操作是很不简单的, 对于文件浏览器, WORD, EXCEL,IE浏览器等, 它们只是不约而同地捕获了这个组合键, 复制了各自认为可复制并且已选中的内容, 这个操作是外界无法知道的, 所以我认为除了模拟按键没有其他办法. 但要说一点的是, 模拟按键最终也是会调用API的.
错. windows是有剪贴板的 所以你完全可以在一个程序里(比如IE里)复制一段文字,粘贴到word里去 如何复制到剪贴板,如何从剪贴板里得到内容,这些都不是难题,网上一搜,代码一大堆 难题恰恰是楼主自己也没想明白业务需求和逻辑顺序 你的程序如何得知用户选择了文件,又如何判断什么时候该去复制这个内容,而不是用户不管点了什么东西你都给复制一份,那不乱套了 如果你自己说不清楚业务需求,而只能拿出自己拍脑袋想的方案,那么这个问题暂时还是无解的
assky124 2015-03-18
  • 打赏
  • 举报
回复
我觉得你应该往注册快捷键上下功夫。 比如我需要Word文件注册一个上传到网盘的快捷键,应该是点按键的时候把文件名作为参数传给服务,而不是发送复制指令
tcmakebest 2015-03-17
  • 打赏
  • 举报
回复
看似简单的CTRL-C复制操作, 实际内部操作是很不简单的, 对于文件浏览器, WORD, EXCEL,IE浏览器等, 它们只是不约而同地捕获了这个组合键, 复制了各自认为可复制并且已选中的内容, 这个操作是外界无法知道的, 所以我认为除了模拟按键没有其他办法. 但要说一点的是, 模拟按键最终也是会调用API的.
EVERMORE1991 2015-03-17
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
单纯的说复制简单 搜一搜:C#复制到剪贴板 如何知道哪个文件是需要复制的才是个难题
正是因为我不可能知道用户现在选中的是哪个文件(我的程序在后台运行没有界面, 不可能知道用户在前台用什么文件浏览器选中了什么东西), 所以我才想通知操作系统进行复制操作
於黾 2015-03-17
  • 打赏
  • 举报
回复
单纯的说复制简单 搜一搜:C#复制到剪贴板 如何知道哪个文件是需要复制的才是个难题
於黾 2015-03-17
  • 打赏
  • 举报
回复
没看懂 人家在打开你的程序之前操作的,你程序打开之后,复制啥东西,你怎么知道

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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