ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Comment enregistrer une DLL avec ShellExecute()   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pte Claire Quebec - Canada
de la société MCRG Software
Fiche personnelle


Note des membres
pas de note

Contributions > 05 - API et appels systèmes

Comment enregistrer une DLL avec ShellExecute()
# 0000000313
ajouté le 01/05/2006 15:18:53 et modifié le 12/03/2007
consulté 8077 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0

Description

Voici comment utiliser ShellExecute() pour enregistrer une DLL. Ceci vous permet d'automatiser le procédé.

Code source :
Local lcFile,lcType ,lnResult
Declare Integer 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+"'"
If Empty( 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)
Do Case
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


Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2019.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3