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

Naredba za otvaranje cd-roma

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

[ Pregleda: 899 | Odgovora: 5 ]

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

Dakle , interesuje me koja f-ja sluzi za otvaranje CD-ROMa , pod BCB6.
Pzdrav svima!
10.12.2006. u 15:29 

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Naredba za otvaranje cd-roma10.12.2006. u 16:01
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



FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
10.12.2006. u 16:01 

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Naredba za otvaranje cd-roma10.12.2006. u 17:36
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.

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
10.12.2006. u 17:36 

maja91

Član broj: 115086
Poruke: 16
80.93.231.*



Profil

icon Re: Naredba za otvaranje cd-roma12.12.2006. u 18:42
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?
12.12.2006. u 18:42 

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Naredba za otvaranje cd-roma13.12.2006. u 09:53
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.

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
13.12.2006. u 09:53 

maja91

Član broj: 115086
Poruke: 16
80.93.231.*



Profil

icon Re: Naredba za otvaranje cd-roma14.12.2006. u 10:53
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 ...
14.12.2006. u 10:53 

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

[ Pregleda: 899 | Odgovora: 5 ]

Postavi temu Odgovori

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