Persay,如果我想在我的程序的运行时更改.exe(就像它的原始名称将是:someexe.exe并且在你关闭之后它将变为随机或类似的东西)
我以前见过这件事,我非常有兴趣实施它只是为了好玩!
谢谢:)
答案 0 :(得分:4)
我不是百分百肯定,但常规rename
功能应该有效。但是,我不确定是否可以重命名操作系统当前保持打开的文件(我现在没有可以测试的Windows系统)。
如果您无法在“您自己的可执行文件”上执行此操作,则必须通过运行其他程序[或批处理文件]重新命名该文件,然后重新启动您自己的程序[例如让重命名程序再次启动你的程序,并以某种方式识别它现在是新名称并且可以继续。
答案 1 :(得分:1)
可能的代码
#include <iostream>
#include <windows.h>
int main(int argc, char** argv)
{
system("title a.exe");
std::cout<<"a.exe is the current name of your .exe file\n";
//do your stuff
std::cout<<"a.exe is changing to b.exe\n";
system("RENAME C:\\path\\a.exe b.exe");
system("title b.exe");
//do your stuff
std::cout<<"now b.exe is changing to a.exe\n";
system("title a.exe");
system("RENAME C:\\path\\b.exe a.exe");
//do you stuff
return 0;
}
但使用system
命令被认为是bad,因此您应该使用rename
命令,代码:
#include <stdio.h>
int main(int argc , char** argv)
{
rename("a.exe","bii.exe");
//do your stuff
rename("bii.exe","a.exe");
//do your stuff
return 0;
}
答案 2 :(得分:-1)
您必须复制可执行文件。然后您可以重命名该文件,当您关闭当前程序文件时,您需要将控制权转移到另一个程序,最好是删除原始可执行文件的批处理文件。 在windows system()中应该能够做到这些。 你还需要用代码编写自己的批处理文件来删除调用它的程序。