保證SetForegroundWindow執行成功

2021-07-07 02:50:39 字數 933 閱讀 1152

網上搜尋到的辦法有兩個,

第乙個沒自測

保證setforegroundwindow成功

在setforegroundwindow之前比較早的時候(比如main函式裡)呼叫一下以下**:

dword dwtimeout = -1;  

systemparametersinfo(spi_getforegroundlocktimeout, 0, (lpvoid)&dwtimeout, 0);

if (dwtimeout >= 100)

第二個自測沒問題

hwnd hforewnd = null; 

hwnd hwnd= findwindow(null, "");

dword dwforeid;

dword dwcurid;

hforewnd = getforegroundwindow();

dwcurid = getcurrentthreadid();

dwforeid = getwindowthreadprocessid( hforewnd, null );

attachthreadinput( dwcurid, dwforeid, true);

showwindow( hwnd, sw_shownormal );

setwindowpos( hwnd, hwnd_topmost, 0,0,0,0, swp_nosize|swp_nomove );

setwindowpos( hwnd, hwnd_notopmost, 0,0,0,0, swp_nosize|swp_nomove );

setforegroundwindow( hwnd );

attachthreadinput( dwcurid, dwforeid, false);

保證service存活

android開發的過程中,每次呼叫startservice intent 的時候,都會呼叫該service物件的onstartcommand intent,int,int 方法,然後在onstartcommand方法中做一些處理。從android官方文件中,我們知道onstartcommand有4...

質量如何保證

讀書主要是為了緩解非利益既得者的焦慮,有人懂嗎?之前對於質量的把控,主要是從 層面,從實現機制 業務邏輯 編碼規範等方面去用功,直到最近才忽然想到這可能是個謬論,只關注了乙個孤立的體系,說是閉門造車也不為過。傳統的生產製造領域早就有qc和qa,而對於像我們這種經歷的網際網路創業人員團隊,對於這一塊是...

理解volatile的保證可見性與不保證原子性

cpu只對暫存器中的資料進行計算,為了加快暫存器和記憶體的資料交換,會有乙個快取區,暫存器與快取區交換速度更快。資料從快取區寫回記憶體中這個動作由系統決定。所以會存在某一資料被修改,卻沒有被立即同步到記憶體中,導致其他執行緒拿到的值是過期值。而加了volatile則相當於告訴計算機將這個值立即寫回記...