Jump to content

Recommended Posts

Fortitude
Posted (edited)

Hello!
I have made a program, that opens a folder, and then store the path ("C:\programFiles\etc") in a variable.
Then i need to open the command panel as administrator, and write  in the stored path, and some other text.

Can i somehow instantly copypaste the text i needed, instead of writing in the command panel with the Send commands?
 

#RequireAdmin
#include <MsgBoxConstants.au3>
    Global Const $sMessage = "Select a folder"

    ; Display an open dialog to select a file.
    Global $sFileSelectFolder = FileSelectFolder($sMessage, "")
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "", "Nem választottál ki mappát!")
        Exit
     EndIf
   Global $Tiff_path =  $sFileSelectFolder & "\TiffChecker_2_32"

   FileCopy( "C:\TiffChecker_2_32.exe" , $sFileSelectFolder)
   $CMD = $Tiff_path & " " & $sFileSelectFolder & " /s/d"
   Run("C:\WINDOWS\system32\cmd.exe")
   WinWaitActive("C:\WINDOWS\system32\cmd.exe")
   Send($CMD)
   Sleep(1000)
   Send("{ENTER}")
   sleep(1000)
   MsgBox(0,"Press OK", "Press OK to continue")
   FileCopy("C:\Tiffchecker.txt", $sFileSelectFolder)

Also, how do i close the command panel, when the program is finished? (usually its under 1 second, so after the send i just put a Sleep function there)

Edited by Fortitude

Share this post


Link to post
Share on other sites
careca

In theory you can use the clipboard functions, but you can also send without delay..


Opt("SendKeyDelay", 0) ;Default is 5 milliseconds

What do you mean by command panel?


Spoiler

Paster - Main function is to paste text, but has more functions. (No longer mantained, switched to String Trigger)

Renamer - Rename files and folders, remove portions of text from the filename etc.

GPO Tool - Export/Import Group policy settings.

BeatsPlayer - Music player.

Params Tool - Right click an exe to see it's parameters or execute them.

String Trigger - Triggers pasting text or applications or internet links on specific strings.

Inconspicuous - Hide files in plain sight, not fully encrypted.

Regedit Control - Registry browsing history, quickly jump into any saved key.

Time4Shutdown - Write the time for shutdown in minutes.

Power Profiles Tool - Set a profile as active, delete, duplicate, export and import.

Firefox Profile Backup - Backup/restore previously saved profile.

Finished Task Shutdown - Shuts down pc when specified window/Wndl/process closes.

NetworkSpeedShutdown - Shuts down pc if download speed goes under "X" Kb/s.

IUIAutomation - Topic with framework and examples

Au3Record.exe

Share this post


Link to post
Share on other sites
TurionAltec

Is there some reason you can't just run your executable directly, instead of very clunkily automating cmd.exe?

 

#RequireAdmin
#include <MsgBoxConstants.au3>
    Global Const $sMessage = "Select a folder"

    ; Display an open dialog to select a file.
    Global $sFileSelectFolder = FileSelectFolder($sMessage, "")
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "", "Nem választottál ki mappát!")
        Exit
     EndIf
   Global $Tiff_path =  $sFileSelectFolder & "\TiffChecker_2_32"

   FileCopy( "C:\TiffChecker_2_32.exe" , $sFileSelectFolder)
   $CMD = $Tiff_path & " " & $sFileSelectFolder & " /s/d"
   RunWait($CMD);Run Executable directly
   MsgBox(0,"Press OK", "Press OK to continue")
   FileCopy("C:\Tiffchecker.txt", $sFileSelectFolder)

 

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

    • ternal
      By ternal
      Hi,
      The FAQ proposed as a solution to keys getting stuck  to do this command
      ControlSend("", "", "", "text", 0) However this sends "text" to the last active control if I am not mistaken.I have tried this with
      controlsend("", "", "", "{altup}{shiftup}{ctrlup}", 0) This is already a lot better but still fails 1/10
      I cannot allow the script to send "text" to the last active control, and its a bit silly to let it send to somewhere where its harmless no?
      Are there any other methods of unstucking keys?
    • Docfxit
      By Docfxit
      I would like to know if there is a way to make the send cmd send characters when using
      Graphical AutoIt Debugger By Stumpii,
      If Not WinActive("Setup - UltraVNC","Setup is preparing to install") Then WinActivate("Setup - UltraVNC","Setup is preparing to install") WinWaitActive("Setup - UltraVNC","Setup is preparing to install") Send("{ALTDOWN}f{ALTUP}") ;Finish The debugger when using step mode will execute the Send cmd line but the window doesn't receive the input.
      Thanks,
      Docfxit
    • PoojaKrishna
      By PoojaKrishna
      Hi friends,
      I'm trying to send SHIFTDOWN, to keep the Shift key pressed until I close the program or releases the key.
      Send ( "{SHIFTDOWN}") sleep(100) $text = InputBox("Shift key down", "Shift key is down. Type something: ") $ret = Msgbox(0,"", "Press and release shift key manually and select [Ok] to continue") $text = InputBox("Shift key up", "Shift key is released manually, now type something: ") Send ( "{SHIFTDOWN}") sleep(100) $text = InputBox("Shift key down Agin", "Shift key is pressed again, now type something: ") In the above program sequence,
      1. Send SHIFTDOWN from program, Works as we type in the text are in Capital letters
      2. Manually presses and releases the SHIFT button. SHIFT key is released as when we type, text is in small letters only.
      3. Again send SHIFTDOWN from program, but not working. When we type the letters are in small letters.
       
      If we send a SHIFTUP  before  sending the SHIFTDOWN again, then it is working correctly and the text appears in capital letters only. Can any one explain why this happens?
      Send ( "{SHIFTDOWN}") sleep(100) $text = InputBox("Shift key down", "Shift key is down. Type something: ") $ret = Msgbox(0,"", "Press and release shift key and select [Ok] to continue") $text = InputBox("Shift key up", "Shift key is released manually, now type something: ") Send ( "{SHIFTUP}") sleep(100) Send ( "{SHIFTDOWN}") sleep(100) $text = InputBox("Shift key down", "Shift key is pressed, now type something: ")  
      Thank you.
    • TheDcoder
      By TheDcoder
      Hello everyone, long time since I made a post in the H&S sub-forum
      I am working on a project where in a situation I would have to hold down an arrow key and release it in another statement/command, however when I wrote the code it isn't working exactly like I thought it would. Here is an example:
      Send("{UP down}") Sleep(10000) Send("{UP up}") This should hold the up arrow key for 10 seconds before releasing it again, but when I run this code the cursor in SciTE moves up only once
      If I hold the up arrow manually for 10 seconds it "repeats" and the cursor moves up several times until I release the key... Is this a known limitation of Send? Is there any other way I can accomplish this?
      Thanks for all the help and feedback in advance! TD
    • nacerbaaziz
      By nacerbaaziz
      Hello my friends
      I have an inquiry after your permission
      I found a function to get the special line commands for any operation
      It requires the name of the process to be searched
      I want to use it to know the process
      Is this possible with this function
      Here is the code
       
      Func commandLineGet($proc, $strComputer=".")
      dim $array[1]
      local $ArrayNumber
      local $oWMI = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
      local $oProcessColl = $oWMI.ExecQuery("Select * from Win32_Process where Name= " & '"'& $Proc & '"')
      local $Process
      For $Process In $oProcessColl
      $Process = $Process.Commandline
          ReDim $Array[UBound($Array)+1]
      $ArrayNumber = UBound($Array)-1
      $array[$ArrayNumber] = $Process
      Next
      $ArrayNumber = UBound($Array)-1
      $array[0] = $ArrayNumber
      return $array
      EndFunc
×