重新启动时需要启动的c#程序

重新启动时需要启动的c#程序,c#,C#,我试图在c#中构建一个应用程序,我将exe转换为十六进制,然后分配给字符串hexo,我需要应用程序在系统重新启动时自动运行,我面临的另一个问题是,应用程序出现故障并给我错误,它已停止工作或win 32应用程序无效 我的完整程序代码在pastebin上,请大家看一下,请告诉我启动代码以及应该在哪里添加启动代码,并可能帮助我解决应用程序崩溃错误。 我正在visual studio 2015中使用windows窗体和.NET Framework 4.5.2 这是我的密码: static class P

我试图在c#中构建一个应用程序,我将exe转换为十六进制,然后分配给字符串hexo,我需要应用程序在系统重新启动时自动运行,我面临的另一个问题是,应用程序出现故障并给我错误,它已停止工作或win 32应用程序无效

我的完整程序代码在pastebin上,请大家看一下,请告诉我启动代码以及应该在哪里添加启动代码,并可能帮助我解决应用程序崩溃错误。
我正在visual studio 2015中使用windows窗体和.NET Framework 4.5.2

这是我的密码:

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        string hexo = ""; //Removed binary
        byte[] byt = StringToByteArrayFastest(hexo);
        Assembly a = Assembly.Load(byt);
        MethodInfo m = a.EntryPoint;
        var parameters = m.GetParameters().Length == 0 ? null : new[] { new string[0] };
        m.Invoke(null, parameters);
    }
    public static byte[] StringToByteArrayFastest(string hex)
    {
        if (hex.Length % 2 == 1)
            throw new Exception("The binary key cannot have an odd number of digits");

        byte[] arr = new byte[hex.Length >> 1];

        for (int i = 0; i < hex.Length >> 1; ++i)
        {
            arr[i] = (byte)((GetHexVal(hex[i << 1]) << 4) + (GetHexVal(hex[(i << 1) + 1])));
        }

        return arr;
    }

    public static int GetHexVal(char hex)
    {
        int val = (int)hex;
        //For uppercase A-F letters:
        return val - (val < 58 ? 48 : 55);
        //For lowercase a-f letters:
        //return val - (val < 58 ? 48 : 87);
        //Or the two combined, but a bit slower:
        //return val - (val < 58 ? 48 : (val < 97 ? 55 : 87));
    }

}
静态类程序
{
/// 
///应用程序的主要入口点。
/// 
[状态线程]
静态void Main()
{
字符串hexo=”“;//删除的二进制文件
字节[]byt=StringToByteArrayFastest(hexo);
组件a=组件负载(byt);
MethodInfo m=a.入口点;
var parameters=m.GetParameters().Length==0?null:new[]{new string[0]};
m、 调用(null,参数);
}
公共静态字节[]StringToByteArrayFastest(字符串十六进制)
{
如果(十六进制长度%2==1)
抛出新异常(“二进制键不能有奇数位数”);
字节[]arr=新字节[hex.Length>>1];
对于(int i=0;i>1;++i)
{

arr[i]=(字节)(GetHexVal(十六进制[我请看上面,它的附录如果你想加载程序集,加载二进制图像不是更容易吗?你的意思是关于十六进制代码吗?我取了应用程序的十六进制代码,并进行了位移动以防止应用程序崩溃。我对这一操作有一个新的猜测:你试图将程序集嵌入到你的应用程序中可执行文件。另请参见:
byte b=Convert.ToByte(十六进制子字符串(i,2),16)