Главная страница
    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.46 MB
Время: 0.045 c
15-1158693219
BreakPoint
2006-09-19 23:13
2006.10.15
Тестирование компонента для Delphi и C++Builder


2-1159491560
Maveric AM10m
2006-09-29 04:59
2006.10.15
IRC клиент


8-1142791800
foull
2006-03-19 21:10
2006.10.15
работа с mp3 тэгами


15-1159093206
TUser
2006-09-24 14:20
2006.10.15
PowerPoint


2-1159542353
NSD
2006-09-29 19:05
2006.10.15
Работа с реестром из ChekListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский