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

Probleme mit "Cd-Ejecten"

Beitragvon 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

Beitragvon basti33 » Mittwoch 22. November 2006, 12:33

Welches Betriebssystem verwendest du?
lordmyder

Beitragvon lordmyder » Mittwoch 22. November 2006, 12:33

windows xp
basti33
User
Beiträge: 56
Registriert: Donnerstag 24. August 2006, 15:05

Beitragvon basti33 » 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.
lordmyder

Beitragvon lordmyder » Mittwoch 22. November 2006, 12:39

mh, okay. danke!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Beitragvon basti33 » Mittwoch 22. November 2006, 12:52

Prima, danke!!
lordmyder

Beitragvon 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?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Beitragvon 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

Beitragvon 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

Beitragvon Python 47 » 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

Beitragvon 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

Beitragvon birkenfeld » 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?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder