Ram*_*ami 3 .net c# windows-services printscreen c#-4.0
protected override void OnStart(string[] args)
{
base.OnStart(args);
CaptureScreen();
}
protected override void OnStop()
{
base.OnStop();
}
private void CaptureScreen()
{
Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(printscreen as Image);
graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);
printscreen.Save(@"L:\" + Counter++ + ".jpg", ImageFormat.Jpeg);
}
Run Code Online (Sandbox Code Playgroud)
这是添加到Vista的会话0隔离功能的一部分.服务现在使用自己的工作站和桌面运行自己的会话.就像登录提示和屏幕保护程序运行的会话一样.您正在截取该会话桌面的截图,其中没有任何内容.无法再访问用户桌面.它是一种安全功能,可以防止破碎攻击.不可否认,我不明白为什么没有删除"与桌面交互"复选框.
您需要将程序更改为"Windows应用程序",而不是服务.在Startup文件夹中放置一个快捷方式或使用Run注册表项.哪个没关系,没有用户登录时没什么值得抓拍的.