AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi DosBox Vollbild wiederherstellen
Thema durchsuchen
Ansicht
Themen-Optionen

DosBox Vollbild wiederherstellen

Ein Thema von TUX_der_Pinguin · begonnen am 29. Jul 2005 · letzter Beitrag vom 23. Aug 2005
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

DosBox Vollbild wiederherstellen

  Alt 29. Jul 2005, 14:32
Hi,

ich habe mir ein kleines Prog geschrieben welches eine Dos-Anwendung
startet, ziel ist es das die Dos-Anwendung nur einmal gestartet werden
kann und nicht ein zweites mal.

Was bisher funktioniert:

Mein Programm startet die Dos-Anwendung und versteckt sich so gleich.
Jetzt verhindere ich per mutex das mein Programm nur einmal gestartet
werden soll, ergo die Dos-Anwendung wird auch nicht noch mal gestartet.

Soweit so gut, jetzt hatte ich die idee wenn die Dos-Anwendung minimiert
auf der Taskleiste liegt, und mein Programm wird erneut gestartet das
mein Programm darauf reagiert und anstatt die Dos-Anwendung ein 2. mal
zu öffnen die bisherige Anwendung "wiederherzustellen" sprich anzuzeigen.

Jetzt kommt das Problem, wenn die DosBox ein Fenster ist klappt alles
wunderbar, jedoch wenn die Dos-Anwendung im Vollbild modus läuft und
dann minimiert wird, weil z.B. per ALT+TAB in eine Windows Anwendung
gewechselt wurde und dann wird mein Programm aufgerufen wird zwar
die Dos-Anwendung aktiviert jedoch wird nicht in den Dos Vollbild modus
gewechselt.

Hat jemand eine Idee wie ich das hinbekommen kann, es fehlt nur noch das letzte stückchen bis mein Programm das macht was es soll bzw. was ich von
ihm erwarte

mfg


TUX
  Mit Zitat antworten Zitat
Benutzerbild von Mystic
Mystic

Registriert seit: 18. Okt 2003
Ort: Flerzheim
420 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: DosBox Vollbild wiederherstellen

  Alt 31. Jul 2005, 12:59
Funktioniert ShowWindow(hwnd,SW_SHOWMAXIMIZE); denn nicht?
Jan Steffens
Der Fachwortgenerator - 100% Schwachsinn --- Der UPnP Router Manager - Kommentare erwünscht!
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: DosBox Vollbild wiederherstellen

  Alt 23. Aug 2005, 10:28
Hi,

sorry das ich jetzt erst antworte, ich war 3 Wochen im Urlaub.

So das Problem besteht nach wie vor.

ShowWindow(hwnd, SW_SHOWMAXIMIZED) bringt gar nichts, die Dosbox wird
zwar aktiviert, auf der Taskleiste zuerkennen. Jedoch wird die DosBox nicht in den
Vordergrund geholt, ein Windows.SetForegroundWindow(hwnd) zeigt auch keine Wirkung.

So langsam scheint es mir als würde soetwas nicht funktionieren.

mfg

TUX
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: DosBox Vollbild wiederherstellen

  Alt 23. Aug 2005, 11:18
Wie wäre es mit MSDN-Library durchsuchenSetConsoleDisplayMode()? Entgegen aller Kommentare im MSDN, existiert die Funktion auch schon in Windows 2000 und XP (und aufwärts) in der kernel32.dll! Wenn du also nur auf NT-Systemen arbeitest, kannst du diese Funktion benutzen und auch statisch einbinden - ansonsten eben dynamisch.

Gerade noch gesehen: im MSDN nennt man als dritten Parameter einen Pointer auf eine COORD-Struktur. Allerdings habe ich in einem russischen Forum etwas anderes gefunden, dort ist es der Pointer auf ein DWORD. Da COORD und DWORD allerdings gleich sind, dürfte die Bedeutung auch gleich sein.

Holla, und auf der russischen Seite steht auch wunderbar beschrieben, wie es unter Windows 9x geht (Schnellübersetzung):
Zitat:
Code:
#define ID_SWITCH_CONSOLEMODE 0xE00F
Für die Modusumschaltung können Sie die Funktion Sendmessage benutzen:
Code:
SendMessage(hWnd,WM_COMMAND,ID_SWITCH_CONSOLEMODE,0);
Ich werde noch eine kleine Testanwendung schreiben und in die Codelib stellen.
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
295 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: DosBox Vollbild wiederherstellen

  Alt 23. Aug 2005, 11:31
Moin auch!

Das Handle deiner Anwendung hast du ja. Also:
Delphi-Quellcode:
SetForegroundWindow(aWinHandle);
ShowWindow(aWinHandle,SW_RESTORE);
SetForegroundWindow(aWinHandle);
ShowWindow(aWinHandle,SW_RESTORE);
SetForegroundWindow(aWinHandle);
ShowWindow(aWinHandle,SW_RESTORE);
Bei Windows95/98/ME muß das Teil wie im Schnipsel dreimal aufgerufen werden. Bei NT/2K/XP reicht einmal. Schon kommt das abgelegte Bild wieder zum Vorschein.

Stefan
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: DosBox Vollbild wiederherstellen

  Alt 23. Aug 2005, 14:26
Hi,

also der letzte hinweis, mit dem dreimaligen ausführen des Codes
hat es gebracht, da es sich um ein Win98 Rechner handelt konnte ich
vorheriges nicht ausprobieren.

Vielen dank für die Hilfe, da muß man erst mal drauf kommen das das
so funktioniert

mfg

TUX
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: DosBox Vollbild wiederherstellen

  Alt 23. Aug 2005, 14:39
Das ist bestimmt auch nicht der offizielle Weg.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#8

Re: DosBox Vollbild wiederherstellen

  Alt 23. Aug 2005, 14:41
Zitat von Luckie:
Das ist bestimmt auch nicht der offizielle Weg.
Sicher nicht. Der oben für NT beschriebene ja aber auch erst ab Windows 2003 ...

Wie ich jetzt allerdings hellsehen sollte, daß der Fragesteller Windows 98 benutzt ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz