Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: FindWindow Добавлено: 21.09.09 14:56  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
Можно ли найти окно, не зная его заголовок? он к сожаленью изменяется

Ответить

  Ответы Всего ответов: 35  

Номер ответа: 1
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #1
Добавлено: 21.09.09 14:58
Нужно передать данные через WM_COPYDATA
В принципе можно воспользоваться протоколом UDP, но не хочу ни контрол winsock, ни многокилобайтный код его заменяющий

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 21.09.09 15:26
Если я не ошибаюсь там можно искать двумя путями.. либо по заголовку, либо по классу окна.. если класс уникальный в пределах родителя то можно найти..

Ответить

Номер ответа: 3
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #3
Добавлено: 21.09.09 16:37
Ага, я почитал на мсдн. Выходит, что нужно создать некое dummy-окно, с уникальным классом, а потом ему отправлять WM_COPYDATA.
А вот вопрос насчет UDP. Как узнать какой порт можно использовать. У меня есть пример, там используется 8888 без всяких проверок, но его ж наверное уже кто-то может использовать

Ответить

Номер ответа: 4
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #4
Добавлено: 21.09.09 16:50
Мб список всех открытых посмотреть?

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 21.09.09 16:56
Как узнать какой порт можно использовать

Если порт занят то ты не сможешь его открыть для прослушивания.. получишь исключение...

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 21.09.09 18:52
Обмен между приожениями можно также через Named Pipes делать

Ответить

Номер ответа: 7
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 21.09.09 19:08
Тоже интересно, однако
http://support.microsoft.com/kb/177696
  1.       Do  'Wait for a connection, block until a client connects
  2.          res = ConnectNamedPipe(hPipe, ByVal 0)
  3.  
  4.          'Read/Write data over the pipe
  5.          cbnCount = 4
  6.  
  7.          res = ReadFile(hPipe, nCount, LenB(nCount), cbnCount, ByVal 0)
  8.  
  9.          If nCount <> 0 Then
  10.  
  11.             If nCount > BUFFSIZE Then 'Client requested nCount bytes
  12.                nCount = BUFFSIZE      'but only send up to 20000 bytes
  13.             End If
  14.             'Write the number of bytes requested
  15.             res = WriteFile(hPipe, BigBuffer(0), nCount, cbnCount, ByVal 0)
  16.             'Make sure the write is finished
  17.             res = FlushFileBuffers(hPipe)
  18.          End If
  19.  
  20.          'Disconnect the NamedPipe
  21.          res = DisconnectNamedPipe(hPipe)
  22.       Loop Until nCount = 0

сервер ждет подключения в цикле, это как-то не совсем эффективно

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 21.09.09 19:14
Видимо потому что в VB6 есть некоторые сложности с реализацией многопоточности

Ответить

Номер ответа: 9
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #9 Добавлено: 21.09.09 19:43
Видимо потому что в VB6 есть некоторые сложности с реализацией многопоточности

красиво так получилось... очень тонко и изысканно...




опустить VB6 ниже городской канализации )))))

Ответить

Номер ответа: 10
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #10
Добавлено: 21.09.09 20:07
Ах так да) Я-то вообще не уверен, что под венду стоит писать программы.
Вот скажите, на кой хрен тут многопоточность? Лишнее усложнение. SendMessage-WM_COPYDATA намного логичнее. Только я пока туплю с передачей строки, она рубится наполовину=)

Ответить

Номер ответа: 11
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #11 Добавлено: 21.09.09 20:11
Стоит уточнить что в VB6 есть также некоторые сложности с реализацией сабклассинга

Ответить

Номер ответа: 12
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #12
Добавлено: 21.09.09 20:38
писать на VB6 в современном мире - тупо. Здесь даже дизайнер форм тормозит на Win7) Другое дело, что из-за vb6 возникают сложности, которые интересно преодолеть. Это похоже на легкую форму мазохизма, пожалуй) Вот бы всё-таки прекратить этим заниматься и перейти в полной мере на чистый без дотнета с++.

Ответить

Номер ответа: 13
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #13
Добавлено: 21.09.09 20:56
м, сабклассинг в данном случае человечен) если нажать стоп - ничего не падает. Только видимо созданное createwindow окно остается

Ответить

Номер ответа: 14
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #14
Добавлено: 21.09.09 21:01
На VB6 я реализовывал многопоточность. Вообще говоря, это не так тупо, как говорят. Релизовывают они сами (те кто говорят) это тупо. Просто нужно еще и COM на жопу навешать, и поковырять, а не тупо CreateThread вызывать. Все это можно сунуть в класс и пользоваться наздоровье без вылетов и с норм. отладкой. Только в каком потоке находишься вася не показывает, а так все хорошо. Код создания потока примерно такой:
  1.  
  2. Dim B As New Thread
  3. b.Start(AdressOff MyProc)
  4. b.Priority = vbHigh



PS: Топики про то, что COM устарел, VB6 г**но, дотнет рулит, простыни Бранда про правоту мелкомягких и т.п. весьма предсказуемы :)))) И вообще, спорить не собираюсь, ибо жутко лень по 500 кругу спорить.

Ответить

Номер ответа: 15
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #15 Добавлено: 21.09.09 21:25
Ничего не поделаешь, дотнэтчики вечно слетаются на темы вб6 и зудят о том, что он дерьмо.
Какбудто ктото этого незнает.

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам