MessageLopping в vb6

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
pertov
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.12.2014 (Сб) 17:51

MessageLopping в vb6

Сообщение pertov » 10.06.2015 (Ср) 22:28

Написал на VB6 много букв, в тонкие вопросы не вникал.
краткий наброс смысла:
есть к примеру vbp - внутри модуль и субкласс для окна
Код: Выделить всё
Dim App_MessageLoop as boolean
Sub Main()
  ...
  CreateWindow...
  SubclassWindow...
  ...
  if 0 then Хитрость_какаято else myMessageLoop
End Sub

Private Sub myMessageLoop()
  App_MessageLoop = 1
  Dim aMsg As MSG
  Do While GetMessage(aMsg, 0, 0, 0) And App_MessageLoop
    TranslateMessage aMsg: DispatchMessage aMsg
  Loop
End Sub

Sub Хитрость_какаято() ' Здесь наверно неправильно  да и фиг сним (не пользуюсь  я этим)
  Load Form1:Form1.Show:Form1.Visible=0 'а где нибудь в классе Unload Form1 чтобы сделать App Quit
  .....
End Sub
в реале есть работающий код не жрущий и не вылетающий, хочу оптимизировать а надо-ли? ..
Не открывая и не загружая форм можно ли заставить выполняться встроенный в vb6 MessageLoop?
Последний раз редактировалось pertov 10.06.2015 (Ср) 22:47, всего редактировалось 2 раз(а).

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: MessageLopping в vb6

Сообщение Хакер » 10.06.2015 (Ср) 22:38

Обрабатывать сообщения научили, а отступы в коде делать не научили? Невозможно читать такую простыню.

pertov писал(а):Не открывая и не загружая форм можно ли заставить выполняется встроенный в vb6 MessageLoop?

Вопрос только в этом?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

pertov
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.12.2014 (Сб) 17:51

Re: MessageLopping в vb6

Сообщение pertov » 10.06.2015 (Ср) 22:44

Хакер писал(а):Вопрос только в этом?
- да.
Извините за хитрое описание примера.. Наброс смысла понимать так - "HelloWorld!" с созданным средствами API окном на vb6 без использования форм. И вопрос тотже.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: MessageLopping в vb6

Сообщение Хакер » 11.06.2015 (Чт) 19:07

Проект типа Standard EXE? Тут на первый взгляд это сложно сделать.
С ActiveX EXE существенно проще.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

pertov
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.12.2014 (Сб) 17:51

Re: MessageLopping в vb6

Сообщение pertov » 11.06.2015 (Чт) 21:47

- Standard EXE.
И я думаю что сложно.. ActiveX - пока не хочу(не понимаю приемуществ). Останусь Standart EXE.

Посмотрел SPY++-ем (Project1.exe) потоки сообщений 5-и невидимых окон - и вижу что из них скорее всего 4 лишних(VBFocusRT6, IME, VBMsoStdCompMgr, MSCTFIME UI), которые чегото (WM_IME_*** ) там получают и обрабатывают. Может кто пробовал удалять их - ведь для работы HelloWorld-а они (4 невидимых окна) скорее всего не нужны. ?

...Поставил в св-вах vbp unattended=-1 - не поменялось ничего, опять висят эти IME, VBFocusRT6..
Вложения
HELLO.rar
пример helloworld без форм
(7.16 Кб) Скачиваний: 187

pertov
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.12.2014 (Сб) 17:51

Re: MessageLopping в vb6

Сообщение pertov » 15.06.2015 (Пн) 21:22

Попробовал поубивать "лишние (VBFocusRT6, IME, VBMsoStdCompMgr, MSCTFIME UI)" окна при запуске Helloworld-a
vb6:
VBMsoStdCompMgr- спокойно убивается,не воскресает
IME- убивается, воскресает (перепускает через себя кучу "всякого хлама" WM_IME..)
MSCTFIME UI- убивается, воскресает (перепускает через себя кучу "всякого хлама" WM_IME..)
ThunderRT6Main(VBFocusRT6) - нельзя убивать

потом в других вариантах посмотрел и
vc++:
IME- убивается, воскресает
MSCTFIME UI- убивается, воскресает
FreeBasic:
IME- убивается, воскресает
MSCTFIME UI- убивается, воскресает

Итого = все понятно, что ничего не понятно
невидимые окна с названиями классов IME/MSCTFIME UI присутствуют (воскресают при убиении) везде где узер может шлепать мышью или клавиатурой..
наверное конец по поводу MessageLopping в vb6.
Вложения
HELLO.rar
helloworld
(7.73 Кб) Скачиваний: 170

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: MessageLopping в vb6

Сообщение Хакер » 15.06.2015 (Пн) 21:23

Не надо ничего убивать. Они все жизненно важны.
И тем более, никому не мешают.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList