-1

我刚刚发布了这个简单的控制台应用程序,它应该显示一个文本框,其值为“userID”,值为 1001。这就像一个魅力。现在我需要的是在编辑器之外,从记事本等更改这个值。

当我打开应用程序很多时,那里没有意义(& o!-å Þþþ,o" Ü+)等,但快速(ctrl + F)我找到了值1001,并将其更改为其他一些整数.我再次运行该应用程序,但它失败了,甚至没有给出任何有用的错误消息。有一次我尝试打开一个新发布的未损坏的应用程序版本,没有更改任何内容,然后从记事本中保存,而且它也被破坏了。似乎记事本无法打开某些字符或其他东西。我是否需要以某种特定的文本-unicode语言或其他东西发布应用程序?

非常感谢帮助:) 我知道这听起来像一个愚蠢的应用程序,但这只是一个概念测试:)

我为此使用 vb.net

4

4 回答 4

4

您需要使用二进制文件编辑器(也称为十六进制编辑器)。如果您以二进制模式打开文件,Visual Studio 可以做到这一点。记事本是一个文本编辑器,当你用它保存二进制文件时,它会以各种方式搞砸,最明显的是将 \n 替换为 \r\n。此外,关于您的问题的其他所有内容都非常可怕。你为什么要编辑EXE文件?

于 2010-12-27T22:41:39.370 回答
1

记事本旨在读取和写入文本文件。将任意二进制文件(如可执行文件)加载到记事本中可能会损坏文件。

您可能正在寻找的通常称为“十六进制编辑器”

于 2010-12-27T22:41:43.453 回答
0

记事本是为编辑文本文件而设计的,不能很好地处理二进制文件,即其中包含各种非文本或不可见 ASCII 代码的文件。

手动更改 EXE 将不起作用。您需要一些外部配置文件(如 XML 或简单文本文件),您将在其中存储此设置的值并从中读取。

于 2010-12-27T22:42:27.163 回答
0

您是否考虑过修改代码文件,然后通过Process.Start运行编译器,而不是编辑 Exe

于 2010-12-27T22:54:40.203 回答