2011-09-15 80 views
14

我有一個用C++編寫的Windows 7的自制全屏應用程序,它應該作爲公共演示文稿自行運行很長時間。Windows 7:防止應用程序失去焦點

問題是,有幾個應用程序或驅動程序或Windows本身,不時偷偷關注和/或尤其是在系統啓動時。 結果是:我的全屏應用程序被最小化。

這是非常煩人的,幾乎不可能總是找出你必須停用哪些東西來防止這種情況。特別是因爲有時需要那些焦點偷東西,例如觸摸屏驅動程序。

我能做些什麼來防止失去焦點?

甚至更​​好:我怎樣才能防止其他應用程序竊取焦點 - 我記得曾經在Windows XP的TweakUI中有過這樣的設置。

回答

20

調整UI通過更改SPI_SETFOREGROUNDLOCKTIMEOUT來實現。您可以將其與LockSetForegroundWindow結合使用。

+1

一個很好的答案,但不幸的是它並沒有解決我的問題。我認爲這個問題不是一個應用程序試圖設置一個已經存在的窗口到Windows 7的默認情況下阻止的forground我猜。但它是通過shellexec或其他東西創建一個臨時窗口的東西。從驅動程序或自動更新程序或其他任何惡意計劃的後臺進程。不好的一點是我沒有簡單的方法訪問播放器電腦:-( –

+3

LockSetForegroundWindow應該阻止該場景。但是,請注意,當用戶按下Alt或單擊另一個窗口時,通過LockSetForegroundWindow設置的鎖定會被清除,因此您必須請注意它 –

+0

你的解決方案有效SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT ...)犯了一個錯誤,因爲我沒有意識到你必須通過指針參數值傳遞值,雖然有一個整數參數(這很奇怪,當然) –

相關問題