Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: FAQ - WinAPI ::  CD- Laufwerk bei MCI wechseln     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Entertainer
Unregistrierter




Beitrag Entertainer Unregistrierter 22:01:14 22.07.2004   Titel:   CD- Laufwerk bei MCI wechseln            Zitieren

Hallo Leute,

Ich probiere gerade etwas mit der MCI herum. Mit dieser kann ich ja auch CDs wiedergeben. Nun hat mein Rechner aber zwei Laufwerke und daraus ergibt sich meine Frage: Wie kann ich einstellen, dass statt der CD in Laufwerk F:\ die CD in Laufwerk G:\ abgespielt wird?

Zudem wäre ich sehr erfreut, wenn ihr mir vielleicht einen Link zu einem gut verständlichen Tutorial zur MCI geben könntet!!!

Vielen Dank für eure Hilfe,
Euer Entertainer
Werbeunterbrechung
geeky
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 5983
Beitrag geeky Mitglied 08:35:49 23.07.2004   Titel:              Zitieren

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "stdafx.h"

void ejectmedia(char *laufwerksbuchstabe, int openDrive);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    ejectmedia("f:",1);    // Laufwerksklappe öffnen
    ejectmedia("f:",0);    // ...und wieder schließen

    return 0;
}


void ejectmedia(char *laufwerksbuchstabe, int openDrive)
{
    char mciS[500];

    // Laufwerk 'laufwerksbuchstabe' als cdaudio-Gerät mit dem Alias 'cdlw' öffnen:
    wsprintf(mciS,"open %s type cdaudio alias cdlw",laufwerksbuchstabe);
    mciSendString(mciS,NULL,0,NULL);

    if (openDrive>0)
    {
        mciSendString("set cdlw door open",NULL,0,NULL);
    }
    else
    {
        mciSendString("set cdlw door closed",NULL,0,NULL);
    }

    return;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "stdafx.h"

void ejectmedia(char *laufwerksbuchstabe, int openDrive);

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
ejectmedia("f:",1); // Laufwerksklappe öffnen
ejectmedia("f:",0); // ...und wieder schließen

return 0;
}


void ejectmedia(char *laufwerksbuchstabe, int openDrive)
{
char mciS[500];

// Laufwerk 'laufwerksbuchstabe' als cdaudio-Gerät mit dem Alias 'cdlw' öffnen:
wsprintf(mciS,"open %s type cdaudio alias cdlw",laufwerksbuchstabe);
mciSendString(mciS,NULL,0,NULL);

if (openDrive>0)
{
mciSendString("set cdlw door open",NULL,0,NULL);
}
else
{
mciSendString("set cdlw door closed",NULL,0,NULL);
}

return;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "stdafx.h"

void ejectmedia(char *laufwerksbuchstabe, int openDrive);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    ejectmedia("f:",1);    // Laufwerksklappe öffnen
    ejectmedia("f:",0);    // ...und wieder schließen

    return 0;
}


void ejectmedia(char *laufwerksbuchstabe, int openDrive)
{
    char mciS[500];

    // Laufwerk 'laufwerksbuchstabe' als cdaudio-Gerät mit dem Alias 'cdlw' öffnen:
    wsprintf(mciS,"open %s type cdaudio alias cdlw",laufwerksbuchstabe);
    mciSendString(mciS,NULL,0,NULL);

    if (openDrive>0)
    {
        mciSendString("set cdlw door open",NULL,0,NULL);
    }
    else
    {
        mciSendString("set cdlw door closed",NULL,0,NULL);
    }

    return;
}


...prinzipiell also das laufwerk einfach mit einem alias-namen öffnen und dann bei weiteren Befehlen nicht cdaudio sondern den Alias-Namen angeben...
Jochen Kalmbach
Moderator

Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 11311
Beitrag Jochen Kalmbach Moderator 13:52:48 11.04.2006   Titel:              Zitieren

Die IMHO bessere Lösung ist:
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
#include
<tchar.h>
#include
<stdio.h>

int _tmain()
{
  DWORD dwBytes;
  HANDLE hCdRom = CreateFile(_T("\\\\.\\M:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
  if (hCdRom == INVALID_HANDLE_VALUE)
  {
    _tprintf(_T("Error: %x"), GetLastError());
    return 1;
  }

  // Open the door:
  DeviceIoControl(hCdRom, IOCTL_STORAGE_EJECT_MEDIA, NULL, 0, NULL, 0, &dwBytes, NULL);

  Sleep(1000);

  // Close the door:
  DeviceIoControl(hCdRom, IOCTL_STORAGE_LOAD_MEDIA, NULL, 0, NULL, 0, &dwBytes, NULL);

  CloseHandle(hCdRom);
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
#include
<tchar.h>
#include
<stdio.h>

int _tmain()
{
DWORD dwBytes;
HANDLE hCdRom = CreateFile(_T("\\\\.\\M:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hCdRom == INVALID_HANDLE_VALUE)
{
_tprintf(_T("Error: %x"), GetLastError());
return 1;
}

// Open the door:
DeviceIoControl(hCdRom, IOCTL_STORAGE_EJECT_MEDIA, NULL, 0, NULL, 0, &dwBytes, NULL);

Sleep(1000);

// Close the door:
DeviceIoControl(hCdRom, IOCTL_STORAGE_LOAD_MEDIA, NULL, 0, NULL, 0, &dwBytes, NULL);

CloseHandle(hCdRom);
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
#include
<tchar.h>
#include
<stdio.h>

int _tmain()
{
  DWORD dwBytes;
  HANDLE hCdRom = CreateFile(_T("\\\\.\\M:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
  if (hCdRom == INVALID_HANDLE_VALUE)
  {
    _tprintf(_T("Error: %x"), GetLastError());
    return 1;
  }

  // Open the door:
  DeviceIoControl(hCdRom, IOCTL_STORAGE_EJECT_MEDIA, NULL, 0, NULL, 0, &dwBytes, NULL);

  Sleep(1000);

  // Close the door:
  DeviceIoControl(hCdRom, IOCTL_STORAGE_LOAD_MEDIA, NULL, 0, NULL, 0, &dwBytes, NULL);

  CloseHandle(hCdRom);
}

_________________
Greetings
Jochen
(Microsoft MVP VC++) My blog about Win32 and .NET: http://blog.kalmbach-software.de/ (deutsch)
C/C++ Forum :: FAQ - WinAPI ::  CD- Laufwerk bei MCI wechseln   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.