Как в Delphi4 под Win98 при запуске программы определить доступные системе com-порты и их граничные параметры?
Help! Второй день не могу ниче найти ни в инете, ни в Programmer's Reference. Была ж вроде такая API...
29.11.03 11:57: Перенесено модератором из 'Delphi & Builder' — H_D
Re: Help! Как автоматом определять доступные системе com-пор
Здравствуйте, fiatik, Вы писали:
F>Как в Delphi4 под Win98 при запуске программы определить доступные системе com-порты и их граничные параметры? F>Help! Второй день не могу ниче найти ни в инете, ни в Programmer's Reference. Была ж вроде такая API...
посмотри CreateFile там помоему можно задавать 'COM1' 'COM2' 'COM3' 'COM4'...наверняка если нету вернет ошибку.
Эх, cкоро на свободу. Сидеть осталось 28 дней. Я в бане, а чего больше никто не моется ?
Re[2]: Help! Как автоматом определять доступные системе com-
Здравствуйте, Колобок В бане, Вы писали:
КВБ>Здравствуйте, fiatik, Вы писали: КВБ>посмотри CreateFile там помоему можно задавать 'COM1' 'COM2' 'COM3' 'COM4'...наверняка если нету вернет ошибку.
Спасиб, конечно..
Но перебором как-то некрасиво.
Да и портов мот быть в общем случае до десятка.
Re: Help! Как автоматом определять доступные системе com-пор
Еще советовали реестр читать, но я с ним никогда не работал, чс говоря.
Да и сдается, видел лет пять назад пример, где это делали простой API. Правда, под Win95.
В принципе, если хотя бы считать имена com-портов, то их параметры уже определить мона через GetCommProperties.
Re: Help! Как автоматом определять доступные системе com-пор
Здравствуйте, fiatik, Вы писали:
F>Как в Delphi4 под Win98 при запуске программы определить доступные системе com-порты и их граничные параметры? F>Help! Второй день не могу ниче найти ни в инете, ни в Programmer's Reference. Была ж вроде такая API...
By Андрей А. Лобанов <loba@nersa.ee>
program devlist; {$apptype console}uses windows, sysutils;
const BufSize = 1024;
var
Buf_DevList: Array[0..BufSize] of Char;
DevName: PChar;
begin
if QueryDosDevice(nil, Buf_DevList, BufSize) = 0 then Exit;
DevName := Buf_DevList;
while DevName^ <> #00 do
begin
if (StrLIComp('COM', DevName, 3) = 0) then writeln(DevName);
DevName := StrEnd(DevName)+1;
end;
end.
--
С уважением, LVT
--
С уважением, LVT
Re[2]: Help! Как автоматом определять доступные системе com-
Здравствуйте, Колобок В КВБ>посмотри CreateFile там помоему можно задавать 'COM1' 'COM2' 'COM3' 'COM4'...наверняка если нету вернет ошибку.
Ошибку вернет и если COM в данный момент используется (занят). Наверное все-таки лучше читать реестр. Да и вопрос сам надо бы поточнее сформулировать...
— свободные для использования порты?
— все физические порты?
— все порты включая виртуальные (логические)? Драйаером устройства можно ведь проэмулировать порт.
Re[3]: Help! Как автоматом определять доступные системе com-
Здравствуйте, barry, Вы писали: B>Ошибку вернет и если COM в данный момент используется (занят). Наверное все-таки лучше читать реестр. Да и вопрос сам надо бы поточнее сформулировать... B>- свободные для использования порты? B>- все физические порты? B>- все порты включая виртуальные (логические)? Драйаером устройства можно ведь проэмулировать порт.
Сорри. В данном частном случае меня интересуют физические порты. Но, если сразу определять, какие заняты — ваще неплохо.
А где найти информацию про то, как читать реестр? Пока ни разу не приходилось.
Re[2]: Help! Как автоматом определять доступные системе com-