- function NumeroPort(nomport:string):string;
- var
- KeyHandle: HKEY;
- ErrCode, Index: Integer;
- ValueName, Data: string;
- ValueLen, DataLen, ValueType: DWORD;
- begin
- ErrCode := RegOpenKeyEx(
- HKEY_LOCAL_MACHINE,
- 'HARDWARE\DEVICEMAP\SERIALCOMM',
- 0,
- KEY_READ,
- KeyHandle);
-
- if ErrCode <> ERROR_SUCCESS then
- raise Exception.Create('erreur d''ouverture');
-
- Index := 0;
- repeat
- ValueLen := 256;
- DataLen := 256;
- SetLength(ValueName, ValueLen);
- SetLength(Data, DataLen);
- ErrCode := RegEnumValue(
- KeyHandle,
- Index,
- PChar(ValueName),
- {$IFDEF DELPHI_4_OR_HIGHER}
- Cardinal(ValueLen),
- {$ELSE}
- ValueLen,
- {$ENDIF}
- nil,
- @ValueType,
- PByte(PChar(Data)),
- @DataLen);
-
- if ErrCode = ERROR_SUCCESS then
- begin
- SetLength(Data, DataLen);
- if pos(nomport,valuename)<>0 then result:=data;
- Inc(Index);
- end
- else
- until (ErrCode <> ERROR_SUCCESS) ;
- RegCloseKey(KeyHandle);
- end;
function NumeroPort(nomport:string):string;
var
KeyHandle: HKEY;
ErrCode, Index: Integer;
ValueName, Data: string;
ValueLen, DataLen, ValueType: DWORD;
begin
ErrCode := RegOpenKeyEx(
HKEY_LOCAL_MACHINE,
'HARDWARE\DEVICEMAP\SERIALCOMM',
0,
KEY_READ,
KeyHandle);
if ErrCode <> ERROR_SUCCESS then
raise Exception.Create('erreur d''ouverture');
Index := 0;
repeat
ValueLen := 256;
DataLen := 256;
SetLength(ValueName, ValueLen);
SetLength(Data, DataLen);
ErrCode := RegEnumValue(
KeyHandle,
Index,
PChar(ValueName),
{$IFDEF DELPHI_4_OR_HIGHER}
Cardinal(ValueLen),
{$ELSE}
ValueLen,
{$ENDIF}
nil,
@ValueType,
PByte(PChar(Data)),
@DataLen);
if ErrCode = ERROR_SUCCESS then
begin
SetLength(Data, DataLen);
if pos(nomport,valuename)<>0 then result:=data;
Inc(Index);
end
else
until (ErrCode <> ERROR_SUCCESS) ;
RegCloseKey(KeyHandle);
end;