conteúdo do cd

Delphi

15/12/2003

[size=18:6be0c851a7]O que quero fazer é o seguinte:

Criei um CD-ROM que abre o programa utilizando o autorun.inf.
Neste programa tem um botão que, ao ser clicado, deverá mostrar o conteúdo do CD.

Como deverá ser o código desse botão?

Valeu,[/size:6be0c851a7]


Favor postar com título em minúsculas
Zoom
Administrador


Tenil

Tenil

Curtidas 0

Respostas

Beppe

Beppe

15/12/2003

ShellExecute(0, ´´, PChar(GetCDDriveString), nil, nil, SW_SHOWNORMAL);


Adicione ShellAPI ao uses.

PS: Não precisa usar uma letra tão grande, eu ainda enxergo perfeitamente. :(


GOSTEI 0
Tenil

Tenil

15/12/2003

Valeu,

Só tem um probleminha, no XP rodou legal, mas no W98 não funcionou.

Vc sabe por que?

Obrigado


GOSTEI 0
Beppe

Beppe

15/12/2003

O que exatamente teria de acontecer e não aconteceu?


GOSTEI 0
Tenil

Tenil

15/12/2003

Mano, já resolvi, fiz uma pequena modificação do código:

Escrevi:
ShellExecute(handle, ´OPEN´, PChar(ExtractFilePath(Application.ExeName)), NIL, NIL, SW_SHOWNORMAL);

Ao invés de:
ShellExecute(0, ´´, PChar(GetCDDriveString), nil, nil, SW_SHOWNORMAL);


Muito obrigado brother, ;)


GOSTEI 0
Beppe

Beppe

15/12/2003

Como funcionou no XP, se eu esqueci de postar a rotina?! :?

Mas a alternativa que você encontrou é prática e até preferível, já que se o conteúdo do CD for movido para outra pasta, aquela pasta será aberta.

Estou postando ela aqui agora, só para não ficar uma lacuna no tópico. :D
function GetCDDriveString: String;
var
  C: Char;
begin
  for C := ´A´ to ´Z´ do
  begin
    Result := C + ´:\´;
    if GetDriveType(Pointer(Result)) = DRIVE_CDROM then
      Exit;
  end;
  Result := ´´;
end;



GOSTEI 0
Tenil

Tenil

15/12/2003

Tem razão, só funcionou depois que mudei o código, mesmo assim, obrigado. :oops:

O código que funcionou no XP e 2000 foi:
ShellExecute(handle, ´´, PChar(ExtractFilePath(Application.ExeName)), NIL, NIL, SW_SHOWNORMAL);


Para funcionar no W98 só estava faltando a palavra de operação [b:9a37e76110]´open´[/b:9a37e76110]:
ShellExecute(handle, ´OPEN´, PChar(ExtractFilePath(Application.ExeName)), NIL, NIL, SW_SHOWNORMAL);



GOSTEI 0
POSTAR