0
我已經使用WaitForInputIdle直接運行CreateProcess的一個小應用程序後,但我似乎無法通過EnumWindows和GetWindowThreadProcessId,我作爲一個進程運行的.exe我新創建的進程得到正確的窗口句柄看起來是這樣的:CreateProcess得到句柄無效
101 DIALOGEX 0, 0, 333, 180
STYLE WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
FONT 8, "MS Sans Serif"
{
CONTROL "", 1012, EDIT, ES_CENTER | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE, 5, 38, 195, 11 , 0x00000020
CONTROL "", 1013, EDIT, ES_CENTER | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE, 6, 4, 195, 11 , 0x00000020
CONTROL "", 1011, EDIT, ES_CENTER | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE, 5, 21, 195, 11 , 0x00000020
}
我假設「101」將是主要窗口,以便將手柄我得到不過函數GetDlgItem未能檢索與錯誤1400(無效的窗口句柄)的子窗口,然後嘗試的ShowWindow發現手柄也失敗。
有沒有人有這種事情的任何經驗知道爲什麼我得到一個不適用於任何已知窗口的句柄?
此外,我假設CreateProcess函數會將新創建的進程放置在任務管理器中與父應用程序一起運行的應用程序/進程的列表中,但它將其作爲自己的後臺進程,如何將進程添加到從父應用程序運行的進程列表?
頂級窗口沒有像子控件那樣的ID。 –
所以'101'不是一個ID? –
這是一個資源ID,但它不會與創建的窗口關聯。 –