Jump to content

FileCreateShortcut, create shortcut, but not start on Win8


Luigi
 Share

Recommended Posts

Hi forum, I write this function to put my application's shortcut in start menu.

I have machines with WinXP, Win7 and Win8.

The script put a shortcut in WinXP and 7 very well, and start the application too...

In Win 8, the script create the shortcut, but not start the application...

I thinking this is easy, but not... i miss something?

Compile 'try_monitor.exe' or set other file...

Then run set_shortcut

Someone can help me?

Obs: I need start the application for any user... (users that already exist and yet to be created)

I thinking is the best way is All Users/StartUp, write?

try_monitor.exe

#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=C:\try_monitor.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_Fileversion=0.0.0.2
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_Language=1046
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
HotKeySet("{F9}", "_quit")

TraySetIcon("explorer.exe", 0)
While Sleep(100)
WEnd

Func _quit()
    Exit
EndFunc

set_shortcut

#include <Array.au3>
#include <File.au3>

;~ Local $var = @HomeDrive & "\Documents and Settings\All Users\Start Menu\Programs\Startup"
;~ ConsoleWrite( $var & @LF)

set_shortcut("C:\try_monitor.exe", "Try_Monitor", 3)
If @error Then
    ConsoleWrite("@error->" & @error & @LF)
Else
    ConsoleWrite("@ok" & @LF)
EndIf

Func set_shortcut($sFULL_PATH = 0, $sName = "", $iIcon = 0)
    ; WORK ON
    ; [+] work
    ; [-] does not work
    ; Windows 8.1.................[ ]
    ;      Windows 8.1 (32).......[ ]
    ;      Windows 8.1 (64).......[+]
    ; Windows 8 (generic).........[ ]
    ;      Windows 8 (32).........[ ]
    ;      Windows 8 (64).........[ ]
    ; Windows 7 (generic).........[ ]
    ;      Windows 7 (32).........[ ]
    ;      Windows 7 (64).........[+]
    ; Windows XP (generic)........[ ]
    ;      Windows Home...........[ ]
    ;      Windows Professional...[+]

    If Not FileExists($sFULL_PATH) Then Return SetError(1, 0, 0)
    Local $sDrive = "", $sDir = "", $sFilename = "", $sExtension = ""
    Local $aPathSplit = _PathSplit($sFULL_PATH, $sDrive, $sDir, $sFilename, $sExtension)
    If @error Then Return SetError(2, 0, 0)

    If Not $sName Then $sName = $sFilename
    Local $SHORTCUT

    Switch @OSVersion
        Case "WIN_XP"
            Switch @OSLang
                Case 0416
                    $SHORTCUT = @HomeDrive & "\Documents and Settings\All Users\Menu Iniciar\Programas\Inicializar\" & $sName & ".lnk"
                Case Else
                    $SHORTCUT = @HomeDrive & "\Documents and Settings\All Users\Start menu\Programs\Start\" & $sName & ".lnk"
            EndSwitch
        Case "WIN_8", "WIN_81"
            $SHORTCUT = @AppDataDir & "\Microsoft\Windows\Start Menu\Programs\Startup\" & $sName & ".lnk"
            ConsoleWrite($SHORTCUT & @LF)
        Case "WIN_7"
            $SHORTCUT = @HomeDrive & "\Documents and Settings\All Users\Start Menu\Programs\Startup\" & $sName & ".lnk"
        Case Else
            Return SetError(3, 0, 0)
    EndSwitch

    If FileCreateShortcut($sFULL_PATH, $SHORTCUT, $sDrive & $sDir, "", "", $sFULL_PATH, "", $iIcon, @SW_SHOWMINNOACTIVE) Then
        Return 1
    Else
        Return SetError(4, 0, 0)
    EndIf
EndFunc   ;==>install
Edited by Detefon

Visit my repository

Link to comment
Share on other sites

Hum... I found the error!

Case "WIN_8", "WIN_81"
            $SHORTCUT = @HomeDrive & "\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\" & $sName & ".lnk"
            ConsoleWrite($SHORTCUT & @LF)

And missing

#RequireAdmin

But... not start the application on restart...

Edited by Detefon

Visit my repository

Link to comment
Share on other sites

You should use %appdata% + "RoamingMicrosoftWindowsStart MenuProgramsStartup"

 

Saludos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...