【发布时间】:2015-08-14 23:37:40
【问题描述】:
我正在制作这个程序,但我不确定它是否可以在 windows xp 上运行。我已经使用 net framework 3.5 完成了它,因此它是兼容的,但如果使用 windows xp 的人可以测试它,它会有所帮助。
到目前为止,此程序每 30 秒(计时器滴答声)截取一次屏幕截图并将其保存到隐藏文件夹中,这就是我需要帮助的原因,因为 XP 上的文档路径不同。它有点像一个截图记录器,不得不说我不打算在任何人身上使用,我只是喜欢编写不同的东西。
在任何人指出之前的最后一件事,我知道“当前文件夹”变量似乎是多余的,但我计划每 20 个屏幕截图左右创建一个新文件夹。
public partial class Form1 : Form
{
public static Int32 ScreenshotNumber = 1;
public static Int32 CurrentFolder = 1;
public Form1()
{
InitializeComponent();
}
private void ImageTimer_Tick(object sender, EventArgs e)
{ //checking if primary folder exists, if not, make it
if (!Directory.Exists(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX"))
{
try
{
Directory.CreateDirectory(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\" + "SystemEX");
Directory.CreateDirectory(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\" + "01I28SJ3");
try { File.SetAttributes(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\" + "01I28SJ3", FileAttributes.Hidden); }
catch { }
Directory.CreateDirectory(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\01I28SJ3\" + "1");
}
catch { }
} //checking if secondary folder exists, if not, make it
else if (!Directory.Exists(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\01I28SJ3"))
{
try
{
Directory.CreateDirectory(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\" + "01I28SJ3");
try { File.SetAttributes(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\" + "01I28SJ3", FileAttributes.Hidden); }
catch { }
Directory.CreateDirectory(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\01I28SJ3\" + "1");
}
catch { }
}
try
{ //take a screenshot
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);
//save it
if (Directory.Exists(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\01I28SJ3\"))
{
Printscreen.Save(@"C:\Users\" + Environment.UserName + @"\AppData\Roaming\SystemEX\01I28SJ3\" + CurrentFolder + @"\" + "Screenshot" + Convert.ToString(ScreenshotNumber) + ".jpg", ImageFormat.Jpeg);
ScreenshotNumber += 1;
}
}
catch { }
}
}
【问题讨论】:
-
旁注:
Directory.CreateDirectory能够递归地创建目录。假设您要创建目录 X:\1\2\3\4,但只存在 X:\1\2。调用Directory.CreateDirectory(@"X:\1\2\3\4")将创建子目录3和4。无需为每个子目录分别调用Directory.CreateDirectory... -
谢谢我试试看
标签: c# windows windows-xp