static void Main(string[] args) { FileUnblocker fub = new FileUnblocker(); string[] list = Directory.EnumerateFiles("./", "*.*", SearchOption.AllDirectories).ToArray(); foreach (string s in list) { Console.WriteLine($"Filename - {s} :: Unblocked -> {fub.Unblock(s)}"); } }
public static Process StartPowerPoint(string pptPath) { var success = FileUnblocker.Unblock(pptPath); if (!success) { throw new InvalidOperationException($"The specified file is blocked and can not be unblocked. {pptPath}"); } if (powerPointPath == null) { powerPointPath = FindExtensionExe(Path.GetExtension(pptPath)); } var processName = Path.GetFileNameWithoutExtension(powerPointPath); var existingProcesses = Process.GetProcessesByName(processName); foreach (var item in existingProcesses) { var cmd = GetCommandLine(item); if (cmd?.Contains("/s", StringComparison.InvariantCultureIgnoreCase) == true) { item.Kill(); } } ProcessStartInfo psi = new ProcessStartInfo(powerPointPath); psi.ArgumentList.Add("/S"); psi.ArgumentList.Add(pptPath); psi.UseShellExecute = true; using var process = Process.Start(psi); process.WaitForInputIdle(); Process powerPointProcess; int maxTries = 50; do { maxTries--; if (!process.HasExited) { Thread.Sleep(10); } powerPointProcess = WindowEnumerationHelper.GetProcesses(processName).FirstOrDefault(x => GetCommandLine(x)?.Contains(pptPath) == true); if (powerPointProcess == null) { Thread.Sleep(10); } } while (powerPointProcess == null && maxTries > 0); return(powerPointProcess); }
/// <summary> /// Removes Zone Information from dynamic link libraries downloaded from the internet such /// that certain users of Microsoft Windows would not be denied loading of our own arbitrary code. /// </summary> /// <remarks> /// Only affects files downloaded via very specific certain outdated programs such as /// Internet Explorer /// </remarks> public static void UnblockDlls() { // Print Info Message about Unlocking DLLs LoaderConsole.PrintFormattedMessage("Removing Zone Identifiers from Files (DLL Unlocking)", LoaderConsole.PrintInfoMessage); // Search all DLLs under loader directories. // Normally I'd restrict this to mod directories, but the loader's own libraries might also be worth checking. string[] dllFiles = Directory.GetFiles(LoaderPaths.GetModLoaderDirectory(), "*.dll", SearchOption.AllDirectories); // Unblock new file. foreach (string dllFile in dllFiles) { FileUnblocker.Unblock(dllFile); } }
public void CheckAPI() { try { if (File.Exists(c)) { a = FileVersionInfo.GetVersionInfo(c).FileVersion; } if (File.Exists(d)) { b = FileVersionInfo.GetVersionInfo(d).FileVersion; } j = GetStringFromUrl("http://ext.elitemmonetwork.com/downloads/eliteapi/index.php?v"); k = GetStringFromUrl("http://ext.elitemmonetwork.com/downloads/elitemmo_api/index.php?v"); if (a == "" || a != j) { MF.Logger.AddDebugText(MF.CheckedItemsRTB, "Getting Latest EliteAPI.dll"); Client.DownloadFile("http://ext.elitemmonetwork.com/downloads/eliteapi/EliteAPI.dll", c); } if (b == "" || b != k) { MF.Logger.AddDebugText(MF.CheckedItemsRTB, "Getting Latest EliteMMO.API.dll"); Client.DownloadFile("http://ext.elitemmonetwork.com/downloads/elitemmo_api/EliteMMO.API.dll", d); } Client.Dispose(); DirSearch(Application.StartupPath); FileUnblocker.UnblockFile(c); FileUnblocker.UnblockFile(d); MF.Logger.AddDebugText(MF.CheckedItemsRTB, "Finished Checking EliteMMO.dlls"); } catch (Exception ex) { MF.Logger.LogFile(ex.Message, "CheckneededFiles"); } }
public static void loadPlugins() { string settings = File.ReadAllText(Environment.CurrentDirectory + "/settings.json"); HookSettings hookSettings = JsonConvert.DeserializeObject <HookSettings>(settings); BackgroundWorker pluginWorker = new BackgroundWorker(); pluginWorker.DoWork += (object sender, DoWorkEventArgs e) => { string currentDir = Environment.CurrentDirectory; DirectoryInfo pluginDir = new DirectoryInfo(currentDir + "\\Plugins"); if (!pluginDir.Exists) { pluginDir.Create(); } foreach (FileInfo file in pluginDir.GetFiles()) { if (!file.Name.Contains(".dll")) { Logger.Log("Skipping " + file.Name + " as it isnt a .dll"); continue; } if (!hookSettings.enabledPlugins.Contains(file.Name)) { Logger.Log("Skipping " + file.Name + " as it isnt enabled."); continue; } BackgroundWorker pluginLoadWorker = new BackgroundWorker(); pluginLoadWorker.DoWork += (object obj, DoWorkEventArgs dw) => { try { Logger.Log("Unblocking " + file.Name); FileUnblocker.Unblock(file.FullName); Logger.Log("Attempting to load " + file.Name); Assembly pluginAsm = Assembly.LoadFrom(file.FullName); Type pluginType = typeof(NkPlugin); foreach (Type t in pluginAsm.GetTypes()) { //Logger.Log("Found class " + t.Name); if (pluginType.IsAssignableFrom(t)) { Logger.Log("Found " + t.Name + " to be assignable"); NkPlugin plugin = (NkPlugin)Activator.CreateInstance(t); plugin.NkLoad(); Logger.Log("Loaded " + t.Name + " via NkPlugin load function"); } } } catch (Exception ex) { Logger.Log("Exception while loading plugin!"); Logger.Log("-------------------------------"); Logger.Log("Message: " + ex.Message); Logger.Log("Stacktrace:\n" + ex.StackTrace); Logger.Log("-------------------------------"); } }; pluginLoadWorker.RunWorkerAsync(); } Console.Title = "NKHook5-Console"; }; pluginWorker.RunWorkerAsync(); }