Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения. / 25 сообщений из 27, страница 1 из 2
11.07.2013, 17:23
    #38328456
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Собственно, пока возился с Shell и ShellExecute, привел след. пример где я неявно использую свойство Shell (VB6) задерживать возврат результата.
14519838
Дмитрий77
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub Main()
    ...
    ' предполагая что FormMain будет грузиться долго запускаем заставку для ублажения юзера
    Shell App.Path & "\screen.exe", vbNormalFocus
    FormMain.Show

'код загрузки FormMain
Private Sub Form_Load()
  'В самом начале и без проверок!!!
  Dim hwndScreen As Long ' это hwnd главной формы Form1 в приложении screen.exe
  hwndScreen = FindMyWindow(3) 'WINDOWTITLE_SCREENSAVER
...Do-do-do
  SendCommandToScreen hwndScreen, 5 ' отображение загрузки через ProgressBar на заставке
...Do-do-do
  SendCommandToScreen hwndScreen, 50 ' отображение загрузки через ProgressBar на заставке
...Do-do-do
  SendCommandToScreen hwndScreen, 100 ' отображение загрузки через ProgressBar на заставке



Фишка в чем.
hwndScreen -'это окно заставки
И доступно оно будет (<> 0) только когда форма заставки загрузится (в приложении screen.exe)
Когда я эту фигню делал, меня занимал вопрос:
А вдруг я не смогу поймать hwndScreen = FindMyWindow(3) ?
Ведь я только запустил screen.exe и окно могло НЕ УСПЕТЬ запуститься.
И честно готовился чего-нибудь дописывать.
В итоге все оказалось OK. Я об этом забыл.

...
Т.е. я неявно использовал свойство Shell (VB6) не выходить до загрузки формы.

Так вот я обнаружил что это иногда может не сработать.
Не сработало один раз на Notebook на Win7 при старте системы, когда запускается много дряни: всякие авиры, утилиты от Toshiba, вай-фай еще ищет и т.д. - ну т.е. идет некая череда обычных подвисаний, данный комп я от дряни в автозагрузке почистить поленился.
А моя прога тоже стартует из автозагрузки (Run в реестре под текущим юзером).

Т.е. возникла ситуация, когда
Код: vbnet
1.
2.
Private Sub Form_Load()
  hwndScreen = FindMyWindow(3) 'WINDOWTITLE_SCREENSAVER<<<


окна то и не нашла (а Shell-VB6 уже вышел).

На что заменить этот код, чтоб находил окно с гарантией?

Может как-то так?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if len(Dir(App.Path & "\screen.exe))>0 Then
  Do
    DoEvents
    hwndScreen = FindMyWindow(3)
    if hwndScreen<>0 then
      exit do
    elseif (прошло скажем 15 секунд) Then 'ну не висеть же бесконечно
      exit do
    endif
  Loop
End If


Или есть получше варианты?
...
Рейтинг: 0 / 0
11.07.2013, 18:03
    #38328511
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Таймер.
...
Рейтинг: 0 / 0
11.07.2013, 18:08
    #38328518
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
AntonariyТаймер.
Таймер в Form_Load (основного приложения) не работает.
А заставка (отдельное приложение) запускается именно на время Form_Load основного.
...
Рейтинг: 0 / 0
11.07.2013, 18:10
    #38328522
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
И найти hwndScreen надо именно в начале Form_Load (чтоб было куда скидывать progress загрузки).
...
Рейтинг: 0 / 0
11.07.2013, 18:12
    #38328526
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Ну тогда как и сделал.
...
Рейтинг: 0 / 0
11.07.2013, 18:17
    #38328533
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
AntonariyНу тогда как и сделал.
В смысле добавить вот это (еще не сделал):
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if len(Dir(App.Path & "\screen.exe))>0 Then
  Do
    DoEvents
    hwndScreen = FindMyWindow(3)
    if hwndScreen<>0 then
      exit do
    elseif (прошло скажем 15 секунд) Then 'ну не висеть же бесконечно
      exit do
    endif
  Loop
End If


??
...
Рейтинг: 0 / 0
11.07.2013, 18:29
    #38328546
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Да.
...
Рейтинг: 0 / 0
11.07.2013, 20:16
    #38328661
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Ну, вот так пока сделал (аккуратно):

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Form_Load()
...
  'поиск окна hwndScreen (с учетом того что оно могло еще не появиться)
  Dim hwndScreen As Long
  If Len(Dir(App.Path & "\screen.exe")) > 0 Then
    Dim my_timeout As Date
    my_timeout = Now
    Do
      DoEvents
      hwndScreen = FindMyWindow(3) 'WINDOWTITLE_SCREENSAVER
      If hwndScreen <> 0 Then
        Exit Do
      ElseIf DateDiff("s", my_timeout, Now) > 15 Then 'ну не висеть же бесконечно
        Exit Do
      End If
    Loop
  End If
...


Блин, название переменной my_timeout не очень удачное.
Посмотрю, вылезет ли где какая проблема или нет.
...
Рейтинг: 0 / 0
11.07.2013, 20:34
    #38328673
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Не надо DoEvents, этот цикл будет нормально так подгружать процессор, еще более отсрочивая запуск искомой проги. Нужно вместо DoEvents Sleep воткнуть, все равно форма еще не показалась, пользовательских действий обрабатывать не требуется.
...
Рейтинг: 0 / 0
11.07.2013, 20:36
    #38328675
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Ну и воткнуть после, а не до FindMyWindow.
...
Рейтинг: 0 / 0
11.07.2013, 21:35
    #38328734
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Antonariy,

AntonariySleep воткнуть, все равно форма еще не показалась, пользовательских действий обрабатывать не требуется.
...
Ну и воткнуть после, а не до FindMyWindow.


Ты про какой Sleep говоришь?
Вот так?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
...
  'поиск окна hwndScreen (с учетом того что оно могло еще не появиться)
  Dim hwndScreen As Long
  If Len(Dir(App.Path & "\screen.exe")) > 0 Then
    Dim my_timeout As Date
    my_timeout = Now
    Do
      hwndScreen = FindMyWindow(3) 'WINDOWTITLE_SCREENSAVER
      Sleep 100
      If hwndScreen <> 0 Then
        Exit Do
      ElseIf DateDiff("s", my_timeout, Now) > 15 Then 'ну не висеть же бесконечно
        Exit Do
      End If
    Loop
  End If
...


Со Sleep у меня были какие-то непонятки в прошлом, поэтому я его избегаю без крайней необходимости.

Я местами пользуюсь вот этим вариантом:
9304794
Но ты ж понимаешь, что это тот же самый DoEvent.
AntonariyНе надо DoEvents, этот цикл будет нормально так подгружать процессор, еще более отсрочивая запуск искомой проги.
Дык DoEvents вроде затем и нужен, чтоб цикл процессор не грузил. И полная загрузка от DoEvents ложная, обсуждали вроде.
Ну можно наверно DoEvents в конец цикла засунуть:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if len(Dir(App.Path & "\screen.exe))>0 Then
  Do
    hwndScreen = FindMyWindow(3)
    if hwndScreen<>0 then
      exit do
    elseif (прошло скажем 15 секунд) Then 'ну не висеть же бесконечно
      exit do
    endif
    DoEvents
 Loop
End If

Все равно в 99,9% он выйдет после первого FindMyWindow, чего зря DoEvents запускать всякий раз.

В принципе случайный незапуск Screen.exe не является проблемой.
Ну не запустится, не будет ProgressBar, прога то по любому запустится.
Проблема будет если он НЕУПРАВЛЯЕМО запустился, т.е. прога его запустила, но отследить hwndScreen не сумела. Кто этот Screen закрывать будет?

Ну и на самом деле у меня чуть ошибка в логике.
Для Screen.exe прописано в нем самом "1 экземпляр программы".
Если вдруг предыдущий Screen.exe не завершился (напр. при закрытии приложения за счет эффекта слайдера для красоты он выгружается на 1-2 сек. позже основного приложения), то он и не запустится. Т.е. наличие файла
Код: vbnet
1.
 If Len(Dir(App.Path & "\screen.exe")) > 0 Then


еще не гарантирует что мы его запустили.
А 15 секунд в этом случае висеть мы будем.

А вообще если честно я не уверен, что там проблема была с "ранним" выходом из Shell. Вполне возможно что Form_Load тупо подвис из-за большого к-ва грузимой при старте NoteBook мути и прочих служб. Высечь это еще раз я не сумел.
...
Рейтинг: 0 / 0
12.07.2013, 09:56
    #38328832
donpauls
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Дмитрий77Или есть получше варианты?

Думаю, получше вариант будет следующий:
1. На screen.exe помещаем таймер, который будет с периодичностью, скажем в 0,5 сек отслеживать состояние определенного значения реестра. (если равняется "1" - то закрываться)
2. Прямо перед запуском screen.exe основная прога должна прописать значение реестра "0"
3. Когда прога загрузилась, она должна прописать значение "1"
...
Рейтинг: 0 / 0
12.07.2013, 10:50
    #38328925
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Дык DoEvents вроде затем и нужен, чтоб цикл процессор не грузил.DoEvents нужен для того, чтобы включить вызов оконных процедур в цикл. Цикл не перестает работать, а начинает часть времени выполнять иную работу помимо основных инструкций, при этом снижая суммарную нагрузку очень незначительно. А Sleep полностью прекращает работу потока и цикла, и нагрузки на процессор нет вообще. Форма "висит". Но так как ее не видно, это не имеет значения.

И полная загрузка от DoEvents ложная, обсуждали вроде.Я не сказал, что полная, но она заметная по сравнению с ее отсутствием.

за счет эффекта слайдера для красоты он выгружается на 1-2 сек. позже основного приложенияПорнография. Бесят такие программы.
...
Рейтинг: 0 / 0
12.07.2013, 17:11
    #38329742
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
AntonariySleep.
Иногда проще с тобой согласиться, чем продолжать спор.
Поставил пока
Код: vbnet
1.
2.
3.
4.
5.
... 
    End If
    Sleep 100 'DoEvents
  Loop
End If


Посмотрю не вылезет ли чего. Скорее ничего, т.к. в 99,9% (а может быть в 100% -я ж не знаю чего там было) случаев цикл выйдет выше в первой итерации
Antonariyза счет эффекта слайдера для красоты он выгружается на 1-2 сек. позже основного приложенияПорнография. Бесят такие программы.
Меня например бесит все что выходит за рамки классического интерфейса XP. А юзера например бесит когда ему 5-7 секунд вообще ничего не показывают. В крайнем случае (если будут претензии) сделать галку "Эффект слайдера при загрузке/выгрузке форм в настройках."

P.S. Под слайдером я понимаю следующий код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub TimerAlpha_Timer()
  If scr_state = scrLoading Then
    Transparent_v = Transparent_v + IIf(FastMode, 15, 5) 'уменьшаем прозрачность
    Call SetLayeredWindowAttributes(Me.hwnd, TransparentColor, Transparent_v, LWA_COLORKEY Or LWA_ALPHA)
    If Transparent_v = 255 Then
      TimerAlpha.Enabled = False
      scr_state = scrNothing
    End If
  ElseIf scr_state = scrUnloading Then
    Transparent_v = Transparent_v - IIf(FastMode, 15, 5) 'увеличиваем прозрачность
    Call SetLayeredWindowAttributes(Me.hwnd, TransparentColor, Transparent_v, LWA_COLORKEY Or LWA_ALPHA)
    If Transparent_v = 0 Then
      TimerAlpha.Enabled = False
      scr_state = scrNothing
      Unload Me
    End If
  End If
End Sub



donpaulsДмитрий77Или есть получше варианты?

Думаю, получше вариант будет следующий:
1. На screen.exe помещаем таймер, который ...отслеживать состояние определенного значения реестра. ...
Не нравится мне эта идея. Очередной наворот типа "детский сад". Напоминает пуляние файлами.
P.S. Пуляние SendMessage мне нравится куда больше.
...
Рейтинг: 0 / 0
12.07.2013, 23:43
    #38330072
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Дмитрий77 P.S. Под слайдером я понимаю следующий код:Тоже этим баловался. Избавился на следующий день.
...
Рейтинг: 0 / 0
13.07.2013, 00:29
    #38330093
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
AntonariyТоже этим баловался. Избавился на следующий день.
Для окон типа About и для заставки вполне приемлимо.

Еще эта штука позволяет вырезать из формы куски по маске заданного цвета, ну т.е. делать скин это называется кажется. Но на этот момент особо закладываться не стал, потому как оно плохо дружит с 32-битными тенями.
Хотел сделать заставку, вырезав людей по контуру (из фотографии), но задолбался вырезать эти контуры по клеточкам (там обязательно надо делать bmp, в jpg фон смазывается).
В итоге хоть и воспользовался идеей, но сделал просто скругленный прямоугольник с надписью, а большую иконку пришлось брать 256 цветов а не 32-бит (хорошо хоть она очень простая и 256 цветов от 32-бит на глаз почти не отличается).
...
Рейтинг: 0 / 0
20.07.2013, 15:48
    #38337896
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Дмитрий, я не советчик в более удобном способе, но у меня надежный гарант socket. Стукнуть и передать значение "я живой" не проблема (даже через интернет)
...
Рейтинг: 0 / 0
20.07.2013, 15:52
    #38337899
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
sleep, doevent - так далеко не зайдешь. Есть таймера. Делай свои регистры, назначай проверочные статусы, режимы и проверяй. На VB6 это очень удобно из-за ctrl+breack чтоб отладить состояние. Если бы такого не было, лучше уж c++
...
Рейтинг: 0 / 0
20.07.2013, 17:46
    #38337937
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Андрей159,

Я про эту тему:
Обмен сообщениями между двумя СВОИМИ приложениями
помню, хотя пока не разбирался.
Я не привык бросать текущую незавершенную работу ради изучения новых (для меня) технологий или например осваивания новых программных систем типа .Net

Конкретно в этой теме цена вопроса 2 копейки. И DoEvents вполне сошел бы чтоб не тратить время. Antonariy таки убедил меня поставить Sleep. Я поставил и забил.
...
Рейтинг: 0 / 0
20.07.2013, 18:07
    #38337942
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Я тоже когда-то так думал. И сложно было разобраться самому. С трех интересующих вопросов, мог один подойти. Остальное нужно было самому. Но со временем я подошел к тому что, то что я делаю оказалось для меня мало и нужно было изучать и делать новые модули. А в помощь мне стало создание и оптимизация модулей. Сейчас все важные модули находятся в одной папке. К любому проекту стоит только подключить этот модуль или класс. Форма+2 Socket+таймер+глоб.модуль обеспечивает сейчас все: все удаленные работы с папками и файлами: копирование/перемещение/создание/удаление/сравнение по хеш, по размеру. Своими протоколами отдалено могу управлять чем задумал, получать что задумал. Сейчас изучаю протокол 2P2. Он прост, но его так запутали чтоб мы все думали что это почти не возможно. А с таймерами началось очень давно. Я сниму на видео одну программку которая уже закончена и имеет товарный вид (постараюсь выложить) и ты сам поймешь нужно тебе идти вперед или как-то попробовать обойтись без этого. В таймерах главное глобальные переменные и static. Меняешь значение (условно выдуманные режимы) и проверяешь их в таймере на условие. Все. Если режим=1 и задание=выполнено тогда режим=2, исполнить процедуру№2, выход из таймера.
...
Рейтинг: 0 / 0
25.07.2013, 09:24
    #38343179
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Дмитрий77Не сработало один раз на Notebook на Win7 при старте системы, когда запускается много дряниА моя прога тоже стартует из автозагрузки (Run в реестре под текущим юзером).

Т.е. возникла ситуация, когда
Код: vbnet
1.
2.
Private Sub Form_Load()
  hwndScreen = FindMyWindow(3) 'WINDOWTITLE_SCREENSAVER<<<


окна то и не нашла (а Shell-VB6 уже вышел).

На что заменить этот код, чтоб находил окно с гарантией?

Воспроизвел.
Напрасны все эти споры.
Ситуация которую здесь пытался лечить мифическая, ни одна из "затычек" не сработает за ненадобностью.

При загрузке компа может произойти следующее.
Заставка быстро загрузится и покажет пустой прогрессбар (в заставке нет ничего сложного).
А вот загрузка основной проги может тут же стопорнуть (секунд на 5-10) - потому как она завязана на аудиокарту, на сеть (Wi-FI) и т.д. да и в принципе при загрузке компа такое поведение вполне типично.

Прогрессбар начнет ползти вверх через эти 5-10 сек - просто надо было подождать.
А hwnd она находит по любому т.к. VB-6 Shell держит 100%.

Собственно это паника была с моей стороны - не более.
Надеюсь я не ошибся на этот раз.

А этот код просто вреден:
Код: vbnet
1.
2.
      ElseIf DateDiff("s", my_timeout, Now) > 15 Then 'ну не висеть же бесконечно
        Exit Do


При отсутствии screen.exe и в ряде других ситуаций он тупо стопорнет загрузку проги на 15 сек.
...
Рейтинг: 0 / 0
25.07.2013, 15:00
    #38343785
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Да, прикольно. Сначала запустить экшешник, а потом искать куда он улетел. Типа чтоб жизнь малиной не казалась. Я искал хэндлы программ чтобы установить контекст в своей апликухе. Ну, типа над каким она окном - такие типы файлов актуальны и такие инструменты дозволены. И как-то не прельстило это геморройное занятие, а оно вот как может быть оказывается. Самому себе можно подлянку устроить. :)

Вырезать по пикселам не обязательно. Обычно выделяете, потом в индекс и там чистите уже.
...
Рейтинг: 0 / 0
25.07.2013, 15:13
    #38343809
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Забыл давно как это делается, но кажется наоборот. Типа ваш Screen.exe как более легкое приложение сразу покажет форму, на ней кого-нибудь и запустит основное приложение. Затем будет искать его хэндл, как найдет начнет слать мессаги. Теоретически приложение должно отвечать, а запускатель показывать что происходит. Когда основное приложение загружено оно сообщает наконец самое главное и запускатель выходит из цикла ожидания. Это все геморрой без овладения процессами в ВБ, поэтому я не парился, а только юзал запускатель как затычку от повторных запусков жирной апликухи:

Sub Main()
On Error GoTo start
AppActivate "My App"
Exit Sub

start:
Call Shell("C:\Program Files\MyApp\myapp.exe", vbNormalFocus)
End Sub
...
Рейтинг: 0 / 0
26.07.2013, 05:26
    #38344550
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
debloggerСначала запустить экшешник, а потом искать куда он улетел.
А что, есть другие варианты?
Заметь, что я ищу не экшешник(процесс), который я запустил, а ОКНО, которое этот ПРОЦЕСС запустил. Это не одно и то же.
...
Рейтинг: 0 / 0
28.07.2013, 21:53
    #38346823
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения.
Дмитрий77,

В смысле основное приложение безоконное?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запустить приложение и С ГАРАНТИЕЙ дождаться появление Form1.hwnd этого приложения. / 25 сообщений из 27, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]