recherche infructueuse sur les bases de registre

recherche infructueuse sur les bases de registre - Java - Programmation

Marsh Posté le 05-08-2002 à 10:35:56    

salut a tous,
 
j ai cherché comment ajouter une clé dans la base de registre, mais j ai pas trouvé....
 
donc comment fait on pour ajouter une clé (en fait je voudrais que mon programme se lance au démarrage).
 
j ai pensé à une autre solution ajouter un raccourci dans le menu demaarrage. Mais la problemes :
   => comment créer un raccourci
   => comment acceder au dossier (System.getProperty("..." ))
 
merci pour vos reponses
bruno ;-}

Reply

Marsh Posté le 05-08-2002 à 10:35:56   

Reply

Marsh Posté le 05-08-2002 à 10:51:12    

Y a une api qui permet d'écrire dans la base mais bon c pas super propre. Ton appli ne tourne que sous windows?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-08-2002 à 10:55:10    

non elle tourne sous win, linux et mac.
 
Mais la base de registre n est que pour windows...

Reply

Marsh Posté le 05-08-2002 à 11:24:35    

oui merci j'avais compris. Donc tu vas releaser un soft java en une version Windows et une version cross platform si je comprends bien ?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-08-2002 à 11:39:23    

Citation :

oui merci j'avais compris. Donc tu vas releaser un soft java en une version Windows et une version cross platform si je comprends bien ?


 
oui c ca en fait on veut diffuser le logiciel sur un maximum de plate forme, avec des particularites pour windows. Car les utilisateurs de windows sont des personnes un peu moins calées en informatique. Je veux dire par là que même les nuls savent utiliser windows (par rapport à linux). donc pour ces personnes o, voudrait leur faire tout le travail (installation, exécution...).
 
d ailleurs on cherche un "installateur" pour notre logiciel sous windows, si tu en connais ...
 
on a vu installanywhere mais la licence est pas donné vu nos moyens.....

Reply

Marsh Posté le 05-08-2002 à 11:42:14    

:heink: à la limite si tu voulais LIRE dans la b.reg je pourrais comprendre, mais y écrire :heink:, je vois pas ce que ça va changer pour des "gens pas calés en info"
enfin bon, ce que j'en dis

Reply

Marsh Posté le 05-08-2002 à 11:43:45    

J'ai eu le meme genre de projet pour et le meme genre de problème. J'utilise NullSoft installer qui est gratuit et qui a un language de scripting vachement balaise.
 
 
Le truc c'est que tu peux écrire des clés les doits dans le nez avec cet installer. Tu peux meme mettre à jour la variable classpath et la variable path :)
 
En gros ca m'installe mon appli Java et les fichiers de config et l'utilisateur n'a rien à faire.
 
Si tu veux des infos c'est open source (pas le script de nullsoft ceci dit mais je peux te le filer)
 
A+


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-08-2002 à 11:45:02    

--greg-- a écrit a écrit :

 :heink: à la limite si tu voulais LIRE dans la b.reg je pourrais comprendre, mais y écrire :heink:, je vois pas ce que ça va changer pour des "gens pas calés en info"
enfin bon, ce que j'en dis




 
bin qd t'as un soft et que tu dois le rendre "public" faut faire les trucs à la place des utilisateurs. Toi si tu dois ajouter une truc dans ton path ou dans ton classpath tu t'en fous mais monsieur tout le monde c'est la galère pour lui.
 
Y a pas que des softs pour les techniciens hein ;)
 
Sinon bruno tu as pensé à Java Web start ?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-08-2002 à 11:46:13    

ca fait koi java web start ??

Reply

Marsh Posté le 05-08-2002 à 11:47:43    

DarkLord a écrit a écrit :

 
 
bin qd t'as un soft et que tu dois le rendre "public" faut faire les trucs à la place des utilisateurs. Toi si tu dois ajouter une truc dans ton path ou dans ton classpath tu t'en fous mais monsieur tout le monde c'est la galère pour lui.
 
Y a pas que des softs pour les techniciens hein ;)
 
Sinon bruno tu as pensé à Java Web start ?



et les .bat c pour les chiens?:O

Reply

Marsh Posté le 05-08-2002 à 11:47:43   

Reply

Marsh Posté le 05-08-2002 à 11:51:17    

Citation :

darklord
J'ai eu le meme genre de projet pour et le meme genre de problème. J'utilise NullSoft installer qui est gratuit et qui a un language de scripting vachement balaise.  
 
 
Le truc c'est que tu peux écrire des clés les doits dans le nez avec cet installer. Tu peux meme mettre à jour la variable classpath et la variable path :)  
 
En gros ca m'installe mon appli Java et les fichiers de config et l'utilisateur n'a rien à faire.  
 
Si tu veux des infos c'est open source (pas le script de nullsoft ceci dit mais je peux te le filer)  
 
A+


oui merci je veux bien ;-}
je regarde de suite nullsoft installer

Reply

Marsh Posté le 05-08-2002 à 11:51:55    

bruno5678 a écrit a écrit :

ca fait koi java web start ??




 
un plugin qui te permet de lancer une appli Java standard depuis un navigateur. En gros ton user clique, ca télécharge l'appli si il n'est pas à jour (sinon ca télécharge rien) et ca la lance dans une fenetre d'appli normale.
 
C'est tout les avantages de l'applet avec tous les avantages de l'appli


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-08-2002 à 11:52:56    

--greg-- a écrit a écrit :

et les .bat c pour les chiens?:O




 
arrete un peu de raconter n'importe quoi. T'as tord point barre :p
 
et le fichier batch c'est ki qui va le définir. Si tu fais des rép relatifs, tu sais bien que le premier débile venu va en faire un raccourci sur le bureau et donc au revoir ton appli :)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-08-2002 à 12:01:16    

nullsoft installer c ca qu il me faut  
par contre la syntaxe du script est pas top clair (c de l anglais...) si tu avais un exemple concret ca m aiderai vachement.
je me replonge la dedans merci encore daklord
 
euh greg je vois pas en koi les .bat va lancer l appli au demarrage ????

Reply

Marsh Posté le 05-08-2002 à 12:05:20    

Code :
  1. ;eConf.nsi
  2. ;
  3. ;Install script by Stéphane Nicoll - Infonet, FUNDP
  4. ;-)Add_Publisher "Infonet group, FUNDP"
  5. ;-)Add_Contact snicoll@info.fundp.ac.be
  6. ;-)Add_Publisher_URL http://www.infonet.fundp.ac.be
  7. ;-)Add_Product_URL http://sourceforge.net/projects/econf
  8. ;-)Add_Comments "Use our mailing list if you have any question"
  9. ; ----- Define version -----
  10. !define VER_MAJOR 0
  11. !define VER_MINOR 1a-beta
  12. !define ROOT_DIR C:
  13. ; ----- Program identification and name -----
  14. Name "eConf v${VER_MAJOR}.${VER_MINOR}"
  15. Caption "eConf v${VER_MAJOR}.${VER_MINOR} Setup"
  16. OutFile "eConf-v${VER_MAJOR}.${VER_MINOR}-setup.exe"
  17. ; ----- Some default compiler settings -----
  18. AutoCloseWindow false
  19. ShowInstDetails show
  20. ShowUninstDetails show
  21. SetCompress auto
  22. SetDatablockOptimize on
  23. SetOverwrite ifnewer
  24. CRCCheck on
  25. ; ----- Components ------
  26. ComponentText "This will install eConf v${VER_MAJOR}.${VER_MINOR} on your computer."
  27. SilentInstall normal
  28. InstType "Typical"
  29. InstType "Minimal"
  30. ;InstType /NOCUSTOM
  31. ;Icon d:\releases\installer\infonet.ico
  32. EnabledBitmap  "C:\e-learning\release\NSIS\contrib\one-check.bmp"    ; Used for components (custom install)
  33. DisabledBitmap "C:\e-learning\release\NSIS\contrib\one-nocheck.bmp"
  34. ; ----- Colors -----
  35. BGGradient 0000FF 000000 FFFFFF
  36. InstallColors FFFFFF 000000
  37. InstProgressFlags smooth colored
  38. ; ----- Installation directory -----
  39. DirShow show
  40. DirText "eConf setup has determined the location to install, select new location if you like then press [INSTALL] to start installation. Please do not use directory with blank spaces!" "eConf v${VER_MAJOR}.${VER_MINOR} will be installed in the following folder:"
  41. ;InstallDir "$PROGRAMFILES\eConf"
  42. InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Infonet\eConf" ""
  43. ; ----- License text -----
  44. LicenseText "You must agree to this license before installing."
  45. LicenseData "c:\release\installer\license.txt"
  46. ; ----- INSTALL SECTIONS -----
  47. ;-------------------- eConf INSTALLATION --------------------
  48. Section "eConf (required)"
  49. SectionIn 1 2
  50. SetOutPath $INSTDIR
  51. ; root directory
  52. File "c:\release\eConf\README.txt"
  53. ; /bin directory
  54. File /r "c:\release\eConf\bin"
  55. ; /conf directory
  56. File /r "c:\release\eConf\conf"
  57. ; /lib directory
  58. File /r "c:\release\eConf\lib"
  59. ; /proxy directory
  60. File /r "c:\release\eConf\proxy"
  61. ; /player directory
  62. File /r "c:\release\eConf\player"
  63. ; Register software in the registry
  64. WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Infonet\eConf" "" "$INSTDIR"
  65. WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\WebConf" "DisplayName" "eConf v${VER_MAJOR}.${VER_MINOR} (remove only)"
  66. WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\WebConf" "UninstallString" '"$INSTDIR\uninstall\uninst.exe"'
  67. ; write out uninstaller
  68. WriteUninstaller "$INSTDIR\uninst.exe"
  69. ; Set environment variables
  70. Push "$INSTDIR\bin\"
  71. Call AddToPath
  72. Push "$INSTDIR\lib\econf.jar;$INSTDIR\lib\FTPProtocol.jar;$INSTDIR\lib\activation.jar;$INSTDIR\lib\mail.jar;$INSTDIR\lib\smtp.jar;$INSTDIR\lib\xerces.jar;$INSTDIR\proxy\classes\jigsaw.zip"
  73. Call AddToClassPath
  74. Push "ECONF_HOME"
  75. Push $INSTDIR
  76. Call CreateEnvVar
  77. SectionEnd ;
  78. ; --------------------- SHORTCUTS -----------------------------
  79. Section "Create program files"
  80. SectionIN 1 2
  81. CreateDirectory "$SMPROGRAMS\eConf"
  82. CreateShortCut "$SMPROGRAMS\eConf\Start eConf.lnk" "$INSTDIR\bin\econf.bat"
  83. CreateShortCut "$SMPROGRAMS\eConf\README.lnk" "$INSTDIR\README.txt"
  84. CreateShortCut "$SMPROGRAMS\eConf\View the producer configuration.lnk" "$INSTDIR\conf\econf-sessions.xml"
  85. CreateShortCut "$SMPROGRAMS\eConf\Edit eConf properties.lnk" "notepad" $INSTDIR\conf\econf.props
  86. CreateShortCut "$SMPROGRAMS\eConf\Uninstall eConf.lnk" "$INSTDIR\uninst.exe"
  87. SectionEnd ;
  88. ; -------------------- DOCUMENTATION --------------------------
  89. Section "Documentation"
  90. SectionIn 1
  91. SetOutPath $INSTDIR
  92. ; /doc directory
  93. File /r "c:\release\eConf\doc"
  94. SectionEnd ;
  95. ; ----- UNINSTALL SECTION -----
  96. UninstallText "This will uninstall eConf v${VER_MAJOR}.${VER_MINOR} from your system"
  97. Section Uninstall
  98. SetOutPath $INSTDIR
  99. ; Removing files
  100. RMDir /r "$INSTDIR\bin"
  101. RMDir /r "$INSTDIR\conf"
  102. RMDir /r "$INSTDIR\lib"
  103. RMDir /r "$INSTDIR\logs"
  104. RMDir /r "$INSTDIR\doc"
  105. RMDir /r "$INSTDIR\proxy"
  106. RMDir /r "$INSTDIR\player"
  107. Delete "$INSTDIR\uninst.exe"
  108. Delete "$INSTDIR\README.txt"
  109. ; Removing registry keys
  110. DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Infonet\eConf"
  111. DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\eConf"
  112. Push "$INSTDIR\bin\"
  113. Call un.RemoveFromPath
  114. Push "$INSTDIR\lib\econf.jar;$INSTDIR\lib\FTPProtocol.jar;$INSTDIR\lib\activation.jar;$INSTDIR\lib\mail.jar;$INSTDIR\lib\smtp.jar;$INSTDIR\lib\xerces.jar;$INSTDIR\proxy\classes\jigsaw.zip"
  115. Call un.RemoveFromClassPath
  116. DeleteRegValue HKCU "Environment" "ECONF_HOME"
  117. ; Removing eConf directory
  118. ;IfFileExists "$INSTDIR" 0 NoErrorMsg
  119. ;MessageBox MB_OK "Note: $INSTDIR could not be removed! You may remove files manually" IDOK 0 ; skipped if file doesn't exist
  120. ;NoErrorMsg:
  121. RMDir "$INSTDIR"
  122. ; Removing program file shortcut
  123. RMDir /r "$SMPROGRAMS\eConf"
  124. SectionEnd ; end of uninstall section
  125. ; ----- Functions -----
  126. ;called when the install was successful
  127. Function .onInstSuccess
  128. MessageBox MB_OK "eConf installer will now configure eConf"
  129. ExecWait 'java -classpath "$INSTDIR\lib\econf.jar" be.ac.fundp.infonet.econf.installer.Install "$INSTDIR"'
  130. MessageBox MB_OK "Installation complete!"
  131. Call IsNT
  132. Pop $1
  133. StrCmp $1 1 No_Reboot
  134. MessageBox MB_YESNO "Before using eConf you must reboot your computer. Reboot now?" IDNO No_Reboot
  135. Reboot
  136. No_Reboot:
  137. FunctionEnd
  138. ;called when the user hits the 'cancel' button
  139. Function .onUserAbort
  140. MessageBox MB_YESNO "Abort install?" IDYES NoCancelAbort
  141. Abort
  142. NoCancelAbort:
  143. FunctionEnd
  144. ;called when the installer is nearly finished initializing
  145. Function .onInit
  146. # [show splash screen]
  147. SetOutPath $TEMP
  148. File /oname=spltmp.bmp "c:\release\installer\infonet.bmp"
  149. File /oname=spltmp.exe "C:\e-learning\release\NSIS\splash.exe"
  150. ExecWait '"$TEMP\spltmp.exe" 2000 $HWNDPARENT $TEMP\spltmp'
  151. Delete $TEMP\spltmp.exe
  152. Delete $TEMP\spltmp.bmp
  153. StrCpy $0 $WINDIR 2
  154. ; Now $0 is the system drive
  155. StrCpy $INSTDIR "$0\eConf"
  156. ; this is to set the default install dir
  157. ; to the right choice.
  158. FunctionEnd
  159. ; ************************
  160. ; ** INTERNAL FUNCTIONS **
  161. ; ************************
  162. ;====================================================
  163. ; IsNT - Returns 1 if the current system is NT, 0
  164. ;        otherwise.
  165. ;     Output: head of the stack
  166. ;====================================================
  167. Function IsNT
  168. Push $0
  169. ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
  170. StrCmp $0 "" 0 IsNT_yes
  171. ; we are not NT.
  172. Pop $0
  173. Push 0
  174. Goto IsNT_done
  175. IsNT_yes:
  176.  ; NT!!!
  177.  Pop $0
  178.  Push 1
  179. IsNT_done:
  180. FunctionEnd
  181. ;====================================================
  182. ; AddToPath - Adds the given dir to the search path.
  183. ;        Input - head of the stack
  184. ;        Note - Win9x systems requires reboot
  185. ;====================================================
  186. Function AddToPath
  187. Exch $0
  188. Push $1
  189. Call IsNT
  190. Pop $1
  191. StrCmp $1 1 AddToPath_NT
  192.  ; Not on NT
  193.  StrCpy $1 $WINDIR 2
  194.  FileOpen $1 "$1\autoexec.bat" a
  195.  FileSeek $1 0 END
  196.  GetFullPathName /SHORT $0 $0
  197.  FileWrite $1 "$\nSET PATH=%PATH%;$0$\n"
  198.  FileClose $1
  199.  Goto AddToPath_done
  200. AddToPath_NT:
  201.  ReadRegStr $1 HKCU "Environment" "PATH"
  202.  StrCmp $1 "" AddToPath_NTwasEmpty
  203.   StrCpy $0 "$1;$0"
  204.   Goto AddToPath_NTdoIt
  205.  AddToPath_NTwasEmpty:
  206.   StrCpy $1 $0
  207.  AddToPath_NTdoIt:
  208.   WriteRegStr HKCU "Environment" "PATH" $0
  209.   Push $OUTDIR
  210.   SetOutPath $TEMP
  211.   File "c:\release\installer\RefreshEnv\Release\RefreshEnv.exe"
  212.   Exec "$TEMP\RefreshEnv.exe"
  213.   Delete "$TEMP\RefreshEnv.exe"
  214.   Pop $OUTDIR
  215. AddToPath_done:
  216.  Pop $1
  217.  Pop $0
  218. FunctionEnd
  219. ;====================================================
  220. ; AddToClassPath - Adds the given dir to the classpath.
  221. ;        Input - head of the stack
  222. ;        Note - Win9x systems requires reboot
  223. ;====================================================
  224. Function AddToClassPath
  225. Exch $0
  226. Push $1
  227. Call IsNT
  228. Pop $1
  229. StrCmp $1 1 AddToClassPath_NT
  230.  ; Not on NT
  231.  StrCpy $1 $WINDIR 2
  232.  FileOpen $1 "$1\autoexec.bat" a
  233.  FileSeek $1 0 END
  234.  GetFullPathName /SHORT $0 $0
  235.  FileWrite $1 "$\nSET CLASSPATH=%CLASSPATH%;$0$\n"
  236.  FileClose $1
  237.  Goto AddToClassPath_done
  238. AddToClassPath_NT:
  239.  ReadRegStr $1 HKCU "Environment" "classpath"
  240.  StrCmp $1 "" AddToClassPath_NTwasEmpty
  241.   StrCpy $0 "$0;$1"
  242.   Goto AddToClassPath_NTdoIt
  243.  AddToClassPath_NTwasEmpty:
  244.   StrCpy $1 $0
  245.  AddToClassPath_NTdoIt:
  246.   WriteRegStr HKCU "Environment" "classpath" $0
  247.   Push $OUTDIR
  248.   SetOutPath $TEMP
  249.   File "c:\release\installer\RefreshEnv\Release\RefreshEnv.exe"
  250.   Exec "$TEMP\RefreshEnv.exe"
  251.   Delete "$TEMP\RefreshEnv.exe"
  252.   Pop $OUTDIR
  253. AddToClassPath_done:
  254.  Pop $1
  255.  Pop $0
  256. FunctionEnd
  257. ;====================================================
  258. ; CreateEnvVar - Create a new Environment variable
  259. ;        Input - head of the stack (Environment attribute and name)
  260. ;        Note - Win9x systems requires reboot
  261. ;====================================================
  262. Function CreateEnvVar
  263. Push $0
  264. Exch
  265. Pop $0 ; $0 Environment attribute Value
  266. Push $1
  267. Exch 2
  268. Pop $1 ; $1 Environment attribute name
  269. Exch
  270. Push $2
  271. Call IsNT
  272. Pop $2
  273. StrCmp $2 1 createEnvVar_NT
  274.  ; Not on NT
  275.  StrCpy $2 $WINDIR 2
  276.  FileOpen $2 "$1\autoexec.bat" a
  277.  FileSeek $2 0 END
  278.  GetFullPathName /SHORT $0 $0
  279.  FileWrite $2 "$\nSET $1=$0$\n"
  280.  FileClose $2
  281.  Goto createEnvVar_done
  282. createEnvVar_NT:
  283.  WriteRegStr HKCU "Environment" "$1" $0
  284.  Push $OUTDIR
  285.  SetOutPath $TEMP
  286.  File "c:\release\installer\RefreshEnv\Release\RefreshEnv.exe"
  287.  Exec "$TEMP\RefreshEnv.exe"
  288.  Delete "$TEMP\RefreshEnv.exe"
  289.  Pop $OUTDIR
  290. createEnvVar_done:
  291.  Exch $2
  292.  Exch 2
  293.  Pop $0
  294.  Pop $1
  295.  Pop $1
  296.  Pop $0
  297. FunctionEnd
  298. ;====================================================
  299. ; RemoveFromPath - Remove a given dir from the path
  300. ;     Input: head of the stack
  301. ;====================================================
  302. Function un.RemoveFromPath
  303. Exch $0
  304. Push $1
  305. Push $2
  306. Push $3
  307. Call un.IsNT
  308. Pop $1
  309. StrCmp $1 1 RemoveFromPath_NT
  310.  ; Not on NT
  311.  StrCpy $1 $WINDIR 2
  312.  FileOpen $1 "$1\autoexec.bat" r
  313.  FileOpen $2 "$TEMP\~~AUTOEX.TMP" w
  314.  GetFullPathName /SHORT $0 $0
  315.  StrCpy $0 "SET PATH=%PATH%;$0"
  316.  StrCpy $9 "PATH"
  317.  ;SetRebootFlag 1
  318.  Goto RemoveFromPath_dosLoop
  319.  RemoveFromPath_dosLoopSetRebootAndContinue:
  320.   StrCpy $9 "PATH"
  321.  RemoveFromPath_dosLoop:
  322.   FileRead $1 $3
  323.   StrCmp $3 $0 RemoveFromPath_dosLoopSetRebootAndContinue
  324.   StrCmp $3 "$0$\n" RemoveFromPath_dosLoopSetRebootAndContinue
  325.   StrCmp $3 "" RemoveFromPath_dosLoopEnd
  326.   FileWrite $2 $3
  327.   Goto RemoveFromPath_dosLoop
  328.  RemoveFromPath_dosLoopEnd:
  329.   FileClose $2
  330.   FileClose $1
  331.   StrCpy $1 $WINDIR 2
  332.   Delete "$1\autoexec.bat"
  333.   CopyFiles /SILENT "$TEMP\~~AUTOEX.TMP" "$1\autoexec.bat"
  334.   Delete "$TEMP\~~AUTOEX.TMP"
  335.   Goto RemoveFromPath_done
  336. RemoveFromPath_NT:
  337.  StrLen $2 $0
  338.  ReadRegStr $1 HKCU "Environment" "PATH"
  339.  Push $1
  340.  Push $0
  341.  Call un.StrStr ; Find $0 in $1
  342.  Pop $0 ; pos of our dir
  343.  IntCmp $0 -1 RemoveFromPath_done
  344.   ; else, it is in path
  345.   StrCpy $3 $1 $0 ; $3 now has the part of the path before our dir
  346.   IntOp $2 $2 + $0 ; $2 now contains the pos after our dir in the path (';')
  347.   IntOp $2 $2 + 1 ; $2 now containts the pos after our dir and the semicolon.
  348.   StrLen $0 $1
  349.   StrCpy $1 $1 $0 $2
  350.   StrCpy $3 "$3$1"
  351.   WriteRegStr HKCU "Environment" "PATH" $3
  352.   Push $OUTDIR
  353.   SetOutPath $TEMP
  354.   File "c:\release\installer\RefreshEnv\Release\RefreshEnv.exe"
  355.   Exec "$TEMP\RefreshEnv.exe"
  356.   Delete "$TEMP\RefreshEnv.exe"
  357.   Pop $OUTDIR
  358. RemoveFromPath_done:
  359.  Pop $3
  360.  Pop $2
  361.  Pop $1
  362.  Pop $0
  363. FunctionEnd
  364. ;====================================================
  365. ; RemoveFromClassPath - Remove a given dir from the  class path
  366. ;     Input: head of the stack
  367. ;====================================================
  368. Function un.RemoveFromClassPath
  369. Exch $0
  370. Push $1
  371. Push $2
  372. Push $3
  373. Call un.IsNT
  374. Pop $1
  375. StrCmp $1 1 RemoveFromClassPath_NT
  376.  ; Not on NT
  377.  StrCpy $1 $WINDIR 2
  378.  FileOpen $1 "$1\autoexec.bat" r
  379.  FileOpen $2 "$TEMP\~~AUTOEX.TMP" w
  380.  GetFullPathName /SHORT $0 $0
  381.  StrCpy $0 "SET CLASSPATH=%CLASSPATH%;$0"
  382.  StrCpy $9 "CLASSPATH"
  383.  ;SetRebootFlag 1
  384.  Goto RemoveFromClassPath_dosLoop
  385.  RemoveFromClassPath_dosLoopSetRebootAndContinue:
  386.   StrCpy $9 "CLASSPATH"
  387.  RemoveFromClassPath_dosLoop:
  388.   FileRead $1 $3
  389.   StrCmp $3 $0 RemoveFromClassPath_dosLoopSetRebootAndContinue
  390.   StrCmp $3 "$0$\n" RemoveFromClassPath_dosLoopSetRebootAndContinue
  391.   StrCmp $3 "" RemoveFromClassPath_dosLoopEnd
  392.   FileWrite $2 $3
  393.   Goto RemoveFromClassPath_dosLoop
  394.  RemoveFromClassPath_dosLoopEnd:
  395.   FileClose $2
  396.   FileClose $1
  397.   StrCpy $1 $WINDIR 2
  398.   Delete "$1\autoexec.bat"
  399.   CopyFiles /SILENT "$TEMP\~~AUTOEX.TMP" "$1\autoexec.bat"
  400.   Delete "$TEMP\~~AUTOEX.TMP"
  401.   Goto RemoveFromClassPath_done
  402. RemoveFromClassPath_NT:
  403.  StrLen $2 $0
  404.  ReadRegStr $1 HKCU "Environment" "classpath"
  405.  Push $1
  406.  Push $0
  407.  Call un.StrStr ; Find $0 in $1
  408.  Pop $0 ; pos of our dir
  409.  IntCmp $0 -1 RemoveFromClassPath_done
  410.   ; else, it is in path
  411.   StrCpy $3 $1 $0 ; $3 now has the part of the path before our dir
  412.   IntOp $2 $2 + $0 ; $2 now contains the pos after our dir in the path (';')
  413.   IntOp $2 $2 + 1 ; $2 now containts the pos after our dir and the semicolon.
  414.   StrLen $0 $1
  415.   StrCpy $1 $1 $0 $2
  416.   StrCpy $3 "$3$1"
  417.   WriteRegStr HKCU "Environment" "classpath" $3
  418.   Push $OUTDIR
  419.   SetOutPath $TEMP
  420.   File "c:\release\installer\RefreshEnv\Release\RefreshEnv.exe"
  421.   Exec "$TEMP\RefreshEnv.exe"
  422.   Delete "$TEMP\RefreshEnv.exe"
  423.   Pop $OUTDIR
  424. RemoveFromClassPath_done:
  425.  Pop $3
  426.  Pop $2
  427.  Pop $1
  428.  Pop $0
  429. FunctionEnd
  430. ;====================================================
  431. ; StrStr - Finds a given string in another given string.
  432. ;               Returns -1 if not found and the pos if found.
  433. ;          Input: head of the stack - string to find
  434. ;                      second in the stack - string to find in
  435. ;          Output: head of the stack
  436. ;====================================================
  437. Function un.StrStr
  438. Push $0
  439. Exch
  440. Pop $0 ; $0 now have the string to find
  441. Push $1
  442. Exch 2
  443. Pop $1 ; $1 now have the string to find in
  444. Exch
  445. Push $2
  446. Push $3
  447. Push $4
  448. Push $5
  449. StrCpy $2 -1
  450. StrLen $3 $0
  451. StrLen $4 $1
  452. IntOp $4 $4 - $3
  453. StrStr_loop:
  454.  IntOp $2 $2 + 1
  455.  IntCmp $2 $4 0 0 StrStrReturn_notFound
  456.  StrCpy $5 $1 $3 $2
  457.  StrCmp $5 $0 StrStr_done StrStr_loop
  458. StrStrReturn_notFound:
  459.  StrCpy $2 -1
  460. StrStr_done:
  461.  Pop $5
  462.  Pop $4
  463.  Pop $3
  464.  Exch $2
  465.  Exch 2
  466.  Pop $0
  467.  Pop $1
  468. FunctionEnd
  469. ; eof
  470. ;====================================================
  471. ; IsNT - Returns 1 if the current system is NT, 0
  472. ;        otherwise.
  473. ;     Output: head of the stack
  474. ;====================================================
  475. Function un.IsNT
  476. Push $0
  477. ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
  478. StrCmp $0 "" 0 IsNT_yes
  479. ; we are not NT.
  480. Pop $0
  481. Push 0
  482. Goto IsNT_done
  483. IsNT_yes:
  484.  ; NT!!!
  485.  Pop $0
  486.  Push 1
  487. IsNT_done:
  488. FunctionEnd


 
Voilà. Je précise que les fonctions de la fin ne sont pas de moi mais d'un gars très sympas sur le forum de nullsoft installer. Il n'y a pas son nom dans son code donc je l'ai laissé tel quel et il n'y a pas de license particulière sur son code.
 
Ceci étant dit, si tu as des questions intelligentes te gene pas.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-08-2002 à 12:08:14    

bruno5678 a écrit a écrit :

nullsoft installer c ca qu il me faut  
par contre la syntaxe du script est pas top clair (c de l anglais...) si tu avais un exemple concret ca m aiderai vachement.
je me replonge la dedans merci encore daklord
 
euh greg je vois pas en koi les .bat va lancer l appli au demarrage ????



je fais du mauvais esprit si je veux
 
sinon, ANT c cool aussi :)

Reply

Marsh Posté le 05-08-2002 à 12:13:57    

je confirme que ant est cool mais à nouveau c'est bon en intranet ou dans un environnement connu.  
 
Vas t'en dire à tes users newbien d'installer ant :)
 
c'est sur que ca va le faire :p
 
et arrete de me provoquer ;)
 
  [:xp1700]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-08-2002 à 12:15:17    

DarkLord a écrit a écrit :

je confirme que ant est cool mais à nouveau c'est bon en intranet ou dans un environnement connu.  
 
Vas t'en dire à tes users newbien d'installer ant :)
 
c'est sur que ca va le faire :p
 
et arrete de me provoquer ;)
 
  [:xp1700]  



bah si tes scripts sont bien écrits, oui ça va le faire.
j'en veux pour preuve que n&j ont installé certains trucs sans problemes... :D

Reply

Marsh Posté le 05-08-2002 à 13:36:03    

merci pour ton exemple et ton coup de pouce .
bruno ;-}

Reply

Marsh Posté le 05-08-2002 à 13:36:26    

enfin tes coup de pouces

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed