Search the Community

Showing results for tags 'run'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • General
    • Announcements and Site News
    • Chat
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office


  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office


  • Forum
  • AutoIt


  • Community Calendar

Found 45 results

  1. Initial Problem I've written several scripts with the following sequence: Execute a program using Run w/stdout+stderr captured Typically processes all the files in one directory tree to populate a second tree Execute a second program (also with Run) to monitor the products of the first program and Display a progress bar (percentage of output files complete) Also monitor the first program's process and exit when it terminates The script then calls ProcessWaitClose (no timeout) on the first program's process and Checks the first program's results Kills the monitor program if it hasn't already exited on its own. Sometimes, ProcessWaitClose returns 1 with @error = 0 and @extended = 0xCCCCCCCC (actually, 0xFFFFFFFFCCCCCCCC), which seems ambiguous: the documentation says that @error = non-zero and @extended = 0xCC... means an invalid PID (unclear what the return value is), and 1 is returned for non-existent processes (but no mention of @extended). The 1/0/0xCC... result seems to occur when the first program exits very quickly (with or without an error). Since the exit value is not available, the script scans the program's output and tries to determine whether it ran successfully. This has gotten complicated and unreliable. Partial Fix I've now implemented a much simpler approach that works for most cases: Modify the monitor program so that it ignores the other program's process (the monitor always gets killed by the script anyway) Execute the monitor program first using Run, then execute the processing program with RunWait When RunWait returns, the child process exit value is available, so the script can ignore its output (which isn't available anyway) If the monitor program is still running, kill it. Remaining Issue However, there are still a couple of cases where it's necessary to get both the exit value from the processing program and its output. Since RunWait doesn't capture stdout and stderr for the parent script, it's looking like I'll have to call RunWait and redirect the 2 streams to a temp file and then scan it. Also, to do the redirect, I think I'll have to use @ComSpec to execute the processing program, which adds an undesired layer. Does anybody have a better (cleaner) way to handle these cases?
  2. Hi~ I have some question about how to enable the test mode via "Run" or "shellexecute" of command, was to tried : ----- Run("bcdedit.exe /-set testsinging on", "C:\Windows\System32") and shellexecute("bcdedit.exe /-set testsinging on", "C:\Windows\System32") ----- since this command must to run through administrator competence, have any method can accomplish it?
  3. Hello all, I've written the code below which launches chrome in incognito mode and then proceeds to go to the autoit website. From my understanding, the Run() command is also supposed to output the PID number related to the application that got launched from the Run command. However when I run the below lines, it outputs a PID number that is different from the newly launched chrome browser's PID number, does anyone know why and possibly explain how I could retrieve the accurate PID number associated with the newly launched browser? Global $iPid = Run(@ComSpec & ' /c start chrome.exe -incognito' ,"", "") msgbox(0,"",$iPid) Thank you, Brian
  4. I need help to understand why the run function does not work, but if i use it directly inside cmd shell the command works. $where is the name of the jpg file ShellExecute(@ComSpec ," /k C:\Users\root\Desktop\test\exiftool.exe -p $FileName "&'"'&$where&'"'&" > "&'"'&@ScriptDir&"\out.txt"&'"',@ScriptDir);<----- work Run("C:\Users\root\Desktop\test\exiftool.exe -p $FileName "&$where&" > "&@ScriptDir&"\out.txt",@ScriptDir);<--- doesn't work I would use the run command! Thx
  5. Hello How are you I have a question, please. I've created a window and i need when i run the script if it detect an other copy from the same script was runing the script close the first copy Automatically and run a new copy I want an example to understand it
  6. I am attempting to run an Autoit.exe with schtasks every weekday @ 9:05 am. I have the below C:\>SchTasks /Create /TN "P10Run" /TR "O:\AUTOIT\P40 Run.au3" /SC WEEKLY /D MON, TUE,WED,THU,FRI /ST 09:05:00 SUCCESS: The scheduled task "P10Run" has successfully been created. I also did a "test" run : C:\>Schtasks /Run /TN "P10Run SUCCESS: Attempted to run the scheduled task "P10Run". But when I run my query to verify success my "Last Result" seems to indicate that the script did not run: C:\>SCHTASKS /QUERY /FO LIST /V /TN "P10RUN" Folder: \ HostName: xxxxxxxxxxxxxxxx TaskName: \P10RUN Next Run Time: N/A Status: Could not start Logon Mode: Interactive only Last Run Time: 6/14/2017 9:08:56 AM Last Result: -2147024894 Author: xxxxxxx Task To Run: O:\AUTOIT\P40 Run.au3 Start In: N/A Comment: N/A Scheduled Task State: Enabled Idle Time: Disabled Power Management: Stop On Battery Mode, No Start On Batterie s Run As User: xxxxxxxxx\xxxxxxxx Delete Task If Not Rescheduled: Enabled Stop Task If Runs X Hours and X Mins: 72:00:00 Schedule: Scheduling data is not available in this f ormat. Schedule Type: Weekly Start Time: 9:05:00 AM Start Date: 6/14/2017 End Date: N/A Days: MON, TUE, WED, THU, FRI Months: Every 1 week(s) Repeat: Every: Disabled Repeat: Until: Time: Disabled Repeat: Until: Duration: Disabled Repeat: Stop If Still Running: Disabled C:\> Is there something missing in my command? Also is there a better way to make sure that the script does in fact sun successfully? Thanks In Advance!
  7. Trying to automate the sideload of a Windows Store app via .ps1 script... RunWait(@ComSpec & ' /c' & 'C:\"WB Resources"\APP_Prod\Add-AppDevPackage.ps1') Above doesn't work... I assume this is trying to open in CMD. Normally we right click the .ps1 and open with powershell, then we have to type "A" to start the install, it installs and then type any yet to exit. However I cant get the powershell to even open. Kind of puzzled here, any suggestions would be a help. PS I also tried to convert the .ps1 to exe, but that was a huge failure... lol
  8. Hello, What command would I use to open the following folder directories for: Computer/This PC (windows 7/Windows 10) Libraries\documents Libraries\Pictures I know:  Run("Explorer.exe " & $filepath) ShellExecute($filepath) can be used to open folder locations when you type in the full directory such as "C:\Users\%username%\Documents" but I'm trying to figure out how to use these windows short paths. Thanks,
  9. I'm attempting to code a Run or RunWait command that is a little on the long side and contains multiple sets of embedded quotes (as it would be issued from a CMD prompt), but can't for the life of me figure out the containing quotes as pertains to AutoIt. Here's the one-line command as it would be issued via a CMD prompt... "\\AppServ\G$\Connectivity\Clients\Citrix\Receiver\\CitrixReceiver.exe" ADDLOCAL="ReceiverInside,ICA_Client,WebHelper,SSON,AM,SELFSERVICE,USB,DesktopViewer,Flash,Vd3d" ALLOWADDSTORE=A ALLOWSAVEPWD=A ENABLEPRELAUNCH=Y ENABLE_SSON=Yes STORE0="AppStore;;on;AppStore" /EnableCEIP=false /includeSSON /noreboot /silent I've tried so many different combinations of surrounding quotes with Run and RunWait, I just don't understand why it's this difficult to get past this. Can anyone assist with this? Thank you.
  10. Hi guys, This is probably an obvious one, but I really don't use this command at all so am hoping you can spot my mistake. I'm running a powershell script on a schedule with the following script in a function, the function is being called in a loop, but the console process is not closing in the background and I end up with a bunch of console windows running in the background: Run(@comspec & ' /k PowerShell.exe -STA -NonInteractive -ExecutionPolicy ByPass -Command "& ''Z:\Powershell\365\GetNextDetails.ps1'' "', "", @SW_HIDE) Thanks!
  11. Hi all. I am creating an app that runs a program with the admin privileges using the shellexecute's run as verb, but what my problem is, that no matter what I use to launch the program, it doesn't quite work like the run dialog would (certain programs don't get found, etc.). I've tried using the explorer.exe and passing the program to it, that is unreliable and opens documents folder sometimes instead, I've tried using the @comspec /c and that works better, but still some of the programs aren't being found that would be with the run dialog e.g., if I do @comspec /c diskpart it won't find it, I've even tried setting the working dir, but still no luck. I also tried passing commandline params to C:\WINDOWS\system32\rundll32.exe shell32.dll,#61, but no luck. can anyone help me what way to go in order to be able to launch programs in the run dialog style? is there a function in winapi that run dialog uses that I could use as well? Or what would be the best way to go about this? Any help much appreciated.
  12. I have written a script to build the Installshield project file(.ism) to setup files(.msi or .exe based on the release settings..). So when the user runs the script the process will be automatic for multiple ism files. Func Build($sOutputIsm,$ReleaseName,$sFilePath="None",$NewName="None") ;build the ism to get the msi If not FileExists($sOutputIsm) Then Logging("File Not Found: $sOutputIsm$",4) MsgBox($MB_OK + $MB_ICONERROR, "Error", "Could not find file ""$sOutputIsm$"".") Return EndIf Logging("Started Building $sOutputIsm$",4) ShowTrayTip($AppName, "Started Building $sOutputIsm$", 10, $TIP_ICONASTERISK) Dim $sBuildExe,$sBuildCommand,$Ret $sBuildExe = FindFileInPath("ISCmdBld.exe", "%ProgramFiles(x86)%\InstallShield") $sBuildCommand = """$sBuildExe$"" -p ""$sOutputIsm$"" -r ""$ReleaseName$"" -s" ;MsgBox(0,"",$sBuildCommand) $Ret = RunWait($sBuildCommand) If $Ret <> 0 Then ShowTrayTip($AppName,"ISM Build Failed, Please build the ISM Manually.",10, $TIP_ICONHAND) MsgBox($MB_OK + $MB_ICONERROR, "Error", "Could not build ""$sOutputIsm$"". Please build manually.") Logging("Error $Ret$ while Building $sOutputIsm$",4) Return;Exit(1) Else ShowTrayTip($AppName,"ISM Build Completed",10, $TIP_ICONASTERISK) Logging("Completed Building $sOutputIsm$",4) if not StringCompare($NewName, "None")=0 then MoveEXE($sFilePath,$NewName) EndIf EndFunc The problem is when we run the ISCmdBuild.exe the RunWait will give whether fail or success but not what are the errors we got. If we use Run, it will give that logging but we don't have the feature of getting fail/success as RunWait. If we run the above code by removing -s and using redirection operator > to a file, it is running manually but failing with autoit. Like $sBuildCommand = """$sBuildExe$"" -p ""$sOutputIsm$"" -r ""$ReleaseName$"" > c:\logs\uday.log" Any help on this?? And also, in some machines the installshield shortcut is launching fine as licensed version but with ISCmdBld.exe it is giving error as licensing info missing or not registered. Any suggestion on this too??
  13. I have this button in an app I am building: When you click it, it then opens a FileOpenDialog() I select and XML, then it asks for a name input, enter the name, then it should run the following code: schtasks.exe /create /tn XXXX-task /XML C:\WBRESO~1\WB-LOO~1\TESTIN~1.XML It works when I put it in the CMD and run it, I get SUCCESS! and the new task has been created in Task Scheduler. C:\Users\vivaed>schtasks.exe /create /tn XXXX /xml C:\WBRESO~1\WB-LOO~1\TESTIN~1.XML SUCCESS: The scheduled task "XXXX" has successfully been created. But when I run it in: (This is just a snippet of the code, there is a lot more) #include <AutoItConstants.au3> Global $wbResources = 'C:\"WB Resources"\WB-LoopChecker\' Case $Button4 $getXML = FileOpenDialog("Find task to import", $wbResources ,"XML (*.xml)") If @error Then ; Display the error message. MsgBox($MB_SYSTEMMODAL, "", "No file was selected.") Else Local $taskName = InputBox("Name this task","File: " & @CRLF & $getXML & @CRLF & "Name this task:" & @CRLF,"XXXX-task") $schedTask = 'schtasks.exe /create /tn ' & $taskName & ' /XML ' & FileGetShortName($getXML) Run(@ComSpec & " /c " & $schedTask, @SW_HIDE) ConsoleWrite($wbResources & @CRLF) ConsoleWrite($schedTask & @CRLF) EndIf Here I dont get any errors but the when I refresh the Task Scheduler, there is no new task....
  14. Hello, I've some troubles whit the run command. Below u see 2 command's , 1 is working and the other not. (the first isn't working) I think the problem is in te space between program and files.Also I've treid every thing i could think of or the helpfiles handed to me. (or maybe I din't find the correct answer:)) I tried so mush that i don't know anymore if it's the space between program files or not. Could somebody point me in the right direction? Not working: Run(@ComSpec & " /c psexec -i \\ -u username -p pass -h -d /accepteula C:\Program Files\some_prog\Shell.exe" ,"C:\tools", @SW_HIDE) Working : Run(@ComSpec & " /c psexec -i \\ -u username -p pass /accepteula cmd" , "C:\tools" , @SW_HIDE)
  15. How can I run this command:      Send( 'C:\xampp\htdocs\myApp\BuildDVD.exe ..\..\projects\dvdrom\' & $sFileName & '\project.xml ..\..\projects\' & $sFileName & '\video') in a Shell Execute? I can run ShellExecute('C:\xampp\htdocs\myApp\BuildDVD.exe') but how to I add the rest of the command?
  16. How can I check wether my current autoitscript (.exe) has finished, my problem is that I have a button which starts the autoit, if the user clicks twice in the button or more times the script shall check if its runs or not
  17. hi I'm trying to execute files I want it to run in order. for instance, if there's folder like below, I want to run 1.exe > 2.exe > 3.exe root folder |___folder 1 > 1.exe |___folder2 > 2.exe |___folder3 > 3.exe What I did to do the above, was to make a text file that contains the path to each of those files and put those in array form. but copying and pasting every path of those files into a text file is very exhausting thing to do when there's like hundreds of files to execute. So I was wondering if there is a simple way to run those files. I'd be thankful if anybody answers it.
  18. Hello everyone, I am not 100% sure how to phrase my problem so I'm sorry if the issue has been addressed elsewhere. Here is my situation: I have added a file called MyStartup.exe (generated by AutoIt) to the list of programmes to launch on startup via the Windows registry on my laptop. As soon as it is running, this file will display a 3 minutes (tooltip) countdown and in the end call Run("Another.exe"). The latter is an AutoIt script, too. Among other things, it contains a few SoundPlay() commands, but for some reason, there is no sound coming at all! Strangely, however, when i manually run the MyStartup.exe and let it do its job, THEN the Another.exe plays sounds properly. I can only guess what might be the matter here, since the same procedure (autostart) works fine on my other PC. Any help would be greatly appreciated
  19. I have 3 processes that I am trying to work with: The ControlCenter (Cannot Edit) and handles the other 2 processes. The ControlCenter will launch and close processes as requested by the user. The Launcher (Can Edit) and launches an installer. The Script (Can Edit) and automates the above installer. My issue is, ControlCenter will terminate the Launcher and all of it's child processes. I need the script to continue running after the Launcher has been closed by the ControlCenter. How do I get the Launcher to launch the script in it's own parent process so it does not get terminated when the ControlCenter terminates the launcher and all child processes? Sorry if this is confusing. I am terrible at explaining things. Autism can be a pain to deal with sometimes.
  20. Hi friends, Suppose MyProgram is a tabbed program, meaning that it allows for opening multiple files in the same instance. I want to open File1, File2 and File3 in one instance of MyProgram from an AutoIT script. How can I do this? I have read the AutoIT Help File about "ShellExecute" and "Run", but I have found nothing helpful. Thanks for reading my question. Any answer would be very appreciated.
  21. How can I start the Window SHell Explorer after closing it with this: Run('TASKKILL /F /PID ' & ProcessExists('explorer.exe'))
  22. Hi All, I've got a script setup to drop a program into a temp folder and then run it from there, but I have mixed results, the Run() command will work on some computers but not others. The file will be placed into the temp folder in all cases. Running AutoIT The computers are all either Win 7 or 8.1, x64 (exe is compiled to x64 too), UAC is off, all have local admin rights - if I've missed something ask and I'll update the details. If Not FileExists (@TempDir & "\HCTB") Then DirCreate(@TempDir & "\HCTB") FileInstall("G:\IT\Downloads\TB\12.0.45471\Host\TB_Setup-sif7r8pgcq.exe", @TempDir & "\HCTB\TB_Setup-sif7r8pgcq.exe", 1) Local $iPID = Run(@TempDir & "\HCTB\TB_Setup-sif7r8pgcq.exe", "") Any suggestions? Thanks!
  23. Okay, so I have a TCP connection set up over some computers, no problem. I recieve the messages without problem, and when I get a specific message over the server, it runs some program. No problem at first. But then, after the whole script has ran for a while, it won't open any program, not even a web page like ShellExecute(""). It just returns @error=1. It's nothing wrong with the path, FileExists makes sure of that (Always returns 1). When I then try using Run instead of ShellExecute, I still get an error. Any idea why it just works at first, but then starts to fail every time? Relevant for opening a specific file: ShellExecute(@DesktopDir & "\Fireplace.mp4") If @error Then FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - ShellExecute Error: " & @error & " & Extended: " & @extended & @CRLF) $Exists=FileExists(@DesktopDir & "\Fireplace.mp4") FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Exists: " & $Exists & " & exists error: " & @error & " & Extended: " & @extended & @CRLF);;;;;;;;;;; Run(@DesktopDir & "\Fireplace.mp4") If @error Then FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Run Bål Error: " & @error & " & Extended: " & @extended & @CRLF) EndIfWhole client: #Include <_AudioEndpointVolume.au3> #include <Process.au3> TCPStartup() OnAutoItExitRegister("Terminate") $IPAdress="My personal IP..." $Port= Some IP... Local $Socket Connect() While 1 Sleep(50) Recv() If _IsInternetConnected()=False Then Connect(2) WEnd Func Recv() $Recv=TCPRecv($Socket, 2048) If @error>0 Then Connect(@error & " " & @extended) If $Recv="" Then Return FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Recieved " & $Recv & @CRLF);;;;;;;;;;; $Recv=StringReplace($Recv, @CR, "") CheckForAction($Recv) EndFunc Func Connect($Conn=0) TCPCloseSocket($Socket) FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Connection mode " & $Conn & @CRLF);;;;;;;;;;; TraySetIcon(@ScriptDir & "\icons\offline.ico") Do Sleep(1000) $Socket=TCPConnect($IPAdress, $Port) Until Not @error TraySetIcon(@ScriptDir & "\icons\online.ico") TCPSend($Socket, "ImMain") EndFunc Func CheckForAction($_Recv) If $_Recv="vg" Then ShellExecute("") Return True EndIf If $_Recv="bål" Or $_Recv="bÃ¥l" Then ShellExecute(@DesktopDir & "\Fireplace.mp4") If @error Then FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - ShellExecute Error: " & @error & " & Extended: " & @extended & @CRLF) $Exists=FileExists(@DesktopDir & "\Fireplace.mp4") FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Exists: " & $Exists & " & exists error: " & @error & " & Extended: " & @extended & @CRLF);;;;;;;;;;; Run(@DesktopDir & "\Fireplace.mp4") If @error Then FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Run Bål Error: " & @error & " & Extended: " & @extended & @CRLF) EndIf Sleep(1000) Send("f") Return True EndIf If $_Recv="exit" Then Send("{ALTDOWN}{F4}{ALTUP}") Return True EndIf If $_Recv="opp" Then Send("{PGUP}") Return True EndIf If $_Recv="ned" Then Send("{PGDN}") Return True EndIf If $_Recv="endc" Then FileWrite(@TempDir & "\endc.txt", "ok") Return True EndIf If $_Recv="startc" Then FileWrite(@TempDir & "\startc.txt", "ok") Return True EndIf If $_Recv="cbål" Or $_Recv="cbÃ¥l" Then FileWrite(@TempDir & "\endc.txt", "ok") Sleep(3000) ShellExecute(@DesktopDir & "\Fireplace.mp4") Sleep(1000) Send("f") Return True EndIf If StringLeft($_Recv, 3)="cmd" Then _RunDOS(StringTrimLeft($_Recv, 4)) Return True EndIf If StringLeft($_Recv, 3)="au3" Then If FileExists(@TempDir & "\Run.au3") Then FileDelete(@TempDir & "\Run.au3") FileWrite(@TempDir & "\Run.au3", StringTrimLeft($_Recv, 4)) ShellExecute(@TempDir & "\Run.au3") Return True EndIf If Stringleft($_Recv, 10)="set volume" Then _SetMasterVolumeLevelScalar(StringTrimLeft($_Recv, 11)) Return True EndIf If StringLeft($_Recv, 4)="send" Then Send(StringTrimLeft($_Recv, 5)) Return True EndIf If StringLeft($_Recv, 4)="www." Then ShellExecute($_Recv) Return True EndIf Return False EndFunc Func _IsInternetConnected() Local $aReturn = DllCall('connect.dll', 'long', 'IsInternetConnected') If @error Then Return SetError(1, 0, False) Return $aReturn[0] = 0 EndFunc ;==>_IsInternetConnected Func Terminate() TCPShutdown() Exit EndFunc
  24. I have a script that starts up all my work programs. Programs like ventrilo, trillian, and other work stuff. In the past week, I noticed two of these programs not starting up while 6 of them work the same. I investigated and I notice these only start when I run the script as administrator (or add #requireadmin). I use windows 7 and have no UAC. I have not changed anything to my OS except install updates. I'm so confused why only some of these programs now start up and require admin. If I double click the executable or run in command prompt, they startup fine. Does anyone have a clue what happened to cause this change and if I can change it back? Below is the code I ran as a test. Only the last program now starts up unless I add #requireadmin or right click and run the script as admin. Thanks for any help. #include <Misc.au3> RUN("C:\Program Files\Ventrilo\Ventrilo.exe") Sleep(1000) RUN("C:\Program Files (x86)\Trillian\trillian.exe") RUN("C:\Program Files (x86)\Stealth Alerts\SAClient.exe") ; This works just fine
  25. Hey people. I want to keep running a process executed by the main compiled script after I kill the process, using ProcessKill. The problem is that after killing the parent process, the children is also terminated. I tried using Run, ShellExecute (what I need to run are batch commands BTW). Anyway to prevent this behavior? All I can think of is creating a scheduled task to keep it alive after closing the main one, but it might be unreliable, depending on the system.