这在windows xp上有效吗?C#

这在windows xp上有效吗?C#,c#,windows,windows-xp,C#,Windows,Windows Xp,我正在制作这个程序,但我不确定它是否能在windows xp上运行。我已经使用NETFramework3.5完成了这项工作,因此它是兼容的,但是如果有人使用WindowsXP测试它,它会有很大帮助 到目前为止,这个程序每30秒截图一次(计时器滴答声),并将其保存到一个隐藏文件夹中,这就是为什么我需要帮助,因为XP上的文档路径不同。它有点像一个屏幕截图记录器,不得不说我不打算在任何人身上使用,我只是喜欢编程不同的东西 在任何人指出之前的最后一件事是,我知道“Current folder”变量似乎是

我正在制作这个程序,但我不确定它是否能在windows xp上运行。我已经使用NETFramework3.5完成了这项工作,因此它是兼容的,但是如果有人使用WindowsXP测试它,它会有很大帮助

到目前为止,这个程序每30秒截图一次(计时器滴答声),并将其保存到一个隐藏文件夹中,这就是为什么我需要帮助,因为XP上的文档路径不同。它有点像一个屏幕截图记录器,不得不说我不打算在任何人身上使用,我只是喜欢编程不同的东西

在任何人指出之前的最后一件事是,我知道“Current folder”变量似乎是多余的,但我计划每隔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 { }
    }
}


不可以。Windows XP不使用
C:\Users
,也不能保证未来版本的Windows也会使用。您应该使用来查找用户的配置文件目录,而不是自己猜测位置。

否。Windows XP不使用
C:\Users
,并且不能保证Windows的未来版本也会使用。您应该使用来查找用户的配置文件目录,而不是自己猜测位置。

否。Windows XP不使用
C:\Users
,并且不能保证Windows的未来版本也会使用。您应该使用来查找用户的配置文件目录,而不是自己猜测位置。

否。Windows XP不使用
C:\Users
,并且不能保证Windows的未来版本也会使用。您应该使用查找用户的配置文件目录,而不是自己猜测位置。

旁注:
目录。CreateDirectory
能够递归创建目录。假设您想创建一个目录X:\1\2\3\4,但只有X:\1\2存在。调用
Directory.CreateDirectory(@“X:\1\2\3\4”)
将创建子目录3和4。无需分别为每个子目录调用Directory.CreateDirectory…谢谢,我将尝试在外部调用注意:
目录。CreateDirectory
能够递归创建目录。假设您想创建一个目录X:\1\2\3\4,但只有X:\1\2存在。调用
Directory.CreateDirectory(@“X:\1\2\3\4”)
将创建子目录3和4。无需分别为每个子目录调用Directory.CreateDirectory…谢谢,我将尝试在外部调用注意:
目录。CreateDirectory
能够递归创建目录。假设您想创建一个目录X:\1\2\3\4,但只有X:\1\2存在。调用
Directory.CreateDirectory(@“X:\1\2\3\4”)
将创建子目录3和4。无需分别为每个子目录调用Directory.CreateDirectory…谢谢,我将尝试在外部调用注意:
目录。CreateDirectory
能够递归创建目录。假设您想创建一个目录X:\1\2\3\4,但只有X:\1\2存在。调用
Directory.CreateDirectory(@“X:\1\2\3\4”)
将创建子目录3和4。不需要为每个子目录分别调用Directory.CreateDirectory…谢谢,我会尝试使用outso来代替吗?Directory.CreateDirectory(Environment.SpecialFolder.ApplicationData+@“\Roaming\…然后是我要创建的文件夹名?@将,请检查MSDN文档中的Environment.SpecialFolder枚举。Environment.SpecialFolder.ApplicationData是漫游ApplicationData文件夹。(Environment.SpecialFolder.LocalApplicationData将是本地ApplicationData文件夹)@不会。不管怎样,
SpecialFolder.ApplicationData
将为您提供漫游应用程序数据目录的路径,因此将
roaming
附加到末尾将不起作用。您还应该使用
path.Combine
而不是字符串串联来访问子目录。正如elgonzo所说,如果您想要本地配置文件(即,仅此计算机上的配置文件,而不是将随用户在域上移动的配置文件)那么您应该使用
SpecialFolder.LocalApplicationData
。啊,我明白了,我将进一步研究,谢谢。这样做行吗?Directory.CreateDirectory(Environment.SpecialFolder.ApplicationData++”\Roaming\…然后是我要创建的文件夹名?@Will,请检查MSDN文档中的Environment.SpecialFolder枚举。Environment.SpecialFolder.ApplicationData是Roaming ApplicationData文件夹。(Environment.SpecialFolder.LocalApplicationData是本地ApplicationData文件夹)@不会。不管怎样,
SpecialFolder.ApplicationData
将为您提供漫游应用程序数据目录的路径,因此将
roaming
附加到末尾将不起作用。您还应该使用
path.Combine
而不是字符串串联来访问子目录。正如elgonzo所说,如果您想要本地配置文件(即,仅此计算机上的配置文件,而不是将随用户在域上移动的配置文件)那么您应该使用
SpecialFolder.LocalApplicationData
。啊,我明白了,我将进一步研究,谢谢。这会起作用吗?Directory.CreateDirectory(Environment.SpecialFolder.ApplicationData+)@“\Roaming\…然后是我要创建的文件夹名?@Will,请检查MSDN文档中的Environment.SpecialFolder枚举。Environment.SpecialFolder.ApplicationData是Roaming ApplicationData文件夹。(Environment.SpecialFolder.LocalApplicationData是本地ApplicationData文件夹)@不会。不管怎样,
SpecialFolder.ApplicationData
将为您提供漫游应用程序数据目录的路径,因此将
roaming
附加到末尾将不起作用。您还应该使用
path.Combine
而不是字符串串联来访问子目录。正如elgonzo所说,如果您想要本地配置文件(即,仅此计算机上的配置文件,而不是将随用户在域上移动的配置文件)那么您应该使用
SpecialFolder.LocalApplicationData
。啊,我明白了,我会调查一下