C#實現定時全屏截圖并且保存到預先設定好的文件夾中的代碼示例

xb3b 9年前發布 | 1K 次閱讀 C#

    自定義一個截圖函數,

         public static void Snap(int x, int y, int width, int height)
        {
            try
            {

                 //這段代碼也可以實現截圖
                //Image image = new Bitmap(width, height);
                //Graphics g = Graphics.FromImage(image);
                //g.CopyFromScreen(x, y, 0, 0, new System.Drawing.Size(width, height));
                //string hour = DateTime.Now.Minute.ToString();
                //string second = DateTime.Now.Second.ToString();
                //image.Save(ScreenshotPath + "\\" + hour + "_" + second + ".jpg");




                Bitmap image = new Bitmap(GetSystemMetrics(0), GetSystemMetrics(1));
                using (Graphics g = Graphics.FromImage(image))
                {
                    g.CopyFromScreen(0, 0, 0, 0, image.Size);
                    g.Dispose();
                    string hour = DateTime.Now.Minute.ToString();
                    string second = DateTime.Now.Second.ToString();
                    image.Save(“C:” + "\\" + hour + "_" + second + ".jpg");
                }
            }
            catch
            {


            }
        }


      然后在一個timerSrc_Tick 中調用自定義的截圖函數,然后就會定時截圖,保存到指定文件夾

        private void timerSrc_Tick(object sender, EventArgs e)
        {
            Help.Snap(0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
        }

       但是運行了這段代碼之后細心的人可能發現可以實現截圖,但是有一些軟件打開之后是截不到的,比如你打開一個QQ登陸窗口,但是你發現截圖中并沒有QQ的 登陸窗口,這個問題也是我寫完之后無意間發現的問題,但是由于本人也是個菜鳥,所以如果要求不高的截圖你可以參考,但是如果你需要截下屏幕上所有的圖,你 可以在這個代碼的基礎上在研究一下,順便也給我一份代碼,也學習一下,大家一起學習。希望會對大家有幫助

 本文由用戶 xb3b 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!