![]() |
DOS Screenshot
Hi,
ich will von einem DOS-Programm, das unter Windows emuliert wird, einen Screenshot machen. Das Programm läuft leider nicht im Konsolen-, sondern nur im Vollbildmodus (Sonst wäre es ja einfach). Alle Standardscreenshotroutinen, die man überall im Internet findet, versagen hier. (also BitBlt, CopyRect). Manuell kann man ja einen Screenshot von DOS-Programmen mit der Druck-Taste machen. Den Druck auf die Drucktaste kann ich durck keybrd_event simulieren - das funktioniert auch, aber: - es wird nur das Fenster, das den Fokus hat, gecaptured (drückt man manuell die Taste, bekommt man ja einen Screenshot des gesamten Screens) - bei DOS Programmen geht es nicht (obwohl es bei allen anderen Tasten, die ich simuliere (Buchstaben, Pfeiltsasten...) problemlos geht) Eine Idee wäre, direkt auf die API-Funktion zuzugreifen, die durch die Drucktaste angesprochen wird, aber welche das ist, konnte ich bisher noch nicht finden. Oder gibt es eine andere Möglichkeit, einen DOS-Screenshot aus Delphi heraus zu machen? Vielen Dank, MfG, Gombel |
Re: DOS Screenshot
Ja das muss man sicherlich direkt über die API machen. Ich weis halt noch das man bei Spielen die unter DirektX oder OpenGL laufen auch immer so ein Programm verwenden musste damit man Screenshots machen konnte.
|
Re: DOS Screenshot
"So ein Programm" - Was für ein Programm?
Ok, weiß jemand, welche API-Funktion einen Screenshot liefert? |
Re: DOS Screenshot
Ich weiss zwar auch nicht wie das Program heisst, aber ich weiss welches er meint. Google einfach mal nach DirectX OpenGL fps screenshot - da solltest du schnell was finden. Aber ich bezweifle das man mit Windows-API Funktionen einen Screenshot von einem DOS-Proggie machen kann.
|
Re: DOS Screenshot
Das Teil heisst "Fraps" und ist nur für DirectX geeignet. Leider ist es seit der Version 2 kostenpflichtig, aber es gibt eine Demo mit ein paar Einschränkungen.
Allerdings ist das Verfahren mit dem Fraps arbeitet nicht gerade trivial - Stichwort DLL-Hooking. Hab dazu auch schon mal was hier geschrieben (find's grad net). Das dürfte aber für DOS-Fullscreen nicht gehen. Da müsste man wirklich auf API-Calls setzen - nur kennen tu ich solche leider auch net :? Muss es denn Fullscreen sein? Sonst könnte man es doch in einem Fenster laufen lassen, und den ganzen Bildschirm "screenshotten", und die Fensterposition/-größe findet man doch sicherlich auch irgendwie heraus (?). Dann zuschneiden und fertig. Richtig ekelig könnte es natürlich werden, wenn es nicht um Textanwendungen geht, sondern Spiele etc. die die VESA-Modi der GraKa nutzen. In wie weit man dann DA dran kommt, das kann ich nicht sagen. gruss, dizzy |
Re: DOS Screenshot
Zitat:
Zitat:
|
Re: DOS Screenshot
Hmmm, nicht einfach. Mein erster Blick würde auf das PSDK gerichtet sein, und der zweite auf google, um zu sehen, ob das irgendjemand überhaupt schon mal versucht hat.
Dann gibt es von einem Member hier (ich glaube Assarbad) eine TScreenshot-Kompo. Ich würde einfach mal ausprobieren, ob die nicht weiter hilft. (Keine Ahnung, ob die das kann ;) ) Letzten Endes ist ja auch eine maximierte DOS-Box nur ein Fenster (?), und müsste ein DC haben, das man sich abholen könnte. Eventuell kommt man auf der Schiene weiter. Einfach mal alle Möglichkeiten antesten :zwinker: gruss, dizzy |
Re: DOS Screenshot
Zitat:
Zitat:
Den DC kann ich mir wirklich abholen. Aber was hilft das? Die TScreenshot probiere ich gleich aus. |
Re: DOS Screenshot
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz