VS2017修改程序图标

原文链接

https://blog.csdn.net/qq_41092262/article/details/78776873

首先,我们要准备两个东西

第一个是图片,也就是我们要替换的图标,第二个是VS2017,我就不废话了,开始操作。




第一步:我们要将我们的图标转换为.ico格式,因为只有.ico格式的图片才能做图标,其实这个很简单,直接拿图片百度一下在线制作就OK了,自己看图,我就不废话了。




搞定之后保存在桌面上,就是下面这个样子:




第二步:打开VS2017,新建—项目,选择Win32控制台应用程序,改一下名字和位置,最后单击确定






然后捏,设置一些东西,记得勾上空项目


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
IconSpacing.exe v1.0 程序说明 迅捷图标间距设置程序v1.0 - [email protected] 20180812 (1)、程序用途:快捷设置Windows桌面图标间距 WinXP、Win7用户可在系统提供的高级外观设置里修改桌面图标间距,但是,Win8、Win10系统却没有提供这一功能。熟悉系统的用户虽然可以通过修改注册表、bat、vbs等方式调整桌面图标间距,但这些方法都需要注销后重新登录、或重启计算机才能生效。 该程序 IconSpacing.exe 便是快捷设置Windows桌面图标间距的小程序,中文名为“迅捷图标间距设置程序”。该程序提供窗口界面、命令行两种使用方式。窗口界面简洁快捷、一目了然,普通用户也可轻松使用,并且,设置后无需注销或重启便可立即生效;命令行方式可用于WinPE等需要自动设置桌面图标间距的情况。 (2)、使用环境 该程序采用VS2017 WTL10 x86编译(Windows Template Library,http://wtl.sourceforge.net/ ),程序短小精悍、可独立运行,支持32位和64位的WinXp、Vista、Win7、Win8.x、Win10及相应Windows Server版等操作系统。 (3)、窗口界面快捷设置桌面图标间距 在Windows中直接运行 IconSpacing.exe 便可启动窗口界面,启动后会显示桌面图标间距的当前值,设置对话框简洁快捷、一目了然,普通用户也可快速方便地设置桌面图标间距,并且可以立即生效。 (4)、命令行方式设置桌面图标间距 在WinPE等需要自动设置桌面图标间距的时候,可以使用命令行方式。用户可按以下格式的参数启动程序,所有参数都不分大小写。更改桌面图标间距后程序将立即刷新桌面,除非添加了 -N 参数。[]加方括号的为可选参数,()加圆括号的为可选独立参数(只能单独使用),(无参)是不带任何参数。 [-Hxxx] :将桌面图标水平间距设置为xxx,xxx是0到150之间的3位正整数(Win7风格度量单位)。只带该参数而不带[-Vxxx]参数时,便只修改桌面图标的水平间距; [-Vxxx] :将桌面图标垂直间距设置为xxx,xxx是0到150之间的3位正整数(Win7风格度量单位)。只带该参数而不带[-Hxxx]参数时,便只修改桌面图标的垂直间距; [-N] :更改桌面图标间距后,不立即刷新桌面。需要重新登录、或重启计算机才能生效; (-R) :不改变桌面图标间距,只刷新桌面; (-?) :显示设置对话框和此帮助信息(当前选项卡),可显示桌面图标间距的当前值; (无参) :显示设置对话框(当前选项卡)和此帮助信息,可示桌面图标间距的当前值。 (5)、程序使用实例 # 将桌面图标水平间距设置为76、垂直间距设置为48,并在设置后立即刷新桌面。 IconSpacing.exe -H76 -V48 # 将桌面图标水平间距设置为80、垂直间距设置为50,设置后不立即刷新桌面。 IconSpacing.exe -V50 -H80 -N # 桌面图标的水平间距保持不变、垂直间距设置为56,并在设置后立即刷新桌面。 IconSpacing.exe -V56 # 不改变桌面图标间距,只是立即刷新桌面。 IconSpacing.exe -R # 显示设置对话框和此帮助信息(当前选项卡),获取桌面图标间距的当前值。 IconSpacing.exe -? # 显示设置对话框(当前选项卡)和此帮助信息,获取桌面图标间距的当前值。 IconSpacing.exe (6)、免责申明 用户可自行斟酌选用该程序,若转载请注明出处。对一切后果,作者不承担任何责任!
功能: 执行BAT批处理脚本A,去掉桌面快捷方式图标上的箭头。 执行BAT批处理脚本B, 还原成操作系统桌面图标默认带箭头的状态。 去箭头 或者 还原箭头 两个脚本都能顺带解决其他方法导致的后遗症问题。 其他方法导致的后遗症问题是指下面这两种后遗症。 任务栏被锁定, 快捷方式图标的箭头变黑块 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 特点: 1.无后遗症。 2.实现桌面图标在视觉上毫无污染的境界。可以通过放大镜程序任意等级放大检测,不会发现任何污染。 3.使用了一个自己定制的特殊图标文件作为箭头图标,除此之外不给系统添加其他任何文件。 4.明文批处理,无毒无木马,避免了EXE类程序骑马携毒的嫌疑。 5.一次运行,一次解决,立即生效,无需重启动。根治病患,后顾无忧。不使用自启动,无额外资源消耗。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 版本: 脚本和操作系统是32位或者64位毫无关系。 如果谁在这个问题上还特意故弄玄虚扯上64位系统 那就纯属扯淡。 不过因为图标缓存文件涉及具体路径,所以不同系统会有差别, 最早脚本是基于Win7制作,后来添加WinXP版本。 使用其他系统如果发现路径有差别的话,可以自行修改制作成针对其他系统的脚本。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 缺点: 我设置了障碍,需要虚拟分 3分。 其实脚本并不复杂,如果仔细阅读肯定能自己照样子做出来。 我也不缺分,分对我也不重要。我是支持有能力的用户自己去完成的。 设置3分,只是稍微提高了一点获取门槛,不想被别人随意照搬,然后到处乱发。 脚本和所需资源是早在2014年3月就已完成制作。 上传CSDN时是 2017年2月2日。 之所以上传这东西,因为我发现都到了2017年, 结果去网络上搜索,还是没有彻底解决这个问题的案例。 到处都是照搬照抄那些有后遗症或者不彻底的方案。 如果你能看懂 甚至能按照描述做出来 但还是来下载, 这我当做是对我过去付出的认可 以及 尊重吧。 ------------------------------------------------------------------------------------------------------------------------ 脚本过程 1.强制修改注册表,这样可以修复其他方法导致的锁任务栏这个后遗症。 其实这个强制修改注册表也只是返回到操作系统最原始的样子,可以算作还原吧。 2.复制自制的 视觉透明 数据非透明的图标文件,复制到系统目录下。 3.修改注册表,把快捷方式的箭头图标文件指向自制的特殊图标文件。 4.结束explorer进程。 5.清除图标缓存文件(需要先改属性)。 6.重新启动explorer进程。 ------------------------------------------------------------------------------------------------------------------------ 已经不记得从什么时候开始使用没有箭头的快捷方式图标了。 自己第一次遇到快捷方式图标问题(箭头图标变黑块)是在2013年10月份, 当时并没太在意,只是通过搜索网络找了个普通办法解决了。 但站在现在的位置看当初,那应该是一个临时的处理办法,并不是根治问题的方法。 真正重视并打算弄明白并解决这个问题 是在2014年3月17日到21日的那一段时间。 当时的过程当然是先搜索网络,查看测试当时能找到很多已知的方案, 这是捷径,即站在前人的肩膀上快速了解问题, 掌握大家所利用分的方法,因为里面很可能就包含最终正确方案的一部分。 测试了见过的很多方法,都是先惊喜 最后失望,因为都有问题,不能圆满解决。 还有就是 这卫士 那管家 之类的提供的方法, 应该说这些工具的方案也经历过不同版本,网上见到过评价其导致其他问题。 卫士管家这类工具 那时候我已经很反感了, 早已看透这类东西,所以那时候就已经不用这类东西了。 了解发现 卫士管家这类 他们当然不会直白的使用明文脚本, 而是编译后的程序,有的还不是一次彻底解决问题,需要每次启动后调用一次。 除了卫士管家这类东西之外,那时候网络上已经出现了单独的工具,不少都是挂马的。 虽然能搜到很多,但没有发现能彻底解决的方法。但大体思路已经很清晰, 大家的办法也很相近,只有自己来做才能按照自己的需求彻底解决问题。 其实问题并不算复杂,早期大家的办法不成熟 有后遗症。 后期大家总算摸到门了,但陷在了无尽的尝试和寻找可用的自带图标之中。 然而自带的图标要么是绝对的透明,要么就是有像素的图标, 自带图标不管其像素多少多大,那都是污染。 系统对快捷方式图标的处理方法很特殊,还涉及到图标缓存, 桌面快捷方式的图标是箭头图标和原始快捷方式图标合成的新图标。 有污染的图标自然不是理想的代替箭头的图标。 而系统自带的透明图标会带来黑方块遮挡这个后遗症。 猜测用透明图标的话,在某一特定时刻系统会检测到异常, 然后就用了全黑图标代替透明图标。总之透明图标不能用。 另外检测黑块问题其实不用重新启动系统去检测,注销后再登陆就可以验证是否有问题。 操作系统是机器,跑的是程序,它对透明图标的判断标准当然是绝对的数据标准,不是我们的视觉标准。 所以操作系统检测出透明图标然后用黑块图标替换,这种透明一定是数据级别的绝对透明。 举个不见得完全正确的例子 比如0代表透明,255代表单一颜色的最大值,那么导致黑块的透明图标一定是0这一级别的数据。 而我们人的视觉并不敏锐,如果0代表透明,那么对我们来说1也是透明,甚至10也可能是透明。 但对于操作系统来说1或者10这和透明就毫无关系了,如果有这样的图标 自然就不会惹上黑块这个后遗症。 但操作系统中不会有这种看起来是透明 实际上 即数据上来说并非彻底透明的 毫无意义的图标, 这也是为什么大家都在找系统中可用来替代的图标,但绝对不会有结果的原因。 所以方案只能是自己动手做一个符合自己标准的视觉透明数据不透明的图标。 自制视觉透明图标,基础是一个完全透明的图标, 为了尽可能减少复杂度,只在这个透明图标上添加一个像素点即可。 初期还曾尝试不同颜色的像素点,甚至考虑绝大多数用户桌面的颜色,还有像素点的位置, 但实际上这些并不影响结果,因为最终视觉上不会看到任何像素。 但考虑到理论基础还是选择了中间色 灰色 作为像素点的颜色。 然后利用软件对像素点做平滑处理,模糊处理,高斯模糊处理。 经过这一系列处理后就形成了肉眼看是完全透明的图标, 但理论上是有颜色的图标,这样Windows转换图标时就不会触发黑块问题。 ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ 早期出现的有缺陷的方法 方法一 核心语句是清除注册表如下注册表项,此法后遗症是任务栏被锁,不能向任务栏添加快捷方式。 reg delete "HKEY_CLASSES_ROOT\lnkfile" /v IsShortcut /f reg delete "HKEY_CLASSES_ROOT\piffile" /v IsShortcut /f 此法虽有不同形式,但无论是BAT命令还是其他不同高级语言编译的EXE,本质上是一样的。 使用高级语言只是换个形式使用命令, 其目的 一是隐藏代码不想公开,还有就是目的不纯 涉及灰色产业链,挂马带毒。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 方法二 是用一个透明图标替换小箭头图标,此法后遗症是导致原来小箭头的图标变成黑块 核心语句 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ Shell Icons" /v 29 /d "%systemroot%\system32\shell32.dll,50" /t reg_sz /f 核心图标文件shell32.dll,图标编号50 此法注销或重启动后会发现快捷方式上的黑块。清理图标缓存文件后重启explorer进程可以暂时解决问题。 所以使用此法的方案往往还会利用自启动,每次进入系统后都执行一次清理图标缓存和重启资源管理器进程。 其实系统里还有其他透明图标,当然 用的话也有后遗症 %SystemRoot%\System32\ImageRes.dll 的第113和115两个图标都是透明图标, 因为是透明图标所以没有污迹,但同样注销后有黑块。 此法的核心是利用一个绝对的透明图标替换箭头图标, 无论使用哪个透明图标都可以归结为此类方法,结果也都是一样,会导致黑块问题。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 方法三 替换小箭头图标,选择了图标资源文件imageres.dll,内部196号图标 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ Shell Icons" /v 29 /d "%systemroot%\system32\imageres.dll,196" /t reg_sz /f 缺点是 快捷方式图标会染上污迹,脏兮兮 196号图标,并不是全透明无像素图标,它是类似于一道下划线的图标,所以就有了污迹的效果。 196,是1条线。 197,是2条线。 198,是3条线。 使用系统自带的任何其他非透明图标代替箭头图标,都可以归结为此类方法。 虽然结果会有差别,但充其量也就是图标污染程度不同这样的差别。 解决快捷方式箭头问题所需要的图标是视觉上透明,数据级别不透明的图标。 操作系统内设计一个有像素的图标自然是为了看得到,而不是看不到, 对操作系统来说设计那样的图标没有意义,所以操作系统不会自带那样的图标, 因此在操作系统自带的图标范围内找答案不会有结果。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AgileFontSet v2.0 程序说明 迅捷字体设置程序v2.0 - [email protected](20180830) (1)、程序用途:快捷设置Windows系统字体和桌面图标间距 WinXP、Win7用户可在系统提供的高级外观设置里修改系统字体和桌面图标间距,但是,Win8、Win10系统却没有提供这一功能。熟悉系统的用户虽然可以通过修改注册表、bat、vbs等方式调整系统字体和桌面图标间距,但这些方法都需要注销后重新登录、或重启计算机才能生效。 该程序 AgileFontSet 便是快捷设置Windows系统字体和桌面图标间距的小程序,中文名为“迅捷字体设置程序”。该程序可以加载和保存Win7Preset、Win8xPreset、Win10Preset、UserPreset1 - UserPreset100等多种用户配置。该程序提供窗口界面、命令行两种使用方式。窗口界面简洁快捷、一目了然,普通用户也可轻松使用,并且,设置后无需注销或重启便可立即生效;命令行方式可用于WinPE等需要自动设置系统字体和桌面图标间距的情况。 (2)、使用环境 该程序采用VS2017 WTL10 x86编译(Windows Template Library,http://wtl.sourceforge.net/ ),程序短小精悍、可独立运行,支持32位和64位的WinXp、Vista、Win7、Win8.x、Win10及相应Windows Server版等操作系统。 (3)、窗口界面快捷设置系统字体和桌面图标间距 在Windows中直接运行 AgileFontSet 便可启动窗口界面,启动后会显示系统字体和桌面图标间距的当前值,设置对话框简洁快捷、一目了然,普通用户也可快速方便地设置系统字体和桌面图标间距,并且可以立即生效。在窗口界面,用户可以直观地加载和保存默认配置、Win7Preset、Win8xPreset、Win10Preset、UserPreset1 - UserPreset100等多种用户配置。 (4)、命令行方式设置系统字体和桌面图标间距 在WinPE等需要自动设置系统字体和桌面图标间距的时候,可以使用命令行方式。用户可按以下格式的参数启动程序,所有参数都不分大小写。更改系统字体和桌面图标间距后程序将立即刷新桌面。加方括号[]的为可选参数,加圆括号()的为只能单独使用的可选独立参数,(无参)是不带任何参数。 [path] :指定加载ini配置文件的路径,启动后将显示ini配置文件中的默认配置,注意:含空格的路径必须用双引号包围; [path -xxx] :指定加载ini配置文件的路径path,-xxx 参数选择ini文件中的xxx配置。xxx可以是:Win7Preset、Win8xPreset、Win10Preset、UserPreset1 - UserPreset100 之一; [path -hide] :指定加载ini配置文件的路径path,-hide 参数指定后台加载ini配置文件中的默认配置; [path -xxx -hide] :指定加载ini配置文件的路径path,-xxx 参数选择ini文件中的xxx配置,-hide 参数指定进行后台设置。3个参数组合使用,可以后台加载ini配置文件中的xxx配置; (-?) :显示设置对话框和此帮助信息(当前选项卡),可显示系统字体和桌面图标间距的当前值; (无参) :显示设置对话框(当前选项卡)和此帮助信息,可显示系统字体和桌面图标间距的当前值。 (5)、程序使用实例 # 指定加载ini配置文件"D:\Program Files\User Data\myFontSet.ini",启动后将显示ini配置文件中的默认配置,注意:含空格的路径必须用双引号包围。 AgileFontSet "D:\Program Files\User Data\myFontSet.ini" # 指定加载ini配置文件D:\myFontSet.ini,启动后将选择ini文件中的UserPreset1配置。 AgileFontSet D:\myFontSet.ini -UserPreset1 # 指定后台设置ini配置文件D:\myFontSet.ini中的默认配置。 AgileFontSet D:\myFontSet.ini -hide # 指定后台设置ini配置文件D:\myFontSet.ini中的Win10Preset配置。 AgileFontSet D:\myFontSet.ini -Win10Preset -hide # 显示设置对话框和此帮助信息(当前选项卡),获取系统字体和桌面图标间距的当前值。 AgileFontSet -? # 显示设置对话框(当前选项卡)和此帮助信息,获取系统字体和桌面图标间距的当前值。 AgileFontSet (6)、免责申明 用户可自行斟酌选用该程序,若转载请注明出处。对一切后果,作者不承担任何责任!
ex_ui支持库界面2017.02.26 3编辑框 各列表框组件执行命令增加 设定Unicodeex文本返回 设定 设定后 内容和 结束编辑文本 属性 均会返回unicodeex文本 方便使用unicode 4解决部分繁体系统不显示文本 18所有列表框虚表增加2种实时回调方案 目前共计三种虚表模式 之后会推出新增的两种历程 1dep的问题 2修正选色板事件触发 4修正颜色选择器和日期选择器返回值 20除普通列表框外(因为他普通嘛)所有列表框插入自绘接口元素方案 和 纯色元素方案 10列表类组件增加设置背景颜色接口 超级列表框 和 普通列表框  新增表项状态模式 项目背景方案, 整数型, , , 0 使用皮肤 1使用_子项目独立皮肤 2使用背景色_列1背景色 3使用背景色_列1背景色仅普通状态  4使用背景色_子项目独立背景色 5使用背景色_子项目独立背景色仅普通状态 指定背景色后 列表不再处理热点和选中背景 用户通过事件 更改颜色 整行选择时 用第一列的背景颜色 非整行时用独立颜色 空白不绘制留空 图标列表框和树形列表框 因为可以随意插入重叠元素 增加个纯色元素即可 8对选择夹皮肤与代码做细节处理 皮肤附加属性 新增选中突出 属性 0 不突出 >0为绝对像素 小于0 为 子夹头宽或高/10*取绝对值(选中突出) 不再依赖素材透明度  让制作皮肤更简单 对多子夹头模式兼容更完美 14对工具条的插入按钮增加 插入菜单按钮(两种样式)和插入状态条按钮(4种样式) 新增边缘边缘剪辑属性 用以在做菜单条或状态栏靠近窗体边框时裁剪边线 工具条按钮增加内容 居左 居中 居右控制功能 以上改动让工具条更加强大!可以轻松实现 顶部菜单条和 底部状态栏 样式 12窗口ex样式方案 新增 底图图边框9 和颜色无边框 10 以上两种方案 组件可以越界到非客户显示 13 窗口执行命令新增背景绘制回调接口 可通过此接口 实现部分特殊效果 如对窗口背景进行处理 或者背景动画 9 增加 命令置exui消息回调 用以在exui遇到不确定的动作时通知程序  初步设计功能有 1 字体加载时若系统无字体通知                    用户可在此安装或指定字体文件 参数1 消息类型 201 参数2 unicode 字体名称 指针 参数3 int 参考 用于返回新的字体名称 参数4 保留 返回值 int 返回0 由exui核心自行寻找匹配字体 返回1 代表字体已安装处理完毕 核心重新调用创建函数创建字体 此时 无论是否创建成功 都不再调用回调 如果失败 核心则继续匹配字体 返回2 代表更改字体名称 核心从参考返回指针 调用创建字体  (此处需要unicode 编码) 2 运行时缺少必须的依赖文件                     用户自处理来源 wke 浏览框 启动时 判断wke是否已载入 没有则 在运行目录寻找wkedll 如果未找到 调用通知 参数1  消息类型 202 参数2  unicode 文件名(全路径)  指针 参数3  int 参考 用于返回新的文件名 参数4  保留 返回值  int 返回0 有exui核心自行处理wke丢失问题 返回1 代表wkedll 文件已经写入到指定路径 核心重新调用载入命令引用 wkedll 返回2 代表更改文件路径 核心从参考返回值指针 载入引用 dll (此处需要unicode 编码) 3 wke 加载后 询问注册js (可能需要加独立的注册命令) wke 首次载入时 调用 参数1  消息类型 203 参数2  保留参数 参数3  保留参数 参数4  保留 返回值  int 扩展组件库同步更新 修正 曲线图 柱状图 纵轴最小值 =0时 不能显示的问题 21内部字体加载和绘制接口更改理论上会加快启动速度已完成 开放调用exui绘制文本接口 重新规划 编辑框 字符输入 输入法 文本输入 某键按下 和 弹起 的 附加参数1 和附加参数 --------- 按下弹起 附加消息1 字符码 附加消息2  -1 or 1            窗口消息=附加消息2 字符输入 附加消息1 字符代码  附加消息2 -1 -2            窗口消息=附加消息2 输入法文本输入  附加消息 1 2048 附加消息2 窗口句柄      窗口消息=附加消息1 新增命令 组件取事件附加参数 (用于获取 以上事件的 附加信息) 扩展组件库 修正 曲线图 柱状图 最小值 小于0 时 不现实文本的问题 增加 4个 unicode 和 ansi 的互相转换命令 2扩展接口 扩展组件库 同步更新 扩展接口 新增 字体绘制 和皮肤绘制接口  因属于接口部分 同时 又直接作用于 扩展绘制组件 故库不直接在库内开放 对 菜单 和图片组的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值