Cportcom działający pod tylko pod 95/98

0

Witam znajomy dał mi ostatnio program który pozwala na dzwonienie telefonu pod różne nr o różnym czasie który napisał pod delphi, sprawa ma się następująco że ten program działa tylko pod 95/98, ja bym potrzebował uruchomić go pod xp lub windows 7 znalazłem tam komponent o nazwie PortTools zródło zamieszczam poniżej.Serdecznie proszę o pomoc

unit PortTools;
{ 30 listopada 2004
procedura zczerpnieta z komponentu CPortCom odczytująca porty szerego we z rejestru}

interface
uses Classes,Windows,Registry,SysUtils;
procedure EnumComPorts(Ports: TStrings);
function zwrocnrcom(komp:string):integer;
implementation
procedure EnumComPorts(Ports: TStrings);
var
KeyHandle: HKEY;
ErrCode, Index: Integer;
ValueName, Data: string;
ValueLen, DataLen, ValueType: DWORD;
TmpPorts: TStringList;
begin
ErrCode := RegOpenKeyEx(
HKEY_LOCAL_MACHINE,
'HARDWARE\DEVICEMAP\SERIALCOMM',
0,
KEY_READ,
KeyHandle);

{ if ErrCode <> ERROR_SUCCESS then
raise EComPort.Create(CError_RegError, ErrCode);}

TmpPorts := TStringList.Create;
try
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);
    TmpPorts.Add(Data);
    Inc(Index);
  end
  else

{ if ErrCode <> ERROR_NO_MORE_ITEMS then
raise EComPort.Create(CError_RegError, ErrCode);}

until (ErrCode <> ERROR_SUCCESS) ;

TmpPorts.Sort;
Ports.Assign(TmpPorts);

finally
RegCloseKey(KeyHandle);
TmpPorts.Free;
end;

end;

function zwrocnrcom(komp:string):integer;
var x:string;
i:integer;
begin
x:='';
for i:=4 to length(komp) do
begin
x:=x+komp[i];
end;
result:=StrToInt(x);
end;
end.

0

ale co dalej mam robić z tym nie rozumiem tego. Jak by co to ja robiłem ten temat tylko login zmieniłem

1 użytkowników online, w tym zalogowanych: 0, gości: 1