newniman Posted April 30, 2015 Share Posted April 30, 2015 Hi, first post here - so this is probably an question.This works:Global $processid0 = Run("C:\CHDKPTP\chdkptp.exe -i", "", @SW_MAXIMIZE)I need to make this more general to get user input and use variables - to that end I tried the following, but the program hangs: $the_path_passed_in = "C:\CHDKPTP\" $path1 = '"' $path2 = $the_path_passed_in $path3 = "chdkptp.exe" $path4 = "-i" $path5 = '"' $path6 = "," $path7 = '"' $path8 = '"' $path9 = "," $path10 = "@SW_MAXIMIZE" $final_path = $path1 & $path2 & $path3 & " " & $path4 & $path5 & $path6 & " " & $path7 & $path8 & $path9 & " " & $path10 Global $processid0 = Run($final_path)In an attempt to understand what's going wrong, when I display $final_path in an edit box (using GUICtrlSetData($chdk_path, $final_path), the edit box displays:"C:\CHDKPTP\chdkptp.exe -i", "", @SW_MAXIMIZEAny comment appreciated.(i've attached the complete script for fuller context if necessary) WIP-GUI .au3 Link to comment Share on other sites More sharing options...
water Posted April 30, 2015 Share Posted April 30, 2015 (edited) Welcome to AutoIt and the forum!Try:$sPath = "C:\CHDKPTP\" $sProgram = "chdkptp.exe" $sParameters = "-i" $sWorkingDir = "" $sFlag = "@SW_MAXIMIZE" Global $iProcessID = Run($sPath & $sProgram & " " & $sParameters, $sWorkingDir, $sFlag) Edited April 30, 2015 by water 232showtime 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
newniman Posted April 30, 2015 Author Share Posted April 30, 2015 Thanks very much for your comment water.Unfortunately that does not work.In case it might help with a further suggestion i've attached a .PNG file of what I type in the Windows7 Run dialog. Link to comment Share on other sites More sharing options...
water Posted April 30, 2015 Share Posted April 30, 2015 My bad. Should be:$sPath = "C:\CHDKPTP\" $sProgram = "chdkptp.exe" $sParameters = "-i" $sWorkingDir = "" $iFlag = @SW_MAXIMIZE Global $iProcessID = Run($sPath & $sProgram & " " & $sParameters, $sWorkingDir, $iFlag) My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
newniman Posted April 30, 2015 Author Share Posted April 30, 2015 That done the trick water, many thanks.Do you have any idea why my initial try failed? I'm purely a hobby programer but that was a bit annoying (don't worry if it'd be a long explanation - don't want to waste your time) Link to comment Share on other sites More sharing options...
water Posted April 30, 2015 Share Posted April 30, 2015 I didn't spend too much time checking your code but I think the way you passed the data to Run everything was seen as a single parameter not as 3 as needed. newniman 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
SadBunny Posted April 30, 2015 Share Posted April 30, 2015 (edited) Your original code added some commas to the string. Try adding MsgBox(0,0,$final_path) after you construct it with all the string concatenation... That's probably it./edit: oh, wait, now I see what you tried to do. Functions don't work that way. A function that takes three arguments is not "secretly a function that takes only one argument but with commas in it"... You have to actually separate the arguments. Which is of course what Water's code did.Consider this "in-between form", maybe it explains it better. (The naming is intentionally bad, to show the three arguments. Water's naming is what you should use. $sArg1_part1 = "C:\CHDKPTP\" $sArg1_part2 = "chdkptp.exe" $sArg1_part3 = "-i" $sArg2 = "" $iArg3 = @SW_MAXIMIZE $final_arg1 = $sArg1_part1 & $sArg1_part2 & " " & $sArg1_part3 Global $iProcessID = Run($final_arg1, $sArg2, $iArg3)If this is hard to understand, maybe it's a good idea to practice writing a script that contains a function of your own with parameters. Say, try to make this broken piece of code work: $answer = addTwoNumbers(2, 5) msgbox(0,0,$answer) $answer = addTwoNumbers(10, 20) msgbox(0,0,$answer) func addTwoNumbers() return ??? ; make this return the correct value EndFunc Edited April 30, 2015 by SadBunny newniman 1 Roses are FF0000, violets are 0000FF... All my base are belong to you. Link to comment Share on other sites More sharing options...
newniman Posted April 30, 2015 Author Share Posted April 30, 2015 Thanks for your further comment water.SadBunny - excellent info. I feel much more comfortable than before Link to comment Share on other sites More sharing options...
newniman Posted May 1, 2015 Author Share Posted May 1, 2015 water,with so many posts I see you have vast experience. Since you are following this thread I hope you can reply to this even though the subject matter should, perhaps, be posted in a separate thread (of course i'm interested in comment from others too).Background:I just started to develop an AutoIt GUI interface with a lua based camera control application a couple of days ago. While AutoIt seems extremely capable, I summarise my experience to date of the GUI development "tools" as... Observations so far:To create a preliminary "mock-up" GUI was quick/easy with coda - but once changes were needed it becomes practically useless.I spotted this Form Builder beta and the ability to bounce between the GUI design and code seemed ideal, but - there are so many bugs when using this tool that I have currently reverted to manual (and extremely time consuming) creation of the GUI code.Query:Is there a trick i'm missing to speed GUI creation? e.g. something like Form Builder beta but a lot less buggy or some other experience to share that might help cut GUI development time? Link to comment Share on other sites More sharing options...
SadBunny Posted May 1, 2015 Share Posted May 1, 2015 (edited) Did you notice File -> Import -> Import AutoIt Gui in Koda? It regenerates the "wysiwig" from the Koda-generated block you paste into it, so you can easily make changes, regenerate form code and put it back in your script.You can also open an .au3 script straight from Koda. And push the generated code straight into SciTE from Koda. Edited May 1, 2015 by SadBunny Roses are FF0000, violets are 0000FF... All my base are belong to you. Link to comment Share on other sites More sharing options...
newniman Posted May 1, 2015 Author Share Posted May 1, 2015 I hadn't noticed that, thanks.So, I do that and Load/Process -> "Done successfully" reported, nowmake a change to the gui and hit "generate code and I get the attached "Import-Regenerate-Error.PNG" error You can also open an .au3 script straight from Koda. And push the generated code straight into SciTE from Koda.In Coda, I File/Open/pick my .au3 file and...nothing happens (that i'm aware of at least after 5 mins) Link to comment Share on other sites More sharing options...
newniman Posted May 1, 2015 Author Share Posted May 1, 2015 Update:I deleted all but one tabsheet from the single tab in the form. and Now, after Load/Process -> "Done successfully" reported / make a change to the gui and hit "generate code" and... code is now generated That solves a lot of my productivity gap. Thanks SadBunny. Link to comment Share on other sites More sharing options...
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