Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

EnumPorts странно работает   Найти похожие ветки 

 
Корешь   (2006-05-31 22:22) [0]

Использую для получения списка портов следующий код
var
BytesNeeded, Returned, I: DWORD;
Success: Boolean;
PortsRtr: Pointer;
InfoPtr: PPortInfo1;
TempStr: string;
begin
Success:=EnumPorts(nil, 1, nil, 0, BytesNeeded, Returned);
If (not Success) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then
  begin
  GetMem(PortsRtr, BytesNeeded);
  Try
     Win32Check(EnumPorts(nil, 1, PortsRtr, BytesNeeded, BytesNeeded, Returned));
     For I:=0 to  Returned -1 do
       begin
          InfoPtr:= PPortInfo1(DWORD(PortsRtr)+ I * SizeOf(TPortInfo1));
          TempStr:= InfoPtr^.pName;
          ComboBox1.Items.Add(TempStr);
       end;
  Finally
     FreeMem(PortsRtr);
  end;
  end;

Так вот получается что у меня в системе четыре com и три lpt портов, хотя их два и один соответсвенно, как получит правильную информацию о наличии портов?


 
Kolan ©   (2006-05-31 22:24) [1]


> как получит правильную информацию о наличии портов?
>

Я думаю просто попытать ся их открыть... Удачно - он есть нет, значит нет...


 
Корешь   (2006-05-31 22:29) [2]

оно конечно можно, но если в это время порт занят кемто то получится что его нет....


 
Kolan ©   (2006-05-31 22:32) [3]

Как узнать имена установленных в системе COM-портов?
Previous  Top  Next  

uses Registry;  

procedure TForm1.Button1Click(Sender: TObject);  
var  
 reg : TRegistry;  
 ts : TStrings;  
 i : integer;  
begin  
 reg := TRegistry.Create;  
 reg.RootKey := HKEY_LOCAL_MACHINE;  
 reg.OpenKey("hardware\devicemap\serialcomm",  
             false);  
 ts := TStringList.Create;  
 reg.GetValueNames(ts);  
 for i := 0 to ts.Count -1 do begin  
   Memo1.Lines.Add(reg.ReadString(ts.Strings[i]));  
 end;  
 ts.Free;  
 reg.CloseKey;  
 reg.free;  
end;

Взято с Исходников.ru http://www.sources.ru


 
Корешь   (2006-05-31 22:36) [4]

не то же не катит...
wmi выдает правильные результаты, но не очень хочется его использовать...


 
Kolan ©   (2006-05-31 22:40) [5]

Ну все что знал расказал... (c)


 
tesseract ©   (2006-05-31 23:15) [6]

Kolan см внимательнрее код который я тебе выслал :-).

Там не Tstrings, а TStringList, лучше использовать Assign, а не цикл, остальное верно :-)


 
Kolan ©   (2006-05-31 23:29) [7]


> tesseract ©   (31.05.06 23:15) [6]

Угу...



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.047 c
2-1159354453
mfender
2006-09-27 14:54
2006.10.15
Прелотвращение работы методов в Design Time


15-1158907204
Юрий
2006-09-22 10:40
2006.10.15
Потемнение на планете - сюжет НТВ


15-1158929841
StriderMan
2006-09-22 16:57
2006.10.15
Куда попадают объекты после деструктора?


2-1159271382
Андрей Иванов
2006-09-26 15:49
2006.10.15
базы данных


5-1140961860
Priest
2006-02-26 16:51
2006.10.15
Assign для наследника TCollectionItem