Hola,
He hecho varios grupos de cursores para Windows 10 con su respectivo fichero de instalación con extensión INF.
Poniendo el cursor encima del fichero INF y clicando el botón derecho del ratón sale un menú contextual, clico en la opción "Instalar" y el grupo de cursores se instala sin ningún problema.
Pero lo que no consigo hacer es hacer un fichero con extensión BAT que instale todos los grupos de cursores de una sola vez, y así no tener que instalar uno a uno los cursores con el menu contextual.
El código del fichero INF es el siguiente:
install_jacc_01.inf
[Version]
signature="$CHICAGO$"
[DefaultInstall]
CopyFiles = Scheme.Cur, Scheme.Txt, Scheme.Png
AddReg = Scheme.Reg
[DestinationDirs]
Scheme.Cur = 10,"%CUR_DIR%"
Scheme.Txt = 10,"%CUR_DIRB%"
Scheme.Png = 10,"%CUR_DIRB%"
[Scheme.Reg]
HKCU,"Control Panel\Cursors\Schemes","%SCHEME_NAME%",,"%10%\%CUR_DIR%\%arrow%,%10%\%CUR_DIR%\%helpsel%,%10%\
%CUR_DIR%\%working%,%10%\%CUR_DIR%\%busy%,%10%\%CUR_DIR%\%cross%,%10%\%CUR_DIR%\%text%,%10%\%CUR_DIR%\%pen%,
%10%\%CUR_DIR%\%unavail%,%10%\%CUR_DIR%\%ns%,%10%\%CUR_DIR%\%ew%,%10%\%CUR_DIR%\%nwse%,%10%\%CUR_DIR%\%nesw%,
%10%\%CUR_DIR%\%move%,%10%\%CUR_DIR%\%up%,%10%\%CUR_DIR%\%link%"
; -- Common Information
[Scheme.Cur]
jacc_01_arrow.cur
jacc_01_busy.ani
jacc_01_cross.cur
jacc_01_ew.cur
jacc_01_helpsel.cur
jacc_01_link.cur
jacc_01_move.cur
jacc_01_nesw.cur
jacc_01_ns.cur
jacc_01_nwse.cur
jacc_01_pen.cur
jacc_01_text.cur
jacc_01_unavail.cur
jacc_01_up.cur
jacc_01_working.ani
[Strings]
CUR_DIR = "Cursors\j_alsina_cursors_collection\jacc_01"
CUR_DIRB = "Cursors\j_alsina_cursors_collection"
SCHEME_NAME = "jacc_01"
arrow = "jacc_01_arrow.cur"
busy = "jacc_01_busy.ani"
cross = "jacc_01_cross.cur"
ew = "jacc_01_ew.cur"
helpsel = "jacc_01_helpsel.cur"
link = "jacc_01_link.cur"
move = "jacc_01_move.cur"
nesw = "jacc_01_nesw.cur"
ns = "jacc_01_ns.cur"
nwse = "jacc_01_nwse.cur"
pen = "jacc_01_pen.cur"
text = "jacc_01_text.cur"
unavail = "jacc_01_unavail.cur"
up = "jacc_01_up.cur"
working = "jacc_01_working.ani"
[Scheme.Txt]
_terms_of_use.txt
[Scheme.Png]
_j_alsina_cursors_collection_01.png
He probado hacer el fichero BAT con estos 2 códigos que en teoría deberían funcionar:
jacc_bat.bat
%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 .\install_jacc_01.inf
jacc_bat.bat
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 .\install_jacc_01.inf
Pero cuando lo ejecuto, aparece lo siguiente (incluso si lo ejecuto como Administrador):
Error de copia
El programa de instalación no puede copiar el archivo jacc_01_arrow.cur.
La ubicación actual no es correcta, cámbiela o inserte "(Desconocido") en la unidad especificada.
Me gustaría instalar varios ficheros INF a la vez y que al finalizar, saliera un mensaje diciendo "Instalación finalizada" o algo parecido.
Todos los ficheros están ubicados juntos en la misma carpeta, no encuentro dónde está el error.
Espero vuestras respuestas para solucionar la cuestión.
Muchas gracias.
Hola
El script de instalación y la llamada a
rundll32.exe son correctas.
Solo he podido reproducir el error que mencionaste, modificándole la extensión .ani a .cur a uno de los recursos del esquema, así que solo te puedo decir que te asegures de que todos estos archivos realmente existen, y que todos tengan bien colocada su respectiva extensión cur/any:
Citarjacc_01_arrow.cur
jacc_01_busy.ani
jacc_01_cross.cur
jacc_01_ew.cur
jacc_01_helpsel.cur
jacc_01_link.cur
jacc_01_move.cur
jacc_01_nesw.cur
jacc_01_ns.cur
jacc_01_nwse.cur
jacc_01_pen.cur
jacc_01_text.cur
jacc_01_unavail.cur
jacc_01_up.cur
jacc_01_working.ani
Revisa los archivos, revisa que todos los nombres concuerden correctamente.
Saludos
Hola,
He revisado todos los nombres y extensiones, y los ficheros existen. Incluso he probado suprimiendo el guión bajo (_), por si este caracter provocara el fallo, y tampoco funciona el script. Sigo atascado...alguna idea?
perdón, pero voy a ir por lo más básico, supongo que todos los archivos(incluidos el i.nf y el .bat) están dentro de la carpeta "Cursors\j_alsina_cursors_collection\"
El BAT debe poder ejecutarse desde cualquier ubicación. El directorio destino de la instalación es Windows\Cursors\j_alsina_cursors_collection\ y da igual la letra de la unidad, C, D, o la letra que sea ya que el propio script del BAT se encarga de localizar en qué unidad se encuentra la carpeta Windows.
Dejo el link para descargar los ficheros por si alguien puede encontrar la solución.
Link: https://drive.google.com/file/d/0BwjKzIeaLA3JU0lTdkFpYTRrb3M/view?usp=sharing (https://drive.google.com/file/d/0BwjKzIeaLA3JU0lTdkFpYTRrb3M/view?usp=sharing)
Hola de nuevo,
Ya sé dónde estaba el fallo. Faltaba asignar al BAT permisos de ejecutarlo como Administrador. Pero no lo he conseguido directamente con el BAT, y si al convertirlo en EXE con un convertidor de archivos BAT a EXE (he utilizado BATtoEXE Converter). Después de haberlo convertido, he seleccionado el archivo EXE y en Propiedades - Compatibilidad, he activado la casilla que dice "Ejecutar este programa como administrador" y listo.
Código archivo BAT:
@echo off
title JACC - J_ALSINA_CURSORS_COLLECTION_1
mode con cols=70 lines=15
color 8F
echo JACC 01
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_01.inf
echo JACC 01+
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_01_plus.inf
echo JACC 02
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_02.inf
echo JACC 02+
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_02_plus.inf
echo JACC 03
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_03.inf
echo JACC 03+
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_03_plus.inf
echo JACC 04
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_04.inf
echo JACC 04+
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_04_plus.inf
echo JACC 05
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_05.inf
echo JACC 05+
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\install_jacc_05_plus.inf
cls
echo.
echo JACC - J_ALSINA_CURSORS_COLLECTION_1
echo.
echo CURSORES INSTALADOS
echo.
echo Elige tu grupo favorito de cursores para
echo Windows desde el Panel de Control
echo.
pause>nul
exit
Pero el instalador no está del todo como yo quisiera. A medida que se instalan los ficheros INF, sale en la pantalla una pequeña ventana indicando que se están copiando los archivos. Sale en un brevísimo espacio de tiempo, décimas de segundo, pero en 10 ocasiones ya que hay 10 ficheros INF. Estaría genial que no se viera en ningún momento. ¿Alguien me puede dar una solución?
Aquí dejo el link para descargar la aplicación final totalmente corregida (ejecutar primero el fichero "install_jacc.exe"):
https://drive.google.com/file/d/0BwjKzIeaLA3JdzhYSjFVZnRudVU/view?usp=sharing (https://drive.google.com/file/d/0BwjKzIeaLA3JdzhYSjFVZnRudVU/view?usp=sharing)
Pode colocar o download do .BAT sem erro por favor?