50 lines
2.2 KiB
C#
50 lines
2.2 KiB
C#
using System;
|
|
using System.Reflection;
|
|
using Microsoft.Win32;
|
|
|
|
[assembly: AssemblyCompany("Ivasoft s.r.o.")]
|
|
[assembly: AssemblyProduct("VisualStudioMock")]
|
|
[assembly: AssemblyTitle("Visual Studio Mock for EAZfuscator")]
|
|
[assembly: AssemblyVersion("1.0.0.0")]
|
|
|
|
namespace VisualStudioMock
|
|
{
|
|
public class Program
|
|
{
|
|
[STAThread]
|
|
public static void Main(string[] args)
|
|
{
|
|
AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => Console.WriteLine("Exception: " + e.ExceptionObject);
|
|
|
|
if (args.Length == 1)
|
|
switch (args[0]) {
|
|
case "/reg":
|
|
using (RegistryKey regBase = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64))
|
|
using (RegistryKey regCoClass = regBase.CreateSubKey("CLSID\\{177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D}\\InprocServer32"))
|
|
{
|
|
regCoClass.SetValue("", "mscoree.dll");
|
|
regCoClass.SetValue("Class", "VisualStudioMock.SetupConfiguration");
|
|
regCoClass.SetValue("Assembly", "VisualStudioMock, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
|
|
regCoClass.SetValue("RuntimeVersion", "v4.0.30319");
|
|
regCoClass.SetValue("ThreadingModel", "Apartment");
|
|
regCoClass.SetValue("CodeBase", Assembly.GetExecutingAssembly().Location);
|
|
}
|
|
Console.WriteLine("Visual Studio Mock registered.");
|
|
return;
|
|
|
|
case "/unreg":
|
|
using (RegistryKey regBase = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64))
|
|
{
|
|
regBase.DeleteSubKey("CLSID\\{177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D}\\InprocServer32", throwOnMissingSubKey: false);
|
|
regBase.DeleteSubKey("CLSID\\{177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D}\\LocalServer32", throwOnMissingSubKey: false);
|
|
regBase.DeleteSubKey("CLSID\\{177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D}", throwOnMissingSubKey: false);
|
|
}
|
|
Console.WriteLine("Visual Studio Mock unregistered.");
|
|
return;
|
|
}
|
|
|
|
Console.WriteLine("Usage: VisualStudioMock.exe [ /reg | /unreg ]");
|
|
return;
|
|
}
|
|
}
|
|
} |