Program za auto otvaranje i zatvaranje cd traya

poruka: 6
|
čitano: 4.704
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
Program za auto otvaranje i zatvaranje cd traya

#include "wtypes.h"
#include "winioctl.h"
#include <string>
using namespace std;


bool OpenCloseDoor(const string& DriveName, const bool Open)
{
 
   const string Drive = string("\\\\.\\") + DriveName + string(":");
  
   HANDLE hDrive = INVALID_HANDLE_VALUE;     
   hDrive = CreateFile(Drive.c_str(), GENERIC_READ,
                       FILE_SHARE_READ | FILE_SHARE_WRITE,
                       NULL, OPEN_EXISTING,
                       FILE_ATTRIBUTE_NORMAL,
                       NULL);
               
   BOOL bRetVal = FALSE;
   if ((hDrive != INVALID_HANDLE_VALUE) && (NO_ERROR == GetLastError()))
   {
      DWORD dwDummy = 0;
      if (Open)
      {
         bRetVal = DeviceIoControl(hDrive, IOCTL_STORAGE_EJECT_MEDIA,
                                   NULL, 0, NULL, 0, &dwDummy, NULL);
      }
      else
      {
         bRetVal = DeviceIoControl(hDrive, IOCTL_STORAGE_LOAD_MEDIA,
                                   NULL, 0, NULL, 0, &dwDummy, NULL);
      }
   }
   return (!!bRetVal);                      
}

int main()
{    
     
     
   OpenCloseDoor("D", true);  //D je ime mog cd traya,zamjenite ga sa svojim 
   OpenCloseDoor("D", false);
  
  
  
   return 0;
  
  
}

 

 

Poželjno bubnut u petlju za bolji dojam =)

optimizam je nedostatak informacija
Moj PC  
0 0 hvala 0
14 godina
offline
RE: Program za auto otvaranje i zatvaranje cd tray

hehe, samo kako to izvesti na laptopu....(samo se šalim znam da se nemozeSmijeh).

13 godina
neaktivan
offline
RE: Program za auto otvaranje i zatvaranje cd tray
slobo14 kaže...

hehe, samo kako to izvesti na laptopu....(samo se šalim znam da se nemozeSmijeh).

 

Može samo otvoriti =)

optimizam je nedostatak informacija
14 godina
offline
RE: Program za auto otvaranje i zatvaranje cd tray

e care zašto to meni neradi jel možda jer imam windows 7 ili sam negdje za*** dok sam kopiro naredbu, spremi se u .bat ne? i ono nutra sam stavio e disk jer je e moj, i neče   Belji se

http://www.youtube.com/watch?v=p139xZEqVUQ dj darac rmx 2010
Poruka je uređivana zadnji put pet 17.9.2010 19:01 (crni pauk).
13 godina
neaktivan
offline
RE: Program za auto otvaranje i zatvaranje cd tray
crni pauk kaže...

e care zašto to meni neradi jel možda jer imam windows 7 ili sam negdje za*** dok sam kopiro naredbu, spremi se u .bat ne? i ono nutra sam stavio e disk jer je e moj, i neče  Belji se

 

To kopiraš u bilokoji c++ IDE s kompajlerom, i kompajliraš ( Dev c++ ajmo reć)

Mislim da nije problem u wins 7  =)

optimizam je nedostatak informacija
16 godina
moderator
offline
Program za auto otvaranje i zatvaranje cd traya

Fora! Ovo unutar if-uvjeta bi se moglo napisati i ovako:

 

   if ((hDrive != INVALID_HANDLE_VALUE) && (NO_ERROR == GetLastError()))
   {
      DWORD dwDummy = 0, naredba;

      Open ? naredba = IOCTL_STORAGE_EJECT_MEDIA : naredba = IOCTL_STORAGE_LOAD_MEDIA;

      bRetVal = DeviceIoControl(hDrive, naredba, NULL, 0, NULL, 0, &dwDummy, NULL);
   }

 

Na ovaj nacin vidis da je poziv funkcije isti (ne trebas dvaput pisati kilometarsku naredbu s DeviceIoControl funkcijom), samo sto CD/DVD uredjaju posaljes drugu naredbu. Namigiva

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice