找回密码
 加入
搜索
查看: 4682|回复: 10

[AU3基础] 如何把Icon集成到Exe里面?[已解决]

  [复制链接]
发表于 2010-10-11 20:30:57 | 显示全部楼层 |阅读模式
本帖最后由 xianhou 于 2010-10-11 22:33 编辑

GUICtrlCreateIcon("test.ico", -1, 5, 130)

如果 au3 文件中使用了 test.ico 图标文件,如何把 icon 集成到编译出来的 exe 文件里,使得 test.exe 可以脱离 test.ico 文件,在没有 test.ico 的情况下也能正常显示 icon 控件?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-10-11 20:44:18 | 显示全部楼层
回复 1# xianhou


    FileInstall ( "源文件", "目标路径" [, 标志] )
 楼主| 发表于 2010-10-11 20:59:11 | 显示全部楼层
回复 2# guland

如果
FileInstall("test.ico", ".")
那么
运行 exe 文件后,会在当前目录下自动生成 test.ico 文件,这个不希望的。

#AutoIt3Wrapper_Icon=application.ico
$main_icon = "application.ico"
$main_gui = GUICreate("test", 350, 165, -1, -1)
GUISetIcon($main_icon)

这个写法可以让编译出来的 exe 文件脱离 application.ico 文件,正常显示 exe 图标和 gui icon 控件。
发表于 2010-10-11 21:03:56 | 显示全部楼层
回复 3# xianhou
#AutoIt3Wrapper_Icon=application.ico
$main_gui = GUICreate("test", 350, 165, -1, -1)
FileInstall("application.ico",@TempDir&"\application.ico")
GUISetIcon("application.ico")
FileDelete(@TempDir&"\application.ico")
 楼主| 发表于 2010-10-11 21:09:51 | 显示全部楼层
回复 4# guland

如果
#AutoIt3Wrapper_Res_Icon_Add=application.ico

那么,用 ResHacker 可以看到
在编译出来的 exe 文件里包含有 application.ico 这个图标,但是
GUICtrlCreateIcon("application.ico", -1, 5, 130)
不能正常显示。

why?
发表于 2010-10-11 21:15:22 | 显示全部楼层
Res 了肯定不是原文件名了… 你可以试试 GUICtrlCreateIcon(@AutoItExe, ...)
发表于 2010-10-11 21:18:53 | 显示全部楼层
回复 5# xianhou


    GUICtrlCreateIcon("application.ico", -1, 5, 130)

你得加个路径,而且AU3这方面支持一直不怎么好,
"res://" & @AutoItExe &
或者你可以用UDF,"resources.au3"
发表于 2010-10-11 21:42:29 | 显示全部楼层
If Not @compiled Then Msgbox(48, '', '确定图标路径,编译后再看')
#AutoIt3Wrapper_Res_Icon_Add=application.ico
GUICreate('窗口')
GUICtrlCreateIcon(@AutoItExe, -5, 180, 150)
GUISetState()
While GUIGetMsg() <> -3
WEnd
 楼主| 发表于 2010-10-11 22:25:31 | 显示全部楼层
回复 8# afan

Good.
It's OK.

原来是         GUICtrlCreateIcon(@AutoItExe, -5, 5, 130)

一直写成         GUICtrlCreateIcon(@AutoItExe, 5, 5, 130)  所以显示不出来
发表于 2010-10-12 10:19:04 | 显示全部楼层
GUICreate('窗口')
GUICtrlCreateIcon('logo.ico', -5, 180, 150)
GUISetState()
While GUIGetMsg() <> -3
WEnd
发表于 2010-10-12 11:30:24 | 显示全部楼层
FileInstall
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-3 04:32 , Processed in 0.088414 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表