Текущий архив: 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.46 MB
Время: 0.045 c