[Gvsig_usuarios] Problema de acceso a símbolos y estilos por defecto
mmarco
mmarcosabate en yahoo.es
Mie Mayo 16 09:38:19 CEST 2012
Hola,
El .bat siguiente (S.O Windows) crea la carpeta gvSIG en el Homepath del
usuario y copia los datos que se encuentran en una unidad de red (en caso
que la carpeta ya existiera, crea un backup de dicha carpeta). A
continuación crea un acceso directo a la instalación de gvSIG en red.
El contenido del bat seria :
/@echo off
cscript *setup.vbs*
pause/
A continuación está el texto del archivo *setup.vbs*. Hay que personalizar
las cuatro primeras variables según necesidades. Si alguien consigue
mejorarlo o conoce alguna solución mas elegante se agradece la aportación.
Un saludo,
Montse
/
Dim exegvSIG,wrkDir,icona,srcFolder
'ruta donde se encuentran el ejecutable
exegvSIG = "O:\Projectes\gvSIG\bin\gvSIG.exe"
'ruta del directorio de trabajo
wrkDir="O:\Projectes\gvSIG\bin"
'ruta donde se encuentra el icono de gvSIG
icona="O:\Projectes\gvSIG\bin\ico-gvSIG.ico"
'ruta donde se encuentran aquellos ficheros que queremos que se copien en la
carpeta gvSIG del perfil de usuario
srcFolder = "O:\Projectes\gvSIG\setup\profile"
Wscript.Echo "Instal·lant gvSIG..."
CopyFilesAndFolders()
CrearAccesDirecte()
Sub CopyFilesAndFolders()
Dim wshShell, fs, objFolder, dt
Dim wshSysEnv, sMyHomePath ,sMyHomegvSIG
' obtenemos la ruta del HOMEPATH
Set wshShell = WScript.CreateObject("WScript.Shell")
Set wshSysEnv = wshShell.Environment("PROCESS")
sMyHomePath = wshSysEnv("USERPROFILE")
' comprobamos si existe la carpeta gvSIG
sMyHomegvSIG = sMyHomePath & "\gvSIG"
Set fs = CreateObject("Scripting.FileSystemObject")
if not fs.FolderExists(sMyHomegvSIG) = True then
' creación de la carpeta %USERPROFILE%\gvSIG
Set objFolder = fs.CreateFolder(sMyHomegvSIG)
else
' backup de la carpeta %USERPROFILE%\gvSIG ya existente
' la guardamos por si acaso, ya que el usuario tal vez ha guardado
información (nuevos símbolos, etc...)
ara= Now()
ara=replace(ara,"/","-")
ara=replace(ara,":","-")
sMyHomegvSIGBck = sMyHomePath & "\gvSIG " & ara
Wscript.Echo "La carpeta " & sMyHomegvSIG & " ja existeix."
Wscript.Echo "Fem còpia de seguretat d'aquesta carpeta a " &
sMyHomegvSIGBck
fs.MoveFolder sMyHomegvSIG , sMyHomegvSIGBck
end if
'Copiamos el contenido de la carpeta en red a %USERPROFILE%\gvSIG
Wscript.Echo "Còpia dels arxius de configuració a " & sMyHomegvSIG
Copiar srcFolder, sMyHomegvSIG
End Sub
Sub Copiar (ByVal strSource, ByVal strDestination)
Dim ObjFSO, ObjFolder, ObjSubFolder, ObjFile, files
Dim TargetPath
Set ObjFSO = CreateObject("scripting.filesystemobject")
'connecting to the folder where is going to be searched
Set ObjFolder = ObjFSO.GetFolder(strSource)
TargetPath = Replace (objFolder.path & "\", strSource,
strDestination,1,-1,vbTextCompare)
If Not ObjFSO.FolderExists (TargetPath) Then ObjFSO.CreateFolder
(TargetPath)
Err.clear
On Error Resume Next
'Check all files in a folder
For Each objFile In ObjFolder.files
If Err.Number <> 0 Then Exit For 'If no permission or no files in
folder
On Error goto 0
If CheckToCopyFile (objFile.path, TargetPath & "\" & objFile.name)
Then
objFSO.copyfile objFile.path, TargetPath & "\" & objFile.name,
True
End If
Next
'Recurse through all of the subfolders
On Error Resume Next
Err.clear
For Each objSubFolder In ObjFolder.subFolders
If Err.Number <> 0 Then Exit For 'If no permission or no subfolder
in folder
On Error goto 0
'For each found subfolder there will be searched for files
Copiar ObjSubFolder.Path & "\", TargetPath & ObjSubFolder.name & "\"
Next
Set ObjFile = Nothing
Set ObjSubFolder = Nothing
Set ObjFolder = Nothing
Set ObjFSO = Nothing
End Sub
Function CheckToCopyFile (ByVal strSourceFilePath, ByVal strDestFilePath)
Dim oFSO, oFile, SourceFileModTime, DestFileModTime
CheckToCopyFile = True
Set oFSO = CreateObject("scripting.filesystemobject")
If Not oFSO.FileExists (strDestFilePath) Then Exit Function
Set oFile = oFSO.GetFile (strSourceFilePath)
SourceFileModTime = oFile.DateLastModified
Set oFile = Nothing
Set oFile = oFSO.GetFile (strDestFilePath)
DestFileModTime = oFile.DateLastModified
Set oFile = Nothing
If SourceFileModTime =< DestFileModTime Then CheckToCopyFile = False
Set oFSO = Nothing
End Function
Sub CrearAccesDirecte()
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
Dim MyShortcut, MyDesktop, DesktopPath
' Read desktop path using WshSpecialFolders object
DesktopPath = WSHShell.SpecialFolders("Desktop")
' Create a shortcut object on the desktop
Set MyShortcut = WSHShell.CreateShortcut( DesktopPath & "\gvSIG.lnk")
' Set shortcut object properties and save it
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings(exegvSIG)
MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings(wrkDir)
MyShortcut.WindowStyle = 4
MyShortcut.IconLocation = icona
MyShortcut.Save
Wscript.Echo "Instal·lació realitzada amb èxit"
WScript.Echo "L'escriptori conté un accés directe a gvSIG"
WScript.Quit
End Sub
/
--
View this message in context: http://osgeo-org.1560.n6.nabble.com/Problema-de-acceso-a-simbolos-y-estilos-por-defecto-tp4948928p4974948.html
Sent from the gvSIG usuarios mailing list archive at Nabble.com.
Más información sobre la lista de distribución gvSIG_usuarios