DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: swegfrt
今日帖子: 0
在线用户: 8
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 dbyoung (dbyoung) ★☆☆☆☆ -
普通会员
2022/6/16 14:55:24
标题:
Windows 程序中的版本信息如何做到动态变化? 浏览:713
加入我的收藏
楼主: 一个程序,给3家公司使用。版本信息中要显示对应的公司名称。
能否实现(一个程序)?
此帖子包含附件:
PNG 图像
大小:18.6K
----------------------------------------------
武汉天气不好
作者:
男 tuesdays (Tuesday) ▲▲▲▲△ -
注册会员
2022/6/16 14:59:29
1楼: 打包三次很累吗?
----------------------------------------------
delphi界写python最强, python界写delphi最强. 写自己的代码, 让别人去运行.
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2022/6/16 15:04:03
2楼: 全部改成空。气死他们。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 liyanhong (李彦宏) ▲▲▲△△ -
注册会员
2022/6/16 16:38:49
3楼: 打包三次是必须的。需要用到三个不同的资源文件。
----------------------------------------------
-
作者:
男 dbyoung (dbyoung) ★☆☆☆☆ -
普通会员
2022/6/16 17:23:52
4楼: 文件1.2G,包400M多。打包三次的确累。以后还要维护三个版本,也是麻烦。

现在程序是可以动态切换的。

空是一个选择。
----------------------------------------------
武汉天气不好
作者:
男 keymark (嬲) ▲▲△△△ -
注册会员
2022/6/16 19:19:42
5楼: 这个位置的信息我记得资源编辑器可以改?
源码好像可以指定资源文件吧?不用去配置工程。
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2022/6/16 19:37:47
6楼: 搞不懂你的需求,版本里的公司名一般不都是开发的公司名吗?用户的公司名应该显示在关于窗口中吧?
有个简单的方法:用 Resource Hacker 可以直接修改资源信息,支持命令行。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 net1999 (net1999) ★☆☆☆☆ -
普通会员
2022/6/16 22:08:58
7楼: 标准答案:安排一个工程组中的三个工程。分别编译一次。源代码是一套的。
----------------------------------------------
-
作者:
男 emailx45 (emailx45) ▲▲▲▲△ -
注册会员
2022/6/17 0:00:44
8楼: you can try this Script using ResourceHacker tool:

----------
 @echo off
    :start1
    set /p newVersion=Enter version number [?.?.?.?]:
    if "%newVersion%" == "" goto start1
    :start2
    set /p file=Enter EXE name [for 'program.exe' enter 'program']:
    if "%file%" == "" goto start2
    for /f "tokens=1-4 delims=." %%a in ('echo %newVersion%') do (set ResVersion=%%a,%%b,%%c,%%d)
    (
    echo:VS_VERSION_INFO VERSIONINFO
    echo:    FILEVERSION    %ResVersion%
    echo:    PRODUCTVERSION %ResVersion%
    echo:{
    echo:    BLOCK "StringFileInfo"
    echo:    {
    echo:        BLOCK "040904b0"
    echo:        {
    echo:          VALUE "CompanyName",        "MyCompany\0"
    echo:          VALUE "FileDescription",    "TestFile\0"
    echo:          VALUE "FileVersion",        "%newVersion%\0"
    echo:          VALUE "LegalCopyright",     "COPYRIGHT © 2019 MyCompany\0"
    echo:          VALUE "OriginalFilename",   "%file%.exe\0"
    echo:          VALUE "ProductName",        "Test\0"
    echo:          VALUE "ProductVersion",     "%newVersion%\0"
    echo:        }
    echo:    }
    echo:    BLOCK "VarFileInfo"
    echo:    {
    echo:        VALUE "Translation", 0x409, 1200
    echo:    }
    echo:}
    ) >Resources.rc     &&      echo setting Resources.rc
    ResourceHacker.exe -open resources.rc -save resources.res -action compile -log CONSOLE
    ResourceHacker -open "%file%.exe" -save "%file%Res.exe" -action addoverwrite -resource "resources.res"  -log CONSOLE
    ResourceHacker.exe -open "%file%Res.exe" -save "%file%Ico.exe" -action addskip -res "%file%.ico" -mask ICONGROUP,MAINICON, -log CONSOLE
    xCopy /y /f "%file%Ico.exe" "%file%.exe"
    echo.
    echo.
    echo your compiled file %file%.exe is ready
    pause
----------------------------------------------
The higher the degree, the greater the respect given to the humblest!
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2022/6/17 9:00:27
9楼: 一份代码收三份的钱,编译三次就嫌麻烦了? 哈哈
----------------------------------------------
-
作者:
男 lsuper (lsuper) ★☆☆☆☆ -
盒子活跃会员
2022/6/17 10:17:32
10楼: 统一打板,但给客户发版前通过 ResourceHacker.exe 结合 脚本动态修改 exe 资源中相关信息

参考这里:http://angusj.com/resourcehacker/
----------------------------------------------
-
作者:
男 lsuper (lsuper) ★☆☆☆☆ -
盒子活跃会员
2022/6/17 10:30:15
11楼: 或者一个邪恶的方法,给 explorer 注入 dll:

通过 hook 方式动态修改拦截 version.dll api 请求,发现是查询你的文件则返回预设信息,否则默认放行
----------------------------------------------
-
作者:
男 dbyoung (dbyoung) ★☆☆☆☆ -
普通会员
2022/6/17 10:43:37
12楼: 哈哈,楼上真的是无所不用其极。
----------------------------------------------
武汉天气不好
作者:
男 lr46752881 (Anuo) ★☆☆☆☆ -
注册会员
2022/6/17 18:41:58
13楼: 找个带资源编辑的加壳就可以了。

11楼的explorer 注入 dll,现在电脑都是32和64位进程了,还要考虑32位和64位的DLL注。这杀鸡用牛刀了
----------------------------------------------
123
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行180.0537毫秒 RSS