This repository has been archived on 2025-07-18. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
ZUGABE/h-encore-auto/Util.cs

154 lines
5 KiB
C#
Raw Permalink Normal View History

2018-07-05 23:30:04 +02:00
using System;
using System.Net;
using System.Net.Http;
2018-07-03 12:12:23 +02:00
using System.IO;
using System.Windows.Markup;
using System.Windows;
2018-07-06 02:04:14 +02:00
using System.Collections.Generic;
2018-07-06 16:29:40 +02:00
using System.Diagnostics;
using System.Globalization;
2018-07-03 12:12:23 +02:00
namespace h_encore_auto
{
public class Util
{
2018-07-05 23:30:04 +02:00
private static WebClient web = new WebClient();
2018-07-03 12:12:23 +02:00
private static HttpClient http = new HttpClient();
public static string GetEncKey(string aid)
//Thanks to noahc3 (https://github.com/noahc3/) for this.
{
try
{
string page = http.GetStringAsync(Ref.urlCma + aid).Result;
return page.Substring(page.Length - 65, 64);
}
catch (Exception)
{
2018-07-06 16:29:40 +02:00
MessageBox.Show("Failed to get the CMA encryption key. Make sure your internet is connected and retry.");
2018-07-03 12:12:23 +02:00
return "";
}
}
public static void DeleteDirectory(string path)
{
foreach (string directory in Directory.GetDirectories(path))
{
DeleteDirectory(directory);
}
try
{
Directory.Delete(path, true);
}
catch (IOException)
{
Directory.Delete(path, true);
}
catch (UnauthorizedAccessException)
{
Directory.Delete(path, true);
}
}
public static void dlFile(string url, string filename)
{
using (WebClient client = new WebClient())
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
client.DownloadFile(url, Ref.tempDir + filename);
}
}
2018-07-06 16:29:40 +02:00
public static void Cleanup()
2018-07-03 12:12:23 +02:00
{
2018-07-06 16:29:40 +02:00
Process[] pname = Process.GetProcessesByName("qcma");
if (pname.Length != 0)
{
foreach (var proc in pname)
{
proc.Kill();
}
}
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
ProcessStartInfo startInfoOut = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.WorkingDirectory = Ref.tempDir;
if (Ref.isRegModified == true)
{
startInfo.Arguments = @"/C reg delete HKEY_CURRENT_USER\Software\codestation\qcma /f";
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
}
if (Ref.isQcmaConfigFound == true)
{
startInfo.Arguments = @"/C reg import " + Ref.pathBackupReg;
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
}
if (Directory.Exists(Ref.tempDir))
{
2018-07-08 19:28:31 +02:00
DeleteDirectory(Ref.tempDir);
2018-07-06 16:29:40 +02:00
}
Environment.Exit(0);
2018-07-03 12:12:23 +02:00
}
2018-07-06 02:04:14 +02:00
public static bool IsDirectoryEmpty(string path)
{
IEnumerable<string> items = Directory.EnumerateFileSystemEntries(path);
using (IEnumerator<string> en = items.GetEnumerator())
{
return !en.MoveNext();
}
}
2018-07-06 16:29:40 +02:00
public static string GetLang()
{
CultureInfo ci = CultureInfo.InstalledUICulture;
return ci.TwoLetterISOLanguageName;
}
2018-07-06 23:05:42 +02:00
public static void CopyDir(string sourceDirName, string destDirName, bool copySubDirs)
{
// Get the subdirectories for the specified directory.
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
if (!dir.Exists)
{
throw new DirectoryNotFoundException("Source directory does not exist or could not be found: " + sourceDirName);
}
DirectoryInfo[] dirs = dir.GetDirectories();
// If the destination directory doesn't exist, create it.
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}
// Get the files in the directory and copy them to the new location.
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
string temppath = Path.Combine(destDirName, file.Name);
file.CopyTo(temppath, false);
}
// If copying subdirectories, copy them and their contents to new location.
if (copySubDirs)
{
foreach (DirectoryInfo subdir in dirs)
{
string temppath = Path.Combine(destDirName, subdir.Name);
CopyDir(subdir.FullName, temppath, copySubDirs);
}
}
}
2018-07-03 12:12:23 +02:00
}
}