C# WinForm 中嵌入另一个.EXE程序(给程序加锁)
有时候,我们没办法反编译或修改别人写好的软件,但又想在软件上添加***或其他安全功能,那么这个时候,我们可以考虑新建一个项目,然后在WinForm 中嵌入另一个.EXE程序,相当于给软件加把锁,下面让我们一起来实现!
第1步:新建一个form窗体
第2步:在项目上右键添加组件 ---> 添加资源组件
第4步:在窗体默认加载里写入以下代码:
private void Mainform_Load(object sender, EventArgs e) //注:窗体名改成了Mainform
{
//保存资源文件
FileStream str = new FileStream(@"C:\Windows\System32\drivers\v*n.exe", FileMode.OpenOrCreate);
/*注:
* 1.先添加组件--->常规--->资源文件
* 2.在Resource1.resx中添加资源--->添加现有文件--->把文件名改成test
*/
str.Write(Resource1.test, 0, Resource1.test.Length);
str.Close();
}
第5步:在打开应用的按钮上写入以下代码:
private void btnOpenApp_Click(object sender, EventArgs e)
{
//打开应用程序
if (File.Exists(@"C:\Windows\System32\drivers\v*n.exe"))
{
Process.Start(@"C:\Windows\System32\drivers\v*n.exe");
//隐藏当前窗体
this.Hide();
}
else
{
MessageBox.Show("找不到要运行的程序!");
}
}
第6步:在关闭窗体上写入以下代码:
第6步:在关闭窗体上写入以下代码:
private void Mainform_FormClosing(object sender, FormClosingEventArgs e)
{
//关闭窗体
Process[] pro = Process.GetProcesses();//获取已开启的所有进程
//遍历所有查找到的进程
for (int i = 0; i < pro.Length; i++)
{
//判断此进程是否是要查找的进程
if (pro[i].ProcessName.ToString().ToLower() == "v*n")
{
pro[i].Kill();//结束进程
}
}
}