int main(int argc, char *argv[]) { int os = 0; int err = 0; int java = 0; printf("Verifying the loader is in the same directory as minecraft.jar..\n"); if (VerifyFileExists("minecraft.jar") != 1) { printf("Unable to detect minecraft.jar. Please put the loader into the minecraft folder and re-run the loader\n"); err = 1; } else { printf("Attempting to detect which architexture is available..\n"); os = GetOSType(); printf("Attempting to detect which java version is available..\n"); java = GetJavaTypeAndPath(os); printf("Attempting to launch Minecraft..\n"); err = Launch(os, java); } #ifdef _DEBUG getchar(); #else if (err != 0) { //We'll break if we get an error printf("Please press enter to exit\n"); getchar(); } #endif return 0; }
bool FAssetTypeActions_CSVAssetBase::CanExecuteFindExcelFileInExplorer(TArray<FString> Filenames, TArray<FString> OverrideExtensions) const { // Verify that extensions were provided if (OverrideExtensions.Num() == 0) { return false; } // Verify that the file exists with any of the given extensions for (TArray<FString>::TConstIterator FilenameIter(Filenames); FilenameIter; ++FilenameIter) { const FString CSVFilename = FPaths::ConvertRelativePathToFull(*FilenameIter); const FString RootPath = FPaths::GetPath(CSVFilename); const FString BaseFilename = FPaths::GetBaseFilename(CSVFilename, true); for (TArray<FString>::TConstIterator ExtensionItr(OverrideExtensions); ExtensionItr; ++ExtensionItr) { const FString FilenameWithExtension(FString::Printf(TEXT("%s/%s%s"), *RootPath, *BaseFilename, **ExtensionItr)); if (VerifyFileExists(FilenameWithExtension)) { return true; } } } return false; }
void FAssetTypeActions_CSVAssetBase::ExecuteFindExcelFileInExplorer(TArray<FString> Filenames, TArray<FString> OverrideExtensions) { for (TArray<FString>::TConstIterator FilenameIter(Filenames); FilenameIter; ++FilenameIter) { const FString CSVFilename = FPaths::ConvertRelativePathToFull(*FilenameIter); const FString RootPath = FPaths::GetPath(CSVFilename); const FString BaseFilename = FPaths::GetBaseFilename(CSVFilename, true); for (TArray<FString>::TConstIterator ExtensionItr(OverrideExtensions); ExtensionItr; ++ExtensionItr) { const FString FilenameWithExtension(FString::Printf(TEXT("%s/%s%s"), *RootPath, *BaseFilename, **ExtensionItr)); if (VerifyFileExists(FilenameWithExtension)) { FPlatformProcess::LaunchFileInDefaultExternalApplication(*FilenameWithExtension, NULL, ELaunchVerb::Edit); break; } } } }
int GetJavaTypeAndPath(int arch) { //Return 86 or 64 depending on which java is avialable. 0 means it isn't available. Also, set the reg key char buffer[20]; HKEY key; char base[] = "SOFTWARE\\JavaSoft\\Java Runtime Environment"; char regKeyPath[150]; long tmp = 0; int type = 0; DWORD shit = 20; if (arch == 64) { //Not a cure-all, but it seems if its in SysWow64, then its 64 bit available if (VerifyFileExists("C:\\Windows\\Syswow64\\javaw.exe")) { type = 64;} } pathLen = 257; ZeroMemory(buffer, 20); //Now lets get the folder path, since launching from Windows\SysWow64\javaw.exe doesn't allow us to run in 64-bit mode //We'll also try to verify if we can run in 64 bit mode by seeing if its in Program Files (x86) on a 64-bit machine strcpy(regKeyPath, base); tmp = RegOpenKeyEx(HKEY_LOCAL_MACHINE, base,0, KEY_READ | KEY_WOW64_64KEY ,&key); if (tmp != ERROR_SUCCESS) { return 0;} tmp = RegGetValue(key, NULL,"CurrentVersion", RRF_RT_REG_SZ, NULL, (PVOID)&buffer, &shit); if (tmp != ERROR_SUCCESS) { return 0;} strcat(regKeyPath, "\\"); strcat(regKeyPath, buffer); tmp = RegOpenKeyEx(HKEY_LOCAL_MACHINE, regKeyPath,0, KEY_READ | KEY_WOW64_64KEY ,&key); if (tmp != ERROR_SUCCESS) { return 0;} tmp = RegGetValue(key, NULL,"JavaHome", RRF_RT_REG_SZ, NULL, (PVOID)&javaBinPath, &pathLen); if (tmp != ERROR_SUCCESS) { return 0;} //Append the exe strcat(javaBinPath, "\\bin\\javaw.exe"); if (arch != 64) { arch = 86;} return arch; }