2011-09-15 18 views
14

Mam samodzielnie napisaną, pełnoekranową aplikację dla systemu Windows 7 napisaną w języku C++, która powinna działać przez długi czas jako prezentacja publiczna.Windows 7: Zapobieganie utracie ostrości aplikacji

Problem polega na tym, że istnieje kilka aplikacji lub sterowników lub sam system Windows, który kradnie ostrość od czasu do czasu i/lub zwłaszcza przy uruchomieniu systemu. Wynik: Moja pełnoekranowa aplikacja zostanie zminimalizowana.

Jest bardzo denerwujące i prawie niemożliwe, aby zawsze dowiedzieć się, które rzeczy należy dezaktywować, aby temu zapobiec. Zwłaszcza, że ​​te, które koncentrują się na kradzieży, są czasami potrzebne, np. sterowniki ekranu dotykowego.

Co mogę zrobić, aby zapobiec utracie ostrości?

Albo jeszcze lepiej: Jak mogę zapobiec kradzieży przez inne aplikacje - pamiętam, że kiedyś było takie ustawienie w TweakUI dla Windows XP.

Odpowiedz

20

Tweak UI robi to zmieniając SPI_SETFOREGROUNDLOCKTIMEOUT. Możesz połączyć to z LockSetForegroundWindow.

+1

Dobra odpowiedź, ale niestety to nie rozwiązuje mojego problemu. Zakładam, że problem nie jest aplikacją próbującą ustawić już istniejące okno na forground, które domyślnie jest blokowane w Windows 7. Ale jest to coś, co tworzy tymczasowe okno poprzez shellexec lub coś takiego. Jakiś plan zaplanowany w tle przez kierowcę lub auto-aktualizatora, czy coś w tym rodzaju. Złe jest to, że nie mam łatwego dostępu do komputera gracza :-( –

+3

LockSetForegroundWindow powinien blokować ten scenariusz.Zauważ jednak, że blokada ustawiona za pomocą LockSetForegroundWindow jest czyszczona, gdy użytkownik naciśnie klawisz Alt lub kliknie inne okno, więc musisz –

+0

Twoje rozwiązanie działa. Pomyliłem się z SystemParametersInfo (SPI_SETFOREGROUNDLOCKTIMEOUT ...), ponieważ nie zdawałem sobie sprawy, że musisz przekazać wartość za pomocą wartości parametru wskaźnika, chociaż istnieje parametr liczby całkowitej (co jest dziwne, oczywiście) –

Powiązane problemy