Crear archivo lnk
- Sebastián Almirón
- Posts: 125
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Crear archivo lnk
He hecho un programa de instalación de una aplicación, lo he empaquetado todo con el iexpress para que los clientes se lo puedan bajar de mi servidor ftp.
Durante el proceso de instalación me gustaría darles la posibilidad de que se cree un acceso directo a la aplicación en el escritorio. Sobre como copiar el archivo .lnk al escritorio del usuario no tengo problema, con Gete("USERPROFILE").
¿ Pero como puedo modificar el archivo .lnk (o crear uno nuevo) que lleva originalmente para indicarle que está instalada en el directorio que ha elegido el usuario y que se ejecute en ese directorio.
Saludos y buen fin de semana.
Durante el proceso de instalación me gustaría darles la posibilidad de que se cree un acceso directo a la aplicación en el escritorio. Sobre como copiar el archivo .lnk al escritorio del usuario no tengo problema, con Gete("USERPROFILE").
¿ Pero como puedo modificar el archivo .lnk (o crear uno nuevo) que lleva originalmente para indicarle que está instalada en el directorio que ha elegido el usuario y que se ejecute en ese directorio.
Saludos y buen fin de semana.
Re: Crear archivo lnk
Sebastian
Así se hace:
Espero te sirva
Saludos,
Adhemar
Así se hace:
Code: Select all
cEscritorio:=C_getspecialfolder(CSIDL_DESKTOPDIRECTORY)
pLnk( 'C:\VIADELSISTEMA\SISTEMA.EXE',cEscritorio+"\Sistema.lnk",,'C:\VIADELSISTEMA\SISTEMA.EXE' )
*Aquí la función
FUNCTION pLnk( cFile, cNameLnk, cWorkingDir, cIcon ) //Crear acceso directo
LOCAL oShell, oLnk
DEFAULT cFile := ''
DEFAULT cNameLnk := ''
DEFAULT cWorkingDir := ''
DEFAULT cIcon := ''
IF !File( cFile )
RETU .F.
ENDIF
IF Empty( cNameLnk )
cNameLnk := cFilePath( cFile ) + cFileNoExt( cFile ) + '.lnk'
ENDIF
IF Empty( cWorkingDir )
cWorkingDir := cFilePath( cFile )
ENDIF
TRY
oShell := CreateObject( "Wscript.Shell" )
CATCH
MsgAlert( 'Error Create object WScript.Shell', 'Error' )
RETU .F.
END
oLnk := oShell:CreateShortcut( cNameLnk )
oLnk:TargetPath := cFile
oLnk:WindowStyle := 1 //1=Normal 2=Minimizada 3=Maximizada
IF !Empty( cIcon )
oLnk:IconLocation := cIcon
ENDIF
IF !Empty( cWorkingDir )
oLnk:WorkingDirectory := cWorkingDir
ENDIF
oLnk:Save()
Return .T.
Saludos,
Adhemar
Saludos,
Adhemar C.
Adhemar C.
Re: Crear archivo lnk
Adhemar, al compilar me arroja este error
y corresponde a esta linea
Un par de preguntas, supongo que CSIDL_DESKTOPDIRECTORY es una constante, cual es su valor ? y C_getspecialfolder() es una función que se encuentra en Harbour o xHarbour o en ambos ?
Desde ya muchísimas gracias por este aporte.
Saludos
Code: Select all
crear_acceso_directo.prg(6) Error E0030 Syntax error "syntax error at ':'"
Code: Select all
cEscritorio := C_getspecialfolder( CSIDL_DESKTOPDIRECTORY )
Desde ya muchísimas gracias por este aporte.
Saludos
Last edited by horacio on Sat Feb 01, 2014 10:36 am, edited 1 time in total.
Re: Crear archivo lnk
Saludos,
Adhemar C.
Adhemar C.
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Crear archivo lnk
+1y C_getspecialfolder() es una función que se encuentra en Harbour o xHarbour o en ambos ?
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Crear archivo lnk
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Re: Crear archivo lnk
Aquí la función
Saludos,
Adhemar
Code: Select all
#pragma BEGINDUMP
#include <windows.h>
#include <shlobj.h>
#include "hbapi.h"
#include "hbapiitm.h"
HB_FUNC( C_GETSPECIALFOLDER )
{
char *lpBuffer = (char*) hb_xgrab( MAX_PATH+1);
LPITEMIDLIST pidlBrowse;
SHGetSpecialFolderLocation(GetActiveWindow(), hb_parni(1), &pidlBrowse)
;
SHGetPathFromIDList(pidlBrowse, lpBuffer);
hb_retc(lpBuffer);
hb_xfree( lpBuffer);
}
#pragma ENDDUMP
Adhemar
Saludos,
Adhemar C.
Adhemar C.
Re: Crear archivo lnk
Adhemar, muchas gracias. Funcionó perfectamente.
Saludos
Saludos
- informaticaeloy
- Posts: 118
- Joined: Fri Dec 20, 2013 10:39 am
- Location: Zaragoza, España
- Contact:
Re: Crear archivo lnk
Hola,
habéis tenido en cuenta si el usuario al instalar el programa puede cambiar de ruta ? si lo cambia, tal vez no funcione el link.
habéis tenido en cuenta si el usuario al instalar el programa puede cambiar de ruta ? si lo cambia, tal vez no funcione el link.
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
- Sebastián Almirón
- Posts: 125
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: Crear archivo lnk
Muchas gracias Adhemar, funciona perfecto.
Saludos
Saludos
-
- Posts: 20
- Joined: Fri Apr 25, 2014 3:05 pm
Re: Crear archivo lnk
Gracias funiciona excelente