Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: как "оторвать" com порт ?  (Прочитано 13464 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 10-09-2008 08:01 » 

возможно ли сделать такое:
 к примеру, com1 занят (тойст открыт) некой программой (не моей) , а мне хочется, чтобы порт освободился и самому подключится к нему. Как заставить программу закрыть порт или хотябы жёстко "оторвать" от порта ?
Записан

sss
Специалист

ru
Offline Offline

« Ответ #1 : 10-09-2008 08:08 » 

Алексей1153++ стопроцентно никак... Иногда получится иногда нет.
Записан

while (8==8)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 10-09-2008 08:14 » 

а не на 100% как ? )
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 10-09-2008 08:42 » 

Чисто "отобрать" не получится. Убивай прогу/процесс, который его занимает.

зы Просто идея, наверное можно сделать свой дравер (фильтр?), который по спец. приказу будет отрубаться. Спроси в дровах.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
sss
Специалист

ru
Offline Offline

« Ответ #4 : 10-09-2008 08:56 » 

Джон, есть утилитка Руссиновича handle.exe. Показывает сопоставления имен объектов хэндлам и закрывает их даже в чужих процессах. Но использует драйвер опять же...
Записан

while (8==8)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 10-09-2008 08:59 » 

усложнять, думается, неохота, наверное вариант субийством процесса буду использовать, потом перезапускать
Записан

zubr
Гость
« Ответ #6 : 10-09-2008 09:00 » 

Ну или как вариант - вешать хук на CreateFile (лучше на ZwCreateFile) - как только чужое приложение пытается подключиться к твоему порту не возвращать его в родную функцию CreateFile.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 10-09-2008 09:14 » 

sss, есть программа Unlcoker, она освобождает запущенные/занятые dll/файлы другими процессами, для удаления, перемещения, переименования и тд. Почти всегда получается без убиения этого другого процесса. Я вот только не знаю можно ли это проецировать на драйверы?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 10-09-2008 09:22 » 

zubr, порт уже может быть открыт приложением, до запуска моего.

Цитата
вешать хук на CreateFile (лучше на ZwCreateFile) -
пример покажи, а то я однажды пытался - и так и не разобрался, как это сделать ) Пригодится

Записан

zubr
Гость
« Ответ #9 : 10-09-2008 09:46 » 

Ну дык твоя прога (или часть ее) должна будет с системой запускаться. Конечно не есть гут, зато никого убивать не надо будет - достаточно будет сделать CloseHandle.
Насчет примера, надо поискать в архиве, только будет на Delphi - устроит?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 10-09-2008 10:25 » 

zubr, давай
Записан

sss
Специалист

ru
Offline Offline

« Ответ #11 : 12-09-2008 08:57 » 

Я вот только не знаю можно ли это проецировать на драйверы?

Не понял вопроса, но если вопрос, а точно ли она использует дрова, надо ее запустить и посмотреть в диспетчере оборудования. Сейчас практически все модные утилиты (gpuz, filemon и т.д.) несут в себе драйвер как ресурс. Во время запуска копируют ресурс в файл sys, загружают его, используют, затем выгружают и удаляют...
Записан

while (8==8)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #12 : 12-09-2008 09:51 » 

sss, я в том плане, что она делает это с пользовательскими длл, а не ядрёнными. Те сможет ли она так же запросто обращаться с процессами запущенными на уровне ядра.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Mayor
Специалист

ru
Offline Offline

« Ответ #13 : 29-10-2008 12:29 » 

возможно ли сделать такое:
 к примеру, com1 занят (тойст открыт) некой программой (не моей) , а мне хочется, чтобы порт освободился и самому подключится к нему. Как заставить программу закрыть порт или хотябы жёстко "оторвать" от порта ?

тебе это административно или программно надо сделать?
Записан

1n c0de we trust
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 29-10-2008 12:49 » 

Mayor1, из политических убеждений Отлично Ага

кстити, так руки и не добрались до этого, обошлося вроде )
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines