Página 1 de 1

Criando o atalho do EXE no windows.

Enviado: 08 Fev 2025 22:09
por Itamar M. Lins Jr.
Olá!

Código: Selecionar todos

**----------------------------
Function Main()
**----------------------------
Local oShell, oShortcut
Local cDeskTop

   Set Century ON
   SetColor("W+/B")
   setmode(25,80)
   cls  
   
   cPath := HB_DirBase()
   cPath := Left( cPath, Len(cPath)-1 )
   
   oShell    := win_OleCreateObject( "WScript.Shell" )
   cDeskTop  := oShell:SpecialFolders( "Desktop"   )
   oShortCut := oShell:CreateShortcut( cDeskTop+"\Test ver 1.2.lnk" )

   WITH OBJECT oShortCut 
      :TargetPath       := cPath + "\Test.EXE" 
      :WorkingDirectory := cPath 
      :Description      := "Test ver 1.2" 
      :Hotkey           := "Ctrl+Alt+7" 
      :IconLocation     := cPath + "\Test.EXE" 
      :WindowStyle      := 4 
      :Save()
   END WITH 

   wait 
   SetColor("W/N")
   cls 
   
Return NIL
Autor Anupan.

Saudações,
Itamar M. Lins Jr.

Criando o atalho do EXE no windows.

Enviado: 10 Fev 2025 14:41
por developer
Gostei da dica, obrigado.

Quais são as opções de :WindowStyle := 4 ?

Notei que quando usa a telca de atalho, demora umas 3x a 4x mais do que se clica diretamente no ícone, não entendi o porquê da diferença de tempo...

Criando o atalho do EXE no windows.

Enviado: 10 Fev 2025 16:52
por sygecom
developer escreveu:Gostei da dica, obrigado.

Quais são as opções de :WindowStyle := 4 ?

Notei que quando usa a telca de atalho, demora umas 3x a 4x mais do que se clica diretamente no ícone, não entendi o porquê da diferença de tempo...
Veja resposta segundo o CHATGPT:
Imagem

Criando o atalho do EXE no windows.

Enviado: 10 Fev 2025 18:51
por alxsts
Olá!

Muito interessante.

Alguém sabe como passar parâmetros de linha de comando para o executável utilizando este método?

Exemplo: invocar um navegador passando uma URL.

Criando o atalho do EXE no windows.

Enviado: 10 Fev 2025 19:19
por JoséQuintas
Nem lembrava disso.
O ícone não necessita ser origatoriamente um ícone.

Código: Selecionar todos

   IF ! Upper( oExeList[ 1, F_NAME ] ) == Upper( hb_FNameNameExt( hb_ProgName() ) )
      IF "SJPA" $ Upper( hb_FNameNameExt( hb_ProgName() ) )
         MsgStop( "ATENÇÃO URGENTE" + hb_Eol() + ;
            "JPA.EXE com nome errado, entrando no lugar de SJPA.EXE" )
      ENDIF
      MsgStop( "JPA executado não é o JPA mais recente." + hb_Eol() + ;
         "Tem alguma coisa errada na configuração e precisa ser corrigida" + hb_Eol() + ;
         "Vai ser usado o JPA.EXE com data mais recente," + hb_Eol() + ;
         "mas considere apenas quebra-galho." + hb_Eol() + ;
         "Tentando criar atalho correto (fase experimental)" )
      IF File( cPath + "sjpa.exe" )
         oScript := win_OleCreateObject( "wscript.shell" )
         oAtalho := oScript:CreateShortcut( oScript:SpecialFolders( "Desktop" ) + "\sjpa.lnk" )
         oAtalho:WindowStyle      := WIN_SW_SHOWNORMAL
         oAtalho:IconLocation     := cPath + "sjpa.exe"
         oAtalho:TargetPath       := cPath + "sjpa.exe"
         oAtalho:WorkingDirectory := cPath
         oAtalho:Save()
      ENDIF
      ShellExecuteOpen( cPath + oExeList[ 1, F_NAME ], cParam, hb_cwd(), SW_SHOWNORMAL )
      QUIT
   ENDIF

Criando o atalho do EXE no windows.

Enviado: 11 Fev 2025 18:43
por developer
Nem lembrava disso.
O ícone não necessita ser origatoriamente um ícone.
Creio que não entendi, poderia explicar melhor, por favor?

Criando o atalho do EXE no windows.

Enviado: 11 Fev 2025 19:18
por JoséQuintas
Como pode ver no atalho, indiquei o EXE, que possui ícone próprio, foi usado o ícone do aplicativo.

Lembrando também:
Eu uso o SJPA.EXE que sempre usa a versão mais nova do aplicativo.
Se não carregou a versào mais nova, é porque o atalho está errado, então crio atalho.

Criando o atalho do EXE no windows.

Enviado: 12 Fev 2025 10:37
por developer
Ah sim, entendi, obrigado.