2014-06-21 53 views
3

我的應用程序隱藏其窗口(並因此任務欄按鈕),並保持只有在通知區域中,用下面的代碼:如何讓我的應用程序顯示其他應用程序隱藏窗口?

Form1.Hide; 

當我點擊通知圖標,窗口顯示本身具有以下代碼:

Form1.Show; 
Application.Restore; 

但我想在第二個實例執行時顯示窗口。我可以使用「文件映射」將任何數據從第一個實例傳遞到第二個實例。到目前爲止,我只設法如何顯示窗口,如果它只是最小化(任務欄按鈕存在),使用此代碼:

if IsIconic(FirstInstanceApplicationHandle) then ShowWindow(FirstInstanceApplicationHandle, SW_RESTORE); 
SetForegroundWindow(FirstInstanceApplicationHandle); 

那麼,如何使人們看到一審窗口從第二個實例?

回答

3

最簡潔的方法是將消息發送到第一個應用程序以使其自行恢復。當應用程序自我恢復時,會執行一大堆代碼。這是您撥打電話Application.Restore所得到的結果。這就是你需要發生的事情。

現在,很難從外部發生這種情況。因此,讓第二個應用程序向第一個應用程序發送消息,然後讓第一個應用程序自行恢復。正如您現在所做的那樣,也請撥打SetForegroundWindow。你的第二個應用程序可以贈送,但第一個應用程序不能以其他方式接受它。

您需要允許第二個應用程序在第一個應用程序中發現一個窗口句柄來發送消息。你的文件映射方法將允許。確保您使用不受娛樂影響的窗戶把手。例如Application手柄或AllocateHWnd

相關問題