E aí pessoal.... Eu tenho uma rotina para fazer isso, ralei mas consegui. Existe um montão na internet, mas a minha function abre o drive que desejar, enquanto que, os que rola aí na internet só abre o drive principal. Digamos que você esteja rodando a aplicação em um drive virtual de CD ou o usuário possui dois drive de CD, o comando que existe pela internet, só vai abrir o drive de CD físico e o principal.
Bom, meu problema é que meu aplicativo vai funcionar apenas de dentro do CD. Já está completo, mas tenho um problema e uma solução, mas queria encontrar outra solução. Na hora que o usuário sair do aplicativo, tenho de ejetar o CD. Problema: Colocar no CloseQuery não dá certo, até ejeta, mas depois gera um erro solicitando que seja inserido o CD do programa no drive. Aí não vai dar, claro... Se eu colocar no onClose acontece a mesma coisa, já fiz de tudo, antes eu chamava a function, depois resolvi colocar o comando diretamente no onClose, as vezes funciona, as vezes não... Solução: Criar um utilitário e colocar ele dentro desse programa, jogar ele nos temporários e executá-lo ao sair do aplicativo, dá certo, porém fica uma coisa meio sujo. Como eu faria para ao finalizar o programa o drive fosse ejetado e não aparecer o erro pedindo para recolocar o CD no drive???? A function que fiz que abre qualquer unidade de CD: ------------------------------------------------------------------------- function Tfrm_Principal.Ejetar : Boolean; var OpenP : TMCI_Open_Parms; Flg : DWord; DeviceID : Word; MErrou : MciError; begin Result := False; Flg := mci_Open_Type or mci_Open_Element; with OpenP do begin dwCallback := 0; lpstrDeviceType := 'CDAudio'; lpstrElementName := PChar(ExtractFileDrive(Application.ExeName)); end; MErrou := mciSendCommand(0, mci_Open, Flg, Longint(@OpenP)); if MErrou <> 0 then Exit; DeviceID := OpenP.wDeviceID; try MErrou := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0); if MErrou = 0 then Exit; Result := True; finally mciSendCommand(DeviceID, mci_Close, Flg, Longint(@OpenP)); end; end; -------------------------------------------------------------------------- Grato pela ajuda...