Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Naredba za otvaranje cd-roma

[es] :: C/C++ programiranje :: C/C++ za početnike :: Naredba za otvaranje cd-roma

[ Pregleda: 4384 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

maja91

Član broj: 115086
Poruke: 16
80.93.231.*



Profil

icon Naredba za otvaranje cd-roma10.12.2006. u 15:29 - pre 211 meseci
Dakle , interesuje me koja f-ja sluzi za otvaranje CD-ROMa , pod BCB6.
Pzdrav svima!
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Naredba za otvaranje cd-roma10.12.2006. u 16:01 - pre 211 meseci
Na primer:

Code:

// ...
#include <MMSystem>
// ...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   /* otvara */
   mciSendString( "Set cdaudio door open wait",   NULL, 0, Handle );
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
   /* zatvara */
   mciSendString( "Set cdaudio door closed wait", NULL, 0, Handle );        
}


... E sad, ovo je malo slozenija problematika jer moze imati i vise od
jednog CD rom uredjaja.

Pogledaj na primer ovde: http://tinyurl.com/uhc4p


 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Naredba za otvaranje cd-roma10.12.2006. u 17:36 - pre 211 meseci
Naravno, postoje i drugio načini, npr:

Code:

#include <winioctl.h>

// zatvara
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   HANDLE hDevice;
   DWORD bytes;
   hDevice = CreateFile("\\\\.\\i:", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL );
   DeviceIoControl(hDevice,IOCTL_DISK_LOAD_MEDIA,NULL,0, NULL, 0, &bytes, (LPOVERLAPPED) NULL);
   CloseHandle(hDevice);
}

// otvara
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   HANDLE hDevice;
   DWORD bytes;
   hDevice = CreateFile("\\\\.\\i:", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL );
   DeviceIoControl(hDevice,IOCTL_DISK_EJECT_MEDIA,NULL,0, NULL, 0, &bytes, (LPOVERLAPPED) NULL);
   CloseHandle(hDevice);
}

Razlika je samo u IOCTL_DISK_LOAD_MEDIA i IOCTL_DISK_EJECT_MEDIA.
Primeti takodje slovo i:. To je konkretna oznaka drajva.

Koje sve drajvove imaš na sistemu, možeš videti sa (stavi prethodno jedan Memo1 na Form1):

Code:

void __fastcall TForm1::Button3Click(TObject *Sender)
{
   int type;
   type = GetDriveType("C");
   type = GetDriveType("C:\\Windows");

   for ( char c='A'; c<='Z'; c++ )
   {
      AnsiString S = AnsiString( c ) + ":";
      int type = GetDriveType( S.c_str() );
      if ( type > 1 )
      {
         String TypeStr;
         switch ( type )
         {
            case DRIVE_REMOVABLE :
               TypeStr = " is removable";
               break;
            case DRIVE_FIXED :
               TypeStr = " is fixed";
               break;
            case DRIVE_REMOTE :
               TypeStr = " is network drive";
               break;
            case DRIVE_CDROM :
               TypeStr = " is CD-ROM";
               break;
            case DRIVE_RAMDISK :
               TypeStr = " is RAM disk";
               break;
         }
         Memo1->Lines->Add(S + TypeStr);
      }
   }
}


Pa ako hoćeš da izvadiš samo CD uređaje filtriraj po atrinutu DRIVE_CDROM.
 
Odgovor na temu

maja91

Član broj: 115086
Poruke: 16
80.93.231.*



Profil

icon Re: Naredba za otvaranje cd-roma12.12.2006. u 18:42 - pre 211 meseci
X Files , radi prva varijanta! (sa jednim cd-romom).Sve mi je jasno - uradio si preko MCI varijante.

Ostaje mi da proverim varijante za vise drajvova.

Hvala. Pozdrav.
ps.( nisam stigla ranije da odgovorim , neka preca posla )

Jos jedno pitanje:
Kako sadrzaj Edit-a kada u njemu imam neki broj pomerim u desno?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Naredba za otvaranje cd-roma13.12.2006. u 09:53 - pre 211 meseci
Citat:

Kako sadrzaj Edit-a kada u njemu imam neki broj pomerim u desno?

Uvek otvori novu temu za novo pitanje.

Desno poravnat TEdit se može rešiti ovako:
http://www.bcbjournal.org/bcbcaq/CAQs/caq28.htm


Pozdrav.
 
Odgovor na temu

maja91

Član broj: 115086
Poruke: 16
80.93.231.*



Profil

icon Re: Naredba za otvaranje cd-roma14.12.2006. u 10:53 - pre 211 meseci
X Files
1. Radi i drugi nacin za load - eject cd-rom.(shvatila sam, ovaj nacin je posebno dobar za slucajeve gde je vise uredjaja).Hvala.

2. Sto se tice one druge teme Align Right TEdit koliko sam mogla shvatiti klasa TEdit nema mogucnost za tako nesto , vec se mora dodati novi deo koda itd..
Vraticu se na taj problem kasnije , za sada nemam dovoljno ideja.Jos jednom hvala ...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Naredba za otvaranje cd-roma

[ Pregleda: 4384 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.