让可执行文件可以保存信息在自身中!!!

abcdwell 2011-01-09 03:33:14
平时写程序时常会用到一些配置项,
比如设置字体/设置颜色/默认路径/安全密码等等,

一般的做法都是用配置文件(如 .ini)或注册表,
感觉这样做很有弊端,比如说,换台电脑又要重新配置/或者连同配置文件拷贝,

时常造成一些不便。

所以,想请教大家:
有没有办法可以把配置的相关信息都放在本身的exe文件中,这样,只需要拷贝一个文件即可,

有了解这方面信息的请指导一二,先谢过了!
...全文
397 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
TandyT 2011-01-13
  • 打赏
  • 举报
回复
5 楼的方法应该可以,楼主试试,
feabornt 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gudufuyun 的回复:]
主程序a.exe将要写的信息写入同目录ini
配置信息写完后,通过资源生成预先配置程序b.exe

当主程序a响应WM_CLOSE时候,ShellExecute打开b并向b.exe发生自定义消息。
b接到自定义消息后,找不到A窗口句柄时,读取ini并在a中预留位写入配置信息

当关闭b时,删除ini,并通过生成bat方式实现自删除
[/Quote]
尝试
zhuweiping2003 2011-01-13
  • 打赏
  • 举报
回复
关注
freelove1 2011-01-13
  • 打赏
  • 举报
回复
11楼的做法是主流做法,看看WinRAR , 将数据文件和执行文件放入同一个可执行文件,点击运行后,在当前程序目录下建一个run的目录,解压到所有文件到run目录,并锁定文件(防止别人误删),并执行可执行文件, 在可执行文件执行完后,将run下的文件重新打包,替换之前的文件.
gudufuyun 2011-01-10
  • 打赏
  • 举报
回复
主程序a.exe将要写的信息写入同目录ini
配置信息写完后,通过资源生成预先配置程序b.exe

当主程序a响应WM_CLOSE时候,ShellExecute打开b并向b.exe发生自定义消息。
b接到自定义消息后,找不到A窗口句柄时,读取ini并在a中预留位写入配置信息

当关闭b时,删除ini,并通过生成bat方式实现自删除
手机写程序 2011-01-10
  • 打赏
  • 举报
回复
open file用正规的麻烦的API也是可以写的,叫Volume Shadow Copy Service.lz找下Microsoft VSSSDK.
heng691 2011-01-09
  • 打赏
  • 举报
回复
帮顶……

原先看过一篇文章,讲可黑客程序的,在exe文件尾部写入信息。

第一种方法,用UltraEdit软件,把exe程序尾部增加一部分空间。

CFile openoriginalfile;  
openoriginalfile.Open(originalfile, CFile::modeReadWrite);
openoriginalfile.Seek( -sizeof(NAMES), CFile::end ); //这个NAMES就是我要保存的配置的一个struct,下面的n是具体的NAMES的对象
openoriginalfile.Write( &n, sizeof(NAMES) );
openoriginalfile.Close();


整个过程不需要得到原文件的长度,而且也能保证写到最后。相应的,读取的代码如下:

CFile myfile;  
myfile.Open(myfilename, CFile::modeRead);
myfile.Seek( -sizeof(NAMES), CFile::end );
myfile.Read( &n, sizeof(NAMES) );


貌似灰鸽子的配置信息就是写入资源里的。

其实还有一种简单的方法就是,编程时先留好空间。然后直接找到对应的字节,替换之。原理行得通,没弄过这块儿,希望对你有帮助,同时等待高手……

abcdwell 2011-01-09
  • 打赏
  • 举报
回复
感觉要沉了…………
哈利路亚1874 2011-01-09
  • 打赏
  • 举报
回复
可以在程序的最后添加一个数据附加段,来填写你的配置,不过这样的话,你需要动态去获取便宜读取数据
abcdwell 2011-01-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lisunlin0 的回复:]
可以,但是比较麻烦,而且涉及到不少类似病毒的操作,会被杀毒软件报毒。
[/Quote]

在不考虑杀毒软件的情况下,

可以详细点说说大概怎样做吗?

或者给点相关资料也行,
sunlin7 2011-01-09
  • 打赏
  • 举报
回复
可以,但是比较麻烦,而且涉及到不少类似病毒的操作,会被杀毒软件报毒。
heng691 2011-01-09
  • 打赏
  • 举报
回复
自我理解是,一般软件都将配置信息保存在外部文件中,执行时读取配置信息。

当然可以为用户提供选项,如:勾选相应选项,执行不同操作等,但下一次执行exe,还将是默认操作。

exe属于PE文件,能捆绑文件,很多病毒都这样做的,但满足上述要求,还期待高手解答。
wltg2001 2011-01-09
  • 打赏
  • 举报
回复
感觉有点难,EXE在执行的过程中是不能被修改的。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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