Graver un CD/DVD
Publié : sam. 22/mars/2014 18:03
Bonjour à tous
Est il possible de graver un cd en code Pb?
Merci
Est il possible de graver un cd en code Pb?
Merci
Code : Tout sélectionner
Est il possible de graver un cd en code Pb?
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Créez ou modifiez la valeur DWORD du nom de NoCDBurning et donnez lui la valeur 1 (si vous souhaitez réactiver le logiciel de gravure par la suite, remettez cette valeur à 0)
Rédémarrer Vista
Code : Tout sélectionner
CoInitialize_(0)
If CoCreateInstance_(?CLSID_CDBurn, 0, 1, ?IID_ICDBurn, @object.ICDBurn) >= 0
If object <> 0
If object\HasRecordableDrive(@pfHasRecorder) >= 0
; Permet de tester si un graveur de disque est présent, si oui = 1
If pfHasRecorder = 1
DriveLetter.s=Space(4)
If object\GetRecorderDriveLetter(@DriveLetter, 4) >= 0
DriveLetter = Trim(DriveLetter)
; Permet de retrouver la lettre du graveur
If DriveLetter <> ""
Debug DriveLetter
Directory.s = Space(#MAX_PATH)
SHGetSpecialFolderPath_(#Null, @Directory, #CSIDL_CDBURN_AREA, #False)
Directory = Trim(Directory)
If Directory <> ""
; Permet de retrouver le dossier où copier les fichiers et/ou dossiers
Debug Directory
;------------------------------------------------------------------------------
; là il faut premièrement vérifier que le dossier est vide sinon le vider
; puis copier les fichiers que l'on souhaite graver
; Puis on lance l'assistant de gravure
;------------------------------------------------------------------------------
If object\Burn(#Null) >= 0
Debug "Assistant lancé"
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
object\Release()
EndIf
EndIf
CoUninitialize_()
DataSection
CLSID_CDBurn:
Data.l $fbeb8a05
Data.w $beee, $4442
Data.b $80, $4e, $40, $9d, $6c, $45, $15, $e9
IID_ICDBurn:
Data.l $3d73a659
Data.w $e5d0, $4d42
Data.b $af, $c0, $51, $21, $ba, $42, $5c, $8d
EndDataSection
Code : Tout sélectionner
Enumeration Window
#Mainform
EndEnumeration
Enumeration Gadgets
#ListFiles
#FileSelect
#Save
#Finalize
EndEnumeration
Define.l Event, GEvent
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered
Global Unit.s = "F:", CR.s = Space(255)
Procedure IsMediaPresent()
mciSendString_("status cdaudio media present", CR, 255, 0)
If CR="false"
ProcedureReturn #False
Else
ProcedureReturn #True
EndIf
EndProcedure
Procedure FileSelect()
Protected File.s
File = OpenFileRequester("Select File", "","", 0, #PB_Requester_MultiSelection)
While file
AddGadgetItem(#ListFiles, -1, File)
File = NextSelectedFileName()
Wend
EndProcedure
Procedure Save()
Protected n, file.s
If IsMediaPresent()
For n=0 To CountGadgetItems(#ListFiles)-1
File = GetGadgetItemText(#ListFiles, n)
If CopyFile(File, Unit+GetFilePart(File))
SetGadgetItemText(#ListFiles, n, "Ok", 1)
EndIf
Next
While CR<>"stopped"
mciSendString_("status cdaudio mode", CR, 255, 0)
Wend
MessageRequester("Information", "Sauvegarde terminée" + #CRLF$+ "Vous pouvez finaliser ou fermer l'application")
Else
MessageRequester("Information", "Il n'y a pas de média dans le graveur")
EndIf
EndProcedure
Procedure Finalize()
mciSendString_("set CDAudio door open", "", 0, 0)
End
EndProcedure
Procedure Open_MainForm()
OpenWindow(#Mainform, 0, 0, 500, 400, "Sauvegarder sur un cd-rom", WindowStyle)
ListIconGadget(#ListFiles, 10, 10, 480, 350, "File", 380)
AddGadgetColumn(#ListFiles, 1, "Status", 50)
ButtonGadget(#FileSelect, 10, 370, 80, 22, "Select File")
ButtonGadget(#Save, 100, 370, 80, 22, "Save")
ButtonGadget(#Finalize, 190, 370, 80, 22, "Finalize")
EndProcedure
Open_MainForm()
BindGadgetEvent(#FileSelect, @FileSelect())
BindGadgetEvent(#Save, @Save())
BindGadgetEvent(#Finalize, @Finalize())
BindEvent(#PB_Event_CloseWindow, @Finalize())
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
venom a écrit :Après il y a CreateCD c'est un exécutable en ligne de commande, assez facile d'accès.
Tu le glisse avec ton exe et tu l'utilise avec RunProgramm
@++
Ouivenom a écrit :Après il y a CreateCD c'est un exécutable en ligne de commande, assez facile d'accès.
Tu le glisse avec ton exe et tu l'utilise avec RunProgramm
Parce que j'avais envie d'essayer cette façon de faire ..... non maisDobro a écrit :+1 , pourquoi chercher a réinventer la roue![]()
ha oui toi aussi ? HéhéDobro a écrit :c'etait pas une Vraie Question .. plutot une introspection