通过Qt代码修改一个bat文件图标

岁小草 2013-04-17 10:32:08
如题,我在网上搜到的答案是:
1.将bat文件转换为exe格式再修改。(疑问:怎么转换为exe?转换后又怎么修改图标?)
2.给bat文件创建一个快捷方式再修改。(疑问:同上,快捷方式又要怎么设置图标呢?还有,怎么通过代码将快捷方式的小箭头去掉呢?)

希望各位大佬给予帮助,先谢过!
...全文
461 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
woaishizi 2013-04-19
  • 打赏
  • 举报
回复
小马甲来蹭个分,顺便分享点东西:楼上是一种C++中创建快捷方式的方法,Qt中也有一种方法,只是不知道怎么修改lnk文件属性,如下: bool QFile::link ( const QString & fileName, const QString & linkName )
岁小草 2013-04-19
  • 打赏
  • 举报
回复
这个问题我自己解决了,设置了快捷方式的图标。 用的是c++中的IShellLink接口,贴上代码:
QString imgPath = sPath+"\\aa.ico";//要设置图片的路径
       QString strLink = packPath+"\\"+sProName+".lnk";//要生成的快捷方式的路径
       #ifdef Q_WS_WIN
       HRESULT hr = CoInitialize(NULL);
       if (SUCCEEDED(hr))
       {
          IShellLink *pisl;
          hr = CoCreateInstance(CLSID_ShellLink, NULL,
                  CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pisl);
          if (SUCCEEDED(hr))
          {
              IPersistFile* pIPF;

              //这里是我们要创建快捷方式的原始文件地址
              pisl->SetPath(batPath.toStdWString().c_str());//设置原文件路径
              pisl->SetIconLocation(imgPath.toStdWString().c_str(), 0);//设置图标
              hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
              if (SUCCEEDED(hr))
              {
                  //这里是我们要创建快捷方式的目标地址
                  pIPF->Save(strLink.toStdWString().c_str(), FALSE);// 创建快捷方式
                  pIPF->Release();
              }
              pisl->Release();
          }
          CoUninitialize();
      }
      #endif
岁小草 2013-04-18
  • 打赏
  • 举报
回复
引用 4 楼 dext 的回复:
快捷方式去掉箭头 那是 windows 的设置。 bat 的图标 可以改,也是Windows的设置。但是 一改的话,所有的 bat 就全都变了。
是的,我也在注册表中找到这些项了,但是我又不能改变全部的bat文件图标,所以就只能试试改快捷方式的图标,快捷方式应该是可以改单个的,但是一直不知道在哪改?
dext 2013-04-17
  • 打赏
  • 举报
回复
快捷方式去掉箭头 那是 windows 的设置。 bat 的图标 可以改,也是Windows的设置。但是 一改的话,所有的 bat 就全都变了。
岁小草 2013-04-17
  • 打赏
  • 举报
回复
引用 2 楼 haltwang 的回复:
bat就是cmd命令吧,直接用QProcess把里面的命令执行了就行个了
我知道,只是因为项目需要我才做成bat格式。
haltwang 2013-04-17
  • 打赏
  • 举报
回复
bat就是cmd命令吧,直接用QProcess把里面的命令执行了就行个了
岁小草 2013-04-17
  • 打赏
  • 举报
回复
这个问题很偏么?急用啊,求帮助!

16,821

社区成员

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

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