怎么获取快捷方式的目标以及参数

Coderec 2013-10-31 01:37:46
我是实现了拖拽的,用的QMimeData,快捷方式的目标可以用QFileInfo的symLinkTarget()方法拿到,参数怎么获取呢?
或者不用QMimeData的其他方式怎么获取?
...全文
667 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coderec 2013-10-31
  • 打赏
  • 举报
回复
引用 12 楼 LazyDreamHunter 的回复:
还有一种方法,通过获取到的文件名,到注册表中找对应的参数值,
没有多奇怪啊,就是做一个快捷方式的面板,把快捷方式都拖上去,但是遇到这个带参数的快捷方式,拿不到参数没法正常启动啊
RabinSong 2013-10-31
  • 打赏
  • 举报
回复
还有一种方法,通过获取到的文件名,到注册表中找对应的参数值,
RabinSong 2013-10-31
  • 打赏
  • 举报
回复
你到底想要实现什么功能,这条路不通,可以采用其他方法实现啊
RabinSong 2013-10-31
  • 打赏
  • 举报
回复
你要参数做什么啊,我奇怪
Coderec 2013-10-31
  • 打赏
  • 举报
回复
Coderec 2013-10-31
  • 打赏
  • 举报
回复
引用 7 楼 LazyDreamHunter 的回复:
QList<QUrl> urls = e->mimeData()->urls(); QStringList slUrls; for (int i = 0; i < urls.size(); i++) { slUrls << urls[i].toLocalFile(); } 看看这个后面有没有参数啊,我只知道第一个字符串是名称,后面的没有观察
我用的就是这个,没有参数
RabinSong 2013-10-31
  • 打赏
  • 举报
回复
QList<QUrl> urls = e->mimeData()->urls(); QStringList slUrls; for (int i = 0; i < urls.size(); i++) { slUrls << urls[i].toLocalFile(); } 看看这个后面有没有参数啊,我只知道第一个字符串是名称,后面的没有观察
Coderec 2013-10-31
  • 打赏
  • 举报
回复
引用 5 楼 LazyDreamHunter 的回复:
你快捷方式是什么意思

Windows的.lnk文件,我想获取参数
RabinSong 2013-10-31
  • 打赏
  • 举报
回复
你快捷方式是什么意思
Coderec 2013-10-31
  • 打赏
  • 举报
回复
引用 3 楼 LazyDreamHunter 的回复:
你可以重载keyEvent,将最近一次快捷键存放到一个缓冲区,就行了
获取快捷方式的参数跟快捷键有什么关系呢
RabinSong 2013-10-31
  • 打赏
  • 举报
回复
你可以重载keyEvent,将最近一次快捷键存放到一个缓冲区,就行了
Coderec 2013-10-31
  • 打赏
  • 举报
回复
引用 1 楼 LazyDreamHunter 的回复:
1.构造函数添加 setAcceptDrops(true); 2.重载几个函数 void CMainWindow::dropEvent(QDropEvent *e) { if (e->mimeData()->hasUrls()) { QList<QUrl> urls = e->mimeData()->urls(); QStringList slUrls; for (int i = 0; i < urls.size(); i++) { slUrls << urls[i].toLocalFile(); } e->accept(); const QString &fileName = slUrls.at(0); if (!fileName.isEmpty()) { //处理拖放的文件的名称 } } else { QWidget::dropEvent(e); } } void CMainWindow::dragMoveEvent(QDragMoveEvent *e) { if (e->mimeData()->hasUrls()) { //e->acceptProposedAction(); e->accept(); } else { QWidget::dragMoveEvent(e); } } void CMainWindow::dragEnterEvent(QDragEnterEvent *e) { if (e->mimeData()->hasUrls()) { e->accept(); } else { QWidget::dragEnterEvent(e); } } 上面是我处理拖放文件的代码
谢谢,不过拖放文件我已经搞定了,我问的问题是怎么能获取拖放的快捷方式的参数
RabinSong 2013-10-31
  • 打赏
  • 举报
回复
1.构造函数添加 setAcceptDrops(true); 2.重载几个函数 void CMainWindow::dropEvent(QDropEvent *e) { if (e->mimeData()->hasUrls()) { QList<QUrl> urls = e->mimeData()->urls(); QStringList slUrls; for (int i = 0; i < urls.size(); i++) { slUrls << urls[i].toLocalFile(); } e->accept(); const QString &fileName = slUrls.at(0); if (!fileName.isEmpty()) { //处理拖放的文件的名称 } } else { QWidget::dropEvent(e); } } void CMainWindow::dragMoveEvent(QDragMoveEvent *e) { if (e->mimeData()->hasUrls()) { //e->acceptProposedAction(); e->accept(); } else { QWidget::dragMoveEvent(e); } } void CMainWindow::dragEnterEvent(QDragEnterEvent *e) { if (e->mimeData()->hasUrls()) { e->accept(); } else { QWidget::dragEnterEvent(e); } } 上面是我处理拖放文件的代码

16,816

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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