aa2zz6

Load program from CMD

4 posts in this topic

#1 ·  Posted (edited)

I have a .ini file that holds my path for our mapping software. I can't seem to get the CMD function to read the file path. I removed everything but the file path but it doesn't work.

[ArcGIS Desktop]
Path=C:\Users\<user name>\AppData\Local\ESRI\Desktop10.1\Launcher.exe

Local Const $sFilePath = @ScriptDir & "\Mapping\Path\ " & "Path" & ".ini"
    Local $sFilewrite = IniWrite($sFilePath, "ArcGIS Desktop", "Path=", "C:\Users\aa2zz6\AppData\Local\ESRI\Desktop10.1\Launcher.exe")
    
    Start()
    Func Start()
    $MyCommand = $sFilewrite
    Run(@ComSpec & " /c " & $MyCommand, @SystemDir, @SW_HIDE)
    EndFunc   ;==>Start

 

Edited by aa2zz6

Share this post


Link to post
Share on other sites



Solved

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Credit to MHz for creating the CMD part.

Creating the .ini file

;Create a constant variable in Local scope of the filepath that will be read/written to.
    Local Const $sFilePath = @ScriptDir & "\Mapping\" & "Config.ini"


    Local $sFilewrite = 'IGNORE_ERRORS=' & IniWrite($sFilePath, "settings", 'IGNORE_ERRORS', 1 &  @CRLF & 'Installer='&  $out)

$out is generated by another CMD process script that scans the hard drive in order to find the mapping software. But if you know the path won't change I would write it in like below.

;Create a constant variable in Local scope of the filepath that will be read/written to.
    Local Const $sFilePath = @ScriptDir & "\Mapping\" & "Config.ini"


    Local $sFilewrite = 'IGNORE_ERRORS=' & IniWrite($sFilePath, "settings", 'IGNORE_ERRORS', 1 &  @CRLF & 'Installer=' &  "C:\Users\aa2zz6\AppData\Local\ESRI\Desktop10.1\ArcGIS Desktop.exe")

.ini file will look like

[settings]
IGNORE_ERRORS=1
Installer=C:\Users\aa2zz6\AppData\Local\ESRI\Desktop10.1\ArcGIS Desktop.exe

Reading file path to CMD

Global $Ignore, $Ini, $Installer, $Pid

; Ini Settings file
$Ini = @ScriptDir & "\Mapping\" & "Config.ini""
; Read Ini Setting: IGNORE_ERRORS=0 or IGNORE_ERRORS=1
$Ignore = 'IGNORE_ERRORS=' & IniRead($Ini, "Settings", "IGNORE_ERRORS", 0)
; Read Ini Setting: Installer to run later
$Installer = IniRead($Ini, "Settings", "Installer", "")

; If $Installer is something and $Installer exists, then run it.
If $Installer And FileExists($Installer) Then
    $Pid = Run('"' & @ComSpec & '" /c "' & $Installer & '" /v "' & $Ignore & '"', @ScriptDir, @SW_HIDE)
    ; Check if @error is set. (Use of Exit is optional as used for example)
    If @error Then Exit 1
    ; Wait for process to close
    ProcessWaitClose($Pid)
Else
    ; Act on condition failure of $Installer
    If Not $Installer Then Exit 2
    If Not FileExists($Installer) Then Exit 3
EndIf

 

Edited by aa2zz6
1 person likes this

Share this post


Link to post
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

  • Similar Content

    • Valnurat
      By Valnurat
      I have a mainform with a ListviewControl. The ListView contains data from my SQL Server. My idea is that when you find what you are looking for, in the listview, I pick it by pressing the enter button and then show the content on a child window with some control.
      So my questions are:
      How do you pick the content in the listview with either enter button or the mouse?
      How do you create a child windows with control?
      Global $idListview, $idOKay _FormCreate() _Main() Func _FormCreate() ; Create GUI GUICreate("Computer Asset", 1027, 400) $idListview = GUICtrlCreateListView("", 2, 2, 1024, 268,Default, BitOR($LVS_SHOWSELALWAYS, $LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT)) ; Add columns _GUICtrlListView_AddColumn($idListview, "Computername", 100,2) _GUICtrlListView_AddColumn($idListview, "Tkt No.", 100,2) _GUICtrlListView_AddColumn($idListview, "Req No.", 100,2) _GUICtrlListView_AddColumn($idListview, "Order Date", 100,2) _GUICtrlListView_AddColumn($idListview, "Costcenter", 100,2) _GUICtrlListView_AddColumn($idListview, "Username", 100,2) _GUICtrlListView_AddColumn($idListview, "Model", 100,2) _GUICtrlListView_AddColumn($idListview, "Current Location", 100,2) _GUICtrlListView_AddColumn($idListview, "Option", 100,2) _GUICtrlListView_AddColumn($idListview, "Shipdate", 100,2) $idOKay = GUICtrlCreateButton("OK", 310, 290, 85, 25) GUISetState(@SW_SHOW) EndFunc Func _Main() Local $sConnectionString = 'DRIVER={' & $sDriver & '};SERVER=' & $sServer & ';DATABASE=' & $sDatabase & ';UID=' & $sUser & ';PWD=' & $sPassword & ';' Local $oConnection = _ADO_Connection_Create() _ADO_Connection_OpenConString($oConnection, $sConnectionString) If @error Then Return SetError(@error, @extended, $ADO_RET_FAILURE) Local $sTableName = 'StaffMemberUser.ComputerAsset' Local $sQUERY = "Select Computername, TktNo, ReqNo, OrderDate, CostCenter, Username, Model, CurrentLocation, Note, Shipdate from " & $sTableName Local $oRecordset = _ADO_Execute($oConnection, $sQUERY) Local $aRecordsetArray = _ADO_Recordset_ToArray($oRecordset, False) Local $aRecordset_inner = _ADO_RecordsetArray_GetContent($aRecordsetArray) _GUICtrlListView_SetItemCount($idListview, UBound($aRecordset_inner) - 1) _GUICtrlListView_AddArray($idListview, $aRecordset_inner) ; CleanUp $oRecordset = Null _ADO_Connection_Close($oConnection) $oConnection = Null ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $idOKay MsgBox($MB_SYSTEMMODAL, "listview item", GUICtrlRead($idListview), 2) Case $idListview MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2) EndSwitch WEnd GUIDelete() EndFunc  
    • tcox8
      By tcox8
      Hello,
      Currently I am running a script that calls a powershell script. To read the results of that I am reading StdOut. I am parsing things accordingly but unfortunately it doesn't parse correctly all the time and I end up missing parts of the string or other problems. My question then is, what is the best results for reading what is returned when running a powershell script or something similar?
    • Valnurat
      By Valnurat
      I hope my title is good enough.
      I'm using the ADO UDF and I have question regarding editing SQL records with this UDF.
      The owner of the UDF suggested an idea, but maybe there is another trix.
    • Valnurat
      By Valnurat
      I have a SQL db. I would like to view the content in a control. Like a table. The control should have the option to show every 2nd line in another color. When you pick a "cell" it should pick the whole row. When you dobbelt click on the row another windows should popup with the content from the row.
      What view control can do that?
    • Valnurat
      By Valnurat
      How do I access a sql database for inserting and reading?