2012-06-05 4 views
2

Когда я пытаюсь подключиться к COM-порту в Windows 7, используя AsyncPro (TApdComPort), я получаю сообщение об ошибке вроде «Устройство уже открыто». Но одно и то же приложение отлично работает в Win Xp. Я использую Delphi 6 для разработки программы. Пожалуйста, помогите мне решить эту проблему. Цените свою помощь. Спасибо.COM-порт уже открыт в Windows 7

+2

Так в чем проблема? Сообщение об ошибке сообщает вам, что случилось. Какую причину вы считаете проблемой не так просто, как найти программу, открытую и закрывающую порт? См. [Теперь, кто использует мой COM-порт?] (Http://superuser.com/q/55334) для суперпользователя. Stack Overflow для проблем программирования, но я еще не убежден, что у вас есть * проблема программирования. –

ответ

2

Какой компонент вы используете для подключения к COM-порту?

Если вы используете API CreateFile для открытия порта, используйте GetLastError() API для определенной ошибки вашей проблемы.

Если это не поможет, то это означает, что это аппаратная проблема

Не знаю о компоненте, который вы используете ApdComPort, но вы можете сделать простой тест написать простое приложение, чтобы открыть порт так же, как это

var 
    comHandle : THandle; 
begin 
    comHandle := CreateFile('COM66',GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0); 
    if comHandle = INVALID_HANDLE_VALUE then ShowMessage(SysErrorMessage(GetLastError)) 
    else ShowMessage('Port opened'); 
end //Make shure to replace COM66 with your actual COM Port you wish to open 

Если он показывает то порт открыт, это проблема с компонентом, который вы используете, так что я рекомендовал бы этот один http://sourceforge.net/projects/comport/ пост здесь другое сообщение об ошибке, чтобы найти решение.

+0

@ opc0de Я использую компонент ApdComPort. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. –

+0

@ Delphian checkout мое редактирование и сообщение о том, какая ошибка вы получаете – opc0de

+0

Я использую следующие настройки: ComNumber: = 1; Baud: = 1200; DataBits: = 8; StopBits: = 2; Соотношение: = pNone –

0

У меня была аналогичная проблема, которая была решена путем изменения имени порта с COM1 на COM4 в дополнительных свойствах последовательного порта (через диспетчера устройств).

Все в порядке. Некоторые программы по-прежнему видят переименованный порт как COM1, но теперь они могут получить доступ к порту.

0

Для меня проблемой был удаленный рабочий стол. Я отключил все локальные ресурсы в соединении. Как-то удаленный рабочий стол блокировал COM-порт!

Смежные вопросы