Hallo,
ich bin zur Zeit auf der Suche nach einer Möglichkeit um möglichst schnell (alle 200ms) viele verschiedene Bereiche des Bildschirms "aufzunehmen" (ungefähr 30*(200²Pixel) groß). Dabei habe ich auch schon mehrere Optionen ausprobiert:
1. Per Graphics.CopyFromScreen die verschiedenen Bereiche aufzunehmen=> niedrige CPU Auslastung, ABER das verschieben von allen Fenstern läuft seehr langsam, und fast die komplette Oberfläche (nicht nur von dem einen Programm, sondern alles) friert praktisch ein, und aktualisiert sich nur alle paar Sekunden
2. Per Graphics.CopyFromScreen einen großen Screenshot machen, per LockBits die Bytes holen und die einzelnen Bereiche aus einem Array auslesen=>Oberfläche läuft komplett normal, ABER recht hohe CPU Last (~20-25%)
3./4. Die Oben genannten Möglichkeiten, nur dass ich die BitBlt Funktionen direkt aufgerufen, und nicht mehr .NET Framework Funktionen=>Brachte (wie erwartet) keinen Unterschied.
Hat jemand vielleicht noch eine neue Idee, oder eine Idee, wie man die vorhanden Dinge optimieren kann (Bspw.: zu 2., dass die gesamten Desktop-Oberfläche nicht mehr laggt)?
Vielen Dank schon mal im Voraus,
FlashTek
ich bin zur Zeit auf der Suche nach einer Möglichkeit um möglichst schnell (alle 200ms) viele verschiedene Bereiche des Bildschirms "aufzunehmen" (ungefähr 30*(200²Pixel) groß). Dabei habe ich auch schon mehrere Optionen ausprobiert:
1. Per Graphics.CopyFromScreen die verschiedenen Bereiche aufzunehmen=> niedrige CPU Auslastung, ABER das verschieben von allen Fenstern läuft seehr langsam, und fast die komplette Oberfläche (nicht nur von dem einen Programm, sondern alles) friert praktisch ein, und aktualisiert sich nur alle paar Sekunden
2. Per Graphics.CopyFromScreen einen großen Screenshot machen, per LockBits die Bytes holen und die einzelnen Bereiche aus einem Array auslesen=>Oberfläche läuft komplett normal, ABER recht hohe CPU Last (~20-25%)
3./4. Die Oben genannten Möglichkeiten, nur dass ich die BitBlt Funktionen direkt aufgerufen, und nicht mehr .NET Framework Funktionen=>Brachte (wie erwartet) keinen Unterschied.
Hat jemand vielleicht noch eine neue Idee, oder eine Idee, wie man die vorhanden Dinge optimieren kann (Bspw.: zu 2., dass die gesamten Desktop-Oberfläche nicht mehr laggt)?
Vielen Dank schon mal im Voraus,
FlashTek
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FlashTek“ ()