Jump to content

Recommended Posts

Posted

Hi

I need ShellExecute to execute a program with admin rights (Run() doesn't work for that), but I'd also need the programs output somehow.. How can I get it?

there's no PID for StdOutRead() and also shell redirection doesn't seem to work:

ShellExecuteWait("prog.exe", "> c:\tmp\test.out 2>&1", @WorkingDir, "runas")

There's nothing written to that file (nor is it created)

Is there a way to achieve that?

Thanks

Matt

Posted

I thought this answer would come and I think you're talking about the RunAs function which WOULD do what I want IF I knew all user's of this world's passwords.

As a matter of fact I need to activate the UAC Prompt, not RunAs a specific user with password, so any Run* Func will not do.

The only way to do it (as also specified by MS TechNet) is using ShellExecute with the (undocumented in the AutoIT docu) "runas" verb which doesn't need a specific username+password on vista/7 but should prompt the user to obtain admin rights

Posted

Now the only option I see here is to create your own IO process between caller and called process.

There might be more than one way, Others might know.

I can only thing of using files to pass information from and to the two processes.

Is that the core problem?

Yes basically it is, I need to get the output of the called program. But since that doesn't seem to be possible in an easy way (and I've got the called program under my control), I guess I'll revert to using files written by the called process itself instead of the more convenient STDOUT like I had it before when using Run*()

Matt

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...