Главная страница
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.048 c
15-1158922242
VitV
2006-09-22 14:50
2006.10.15
Необходимые библиотеки для VB6


6-1148051262
kernel
2006-05-19 19:07
2006.10.15
Противная ошибка


3-1155639526
2ded
2006-08-15 14:58
2006.10.15
Сохранение результата запроса на др. машине


6-1148280538
Тфьу
2006-05-22 10:48
2006.10.15
TIdSMTP при отсылке в теме пишет ерунду...


15-1158741969
Иксик
2006-09-20 12:46
2006.10.15
Дженерики или как я туплю