共用方式為


AppActivate 函式

更新:2007 年 11 月

啟動正在執行中的應用程式。

 Public Overloads Sub AppActivate( _       ByVal { Title As String | ProcessId As Integer } _ )

參數

  • Title
    String 運算式,可指定您想啟動之應用程式標題列中的標題。您可以使用應用程式啟動後指派給它的標題。

  • ProcessId
    Integer,指定指派給這個處理序 (Process) 的 Win32 處理序 ID 編號。您可以使用 Shell 函式所傳回的 ID (如果不是零的話)。

例外狀況

例外狀況類型

錯誤代碼

條件

ArgumentException

5

找不到 Title 或 ProcessId。

如果將使用非結構化錯誤處理的 Visual Basic 6.0 應用程式升級,請參閱「錯誤代碼」資料行 (您可以將錯誤代碼與 Number 屬性 (Err 物件) 比對)。但是,請盡可能考慮以 Visual Basic 的結構化例外處理概觀 取代這類錯誤控制項。

備註

您可以使用 AppActivate,將焦點置於應用程式的使用中視窗。您可能沒有使用中視窗的控制代碼或參考,或者甚至不瞭解哪些視窗在指定的時間是使用中的。在這種情況下,您就無法使用 Focus 方法。

AppActivate 函式會將焦點變更到已命名的應用程式或視窗上,但是不會影響其最大化或最小化的狀態。當使用者採取某項動作來變更焦點或關閉視窗時,焦點便會從啟動的應用程式視窗移出。您可以使用 Shell 函式來啟動應用程式及設定視窗樣式。

如果您使用 Title 參數,AppActivate 就會使用不區分大小寫的比較,不過會另外要求標題列的內容要完全相符。它會先逐一查看最上層視窗,然後再查看子視窗。如果找不到相符的項目,就會擲回 ArgumentException

您只可以在具有視窗的處理序使用 AppActivate。大多數的主控台應用程式都不會主控視窗,這就表示,這些應用程式不會出現在 AppActivate 搜尋的處理序清單中。從主控台應用程式執行時,系統會建立個別的處理序來執行應用程式,並將輸出傳回主控台處理序。因此,當您要求目前處理序 ID 時,就會取得這個個別處理序的處理序 ID,而非主控台應用程式的處理序 ID。

在執行階段,AppActivate 函式會啟動標題符合 Title 或處理序 ID 符合 ProcessId 的任何執行中應用程式。如果沒有完全符合的項目,則它會啟動任何標題字串以 Title 結尾的應用程式。如果有超過一個以上的應用程式是以 Title 命名,則 AppActivate 函式會任意啟動其中一個。

注意事項:

AppActivate 函式在 SafeTopLevelWindows 層級需要 UIPermission,而這可能會在部分信任的情況下影響其執行。如需詳細資訊,請參閱要求使用權限UIPermission 類別

範例

這個範例將說明 AppActivate 函式啟動應用程式視窗的各種方式。若記事本處理序並未執行,這個範例就會產生 ArgumentException。Shell 程序會假設應用程式是在指定的路徑中。

Dim notepadID As Integer
' Activate a running Notepad process.
AppActivate("Untitled - Notepad") 
' AppActivate can also use the return value of the Shell function.
' Shell runs a new instance of Notepad.
notepadID = Shell("C:\WINNT\NOTEPAD.EXE", AppWinStyle.NormalFocus)
' Activate the new instance of Notepad.  
AppActivate(notepadID)

智慧型裝置開發人員注意事項

不支援這個函式。

需求

命名空間 (Namespace)︰Microsoft.VisualBasic

**模組︰**Interaction

組件 (Assembly):Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)

請參閱

參考

Shell 函式

Focus

ArgumentException