Probleme mit "Cd-Ejecten"

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
lordmyder

Mittwoch 22. November 2006, 12:29

Ich versuche schon die ganze Zeit ein Programm zu schreiben, dass mir auf Knopfdruck mein Cd-Rom-Laufwerk öffnen kann.
Ich habe im Forum gesucht und bin auf den Befehl "os.system("eject")" gestoßen. Ich habe os importiert und den Befehl ausprobiert. Es öffnet sich kurz ein schwarzes Fenster und mehr passiert nicht. Kann mir jemand sagen, was ich falsch mache, oder änder muss?
Danke schon mal!

ps. ich nutze python 2.2.5
basti33
User
Beiträge: 56
Registriert: Donnerstag 24. August 2006, 15:05

Mittwoch 22. November 2006, 12:33

Welches Betriebssystem verwendest du?
basti33
User
Beiträge: 56
Registriert: Donnerstag 24. August 2006, 15:05

Mittwoch 22. November 2006, 12:37

Da hast du dein Problem. os.system() führt Kommandos auf Betriebsystemebene aus, d.h. es macht das Gleiche, wie wenn du den Befehl in die cmd oder Shell eintippst. Windows ist aber nicht in der Lage, ein CD Laufwerk mit einem cmd Befehl zu öffnen. Der Befehl, den du einsetzen möchtest, funktioniert daher nur auf UNIX Systemen wie Linux.

Ich bin selbst an so einem Programm interessiert und suche auch nach einer Möglichkeit ein CD Laufwerk unter Win XP zu öffnen, habe aber auch noch keine brauchbare Lösung gefunden.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 22. November 2006, 12:48

Wie wärs mit dieser Lösung? (Übringens, zweiter Google-Treffer mit den Suchwörtern Win32 API eject cd)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
basti33
User
Beiträge: 56
Registriert: Donnerstag 24. August 2006, 15:05

Mittwoch 22. November 2006, 12:52

Prima, danke!!
lordmyder

Mittwoch 22. November 2006, 13:19

ich hab dieses script einfach mal ganz naiv kopiert und ausgeführt. er sagt aber da sind syntax-fehler drin, die ich auch sehe..aber was muss ich machen, damit es läuft?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 22. November 2006, 13:20

lordmyder hat geschrieben:da sind syntax-fehler drin, die ich auch sehe..aber was muss ich machen, damit es läuft?
Die Syntax-Fehler korrigieren?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
lordmyder

Mittwoch 22. November 2006, 16:45

ich bin net so fit im programmieren, und ich weiß net was ich da machen muss. Da stehen so sachen drin wie:
h =3D win32file.Cre...
Klar das er wegen 3D win meckert, aber was mach ich, damit er das nicht mehr tut? einfach wegmachen geht net, und sonst weiß ich nix...
BlackJack

Mittwoch 22. November 2006, 17:28

'=3D' ist ein Gleicheitszeichen als "quoted printable" kodiert. Also einfach mal alle '=3D' durch '=' ersetzen.
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Mittwoch 22. November 2006, 18:05

Ich hab den Code mal ein bischen ausgebessert, da er net gefunzt hat:

Code: Alles auswählen

import sys
import win32file
from win32con import *

drive ='E:' #Je nachdem welcher Buchstabe das zu öffnente Laufwerk hat 
if len(drive) !=2 or drive[1] !=':':
    print >>sys.stderr, "Invalid drive letter", drive
    

h =win32file.CreateFile(r'\\.\\' + drive, GENERIC_READ, FILE_SHARE_READ, None, OPEN_EXISTING, 0, 0)
n =win32file.DeviceIoControl(h,0x002d4808, "", 0)
win32file.CloseHandle(h)
Ich finde das hier allerdings besser! 8)
mfg

Thomas :-)
lordmyder

Mittwoch 22. November 2006, 18:23

cool, jetzt funktionierts auch bei mir. Danke !!
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Donnerstag 23. November 2006, 00:32

Python Master 47 hat geschrieben:Ich hab den Code mal ein bischen ausgebessert, da er net gefunzt hat
Hatten wir hier nicht mal die "Rechtschreibwoche"?

Können wir bitte jetzt eine "Woche gegen hirnlose Abkürzungen" starten?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 23. November 2006, 00:40

birkenfeld hat geschrieben:Können wir bitte jetzt eine "Woche gegen hirnlose Abkürzungen" starten?
Ja, gerne. Da steuere ich gleich mal welche bei:
  • funzen
  • M$
  • Windoof (+ etliche andere kindische Verunglimpfungen)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten