Ahhoz, hogy egy ablak az előtérben


Szöveges változat: 1.0

Általánosságban elmondható, hogy nem ajánlott, hogy megtörjük a működési szabályokat, a felhasználói felület, a Microsoft felírni. Jellemzően egy ablak ugrik elő a semmiből, csak a felhasználó bosszantó. Azonban szükség lehet elérni, hogy pontosan ez a viselkedés bizonyos alkalmazásokban. Tekintsük többféleképpen lehet elérni a kívánt.

Megjegyzés
A Microsoft már folyamatosan „dugulás lyukakat a védekezésének”, és egyre több és több jól ismert módon, hogy megtagadja a kibocsátás az új Windows-verziók.

Ez a módszer magában foglalja a nem dokumentált SwitchToThisWindow funkció, amelynek nyilvánosságra hozatala után Ashot Oganesyan (részletek itt találhatók). Ez a függvény két paramétert: az első - kilincs, és a második - igaz vagy hamis, attól függően, hogy vissza kell állítani egy minimalizált ablakot.

A következő két módszert ismertet honlapján Bob Moore, az egyik a Microsoft MVP.

FOREGROUNDLOCKTIMEOUT paraméter megváltoztatható programozottan, ez SystemParametersInfo funkciót. Ez azt jelenti, hogy az intervallumot nulla, mert a SetForegroundWindow, majd állítsa vissza az eredeti értékének az intervallumban. Itt van egy kódrészlet, amely végrehajtja a tervét.

Ha nem akar (vagy ha használ elavult verzióját fejléc), akkor leírják a szükséges állandók közvetlenül a programban többek között a következő makró kód:

Dokumentáció szerint, a SetForegroundWindow működik, ahogy szeretnénk, de ha hívják a folyamat aktív. És ez a folyamat aktív, melynek áramlási dolgozza fel a felhasználói bemenetet. Kiderült, hogy a folyamat „magát a” aktív, csatlakoztassa a folyam feldolgozásához felhasználói. Ez úgy történik, AttachThreadInput funkciót. Miután SetForegroundWindow hívás lehet húzni az áramlás a másikra, az azonos funkciót (de halad FALSE, mint a harmadik paraméter, nem igaz).

A végrehajtása ezt az ötletet a következő.