131361
Dec 13, 2017
1801
2
0
Software für Bildschirmaufnahmen mit Ringspeicher
Hallo zusammen,
such eine Software, mit der ich meinen Bildschirmaufnehmen kann.
Das ist soweit nicht das Problem.
Allerdings soll die Aufnahme permanent durchlaufen, allerdings immer nur ein Zeitfenster von 2h.
Sind diese 2h Aufnahme erreicht, soll die Aufnahme von vorne wieder überschrieben werden (Ringspeicher).
Gibt es ein solches Tool?
such eine Software, mit der ich meinen Bildschirmaufnehmen kann.
Das ist soweit nicht das Problem.
Allerdings soll die Aufnahme permanent durchlaufen, allerdings immer nur ein Zeitfenster von 2h.
Sind diese 2h Aufnahme erreicht, soll die Aufnahme von vorne wieder überschrieben werden (Ringspeicher).
Gibt es ein solches Tool?
Please also mark the comments that contributed to the solution of the article
Content-Key: 358048
Url: https://administrator.de/contentid/358048
Printed on: April 18, 2024 at 02:04 o'clock
2 Comments
Latest comment
Schreib es dir doch einfach selbst
https://stackoverflow.com/questions/362986/capture-the-screen-into-a-bit ...
Schleife die alle x Sekunden einen Screenshot schießt und gleichzeitig Bilder älter als 2 Stunden löscht, ist kein Hexenwerk.
Code für eine "einfache gehaltene" Console-App die dann mit 3 Parametern aufgerufen wird:
https://stackoverflow.com/questions/362986/capture-the-screen-into-a-bit ...
Schleife die alle x Sekunden einen Screenshot schießt und gleichzeitig Bilder älter als 2 Stunden löscht, ist kein Hexenwerk.
Code für eine "einfache gehaltene" Console-App die dann mit 3 Parametern aufgerufen wird:
ScreenRecordBuffer.exe 5 7200 "D:\Ringspeicher"
Parameter 1: Interval in Sekunden in dem die Bilder geschossen werdenParameter 2: Zeit in Sekunden wie lange die Bilder aufgehoben werdenParameter 3: Pfad wo die Bilder abgelegt werden
using System;
using System.Linq;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
using System.Windows.Forms;
using System.Threading;
namespace ScreenRecordBuffer {
class Program {
static void Main(string args) {
if (args.Length != 3) {
helpexit();
}
try {
int interval = Int32.Parse(args);
int keeptime = Int32.Parse(args[1]);
string storepath = args[2].Trim();
if (!Directory.Exists(storepath)) {
Console.WriteLine("Error! Supplied path does not exist!");
Environment.Exit(1);
}
if (interval < 1 || interval > Int32.MaxValue || keeptime < 1 || keeptime > Int32.MaxValue) {
Console.WriteLine("Error! Supplied interval or keeptime is not valid! Must be an Int32 value.");
Environment.Exit(1);
}
while (true) {
// Save Screenshot
using (Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb)) {
using (Graphics gfx = Graphics.FromImage(bmp)) {
gfx.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
string filepath = Path.Combine(storepath, @"Screen_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg");
bmp.Save(filepath, ImageFormat.Jpeg);
}
}
// Cleanup old images
foreach (string file in Directory.GetFiles(storepath, "Screen_*.jpg", SearchOption.TopDirectoryOnly).Where(x => File.GetCreationTime(x) < DateTime.Now.AddSeconds(-keeptime))){
File.Delete(file);
}
// wait to take next image
Thread.Sleep(interval * 1000);
}
} catch (System.Exception ex) {
Console.WriteLine("Application Exception: " + ex.Message);
Environment.Exit(1);
}
}
static void helpexit() {
Console.WriteLine("Error. You must supply 3 parameters.\n\tParameter 1: Time in Seconds between Screenshots\n\tParameter 2: Time in seconds to keep images stored.\n\tParameter 3: Directory where to store pictures.");
Console.ReadLine();
Environment.Exit(1);
}
}
}