Saber se componentes Hardware estão instalados
Olá a todos.
Gostaria de saber se é possível e se os amigos possuem algum código que me retorna se:
1 - Existe alguma placa de rede instalada no Computador (Tanto onboard como offboard)
2 - Existe alguma gravadora de CD ou DVD instalada no Computador
Descobri no www.planetadelphi.com.br uma função para retornar se existe alguma placa de som instalada. Mas tentando alterar ela não estou conseguindo nenhum resultado. Segue:
Alguém tem alguma coisa?
Um abraço.
Gostaria de saber se é possível e se os amigos possuem algum código que me retorna se:
1 - Existe alguma placa de rede instalada no Computador (Tanto onboard como offboard)
2 - Existe alguma gravadora de CD ou DVD instalada no Computador
Descobri no www.planetadelphi.com.br uma função para retornar se existe alguma placa de som instalada. Mas tentando alterar ela não estou conseguindo nenhum resultado. Segue:
Function TestaPlacaSom : Boolean; Begin //Esta função verifica se existe uma placa de som instalada neste computador If WaveOutGetNumDevs > 0 then Result := True else Result := False; //Fim do código. end;
Alguém tem alguma coisa?
Um abraço.
Devmedia
Curtidas 0
Respostas
Dor_poa
13/01/2008
Esses códigos não sao de minha criação foi retirado de outros típicos deste mesmo SITE!
REDE:
****************************************************
uses Winsock;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
begin
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
WSACleanup;
end;
procedure TForm1.BtnIPClick(Sender: TObject);
var
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
begin
GetHostName(@s, 128);
p := GetHostByName(@s);
Memo1.Lines.Add(p^.h_Name);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
Memo1.Lines.Add(p2);
end;
Se retonrar um endereço VAzio ou 127.0.0.0 nao tem nada!
CD:
********************************************
Inclua na seção uses: Windows, Dialogs
{ - Coloque um edit (Edit1) e um botão no form;
- Altere o OnClick do botão conforme abaixo: }
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
Tipo: byte;
begin
Tipo := GetDriveType(PChar(Edit1.Text[1] + ´:\´));
case Tipo of
0: S := ´Tipo indeterminado´;
1: S := ´Drive não existe´;
DRIVE_REMOVABLE: S := ´Disco removível´;
DRIVE_FIXED: S := ´Disco Fixo´;
DRIVE_REMOTE: S := ´Unidade de rede´;
DRIVE_CDROM: S := ´CD-ROM´;
DRIVE_RAMDISK: S := ´RAM Disk´;
else
S := ´Erro´;
end;
ShowMessage(S);
end;
{ Para pegar o tipo da unidade atual troque...}
Tipo := GetDriveType(PChar(Edit1.Text[1] + ´:\´));
{ por }
Tipo := GetDriveType(nil);
Observações
Para testar digite a letra do drive no Edit1 e clique no botão. A unit Dialogs foi colocada no uses apenas por causa da procedure ShowMessage. Para exibir todas as unidades existentes e seus res-pectivos tipos, use a função tbGetDrives (da pergunta 64) em con-junto com este exemplo.
REDE:
****************************************************
uses Winsock;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
begin
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
WSACleanup;
end;
procedure TForm1.BtnIPClick(Sender: TObject);
var
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
begin
GetHostName(@s, 128);
p := GetHostByName(@s);
Memo1.Lines.Add(p^.h_Name);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
Memo1.Lines.Add(p2);
end;
Se retonrar um endereço VAzio ou 127.0.0.0 nao tem nada!
CD:
********************************************
Inclua na seção uses: Windows, Dialogs
{ - Coloque um edit (Edit1) e um botão no form;
- Altere o OnClick do botão conforme abaixo: }
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
Tipo: byte;
begin
Tipo := GetDriveType(PChar(Edit1.Text[1] + ´:\´));
case Tipo of
0: S := ´Tipo indeterminado´;
1: S := ´Drive não existe´;
DRIVE_REMOVABLE: S := ´Disco removível´;
DRIVE_FIXED: S := ´Disco Fixo´;
DRIVE_REMOTE: S := ´Unidade de rede´;
DRIVE_CDROM: S := ´CD-ROM´;
DRIVE_RAMDISK: S := ´RAM Disk´;
else
S := ´Erro´;
end;
ShowMessage(S);
end;
{ Para pegar o tipo da unidade atual troque...}
Tipo := GetDriveType(PChar(Edit1.Text[1] + ´:\´));
{ por }
Tipo := GetDriveType(nil);
Observações
Para testar digite a letra do drive no Edit1 e clique no botão. A unit Dialogs foi colocada no uses apenas por causa da procedure ShowMessage. Para exibir todas as unidades existentes e seus res-pectivos tipos, use a função tbGetDrives (da pergunta 64) em con-junto com este exemplo.
GOSTEI 0