真正的蓝屏很难弄。
可以最大化窗口,背景颜色设为蓝色,然后加上蓝屏代码,边框样式为NONE,不显示在任务栏中。
开个线程关闭任务管理器,屏蔽alt+f4,修改注册表屏蔽系统快捷键(例如:win+D)
用api将鼠标和键盘屏蔽。
差不多就达到模拟蓝屏的效果了。
肯定不行,楼主,就不要这么纠结了吧,你去试试c或者c++
哈哈,这里有人提出了一种解决方式 http://wenwen.soso.com/z/q175278778.htm
内核级别的驱动开发才会引起蓝屏,WIN的普通开发基本都是调用API都是在用户模式很难引发蓝屏,只有进入内核模式才无所不能.
楼主是在写病毒吗? C#写病毒不太现实, 虽然有先例...
N年前我就看到国外一个17岁的美女用C#写病毒了,这有什么不现实的。
很难。。。一个比较简单的方法是写一个内核驱动,然后安装,完成后用csharp调用这个内核驱动。
内核驱动可以很简单,将一些乱七八糟的核心数据结构改掉就可以了……几秒中之后,你会发现蓝屏了。
@花开花又落
非常不错的想法,另类的蓝瓶
C#蓝屏代码:
命名空间:
using System.Runtime.InteropServices;
声明引用:
[DllImport("ntdll.dll", SetLastError = true)]
private static extern int NtSetInformationProcess(IntPtr hProcess, int processInformationClass, ref int processInformation, int processInformationLength);
蓝屏代码:
int isCritical = 1; // we want this to be a Critical Process
int BreakOnTermination = 0x1D; // value for BreakOnTermination (flag)
Process.EnterDebugMode(); //acquire Debug Privileges
// setting the BreakOnTermination = 1 for the current process
NtSetInformationProcess(Process.GetCurrentProcess().Handle, BreakOnTermination, ref isCritical, sizeof(int));
完整代码:
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
public class CriticalProcess
{
[DllImport("ntdll.dll", SetLastError = true)]
private static extern int NtSetInformationProcess(IntPtr hProcess, int processInformationClass, ref int processInformation, int processInformationLength);
static void Main(string[] args)
{
int isCritical = 1; // we want this to be a Critical Process
int BreakOnTermination = 0x1D; // value for BreakOnTermination (flag)
Process.EnterDebugMode(); //acquire Debug Privileges
// setting the BreakOnTermination = 1 for the current process
NtSetInformationProcess(Process.GetCurrentProcess().Handle, BreakOnTermination, ref isCritical, sizeof(int));
}
}