我一直使用Windows Forms编写Minecraft启动器。如果它没有检测到,我就下载了启动器。 EXE的变量称为_exe
(我使用了get-set)。我做了另一个表格下载启动器异步(对于进度条,谈论美学!)。在Program.cs
中,所有重要事件发生的地方(Main()
都是),我有一个名为Boot()
的方法,它加载所有设置并检查丢失的文件(Minecraft.exe,Launch。 bat(设置环境变量%APPDATA%
,因为我不知道如何设置环境变量并使用它启动Minecraft。)当DownloadLauncher表单初始化时,它告诉我它正在下载到启动器所在的文件夹中(是默认选项)虽然在设置中它已经设置为使用原始的%APPDATA%
文件夹。我知道这是一个对象被多次声明的情况,但我不知道如何解决它,因为它是如此大规模。
Program.cs,DownloadLauncher.cs
问题是第23行中的变量prog._rw.var._exe
不应该是.minecraft\Minecraft.exe
而是(%APPDATA%)\.minecraft\Minecraft.exe
答案 0 :(得分:2)
public static class VariableStore
{
public static string MinecraftPath
{
get;
set;
}
}
现在要“设置”你的变量,你可以打电话:
VariableStore.MinecraftPath = "%appdata%\\roaming\\.minecraft";
您可以通过相同的方式访问它:
System.Diagnostics.Debug.Print(VariableStore.MinecraftPath);
请记住,这是一个非常粗糙的解决方案。另外,如果你计划完成你的项目(听起来这是一个非常好的学习项目),我建议你在进一步学习之前先阅读更多关于WinForms以及它们如何工作的内容,就像你一样已经存在多种设计缺陷。不要放弃,祝你好运! :)