2016-07-14 8 views
1

すでに検索されていますが、どこからでもヘルプを得ることはできませんでした。 Capture a sceenshot and save it in a folder5分後にアクティブなウィンドウのスクリーンショットを取得し、ファイルに保存します

+6

[アクティブなウィンドウのスクリーンショットをキャプチャしますか?](http://stackoverflow.com/questions/1163761/capture-screenshot-of-active-window) – user3185569

+0

スクリーンショットが取られました...しかし問題はそれです私は5分ごとに画像を保存したい...この方法を使用する var image = ScreenCapture.CaptureActiveWindow(); image.Save(@ "D:\ documents \ FYP \ snippetsource.jpg"、ImageFormat.Jpeg); .........古い画像を置き換えます。すべての画像を保存します。 –

答えて

0

をだからあなたの問題は、5分ごとにタスクを実行する方法です。使用タイマー:あなたが変更することができ

image.Save(string.Format(@"D:\documents\FYP\snippetsource_{0}.jpg", Guid.NewGuid()), ImageFormat.Jpeg); 

image.Save(@"D:\documents\FYP\snippetsource.jpg", ImageFormat.Jpeg); 

のようなものを実行します。

var timer = new System.Timers.Timer(TimeSpan.FromMinutes(5).TotalMilliseconds); 

timer.Elapsed += Timer_Elapsed; 
timer.Start(); 

private static void Timer_Elapsed(object sender, ElapsedEventArgs e) 
{ 
    // call the function that takes the screenshot 
} 
+0

timer.Elapsed + = Timer_Elapsed; ......... Timer_Elapsed(オブジェクト送信者、ElapsedEventArgs e)を呼び出さない..........私はこれをvar timer = new System.Timersのように呼びます。タイマー(TimeSpan.FromSeconds(2).TotalMilliseconds); timer.Elapsed + = Timer_Elapsed; –

+0

@muneeb残念ですが、 'timer.Start(); 'を使用する必要があります – user3185569

+0

ありがとうございました....... var aTimer = new System.Timers.Timer(1000); aTimer.Elapsed + =新しいElapsedEventHandler(Timer_Elapsed); aTimer.Interval = 1000; aTimer.Enabled = true; .........このコードは私の問題を解決しました.....本当にありがとうございます:) –

0

画面をキャプチャする使用この機能:

private static Image CaptureScreen() 
    { 
     Rectangle screenSize = Screen.PrimaryScreen.Bounds; 
     var target = new Bitmap(screenSize.Width, screenSize.Height); 
     using (Graphics g = Graphics.FromImage(target)) 
     { 
      g.CopyFromScreen(0, 0, 0, 0, new Size(screenSize.Width, screenSize.Height)); 
     } 
     return target; 
    } 

ファイル保存する:

var currentImage = CaptureScreen(); 
currentImage.Save(Path.Combine("Your directory path", "Your file name")); 
0

あなたがイメージ、意味、代わりのを保存するたびに新しいファイル名を作成していますGuid.NewCuid()には、アプリケーションにとってより意味のある一意の文字列を使用してください。

希望すると助かります!

+0

ありがとうございました....... var currentImage = ScreenCapture.CaptureScreen(); //currentImage.Save(Path.Combine(@"D:¥documents\FYP "、" abc.jpg ")); currentImage.Save(string.Format(@ "dll \ snippetsource_ {0} .jpg"、Guid.NewGuid())、ImageFormat.Jpeg); ............私が呼び出しているときTime_Elapsedは動作しません............私はこれを次のように呼びます:private void timer1_Tick(オブジェクト送信者、EventArgs e) { var timer = new System.Timers.Timer(TimeSpan。 FromSeconds(2).TotalMilliseconds); timer.Elapsed + = Timer_Elapsed; } –

+0

作成したタイマーインスタンスを、ローカルメソッド変数の代わりにクラスレベルのプライベートメンバーに保存してみます。 –

関連する問題