botanic Posted February 19, 2008 Posted February 19, 2008 (edited) My problem is with $ink = FileGetShortcut($var) if @error <> 1 then $var = $ink[0] For some reason things like my quicktime shortcut and such make it go all screwey... and doesnt find the exe expandcollapse popup#include <C:\Program Files\AutoIt3\Include\GUIConstants.au3> #include <C:\Program Files\AutoIt3\Include\GuiComboBoxEx.au3> #include <C:\Program Files\AutoIt3\Include\GuiImageList.au3> #Include <C:\Program Files\AutoIt3\Include\String.au3> #Include <C:\Program Files\AutoIt3\Include\WinAPI.au3> global $1, $call, $ini, $file, $hGUI, $tmp, $iIndex $file = "C:\Documents and Settings\Matthew\My Documents\My Games\Gamelist.ini" func _run() Local $hGUI, $hImage, $hCombo, $tmm $tmp = "" ; Create GUI $hGUI = GUICreate("Games", 400, 130) $b1 = GUICtrlCreateButton("Run Game",5,103) $b2 = GUICtrlCreateButton("Add/Edit Game",70,103) $b3 = GUICtrlCreateButton("Remove Game",155, 103) $hCombo = _GUICtrlComboBoxEx_Create ($hGUI, "", 2, 2, 394, 100, BitOR($CBS_SIMPLE, $WS_VSCROLL, $WS_BORDER)) GUISetState() $ini = IniReadSectionNames($file) if $ini <> @error then For $1 = 1 to $ini[0] _GUICtrlComboBoxex_AddString ($hCombo, $ini[$1]) Next EndIf While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit Case $msg = $b1 $tmp = _GUICtrlComboBoxEx_GetCurSel($hCombo) $tmp = IniRead($file, $ini[$tmp+1], "Path","") Run($tmp) Exit Case $msg = $b2 $tmp = _GUICtrlComboBoxEx_GetCurSel($hCombo) $ini = IniReadSectionNames($file) if $ini <> @error then $tmp = IniRead($file, $ini[$tmp+1], "Path","") Else $tmp = "" EndIf GUIDelete($hGUI) _add($tmp) Case $msg = $b3 $tmp = _GUICtrlComboBoxEx_GetCurSel($hCombo) IniWriteSection($file, $ini[$tmp+1], "") IniDelete($file, $ini[$tmp+1]) GUIDelete($hGUI) _run() EndSelect Wend EndFunc func _choose($xxxxc) if $xxxxc = "" Then $var = FileOpenDialog("Browse for the EXE", @DesktopDir, "Executable (*.exe)", 1 ) if @error Then Else $tmp = StringSplit(_StringReverse(StringTrimRight(FileGetLongName($var,1),4)),"\") $tmp = InputBox("Game Name", "Please type the game name", _StringReverse($tmp[1])) IniWrite($file,$tmp,"Path", $var) EndIf Else $var = FileOpenDialog("Browse for the EXE", $xxxxc, "Executable (*.exe)", 1 ) if @error Then Else $tmp = StringSplit(_StringReverse(StringTrimRight(FileGetLongName($var,1),4)),"\") $tmp = InputBox("Game Name", "Please type the game name", _StringReverse($tmp[1])) IniWrite($file,$tmp,"Path", $var) IniWriteSection($file, $ini[$tmp+1], "") IniDelete($file, $ini[$tmp+1]) EndIf EndIf _run() EndFunc func _add($tmp) local $file2, $tpm, $tmpp, $xxxxc, $ink , $ico $xxxc = GUICreate("Add a game", 300,60, @DesktopWidth/2-160, @DesktopHeight/2-45, -1, $WS_EX_ACCEPTFILES); WS_EX_ACCEPTFILES $var = GUICtrlCreateInput ( $tmp, 10, 5, 220, 20) GUICtrlSetState(-1,$GUI_DROPACCEPTED) $btn = GUICtrlCreateButton ("Browse", 230, 5, 60, 20) $ok = GUICtrlCreateButton ("Add", 10, 35, 60, 20) $ccl = GUICtrlCreateButton ("Cancel", 75, 35, 60, 20) GUISetState () $msg = 0 While $msg <> $GUI_EVENT_CLOSE $msg = GUIGetMsg() Select Case $msg = $btn GUIDelete($hGUI) _choose($tmp) Case $msg = $ok $var = GUICtrlRead($var) if $var = "" or $var = " " then MsgBox(0, "Opps!", "This cannot be blank") exitloop Else $ink = FileGetShortcut($var) if @error <> 1 then $var = $ink[0] $tmpp = StringSplit(_StringReverse(StringTrimRight(FileGetLongName($var,1),4)),"\") $tmpp = InputBox("Game Name", "Please type the game name", _StringReverse($tmpp[1])) IniWrite($file,$tmpp,"Path", $var) if $tmp <> $tmpp and $tmp <> "" Then IniWriteSection($file, $ini[$tmp+1], "") IniDelete($file, $ini[$tmp+1]) EndIf exitloop EndIf Case $msg = $ccl exitloop EndSelect Wend GUIDelete($hGUI) _run() EndFunc _run() Solved use shellexecute and dont get the destination exe Edited February 20, 2008 by botanic
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now