Windows commandos

Anfängerfragen zum Programmieren mit PureBasic.
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

Beitrag von Svking »

hab sie gefunden, aber wenn ich das mache:

Code: Alles auswählen

 If KeyboardPushed(#PB_Key_Down)                
     EjectCDAudio(1) 
   EndIf
dann meint er trotzdem immer da sein ein fehler
Das Ende meines Lebens:
If leben = 0
End
Endif
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

1.) Welcher Fehler ist das, den er meldet? Ein bisschen ernsthafte Mithilfe wäre wohl angebracht, schließlich willst DU ja ein Programm... :wink:

2.) Ich versuche jetzt mal einfach, das ganze OHNE Fehlermeldung zu erraten, und tipe einfach darauf, dass du InitCDAudio() und eventuell noch UseCDAudio() vergessen hast.
Jetzt musst du aber aufpasssen, wenn du mehrere CD-Laufwerke hast:

InitCDAudio() gibt die Anzahl der LAufwerke wieder. Bei einem Laufwerk z.B. 1.
UseCDAudio(X) nimmt das Laufwerk Nummer X als aktuelles Laufwerk. Wenn du das erste Laufwerk verwenden willst, musst du dann jedoch nicht 1, sondern 0 als "X" verwenden. :allright:

Ansonsten: viel Spaß beim programmieren, und wenn dein Programm fertig ist, kannst du es ja gerne mitsamt Quellcode im Showcase auf PureArea.net und hier im Forum zur Verfügung stellen. So kannst du dich für die Hilfe der PB-Community revanchieren. <)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Hab hier noch einen Beispielcode gefunden:

Code: Alles auswählen

#IOCTL_STORAGE_EJECT_MEDIA  = $2D4808
#IOCTL_STORAGE_LOAD_MEDIA   = $2D480C
Procedure EjectCD(LW.s)
  Protected hLwStatus.l
  hLwStatus = CreateFile_("\\.\"+LW,#GENERIC_READ|#GENERIC_WRITE, 0, 0, #OPEN_EXISTING, 0, 0)
  If hLwStatus
    DeviceIoControl_(hLwStatus,#IOCTL_STORAGE_EJECT_MEDIA,0,0,0,0,@Ret,0)
    CloseHandle_(hLwStatus)
  EndIf
EndProcedure
Procedure.s GetFirstCDROM()
  While GetDriveType_(Chr(I + 68) + ":\") <> #DRIVE_CDROM And I < 23
    I = I + 1
  Wend
  ProcedureReturn Chr(I + 68) + ":"
EndProcedure
Select MessageRequester("Computer-Administrator", "Lieber Windows-Nutzer," + Chr(10) + "" + Chr(10) + "benötigst Du einen Bierhalter ?", #MB_YESNO|#MB_ICONQUESTION)
  Case #IDYES
      EjectCD(GetFirstCDROM())
      MessageRequester("Computer-Administrator", "Dein Wunsch sei mir Befehl!", #MB_OK|#MB_ICONINFORMATION)
  Case #IDNO
    End
EndSelect
:lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Ich denke mal, DIESER Code ist noch etwas zu kompliziert für Svking... :wink:
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Aber lustig. :allright: :lol:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Stimmt. Aber das kann amn auch noch lustiger (und einfacher) gestalten:

Code: Alles auswählen

MessageRequester("Fantaisie Bierdosenzerquetscher XP","Vielen Dank, dass Sie sich für Fantaisie Bierdosenzerquetscher XP entschieden haben!"+Chr(10)+"Wir weisen Sie darauf hin, dass Sie dieses Programm während 30 Tagen aktivieren müssen, damit Sie es weiter nutzen können.")
Drives.l = InitCDAudio()
If Drives
  Repeat
    UseCDAudio(Random(Drives-1))
    EjectCDAudio(Random(1))
    Delay(1)
  ForEver
EndIf
Bitte nicht ohne Debugger laufen lassen! <)
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

hi

Beitrag von roherter »

Vileicht solltest du mal deinen Code komplet posten,weil wenn das alles an ist was du geschrieben hast dann ist klar das es nicht geht!
Du solltest uns auch schon deinen Fehler genauer erleutern sonst kann dir hier keiner sagen worans bei dir liegt!
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

CD Schublade öffnen geht noch einfacher so:

Code: Alles auswählen

mciSendString_( "set cdaudio door open", "", 0,0)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten