REGISTER FILE

cs_Nox Messages postés 415 Date d'inscription mardi 3 avril 2001 Statut Membre Dernière intervention 26 avril 2008 - 1 oct. 2002 à 03:10
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 - 5 août 2010 à 18:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/2566-register-file

Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
5 août 2010 à 18:00
Est-ce qu'un DLLregistered permettrait de rendre un programme portable (sans installation) ? C'est à dire, est-ce qu'en ajoutant les dll vb6 au répertoire du dllregistered, un autre programme dépendant d'autres dll ; pourrait fonctionner sans installation ?
cs_nico1610 Messages postés 395 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 19 juin 2009 1
16 mars 2006 à 01:17
Longtemps apres la tempête ...

Me voila, qui parcour les source de EBArt et je trouve celle la plutot drole.
Avant tout merci a toi EBArt pour toute ces source qui nous permet d'avancé dans le VB comme personne d'autre nous ferrai avancé !

Enfin, FranckTfr, quand tu créer une clé de registre pour les Dll je te conseille Deux chose : Donne un nom explicite et Fait gaffe au bug !!
Car là dé que ta dll aura un chemin avec un espace, ca va planter !! Il faut remplacer "Regsvr32.exe %1" Par "Regsvr32.exe "%1""
Alors voila un code qui marche pour Xp a copier dans un .reg avant d'executer :
[HKEY_CLASSES_ROOT\.dll]
@="dllfile"
"Content Type"="application/x-msdownload"

[HKEY_CLASSES_ROOT\.dll\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\dllfile]
@="Extension de l'application"
"AlwaysShowExt"=""
"EditFlags"=hex:01,00,00,00
"TileInfo"="prop:FileVersion;FileDescription"
"InfoTip"="prop:FileDescription;Company;FileVersion;Create;Size"
"NoOpen"=""

[HKEY_CLASSES_ROOT\dllfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,00,35,\
00,34,00,00,00

[HKEY_CLASSES_ROOT\dllfile\shell]

[HKEY_CLASSES_ROOT\dllfile\shell\Enregistrer la Dll]

[HKEY_CLASSES_ROOT\dllfile\shell\Enregistrer la Dll\command]
@="regsvr32 "%1""

[HKEY_CLASSES_ROOT\dllfile\shell\Désenregistrer la Dll]

[HKEY_CLASSES_ROOT\dllfile\shell\Désenregistrer la Dll\command]
@="regsvr32 /u "%1""
dualite2 Messages postés 16 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 27 avril 2005
21 juil. 2003 à 18:18
bah a moi l'interet semble simple si tu en as 3000 de dll tu vera qu'un prog sa peu etre bcp plus interessant que de cliquer droit 3000fois.
bref...
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
2 oct. 2002 à 22:21
Ahhh j'aime les réponses positive, même quand elles sont ironiques.
Si un jour un de mes programmes te semble utile j'espere que tu sera le premier
à mettre y un commentaire .... ;-)

Question : Comment créer une Dll avec licence (je vois l'option dans vb6 mais je ne peut pas l'activer) ?
francktfr Messages postés 101 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 5 novembre 2004
2 oct. 2002 à 22:08
ben si tu n'as vraimment que ca a faire, continue . . .
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
2 oct. 2002 à 01:01
Constructif comme remarque... tu fait tes programmes en un click aussi ?
Voila une autre façon de procéder pour le même resultat en 2 560 octets.

Assemblez ça avec Masm32 :
(Source + Exe dans l'archive Zip)

.386
.model flat, stdcall
option casemap :none

include MASM32INCLUDEwindows.inc
include MASM32INCLUDEkernel32.inc
include MASM32INCLUDEcomdlg32.inc

includelib MASM32LIBkernel32.lib
includelib MASM32LIBcomdlg32.lib

WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
GetFileName PROTO

set MACRO M1, M2
push M2
pop M1
ENDM

.data
;FuncName db "DllUnRegisterSever",0
FuncName db "DllRegisterServer",0
szFileName db 260 dup(0)
CommandLine dd 0
hInstance dd 0
ofn OPENFILENAME <>

.code

start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke GetCommandLine
mov CommandLine, eax
invoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT
invoke ExitProcess,eax

WinMain proc hInst:DWORD,hPrevInst:DWORD,CmdLine:DWORD,CmdShow:DWORD
LOCAL hLib:DWORD
invoke GetFileName
.if szFileName[0] != 0
invoke LoadLibrary,ADDR szFileName
mov hLib, eax
invoke GetProcAddress,hLib,ADDR FuncName
call eax
invoke FreeLibrary,hLib
.endif
xor eax,eax
ret
WinMain endp

GetFileName proc
mov ofn.lStructSize, sizeof OPENFILENAME
set ofn.hInstance, hInstance
set ofn.lpstrFile, offset szFileName
set ofn.nMaxFile, sizeof szFileName
set ofn.Flags, OFN_FILEMUSTEXIST or OFN_HIDEREADONLY
invoke GetOpenFileName,ADDR ofn
ret
GetFileName endp

end start
francktfr Messages postés 101 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 5 novembre 2004
1 oct. 2002 à 22:27
ha parcequ'on est sur un site de prog, faut se casser la tete avec les classes et les api quand un clic droit de la souris suffit ?
Pour les setup, visual studio a deja ce qu'il faut.
Personnellement, je n'ai pas besoin de reinventer la roue pour avancer . . .
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
1 oct. 2002 à 18:58
Il y a plusieurs autres methodes c'est vrais, mais on est quand même sur un site programmation. On peut très bien l'utiliser pour créer un "Setup". De plus j'aime bien utiliser des issues qui ne nécessite aucun autre process.

On peu très bien appeler les fonctions directement si la dll reste la même
ex: Declare Sub DllRegisterServer1 Alias "DllRegisterServer" Lib "MyDll.Dll" ()
puis Call DllRegisterServer1
francktfr Messages postés 101 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 5 novembre 2004
1 oct. 2002 à 10:47
a mettre dans un fichier .REG:

REGEDIT4

[HKEY_CURRENT_USERdllfileShell]

[HKEY_CURRENT_USERdllfileShellInscrire]

[HKEY_CURRENT_USERdllfileShellInscrireCommand]
@="Regsvr32.exe %1"

[HKEY_CURRENT_USERdllfileShellDeinscrire]

[HKEY_CURRENT_USERdllfileShellDeinscrireCommand]
@="Regsvr32.exe /u %1"


[HKEY_CURRENT_USERocxfile]

[HKEY_CURRENT_USERocxfileShell]

[HKEY_CURRENT_USERocxfileShellInscrire]

[HKEY_CURRENT_USERocxfileShellInscrireCommand]
@="Regsvr32.exe %1"

[HKEY_CURRENT_USERocxfileShellDeinscrire]

[HKEY_CURRENT_USERocxfileShellDeinscrireCommand]
@="Regsvr32.exe /u %1"
cs_Nox Messages postés 415 Date d'inscription mardi 3 avril 2001 Statut Membre Dernière intervention 26 avril 2008
1 oct. 2002 à 03:10
met sa dans un .BAT qui est dans le répertoire de MaDLL.dll (par exemple)

regsvr32 MaDLL.dll
Rejoignez-nous