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.
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 :-( –
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 –
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) –