Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Windows » vollbildmodus

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.05.2008, 14:57 Uhr
Krevetten



hallo,

ich, wie so viele andere, habe oft bei spielen im vollbildmodus das problem, dass
wenn sie sich aufhängen, ich nichts mehr machen kann als den rechner abzuwürgen.
manchmal schaffe ich es zwar den taskmanager blind zu benutzen, um die programme zu beenden, geht aber natürlich nicht immer. für ein bestimmtes spiel, weil dieses sich besonders oft aufhängt, habe ich mir ne bat-datei geschrieben welche mit taskkill den prozess beendet, und dazu eine verknüpfung mit tastenkombi erstellt. das funktioniert zwar super, will ich aber nicht für jedes programm extra machen.
meine frage ist nun, gibt es irgendeine möglichkeit, herauszufinden, welcher prozess gerade ein fenster im vollbildmodus hat, sodass ich dies allgemein für beliebige programme umsetzen kann?
(zb in ner bat-datei, oder nem c++-programm). das mit dem fenster im vollbildmodus ist auch das einzige eindeutige kriterium, um den schuldigen zu identifizieren, welches mir gerade einfällt. (man könnte vielleicht auch irgendwie prüfen, welche prozesse gerade ein dxdevice haben, wüsste aber auch da nicht ob und wie das gehen würde, und das wäre auch nicht so schön)

schonmal danke für eure antworten.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.05.2008, 00:11 Uhr
~TheDirectX
Gast


Hi,

Nimm doch einfach die GetForegroundWindow() - API her.
Die Funktion liefert dir ein Handle auf das Fenster, das sich gerade im Vordergrund befindet. Das Handle setzt du anschließend einfach in GetWindowThreadProcessId() ein. Das liefert dir die Prozess-ID des zugehörigen Windows-Prozesses. Und mit der Id kannste dann über OpenProcess() und TerminateProcess() den jeweiligen Prozess beenden.

Ganz einfach also ^^. Und zerbrich dir nicht den Kopf über DirectX-Devices:
Net immer so kompliziert denken :P Das Leben is einfach ...

Schöne Grüße
TheDirectX
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.05.2008, 01:00 Uhr
CppProgrammer



Hallo,

Du kannst auch einfach einen alternativen Taskmanager benutzen, wobei ich den "Process Explorer NT" empfehlen würde.

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Dieser hat die Option, den standardmäßigen Taskmanager zu ersetzen, also dass sich nicht mehr der normale Taskmanager bei CTRL + ALT + DEL öffnet, sondern der Process Explorer.

Und jetzt speziell für dein Problem hat er zusätzlich eben auch noch die Einstellung "Always on top", womit man ihn ganz leicht als immer oberstes Fenster festlegen kann.


Dieser Post wurde am 20.05.2008 um 01:04 Uhr von CppProgrammer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.05.2008, 12:24 Uhr
Krevetten



vielen dank für die antworten. ich habe auch gleich ein programm geschrieben,
welches das mit GetForegroundWindow() und so umsetzt. funktioniert wunderbar.
auch wenn, ich ne weile gebraucht habe auf die Idee zu kommen ein windows
programm statt einem konsolen programm zu schreiben, damit es sich nicht immer
versucht selbst zu beenden, nachdem es ein konsolenfenster geöffnet hat.^^
zum taskmanager: also der normale xp-taskmanager hat auch die option immer im
vordergrund zu sein. hilft aber nichts, wenn sich das programm mit dem aktiven
fenster im vollbildmodus weigert das fenster zu minimieren (oder es einfach nicht
reagriert). aber ich wollte auch schon immer wissen, welche prozesse welche
dateien in beschlag haben. also trotzdem ein guter tip.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Windows ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: