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