powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверить наличия окна в памьяти
11 сообщений из 11, страница 1 из 1
Проверить наличия окна в памьяти
    #37599327
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Путаница. Есть три программы. Работают вместе по UDP. Не вирус . 1.Показ видео с логотипом/ 2.исполнение по графику/3. смотрящая прога чтоб не было зависаний. Во второй программке много завязок через таймера и в разных окнах данной программы. Не могу отследить. Может два дня работать без сбоев, потом обходит каким то образом закрытия unload Player, причем в LOG файле четко вижу что все срабатывает. Фишка в том что я использую 12 таймеров на форме и один без формы
Код: vbnet
1.
2.
3.
Public Const TIME_PERIODIC = 1  '  program for continuous periodic event
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long


Я думаю из за него окно может повторно открываться, поскольку в вызванной таймером процедуре есть ссылка на отдельный элемент формы и думаю что из за этого она повторно инициализируется. В результате черный экран (так как флаги вспомагательные выключены) и играет музыка (движок работает без отказано, микширует самостоятельно). Ну наконец идем к простому банальному вопросу. В предыдущей форме я просто дополнительно хочу проверить нет ли открытой формы, даже если она в памяти висит. Напрямую к свойству например TAG интересующей формы я не могу обращаться так как загружу ее в память.
Выход конечно есть.
Я создал на каждую форму флаг. Например Public ZmFrmIsPlay as boolean
В событии Form_Initialize() делаю ZmFrmIsPlay = true
а при Form_Unload делаю ZmFrmIsPlay = false

Может это по китайски ? Есть нормальный простой способ проверять загруженность форм (окон) своего проекта в памьяти ?
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37599513
формы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть коллекция Forms в ней загруженные формы можно увидеть но только для текущего dll. exe модуля если прога из несольких модулей то придется вручную модули перебирать если надо все формы во всех модулях перечислить
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600557
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Отлично. Работает
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Command1_Click()
  Dim d As Control
  For Each f In VB.Forms
   Debug.Print f.Name
  Next
End Sub

Private Sub Command2_Click()
  Form2.Caption = "wqwq"
End Sub


Жаль что так нельзя проверить именно конкретные формы
Код: vbnet
1.
2.
3.
Private Sub Command3_Click()
  MsgBox VB.Forms("form2")
End Sub
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600575
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159Жаль что так нельзя проверить именно конкретные формыпочему нельзя?
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600576
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProАндрей159Жаль что так нельзя проверить именно конкретные формыпочему нельзя?а, нельзя, может быть загружено несколько экземпляров одной формы.
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600787
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
именно такую запись я придумал VB.Forms("form2"). а в реале ошибка
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600866
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159именно такую запись я придумал VB.Forms("form2"). а в реале ошибкаMSDNForms(index)

The placeholder index represents an integer with a range from 0 to Forms.Count - 1.
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600868
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по имени обращаться нельзя, потому что может быть загружено несколько экземляров одной и той же формы и получится, что ключ в коллекции не уникален
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600883
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага. понятно. спасибо.
Код: vbnet
1.
MsgBox VB.Forms(1).Name


Можно создать функцию с on error и VB.Forms(n).Name......... as boolean
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600884
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159,

да нет же.
При n<forms.count ошибка не возникнет
...
Рейтинг: 0 / 0
Проверить наличия окна в памьяти
    #37600886
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получилось

Чистил хост файл и дальше не пускает на сайты Майкрософт и антивирусные. Раз был прогнал антивируской, нашло угрозу, убрало и до перезагрузки все страницы открывало, а теперь снова не открывает. В процесах ничего левого нет, в автозагрузках также. Наверное малварь сидит
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверить наличия окна в памьяти
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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