網上搜尋到的辦法有兩個,
第乙個沒自測
保證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則相當於告訴計算機將這個值立即寫回記...