Seite 1 von 1
Probleme mit "Cd-Ejecten"
Verfasst: Mittwoch 22. November 2006, 12:29
von lordmyder
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
Verfasst: Mittwoch 22. November 2006, 12:33
von basti33
Welches Betriebssystem verwendest du?
Verfasst: Mittwoch 22. November 2006, 12:33
von lordmyder
windows xp
Verfasst: Mittwoch 22. November 2006, 12:37
von basti33
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.
Verfasst: Mittwoch 22. November 2006, 12:39
von lordmyder
mh, okay. danke!
Verfasst: Mittwoch 22. November 2006, 12:48
von Leonidas
Wie wärs mit
dieser Lösung? (Übringens, zweiter Google-Treffer mit den Suchwörtern Win32 API eject cd)
Verfasst: Mittwoch 22. November 2006, 12:52
von basti33
Prima, danke!!
Verfasst: Mittwoch 22. November 2006, 13:19
von lordmyder
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?
Verfasst: Mittwoch 22. November 2006, 13:20
von Leonidas
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?
Verfasst: Mittwoch 22. November 2006, 16:45
von lordmyder
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...
Verfasst: Mittwoch 22. November 2006, 17:28
von BlackJack
'=3D' ist ein Gleicheitszeichen als "quoted printable" kodiert. Also einfach mal alle '=3D' durch '=' ersetzen.
Verfasst: Mittwoch 22. November 2006, 18:05
von Python 47
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!

Verfasst: Mittwoch 22. November 2006, 18:23
von lordmyder
cool, jetzt funktionierts auch bei mir. Danke !!
Verfasst: Donnerstag 23. November 2006, 00:32
von birkenfeld
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?
Verfasst: Donnerstag 23. November 2006, 00:40
von Leonidas
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)
Verfasst: Donnerstag 23. November 2006, 14:30
von Python 47
birkenfeld hat geschrieben: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?
Ok ist gut, dann unterdrücke ich meine Umgangssprache
Obwohl ich das eigentlich immer in Foren mache.

Liegt wohl daran, dass ich gestern 3h lang mit Freunden gechattet hab und dann hier gepostet habe.
