так.. а вот и встреченная проблема...
вот нарезки кода:
- Код: Выделить всё
Dim pclass As Long
Dim sinfo As STARTUPINFO
'Not used, but needed
Dim sec1 As SECURITY_ATTRIBUTES
Dim sec2 As SECURITY_ATTRIBUTES
'Set the structure size
sec1.nLength = Len(sec1)
sec2.nLength = Len(sec2)
sinfo.cb = Len(sinfo)
'Set the flags
sinfo.dwFlags = STARTF_USESHOWWINDOW
'Set the window's startup position
sinfo.wShowWindow = SW_NORMAL
'Set the priority class
pclass = HIGH_PRIORITY_CLASS
'Start the program
CreateProcess "C:\p.exe", vbNullString, sec1, sec2, False, pclass, 0&, vbNullString, sinfo, pinfo
WaitForInputIdle pinfo.hProcess, INFINITE
EnumThreadWindows pinfo.dwThreadId, AddressOf EnumThreadWndProc, 0
wtr.Wait pinfo.hProcess
- Код: Выделить всё
Public wnd() As Long
Public Function EnumThreadWndProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
Static col As Integer
If IsEmpty(col) Then col = 0
ReDim Preserve wnd(col)
wnd(col) = hwnd
col = col + 1
EnumThreadWndProc = 1
End Function
Проблема в том, что если таким образом запустить скомпиленную прогу вида
- Код: Выделить всё
Private Sub Form_Load()
Form2.Show
End Sub
То преечисляется туева куча окон (если быть точным - 5).
При этом если сделать For each...блаблабла...ShowWindow... то, на панели задач помимо двух нормлаьных окон появляется еще одно без заголовка, неравзорачиваемое и т.п.
Так. Тепреь что я думаю по этому поводу. Видимо, перечисляя окна нужно записывать только окна определенного класса. Но этих классов же сотни! Как отделить мух от котлет - т.е. нормальные окна от всяких системных...?
added: блин, чувствую себя полным идиотом... тепреь waiter даже на обычный хэндл не встает... С утра работал ведь!!!
Пойду перезагружусь...
added&edited: перезагрузка помогла. Пока копм ребутился я выпил вишневого сока, понял что я идиот и исправил тупейшую ошибку.
Остается проблема с отсутствующим окном.
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)