Voici comment utiliser ShellExecute() pour enregistrer une DLL. Ceci vous permet d'automatiser le procédé.
Code source :
Local lcFile,lcType ,lnResult DeclareInteger ShellExecute In SHELL32.Dll ; INTEGER lnHWnd, ; STRING lcAction, ; STRING lcTarget, ; STRING lcExeParams, ; STRING lcDefDir, ; INTEGER lnShowWindow
lcFile = Getfile( 'DLL', 'Enregistrer' ) && Aller chercher le fichier Dll.
lcfile= "'"+lcfile+"'" IfEmpty( lcFile ) Messagebox( "Aucun fichier spécifié." + " Enregistrer", 64, "Rien à faire." ) Return Endif
lcType = Justext( lcFile ) && Récupérer l'extension du fichier. If lcType = "DLL"
lcCmd = "REGSVR32"
lcParams = " /s " + lcFile Else Messagebox('Mauvais type de fichier') Endif
lnResult = ShellExecute( 0, 'open', lcCmd, lcParams, "", 1 ) If lnResult > 32 && Success MESSAGEBOX('Dll enregistré avec succes.') Else Messagebox("Erreur"+veriferreur(lnResult)) Endif
Function veriferreur(lnError) DoCase Case lnError = 0
lcRetval="The operating system is out of memory or resources. " Case lnError = 1
lcRetval="The function is incorrect." Case lnError = 2
lcRetval= "The specified file was not found. " Case lnError = 3
lcRetval=" The specified path was not found." Case lnError = 5
lcRetval= " Access denied" Case lnError = 8
lcRetval= "Out of memory" Case lnError = 26
lcRetval= "Sharing violation" Case lnError = 27
lcRetval= "Association incomplete or invalid" Case lnError = 28
lcRetval= "DDE request timed out" Case lnError = 29
lcRetval= "DDE transaction failed" Case lnError = 30
lcRetval= "Other DDE transactions were being processed" Case lnError = 31
lcRetval= "No application associated with file name extension or file is not printable" Case lnError = 32
lcRetval=" DLL Not found" Endcase Return lcRetval Endfunc
Commentaires
le 12/03/2007, Olivier Hamou a écrit : Bonjour Mike,
En fait j'ai un petit soucis avec ta function quand on a un chemin avec des blancs ca fonctionne pas , Ex : c:\program files\monappli\activex\actx.dll
Cordialement Olivier
le 12/03/2007, Mike Gagnon a écrit : Quel message obtiens-tu? j'ai pu enregister sur mon coté E:\Documents and Settings\mgagnon\My Documents\ISDataProcs.dll
le 12/03/2007, François 37 a écrit : lcParams = " /s '" + lcFile + "'" simples quotes autour de lcFile cela peut il suffire ?
le 12/03/2007, Mike Gagnon a écrit : Bonne idée Francois.
lcFile = Getfile( 'DLL', 'Enregistrer' ) lcfile= "'"+lcfile+"'" && Ajoute cette ligne
Bonjour Mike,
En fait j'ai un petit soucis avec ta function quand on a un chemin avec des blancs
ca fonctionne pas ,
Ex : c:\program files\monappli\activex\actx.dll
Cordialement Olivier