El Blog de Gualtrysoft

Windows 2000/2003/2008, Active Directory, VBScript, Hyper-V, PowerShell y todo aquello interesante a la hora de usar, configurar y administrar Windows Server. También tenemos longanizas…

Script VbScript Para Crear Un Acceso Directo

Posted by urpiano en Martes 23 \23\UTC noviembre \23\UTC 2010

Este script permite crear un acceso directo, ya sea de aplicación (fichero de extensión .lnk) como de URL (fichero de extensión .url, que contiene una URL y se abre con el navegador de internet predeterminado), en una carpeta especial (el escritorio del usuario, por ejemplo). El script está pensado para ser puesto como script de inicio de máquina (debería apuntar a carpetas especiales de todos los usuarios, como AllUsersDesktop) o inicio de sesión (en el caso de apuntar a carpetas de usuario). Permite establecer el icono del acceso directo de forma personalizada, con ejecutables, DLLs o fichero ICO, así como establecer si será sobrescrito en el caso de que ya exista.

Sintaxis

cscript [//nologo] crear-accesodirecto.vbs /Nombre:nombre [/Carpeta:carpeta_especial] [/URL:url] [/Aplicacion:aplicación] [/Icono:ruta_icono] [/IndiceIcono:indice_icono] [/RutaTrabajo:ruta_trabajo] [/Forzar] [/Argumentos:argumentos] [/?]

Siendo

Etiqueta Dato ¿Requerido? Descripción
Carpeta carpeta_especial No
Nombre de carpeta especial del sistema en la que se creará el acceso directo, si se omite se usará el escritorio del usuario que lanza el script. Se corresponde con los nombres que acepta el objeto WshSpecialFolders, que son:
– AllUsersDesktop: Escritorio común a todos los usuarios; si situamos un acceso directo en esta carpeta se mostrará en el escritorio de todos los usuarios del equipo.
– AllUsersStartMenu: Menú inicio común a todos los usuarios; si situamos un acceso directo en esta carpeta se mostrará en el escritorio de todos los usuarios del equipo.
– AllUsersPrograms: Carpeta Programas del menú inicio común a todos los usuarios; si situamos un acceso directo en esta carpeta se mostrará en el escritorio de todos los usuarios del equipo.
– AllUsersStartUp: Carpeta Programas\Inicio del menú inicio común a todos los usuarios; si situamos un acceso directo en esta carpeta se mostrará en el escritorio de todos los usuarios del equipo y provocará la ejecución al inicio de la sesión del programa al que apunta el acceso directo.
– Desktop: Escritorio del usuario.
– Favorites: Carpeta raíz de los favoritos del usuario.
– Fonts: Carpeta de tipos de fuentes del equipo.
– MyDocuments: Carpeta “Mis Documentos” del usuario.
– NetHood: Carpeta donde se almacenan los mapeos del usuario en la red. No son las unidades de red, si no los accesos a rutas de red que aparecen directamente en el entorno de red; se suelen generar de manera automática y son como una especie de histórico de accesos a carpetas de red.
– PrintHood: Carpeta en la que se guardan las impresoras configuradas por el usuario.
– Programs: Carpeta en la que se guardan los accesos directos de la carpeta Programas del menú inicio de las aplicaciones que sólo aparecen en el usuario. Por ejemplo, determinadas aplicaciones preguntan si deben crearse accesos directos para todos los usuarios o sólo para el que realiza la instalación; si se selecciona esta última acción el resultado es que los accesos directos sólo se crean en la carpeta que establece Programs.
– Recent: Carpeta con los elementos abiertos recientemente por el usuario.
– SendTo: Carpeta donde están los elementos que aparecen en submenú “Enviar A”.
– StartMenu: Carpeta donde está la raíz del menú inicio exclusivo del usuario.
– StartUp: Carpeta Programas\Inicio del menú inicio único del usuario; si situamos un acceso directo en esta carpeta se mostrará exclusivamente en el escritorio del usuario y provocará la ejecución al inicio de la sesión del programa al que apunta el acceso directo.
– Templates: Carpeta que contiene las plantillas del usuario.
Nombre nombre
Nombre del acceso directo. No se debe poner la extensión, de eso se encargará el script
URL url No
URL a la que apunta el acceso directo. Es parte de un conjunto de parámetros formado con el parámetro “Aplicación”; esto quiere decir que se debe pasar uno de los dos, en caso contrario no se creará ningún acceso directo; si se pasan los dos sólo se tomará en consideración el parámetro “URL”
Aplicacion aplicación No
Ruta, nombre y parámetros de la aplicación que se lanza al ejecutar el acceso directo. Se pueden usar variables de entorno. Es parte de un conjunto de parámetros formado con el parámetro “URL” esto quiere decir que se debe pasar uno de los dos, en caso contrario no se creará ningún acceso directo; si se pasan los dos sólo se tomará en consideración el parámetro “URL”
Icono ruta_icono No
Ruta y nombre de un fichero de icono. Si se trata de crear una acceso directo de aplicación, puede hacer referencia al propio ejecutable, una librería o un fichero ICO. En el caso de hacer referencia a un fichero ICO, el script lo copiará previamente a la carpeta temporal del usuario, por si se tratara de un icono puesto en un recurso de red
IndiceIcono indice_icono No
Índice del icono en el fichero que se refiere con el parámetro “Icono”. Si se omite, será cero
RutaTrabajo ruta_trabajo No
En el caso de accesos directos de tipo aplicación, con este parámetro se puede establecer la carpeta de trabajo de la aplicación. Si se omite, el script establece la carpeta en la que está ubicada la aplicación
Forzar abstract1 No
Este modificador permite establecer que el acceso directo sea sobrescrito cuando ya existe; si se omite sólo será creado cuando no exista
Argumentos argumentos No
En el caso de accesos directos de tipo aplicación, con este parámetro se puede establecer los parámetros que se van a pasar a la aplicación
?   No
Muestra la ayuda en línea.

Ejemplos:

– Se crea un acceso directo de URL a ftp://ftp.tia.org en el escritorio del usuario que lanza el script. Si el acceso directo existe no será reemplazado.:

cscript //nologo crear-accesodirecto.vbs /URL:ftp://ftp.tia.org

– Se crea un acceso directo de URL a ftp://ftp.tia.org en el escritorio del usuario que lanza el script. El acceso directo tendrá el icono de índice 66 en el fichero %WinDir%\System32\SHELL32.dll. Si el acceso directo existe no será reemplazado.:

cscript //nologo crear-accesodirecto.vbs /URL:ftp://ftp.tia.org /Icono:%WinDir%\System32\SHELL32.dll /IndiceIcono:66

– Se crea un acceso directo de aplicación a %WinDir%\System32\cmd.exe en el escritorio del usuario que lanza el script. Si el acceso directo existe no será reemplazado.:

cscript //nologo crear-accesodirecto.vbs /Aplicacion:%WinDir%\System32\cmd.exe

– Se crea un acceso directo de aplicación a %WinDir%\System32\cmd.exe en el escritorio del usuario que lanza el script. El acceso directo tendrá el icono de índice 66 en el fichero %WinDir%\System32\SHELL32.dll. Si el acceso directo existe no será reemplazado.:

cscript //nologo crear-accesodirecto.vbs /Aplicacion:%WinDir%\System32\cmd.exe /Icono:%WinDir%\System32\SHELL32.dll /IndiceIcono:66

– Se crea un acceso directo de URL a ftp://ftp.tia.org en el escritorio del usuario que lanza el script. El acceso directo tendrá el icono de índice 0 en el fichero %WinDir%\System32\SHELL32.dll. Si el aceso directo existe, será reemplazado.:

cscript //nologo crear-accesodirecto.vbs /URL:ftp://ftp.tia.org /Icono:%WinDir%\System32\SHELL32.dll /Forzar

– Se crea un acceso directo de aplicación a %WinDir%\System32\cmd.exe, con los parámetros “/K %WinDir%\System32\ftp.exe ftp.tia.org” y la ruta de trabajo %Temp%, en el escritorio del usuario que lanza el script. El acceso directo tendrá el icono de índice 0 en el fichero %WinDir%\System32\SHELL32.dll. Si el aceso directo existe, será reemplazado.:

cscript //nologo crear-accesodirecto.vbs /Aplicacion:%WinDir%\System32\cmd.exe /Icono:%WinDir%\System32\SHELL32.dll /RutaTrabajo:%Temp% /Forzar /Argumentos:"/K %WinDir%\System32\ftp.exe ftp.tia.org"

Este es el código del script

'*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
'*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*
'* crear-accesodirecto.vbs                                             *
'*                                                                     *
'* Este script permite crear un acceso directo, ya sea de aplicación   *
'* (fichero de extensión .lnk) como de URL (fichero de extensión .url, *
'* que contiene una URL y se abre con el navegador de internet         *
'* predeterminado), en una carpeta especial (el escritorio del         *
'* usuario, por ejemplo). El script está pensado para ser puesto como  *
'* script de inicio de máquina (debería apuntar a carpetas especiales  *
'* de todos los usuarios, como AllUsersDesktop) o inicio de sesión (en *
'* el caso de apuntar a carpetas de usuario). Permite establecer el    *
'* icono del acceso directo de forma personalizada, con ejecutables,   *
'* DLLs o fichero ICO.                                                 *
'*                                                                     *
'* Sintaxis                                                            *
'*                                                                     *
'* cscript [//nologo] crear-accesodirecto.vbs /Nombre:nombre           *
'* [/Carpeta:carpeta_especial] [/URL:url] [/Aplicacion:aplicación]     *
'* [/Icono:ruta_icono] [/IndiceIcono:indice_icono]                     *
'* [/RutaTrabajo:ruta_trabajo] [/Forzar] [/Argumentos:argumentos] [/?] *
'*                                                                     *
'* Siendo                                                              *
'*                                                                     *
'* - /Carpeta: carpeta_especial (Opcional):                            *
'*         Nombre de carpeta especial del sistema en la que se creará  *
'*         el acceso directo, si se omite se usará el escritorio del   *
'*         usuario que lanza el script. Se corresponde con los nombres *
'*         que acepta el objeto WshSpecialFolders, que son:            *
'*             - AllUsersDesktop: Escritorio común a todos los         *
'*                   usuarios; si situamos un acceso directo en esta   *
'*                   carpeta se mostrará en el escritorio de todos los *
'*                   usuarios del equipo.                              *
'*             - AllUsersStartMenu: Menú inicio común a todos los      *
'*                   usuarios; si situamos un acceso directo en esta   *
'*                   carpeta se mostrará en el escritorio de todos los *
'*                   usuarios del equipo.                              *
'*             - AllUsersPrograms: Carpeta Programas del menú inicio   *
'*                   común a todos los usuarios; si situamos un acceso *
'*                   directo en esta carpeta se mostrará en el         *
'*                   escritorio de todos los usuarios del equipo.      *
'*             - AllUsersStartUp: Carpeta Programas\Inicio del menú    *
'*                   inicio común a todos los usuarios; si situamos un *
'*                   acceso directo en esta carpeta se mostrará en el  *
'*                   escritorio de todos los usuarios del equipo y     *
'*                   provocará la ejecución al inicio de la sesión del *
'*                   programa al que apunta el acceso directo.         *
'*             - Desktop: Escritorio del usuario.                      *
'*             - Favorites: Carpeta raíz de los favoritos del usuario. *
'*             - Fonts: Carpeta de tipos de fuentes del equipo.        *
'*             - MyDocuments: Carpeta "Mis Documentos" del usuario.    *
'*             - NetHood: Carpeta donde se almacenan los mapeos del    *
'*                   usuario en la red. No son las unidades de red, si *
'*                   no los accesos a rutas de red que aparecen        *
'*                   directamente en el entorno de red; se suelen      *
'*                   generar de manera automática y son como una       *
'*                   especie de histórico de accesos a carpetas de red.*
'*             - PrintHood: Carpeta en la que se guardan las           *
'*                   impresoras configuradas por el usuario.           *
'*             - Programs: Carpeta en la que se guardan los accesos    *
'*                   directos de la carpeta Programas del menú inicio  *
'*                   de las aplicaciones que sólo aparecen en el       *
'*                   usuario. Por ejemplo, determinadas aplicaciones   *
'*                   preguntan si deben crearse accesos directos para  *
'*                   todos los usuarios o sólo para el que realiza la  *
'*                   instalación; si se selecciona esta última acción  *
'*                   el resultado es que los accesos directos sólo se  *
'*                   crean en la carpeta que establece Programs.       *
'*             - Recent: Carpeta con los elementos abiertos            *
'*                   recientemente por el usuario.                     *
'*             - SendTo: Carpeta donde están los elementos que         *
'*                   aparecen en submenú "Enviar A".                   *
'*             - StartMenu: Carpeta donde está la raíz del menú        *
'*                   inicio exclusivo del usuario.                     *
'*             - StartUp: Carpeta Programas\Inicio del menú inicio     *
'*                   único del usuario; si situamos un acceso directo  *
'*                   en esta carpeta se mostrará exclusivamente en el  *
'*                   escritorio del usuario y provocará la ejecución   *
'*                   al inicio de la sesión del programa al que apunta *
'*                   el acceso directo.                                *
'*             - Templates: Carpeta que contiene las plantillas del    *
'*                   usuario.                                          *
'*                                                                     *
'* - /Nombre: nombre (Requerido):                                      *
'*         Nombre del acceso directo. No se debe poner la extensión,   *
'*         de eso se encargará el script                               *
'*                                                                     *
'* - /URL: url (Opcional):                                             *
'*         URL a la que apunta el acceso directo. Es parte de un       *
'*         conjunto de parámetros formado con el parámetro             *
'*         "Aplicación"; esto quiere decir que se debe pasar uno de    *
'*         los dos, en caso contrario no se creará ningún acceso       *
'*         directo; si se pasan los dos sólo se tomará en              *
'*         consideración el parámetro "URL"                            *
'*                                                                     *
'* - /Aplicacion: aplicación (Opcional):                               *
'*         Ruta, nombre y parámetros de la aplicación que se lanza al  *
'*         ejecutar el acceso directo. Se pueden usar variables de     *
'*         entorno. Es parte de un conjunto de parámetros formado con  *
'*         el parámetro "URL" esto quiere decir que se debe pasar uno  *
'*         de los dos, en caso contrario no se creará ningún acceso    *
'*         directo; si se pasan los dos sólo se tomará en              *
'*         consideración el parámetro "URL"                            *
'*                                                                     *
'* - /Icono: ruta_icono (Opcional):                                    *
'*         Ruta y nombre de un fichero de icono. Si se trata de crear  *
'*         una acceso directo de aplicación, puede hacer referencia al *
'*         propio ejecutable, una librería o un fichero ICO. En el     *
'*         caso de hacer referencia a un fichero ICO, el script lo     *
'*         copiará previamente a la carpeta temporal del usuario, por  *
'*         si se tratara de un icono puesto en un recurso de red       *
'*                                                                     *
'* - /IndiceIcono: indice_icono (Opcional):                            *
'*         Índice del icono en el fichero que se refiere con el        *
'*         parámetro "Icono". Si se omite, será cero                   *
'*                                                                     *
'* - /RutaTrabajo: ruta_trabajo (Opcional):                            *
'*         En el caso de accesos directos de tipo aplicación, con este *
'*         parámetro se puede establecer la carpeta de trabajo de la   *
'*         aplicación. Si se omite, el script establece la carpeta en  *
'*         la que está ubicada la aplicación                           *
'*                                                                     *
'* - /Forzar: abstract1 (Opcional):                                    *
'*         Este modificador permite establecer que el acceso directo   *
'*         sea sobrescrito cuando ya existe; si se omite sólo será     *
'*         creado cuando no exista                                     *
'*                                                                     *
'* - /Argumentos: argumentos (Opcional):                               *
'*         En el caso de accesos directos de tipo aplicación, con este *
'*         parámetro se puede establecer los parámetros que se van a   *
'*         pasar a la aplicación                                       *
'*                                                                     *
'* - /?: ayuda (Opcional):                                             *
'*         Muestra la ayuda en línea                                   *
'*                                                                     *
'*                                                                     *
'* Ejemplos:                                                           *
'*                                                                     *
'* - Se crea un acceso directo de URL a ftp://ftp.tia.org en el        *
'* escritorio del usuario que lanza el script. Si el acceso directo    *
'* existe no será reemplazado.:                                        *
'*                                                                     *
'* cscript //nologo crear-accesodirecto.vbs /URL:ftp://ftp.tia.org     *
'*                                                                     *
'* - Se crea un acceso directo de URL a ftp://ftp.tia.org en el        *
'* escritorio del usuario que lanza el script. El acceso directo       *
'* tendrá el icono de índice 66 en el fichero                          *
'* %WinDir%\System32\SHELL32.dll. Si el acceso directo existe no será  *
'* reemplazado.:                                                       *
'*                                                                     *
'* cscript //nologo crear-accesodirecto.vbs /URL:ftp://ftp.tia.org     *
'* /Icono:%WinDir%\System32\SHELL32.dll /IndiceIcono:66                *
'*                                                                     *
'* - Se crea un acceso directo de aplicación a                         *
'* %WinDir%\System32\cmd.exe en el escritorio del usuario que lanza el *
'* script. Si el acceso directo existe no será reemplazado.:           *
'*                                                                     *
'* cscript //nologo crear-accesodirecto.vbs                            *
'* /Aplicacion:%WinDir%\System32\cmd.exe                               *
'*                                                                     *
'* - Se crea un acceso directo de aplicación a                         *
'* %WinDir%\System32\cmd.exe en el escritorio del usuario que lanza el *
'* script. El acceso directo tendrá el icono de índice 66 en el        *
'* fichero %WinDir%\System32\SHELL32.dll. Si el acceso directo existe  *
'* no será reemplazado.:                                               *
'*                                                                     *
'* cscript //nologo crear-accesodirecto.vbs                            *
'* /Aplicacion:%WinDir%\System32\cmd.exe                               *
'* /Icono:%WinDir%\System32\SHELL32.dll /IndiceIcono:66                *
'*                                                                     *
'* - Se crea un acceso directo de URL a ftp://ftp.tia.org en el        *
'* escritorio del usuario que lanza el script. El acceso directo       *
'* tendrá el icono de índice 0 en el fichero                           *
'* %WinDir%\System32\SHELL32.dll. Si el aceso directo existe, será     *
'* reemplazado.:                                                       *
'*                                                                     *
'* cscript //nologo crear-accesodirecto.vbs /URL:ftp://ftp.tia.org     *
'* /Icono:%WinDir%\System32\SHELL32.dll /Forzar                        *
'*                                                                     *
'* - Se crea un acceso directo de aplicación a                         *
'* %WinDir%\System32\cmd.exe, con los parámetros "/K                   *
'* %WinDir%\System32\ftp.exe ftp.tia.org" y la ruta de trabajo %Temp%, *
'* en el escritorio del usuario que lanza el script. El acceso directo *
'* tendrá el icono de índice 0 en el fichero                           *
'* %WinDir%\System32\SHELL32.dll. Si el aceso directo existe, será     *
'* reemplazado.:                                                       *
'*                                                                     *
'* cscript //nologo crear-accesodirecto.vbs                            *
'* /Aplicacion:%WinDir%\System32\cmd.exe                               *
'* /Icono:%WinDir%\System32\SHELL32.dll /RutaTrabajo:%Temp%            *
'* /Argumentos:"/K %WinDir%\System32\ftp.exe ftp.tia.org" /Forzar      *
'*                                                                     *
'*                                                                     *
'*                                                                     *
'*                                                                     *
'* © Fernando Reyes                                                    *
'* Noviembre De 2010                                                   *
'*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*
'*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

'Exigimos la declaración de variables
Option Explicit


Dim str_Error 'As String
Dim int_Error 'As String
Dim str_Carpeta 'As String
Dim str_Nombre 'As String
Dim str_URL 'As String
Dim str_Aplicacion 'As String
Dim str_Icono 'As String
Dim str_RutaIcono 'As String
Dim int_IndiceIcono 'As Integer
Dim str_Argumentos 'As String
Dim str_RutaTrabajo 'As String
Dim obj_SH 'As WshShell
Dim obj_AccesoDirecto 'As Object
Dim obj_FS 'As FileSystemObject
Dim obj_TS 'As TextStream
Dim str_Contenido 'As String
Dim str_Linea 'As String
Dim bol_Forzar 'As Boolean
Dim str_RutaNombre 'As String

'Constantes para el método OpenAsTextStream del objeto File
Const ForReading = 1
Const ForWriting = 2

'Constantes para la propiedad WindowStyle del objeto Shorcut
Const intWindowStyleActivateAndDisplay = 1
Const intWindowStyleMaximizeWindow = 3

'Creamos un objeto FileSystemObject y un WshShell
Set obj_FS = CreateObject("Scripting.FileSystemObject")
Set obj_SH = CreateObject("Wscript.Shell")

'Validando los argumentos y almacenando
'sus valores
If f_RevisarArgumentos( _
                       str_Error, _
                       int_Error) Then

    Call s_Ayuda(str_Error)
    WScript.Quit int_Error

End If

'Obtenemos el nombre del acceso directo, montado en función
'de si es de tipo URL o Aplicación (extensión .url o .lnk)
If Len(str_URL) > 0 Then

    str_RutaNombre = str_Carpeta & str_Nombre & ".url"
    
Else

    str_RutaNombre = str_Carpeta & str_Nombre & ".lnk"
    
End If

'Si ya existe el acceso directo y no está establecido que haya que
'reemplazarlo, terminamos el script. 
If obj_FS.FileExists(str_RutaNombre) And Not bol_Forzar Then Call s_Fin

'Como se ha de crear el acceso directo, lo hacemos
Set obj_AccesoDirecto = obj_SH.CreateShortcut(str_RutaNombre)

'Si el acceso directo a es de tipo URL
If Len(str_URL) > 0 Then

    'Establecemos la URL del acceso directo
    obj_AccesoDirecto.TargetPath = str_URL
    
    'Guardamos el acceso directo
    obj_AccesoDirecto.Save
    
    'Si hay que establecer un icono
    If Len(str_Icono) > 0 Then
    
        'Vaciamos la variable del acceso directo
        Set obj_AccesoDirecto = Nothing
        
        'Obtenemos el fichero del acceso directo
        Set obj_AccesoDirecto = obj_FS.GetFile(str_RutaNombre)
        
        'Abrimos el fichero como TextStream de sólo lectura
        Set obj_TS = obj_AccesoDirecto.OpenAsTextStream(ForReading)
        
        'Iniciamos el contenido
        str_Contenido = ""
        
        'Recorremos el fichero línea a línea
        While Not obj_TS.AtEndOfStream
        
            'Leemos la línea actual
            str_Linea = obj_TS.ReadLine
            
            'Sólo nos interesan aquellas líneas que no hagan referencia
            'al icono del acceso directo, que serán guardadas en
            'la variable str_Contenido
            If InStr(1,str_Linea,"IconIndex",vbTextCompare) = 0 _
            And InStr(1,str_Linea,"IconFile",vbTextCompare) = 0 Then
                
                str_Contenido = str_Contenido & str_Linea & vbCrLf
                
            End If
        
        Wend
        
        'Cerramos el TextStream del acceso directo
        obj_TS.Close
                
        'Agregamos al contenido el índice y la ruta del icono
        str_Contenido = str_Contenido & "IconIndex=" & _
                                int_IndiceIcono & vbCrLf & _
                        "IconFile=" & str_RutaIcono
                        
        'Abrimos de nuevo el acceso directo como TextSteam, pero
        'esta vez para escritura
        Set obj_TS = obj_AccesoDirecto.OpenAsTextStream(ForWriting)
        
        'Escribimos el nuevo contenido
        obj_TS.Write str_Contenido
        
        'Cerramos el TextStream
        obj_TS.Close    
        
    End If
        
'El acceso directo es de tipo aplicación
Else
    
    'Establecemos la ruta de la aplicación
    obj_AccesoDirecto.TargetPath = str_Aplicacion
    
    'Si se han pasado argumentos los añadimos al acceso directo
    If Len(str_Argumentos) > 0 Then _
                    obj_AccesoDirecto.Arguments = str_Argumentos
                    
    'Establecemos la carpeta del ejecutable como ruta de trabajo
    obj_AccesoDirecto.WorkingDirectory = str_RutaTrabajo
    
    'Establecemos el estilo de ventana como maximizada y activa
    obj_AccesoDirecto.WindowStyle = _
                    intWindowStyleActivateAndDisplay + _
                            intWindowStyleMaximizeWindow
    
    'Si hay que establecer el icono
    If Len(str_Icono) > 0 Then
            
        'Establecemos el icono
        obj_AccesoDirecto.IconLocation = str_RutaIcono & "," & _
                        int_IndiceIcono
        
    End If
    
    'Guardamos el acceso directo
    obj_AccesoDirecto.Save
        
End If

'Finalizamos el script
Call s_Fin

Function f_RevisarArgumentos( _
                             str_Error, _
                             int_Error _
                             ) 'As Boolean
'***********************************************************************
'* Procedimiento: f_RevisarArgumentos                                  *
'* Tipo         : Función                                              *
'* Devolución   : Booleana                                             *
'* Fecha y Hora : 22/11/2010 12:30:07                                  *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Esta función revisa los argumentos recibidos,        *
'*                recogiendo los posibles fallos por falta de          *
'*                argumentos requeridos y almacenando en las           *
'*                variables correspondientes los argumentos            *
'*                recibidos. recibe dos parámetros cuyo fin es ser de  *
'*                salida: una cadena que almacenará los errores        *
'*                detectados y un entero que almacenará el código de   *
'*                los errores detectados. Hay tres tipos de error;     *
'*                error 1 para los argumentos sin nombre requeridos y  *
'*                no encontrados, error 2 para los argumentos con      *
'*                nombre requeridos y no encontrados, por último,      *
'*                error 4 para los combos de argumentos opcionales     *
'*                (un combo de argumentos opcionales es aquel          *
'*                conjunto de argumentos opcionales que es requerido   *
'*                que se pase al menos uno de ellos y que si se pasa   *
'*                más de uno se ignorarán aquellos que estén detrás    *
'*                en la prioridad entre ellos; una característica      *
'*                clara de lo que es un combo de argumentos es cuando  *
'*                dos omás argumentos almacenan su valor en la misma   *
'*                variable). En el caso de producirse más de un tipo   *
'*                de error, el número de error será la suma de ambos   *
'*                de los errores recibidos, es decir 3, 5 o 6          *
'***********************************************************************

    Dim bol_Devolucion 'As Boolean
    Dim bol_Error1 'As Boolean
    Dim bol_Error2 'As Boolean
    Dim bol_Error4 'As Boolean

    'Iniciamos los indicadores
    bol_Devolucion = False
    bol_Error1 = False
    bol_Error2 = False
    bol_Error4 = False


    'Si hay que mostrar la ayuda, se muestra y
    'termina el script
    If WScript.Arguments.Named.Exists("?") Then

        Call s_Ayuda("******************" & vbCrLf & _
                     "*     AYUDA      *" & vbCrLf & _
                     "******************")

        WScript.Quit 0

    End If
    
    'Recogemos si hay que sobrescribir o no el acceso directo
    bol_Forzar = WScript.Arguments.Named.Exists("Forzar")
    
    'Revisamos que esté el argumento
    '/Carpeta (carpeta_especial)
    If WScript.Arguments.Named.Exists("Carpeta") Then

        str_Carpeta =  _
               WScript.Arguments.Named("Carpeta")

    End If
    
    'Si no se ha pasado carpeta o la carpeta que se ha pasado
    'no corresponde con ninguna de las especiales, se establece
    'como carpeta el escritorio del usuario
    If Not ( _
        (LCase(str_Carpeta) = "allusersdesktop") Or _
        (LCase(str_Carpeta) = "allusersprograms") Or _
        (LCase(str_Carpeta) = "allusersstartmenu") Or _
        (LCase(str_Carpeta) = "allusersstartup") Or _
        (LCase(str_Carpeta) = "desktop") Or _
        (LCase(str_Carpeta) = "favorites") Or _
        (LCase(str_Carpeta) = "fonts") Or _
        (LCase(str_Carpeta) = "mydocuments") Or _
        (LCase(str_Carpeta) = "nethood") Or _
        (LCase(str_Carpeta) = "printhood") Or _
        (LCase(str_Carpeta) = "programs") Or _
        (LCase(str_Carpeta) = "recent") Or _
        (LCase(str_Carpeta) = "sendto") Or _
        (LCase(str_Carpeta) = "startmenu") Or _
        (LCase(str_Carpeta) = "startup") Or _
        (LCase(str_Carpeta) = "templates") _
        ) Then str_Carpeta = "desktop"

    'Obtenemos la ruta en disco de la carpeta especificada
    str_Carpeta = obj_SH.ExpandEnvironmentStrings( _
                        obj_SH.SpecialFolders(str_Carpeta)) & "\"

    'Revisamos que esté el argumento requerido 
    '/Nombre (nombre)
    If WScript.Arguments.Named.Exists("Nombre") Then

        str_Nombre =  _
               WScript.Arguments.Named("Nombre")

    Else

        str_Error = str_Error & vbcrlf & _
                    "Error 2, falta argumento " & _
                    "requerido con nombre: " & _
                    "/Nombre (nombre)" & vbCrLf
        bol_Error2 = True

    End If

    'Revisamos que esté el argumento
    '/URL (url)
    If WScript.Arguments.Named.Exists("URL") Then

        str_URL =  _
               WScript.Arguments.Named("URL")

    End If

    'Revisamos que esté el argumento
    '/Aplicacion (aplicacion)
    If WScript.Arguments.Named.Exists("Aplicacion") Then

        str_Aplicacion =  _
               WScript.Arguments.Named("Aplicacion")
               
        'Si se han definido argumentos, se recogen
        If WScript.Arguments.Named.Exists("Argumentos") Then _
            str_Argumentos = WScript.Arguments.Named("Argumentos")
            
        'Si se ha definido la ruta de trabajo
        If WScript.Arguments.Named.Exists("RutaTrabajo") Then
        
            'Recogemos la ruta de trabajo
            str_RutaTrabajo = _
                        WScript.Arguments.Named("RutaTrabajo")
                       
            'Si la carpeta especificada no existe, la creamos
            If Not obj_FS.FolderExists(str_RutaTrabajo) Then _
                            obj_FS.CreateFolder(str_RutaTrabajo)
                        
        Else
        
            'Si la carpeta de trabajo no se ha especificado se
            'usará la del ejecutable al que apunta el acceso
            'directo
            str_RutaTrabajo = obj_FS.GetParentFolderName( _
                                                str_Aplicacion)
            

        End If

    End If
    
    'Si no se ha especificado no URL ni aplicación, registramos el
    'error de que uno de ellos es obligatorio que sea especificado
    If Len(str_URL) = 0 And Len(str_Aplicacion) = 0 Then
    
        str_Error = str_Error & vbcrlf & _
                    "Error 4, falta argumento " & _
                    "requerido de un combo. Uno de estos" & _
                    " dos argumentos debe ser pasado: " & _
                    "/URL (url) o /Aplicacion(aplicación)" & vbCrLf
        bol_Error4 = True
        
    End If

    'Revisamos que esté el argumento
    '/Icono (ruta_icono)
    If WScript.Arguments.Named.Exists("Icono") Then

        'Recogemos la ruta del icono
        str_Icono =  _
               WScript.Arguments.Named("Icono")

        'Si se trata de un fichero ICO, lo copiamos en la carpeta
        'temporal del usuario
        If LCase(obj_FS.GetExtensionName(str_Icono)) = "ico" Then
        
            'Montamos la ruta y nombre del icono como la carpeta
            'temporal del usuario y el propio nombre del icono.
            'Para ello usamos del objeto WshShell la propiedad
            'Environment apuntando al entorno de usuario y
            'obteniendo la variable de entorno Temp y expandemos
            'el resultado usando el método ExpandEnvironmentStrings
            '(generalmente la variable de entorno Temp del usuario
            'tiene en su valor otra variable de entorno %USERPROFILE%)
            str_RutaIcono = _
                        obj_SH.ExpandEnvironmentStrings( _
                            obj_SH.Environment("User").Item("Temp")) & _
                                "\" & obj_FS.GetFileName(str_Icono)
            
            'En el caso de que no exista ya el icono en la carpeta de
            'destino, o que se fuerce el sobrescribir, lo copiamos
            If (Not obj_FS.FileExists(str_RutaIcono)) Or _
            bol_Forzar Then obj_FS.CopyFile _
                           obj_SH.ExpandEnvironmentStrings(str_Icono), _
                                str_RutaIcono
            
        Else
        
            'Recogemos la ruta del icono
            str_RutaIcono = str_Icono
            
        End if

    End If

    'Revisamos que esté el argumento /IndiceIcono (indice_icono)
    If WScript.Arguments.Named.Exists("IndiceIcono") Then

        int_IndiceIcono =  _
               WScript.Arguments.Named("IndiceIcono")

    Else

        'Si no se ha pasado el índice, se establece cero
        int_IndiceIcono = 0
    
    End If

    'Preparamos las variables de devolucion:
    'el entero como suma de los posibles errores 1, 2 y 4
    int_Error = Abs(bol_Error1) + _
                (2 * Abs(bol_Error2)) + _
                (4 * Abs(bol_Error4))
    'La devolucion de la función será True en caso de
    'haber alguno de los errores
    bol_Devolucion = (bol_Error1 Or bol_Error2 Or bol_Error4)

    'Hacemos la devolución de la función
    f_RevisarArgumentos = bol_Devolucion

End Function 'f_RevisarArgumentos

Sub s_Ayuda(str_Error)
'***********************************************************************
'* Procedimiento: s_Ayuda                                              *
'* Tipo         : Sub                                                  *
'* Devolución   :                                                      *
'* Fecha y Hora : 22/11/2010 12:30:07                                  *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Este procedimiento muestra la ayuda en línea.        *
'*                Recibe un parámetro de tipo cadena que si viene      *
'*                será mostrado antes de la línea; pensado para que    *
'*                se muestre un error que se haya detectado.           *
'***********************************************************************

    'Si hay que mostrar algún texto previo a la ayuda, lo hacemos
    If Len(str_Error) > 0 Then

        WScript.Echo str_Error & vbCrLf & vbCrLf

    End If

    'A continuación, mostramos la ayuda por pantalla
    WScript.Echo "Este script permite crear un acceso directo, ya s" & _
                 "ea de aplicación (fichero de"
    WScript.Echo "extensión .lnk) como de URL (fichero de extensión" & _
                 " .url, que contiene una URL y"
    WScript.Echo "se abre con el navegador de internet predetermina" & _
                 "do), en una carpeta especial"
    WScript.Echo "(el escritorio del usuario, por ejemplo). El scri" & _
                 "pt está pensado para ser"
    WScript.Echo "puesto como script de inicio de máquina (debería " & _
                 "apuntar a carpetas especiales"
    WScript.Echo "de todos los usuarios, como AllUsersDesktop) o in" & _
                 "icio de sesión (en el caso de"
    WScript.Echo "apuntar a carpetas de usuario). Permite establece" & _
                 "r el icono del acceso directo"
    WScript.Echo "de forma personalizada, con ejecutables, DLLs o f" & _
                 "ichero ICO."
    WScript.Echo ""
    WScript.Echo "Sintaxis"
    WScript.Echo ""
    WScript.Echo "cscript [//nologo] crear-accesodirecto.vbs /Nombr" & _
                 "e:nombre"
    WScript.Echo "[/Carpeta:carpeta_especial] [/URL:url] [/Aplicaci" & _
                 "on:aplicación]"
    WScript.Echo "[/Icono:ruta_icono] [/IndiceIcono:indice_icono] [" & _
                 "/RutaTrabajo:ruta_trabajo]"
    WScript.Echo "[/Forzar] [/Argumentos:argumentos] [/?]"
    WScript.Echo ""
    WScript.Echo "Siendo"
    WScript.Echo ""
    WScript.Echo " - /Carpeta: carpeta_especial (Opcional):"
    WScript.Echo "         Nombre de carpeta especial del sistema e" & _
                 "n la que se creará"
    WScript.Echo "         el acceso directo, si se omite se usará " & _
                 "el escritorio del"
    WScript.Echo "         usuario que lanza el script. Se correspo" & _
                 "nde con los nombres"
    WScript.Echo "         que acepta el objeto WshSpecialFolders, " & _
                 "que son:"
    WScript.Echo "             - AllUsersDesktop: Escritorio común " & _
                 "a todos los"
    WScript.Echo "                   usuarios; si situamos un acces" & _
                 "o directo en esta"
    WScript.Echo "                   carpeta se mostrará en el escr" & _
                 "itorio de todos los"
    WScript.Echo "                   usuarios del equipo."
    WScript.Echo "             - AllUsersStartMenu: Menú inicio com" & _
                 "ún a todos los"
    WScript.Echo "                   usuarios; si situamos un acces" & _
                 "o directo en esta"
    WScript.Echo "                   carpeta se mostrará en el escr" & _
                 "itorio de todos los"
    WScript.Echo "                   usuarios del equipo."
    WScript.Echo "             - AllUsersPrograms: Carpeta Programa" & _
                 "s del menú inicio"
    WScript.Echo "                   común a todos los usuarios; si" & _
                 " situamos un acceso"
    WScript.Echo "                   directo en esta carpeta se mos" & _
                 "trará en el"
    WScript.Echo "                   escritorio de todos los usuari" & _
                 "os del equipo."
    WScript.Echo "             - AllUsersStartUp: Carpeta Programas" & _
                 "\Inicio del menú"
    WScript.Echo "                   inicio común a todos los usuar" & _
                 "ios; si situamos un"
    WScript.Echo "                   acceso directo en esta carpeta" & _
                 " se mostrará en el"
    WScript.Echo "                   escritorio de todos los usuari" & _
                 "os del equipo y"
    WScript.Echo "                   provocará la ejecución al inic" & _
                 "io de la sesión del"
    WScript.Echo "                   programa al que apunta el acce" & _
                 "so directo."
    WScript.Echo "             - Desktop: Escritorio del usuario."
    WScript.Echo "             - Favorites: Carpeta raíz de los fav" & _
                 "oritos del usuario."
    WScript.Echo "             - Fonts: Carpeta de tipos de fuentes" & _
                 " del equipo."
    WScript.Echo "             - MyDocuments: Carpeta ""Mis Documen" & _
                 "tos"" del usuario."
    WScript.Echo "             - NetHood: Carpeta donde se almacena" & _
                 "n los mapeos del"
    WScript.Echo "                   usuario en la red. No son las " & _
                 "unidades de red, si"
    WScript.Echo "                   no los accesos a rutas de red " & _
                 "que aparecen"
    WScript.Echo "                   directamente en el entorno de " & _
                 "red; se suelen"
    WScript.Echo "                   generar de manera automática y" & _
                 " son como una "
    WScript.Echo "                   especie de histórico de acceso" & _
                 "s a carpetas de red."
    WScript.Echo "             - PrintHood: Carpeta en la que se gu" & _
                 "ardan las"
    WScript.Echo "                   impresoras configuradas por el" & _
                 " usuario."
    WScript.Echo "             - Programs: Carpeta en la que se gua" & _
                 "rdan los accesos"
    WScript.Echo "                   directos de la carpeta Program" & _
                 "as del menú inicio"
    WScript.Echo "                   de las aplicaciones que sólo a" & _
                 "parecen en el"
    WScript.Echo "                   usuario. Por ejemplo, determin" & _
                 "adas aplicaciones"
    WScript.Echo "                   preguntan si deben crearse acc" & _
                 "esos directos para"
    WScript.Echo "                   todos los usuarios o sólo para" & _
                 " el que realiza la"
    WScript.Echo "                   instalación; si se selecciona " & _
                 "esta última acción"
    WScript.Echo "                   el resultado es que los acceso" & _
                 "s directos sólo se"
    WScript.Echo "                   crean en la carpeta que establ" & _
                 "ece Programs."
    WScript.Echo "             - Recent: Carpeta con los elementos " & _
                 "abiertos"
    WScript.Echo "                   recientemente por el usuario."
    WScript.Echo "             - SendTo: Carpeta donde están los el" & _
                 "ementos que"
    WScript.Echo "                   aparecen en submenú ""Enviar A" & _
                 """."
    WScript.Echo "             - StartMenu: Carpeta donde está la r" & _
                 "aíz del menú"
    WScript.Echo "                   inicio exclusivo del usuario."
    WScript.Echo "             - StartUp: Carpeta Programas\Inicio " & _
                 "del menú inicio"
    WScript.Echo "                   único del usuario; si situamos" & _
                 " un acceso directo"
    WScript.Echo "                   en esta carpeta se mostrará ex" & _
                 "clusivamente en el"
    WScript.Echo "                   escritorio del usuario y provo" & _
                 "cará la ejecución"
    WScript.Echo "                   al inicio de la sesión del pro" & _
                 "grama al que apunta"
    WScript.Echo "                   el acceso directo."
    WScript.Echo "             - Templates: Carpeta que contiene la" & _
                 "s plantillas del"
    WScript.Echo "                   usuario."
    WScript.Echo ""
    WScript.Echo "- /Nombre: nombre (Requerido):"
    WScript.Echo "Nombre del acceso directo. No se debe poner la ex" & _
                 "tensión, de"
    WScript.Echo "eso se encargará el script"
    WScript.Echo ""
    WScript.Echo "- /URL: url (Opcional):"
    WScript.Echo "URL a la que apunta el acceso directo. Es parte d" & _
                 "e un conjunto"
    WScript.Echo "de parámetros formado con el parámetro ""Aplicaci" & _
                 "ón""; esto"
    WScript.Echo "quiere decir que se debe pasar uno de los dos, en" & _
                 " caso"
    WScript.Echo "contrario no se creará ningún acceso directo; si " & _
                 "se pasan los"
    WScript.Echo "dos sólo se tomará en consideración el parámetro " & _
                 """URL"""
    WScript.Echo ""
    WScript.Echo "- /Aplicacion: aplicación (Opcional):"
    WScript.Echo "Ruta, nombre y parámetros de la aplicación que se" & _
                 " lanza al"
    WScript.Echo "ejecutar el acceso directo. Se pueden usar variab" & _
                 "les de"
    WScript.Echo "entorno. Es parte de un conjunto de parámetros fo" & _
                 "rmado con el"
    WScript.Echo "parámetro ""URL"" esto quiere decir que se debe p" & _
                 "asar uno de los"
    WScript.Echo "dos, en caso contrario no se creará ningún acceso" & _
                 " directo; si"
    WScript.Echo "se pasan los dos sólo se tomará en consideración " & _
                 "el parámetro"
    WScript.Echo """URL"""
    WScript.Echo ""
    WScript.Echo "- /Icono: ruta_icono (Opcional):"
    WScript.Echo "Ruta y nombre de un fichero de icono. Si se trata" & _
                 " de crear una"
    WScript.Echo "acceso directo de aplicación, puede hacer referen" & _
                 "cia al propio"
    WScript.Echo "ejecutable, una librería o un fichero ICO. En el " & _
                 "caso de hacer"
    WScript.Echo "referencia a un fichero ICO, el script lo copiará" & _
                 " previamente a"
    WScript.Echo "la carpeta temporal del usuario, por si se tratar" & _
                 "a de un icono"
    WScript.Echo "puesto en un recurso de red"
    WScript.Echo ""
    WScript.Echo "- /IndiceIcono: indice_icono (Opcional):"
    WScript.Echo "Índice del icono en el fichero que se refiere con" & _
                 " el parámetro"
    WScript.Echo """Icono"". Si se omite, será cero"
    WScript.Echo ""
    WScript.Echo "- /RutaTrabajo: ruta_trabajo (Opcional):"
    WScript.Echo "En el caso de accesos directos de tipo aplicación" & _
                 ", con este"
    WScript.Echo "parámetro se puede establecer la carpeta de traba" & _
                 "jo de la"
    WScript.Echo "aplicación. Si se omite, el script establece la c" & _
                 "arpeta en la"
    WScript.Echo "que está ubicada la aplicación"
    WScript.Echo ""
    WScript.Echo "- /Forzar: abstract1 (Opcional):"
    WScript.Echo "Este modificador permite establecer que el acceso" & _
                 " directo sea"
    WScript.Echo "sobrescrito cuando ya existe; si se omite sólo se" & _
                 "rá creado"
    WScript.Echo "cuando no exista"
    WScript.Echo ""
    WScript.Echo "- /Argumentos: argumentos (Opcional):"
    WScript.Echo "En el caso de accesos directos de tipo aplicación" & _
                 ", con este"
    WScript.Echo "parámetro se puede establecer los parámetros que " & _
                 "se van a pasar"
    WScript.Echo "a la aplicación"
    WScript.Echo ""
    WScript.Echo "- /?: ayuda (Opcional):"
    WScript.Echo "Muestra la ayuda en línea"
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo "Ejemplos:"
    WScript.Echo ""
    WScript.Echo "- Se crea un acceso directo de URL a ftp://ftp.ti" & _
                 "a.org en el escritorio del"
    WScript.Echo "usuario que lanza el script. Si el acceso directo" & _
                 " existe no será reemplazado.:"
    WScript.Echo ""
    WScript.Echo "cscript //nologo crear-accesodirecto.vbs /URL:ftp" & _
                 "://ftp.tia.org"
    WScript.Echo ""
    WScript.Echo "- Se crea un acceso directo de URL a ftp://ftp.ti" & _
                 "a.org en el escritorio del"
    WScript.Echo "usuario que lanza el script. El acceso directo te" & _
                 "ndrá el icono de índice 66 en"
    WScript.Echo "el fichero %WinDir%\System32\SHELL32.dll. Si el a" & _
                 "cceso directo existe no será"
    WScript.Echo "reemplazado.:"
    WScript.Echo ""
    WScript.Echo "cscript //nologo crear-accesodirecto.vbs /URL:ftp" & _
                 "://ftp.tia.org"
    WScript.Echo "/Icono:%WinDir%\System32\SHELL32.dll /IndiceIcono:66"
    WScript.Echo ""
    WScript.Echo "- Se crea un acceso directo de aplicación a %WinD" & _
                 "ir%\System32\cmd.exe en el"
    WScript.Echo "escritorio del usuario que lanza el script. Si el" & _
                 " acceso directo existe no será"
    WScript.Echo "reemplazado.:"
    WScript.Echo ""
    WScript.Echo "cscript //nologo crear-accesodirecto.vbs /Aplicac" & _
                 "ion:%WinDir%\System32\cmd.exe"
    WScript.Echo ""
    WScript.Echo "- Se crea un acceso directo de aplicación a %WinD" & _
                 "ir%\System32\cmd.exe en el"
    WScript.Echo "escritorio del usuario que lanza el script. El ac" & _
                 "ceso directo tendrá el icono"
    WScript.Echo "de índice 66 en el fichero %WinDir%\System32\SHEL" & _
                 "L32.dll. Si el acceso directo"
    WScript.Echo "existe no será reemplazado.:"
    WScript.Echo ""
    WScript.Echo "cscript //nologo crear-accesodirecto.vbs /Aplicac" & _
                 "ion:%WinDir%\System32\cmd.exe"
    WScript.Echo "/Icono:%WinDir%\System32\SHELL32.dll /IndiceIcono:66"
    WScript.Echo ""
    WScript.Echo "- Se crea un acceso directo de URL a ftp://ftp.ti" & _
                 "a.org en el escritorio del"
    WScript.Echo "usuario que lanza el script. El acceso directo te" & _
                 "ndrá el icono de índice 0 en"
    WScript.Echo "el fichero %WinDir%\System32\SHELL32.dll. Si el a" & _
                 "ceso directo existe, será"
    WScript.Echo "reemplazado.:"
    WScript.Echo ""
    WScript.Echo "cscript //nologo crear-accesodirecto.vbs /URL:ftp" & _
                 "://ftp.tia.org"
    WScript.Echo "/Icono:%WinDir%\System32\SHELL32.dll /Forzar"
    WScript.Echo ""
    WScript.Echo "- Se crea un acceso directo de aplicación a %WinD" & _
                 "ir%\System32\cmd.exe, con los"
    WScript.Echo "parámetros ""/K %WinDir%\System32\ftp.exe ftp.tia" & _
                 ".org"" y la ruta de trabajo"
    WScript.Echo "%Temp%, en el escritorio del usuario que lanza el" & _
                 " script. El acceso directo"
    WScript.Echo "tendrá el icono de índice 0 en el fichero %WinDir" & _
                 "%\System32\SHELL32.dll. Si el"
    WScript.Echo "aceso directo existe, será reemplazado.:"
    WScript.Echo ""
    WScript.Echo "cscript //nologo crear-accesodirecto.vbs /Aplicac" & _
                 "ion:%WinDir%\System32\cmd.exe"
    WScript.Echo "/Icono:%WinDir%\System32\SHELL32.dll /RutaTrabajo" & _
                 ":%Temp% /Argumentos:""/K"
    WScript.Echo "%WinDir%\System32\ftp.exe ftp.tia.org"" /Forzar"
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo ""

End Sub 's_Ayuda

Sub s_Fin()
'***********************************************************************
'* Procedimiento: s_Fin                                                *
'* Tipo         : Función                                              *
'* Devolución   : Booleana                                             *
'* Fecha y Hora : 23/11/2010 9:11:13                                   *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Este método se encarga de terminar el script. Se     *
'*                encarga de vaciar los objetos utilizados en el       *
'*                script                                               *
'*                                                                     *
'***********************************************************************

    'Vaciamos objetos
    Set obj_SH = Nothing
    Set obj_AccesoDirecto = Nothing
    Set obj_FS = Nothing
    Set obj_TS = Nothing
    
    'Terminamos el script
    WScript.Quit

End Sub 's_Fin

2 comentarios to “Script VbScript Para Crear Un Acceso Directo”

  1. Francisco Palacio said

    Como funciona? copio todo el scrip y lo ejecuto y sale error.
    Como llamo al script?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: