2014-01-07 17 views
1

저는 Windows Forms를 사용하여 Minecraft 실행기를 코딩했습니다. 내가 탐지기를 찾지 못하면 실행기를 다운로드하도록 만들었습니다. EXE의 변수는 _exe (get-set을 사용했습니다)이라고합니다. 다른 양식을 실행기 비동기로 다운로드했습니다 (진행 표시 줄의 경우 미학에 대해 이야기합니다!). Main()이있는 에서 Boot()이라는 메서드를 사용하여 모든 설정을로드하고 누락 된 파일 (Minecraft.exe, Launch.bat (환경 변수 %APPDATA%을 설정합니다. 어떻게 환경 변수를 설정하고 Minecraft를 시작하는지에 대한 아이디어) DownloadLauncher 양식이 초기화되면 설정에서 이미 원본을 사용하도록 설정되어 있지만 실행 프로그램이있는 폴더로 다운로드한다는 메시지가 표시됩니다 (기본 옵션). %APPDATA% 폴더. 나는이 여러 번 선언 된 객체의 경우입니다 알고 있지만 나는 그런 큰 규모이기 때문에 그것을 해결하는 방법을 모른다.
Program.cs, DownloadLauncher.cs
문제가 변수입니다 라인이 '설정'당신의 변수에 이제 .minecraft\Minecraft.exe하지만다른 클래스에 같은 객체가 있습니까?

+0

덧붙여서, 이것은 WinForms를 사용한 적이 처음입니다 :) – Ilan321

+1

나는 그것을 승인하지 않겠지 만, 당신은 항상 가서 그 변수를 정적 클래스의 public 속성으로 저장할 수 있습니다. 그런 다음 '공유'할 수 있습니다. 이미 완벽하게 훌륭한 것이 있다면, 당신이 미니 크래프트 런처를 프로그래밍하는 이유는 무엇입니까? – Eisenhorn

+0

저는 개조 등을 설치하도록 계획하고 있습니다. 공공 재산의 예를 제시 할 수 있습니까? – Ilan321

답변

2
public static class VariableStore 
{ 
    public static string MinecraftPath 
    { 
     get; 
     set; 
    } 
} 

(%APPDATA%)\.minecraft\Minecraft.exe을 있어야되지 않으며, 당신은 전화 것 :

VariableStore.MinecraftPath = "%appdata%\\roaming\\.minecraft"; 

을 당신은 그것을 같은 방식으로 액세스 :

System.Diagnostics.Debug.Print(VariableStore.MinecraftPath); 

매우 조잡한 해결책이라는 것을 명심하십시오. 또한, 프로젝트를 진행할 계획이라면 (정말 좋은 학습 프로젝트처럼 들릴 것입니다.), WinForms에 대해 조금 더 알아보고 더 나아 가기 전에 어떻게 작동하는지에 대한 조언을드립니다. 이미 여러 가지 디자인 결함이 있습니다. 포기하지 말고 행운을 비네! :)

+0

어떤 종류의 디자인 결함입니까? o-o – Ilan321

+1

예를 들어 공개 및 비공개 변수에 대한 명명 체계가 있습니다. 밑줄을 사용하면 공용 변수가 아닌 개인용으로 거의 항상 사용됩니다. 또한 공용 변수 대신 속성을 시작하고 사용하십시오. 뿐만 아니라 유연성을 추가 할뿐만 아니라 좋은 디자인 선택입니다. – Eisenhorn

+0

아, 그런데'Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData)'를 호출하여 사용자의 appdata 디렉토리를 쉽게 검색 할 수 있습니다 :) – Eisenhorn

관련 문제