Wow. Seems like an awful lot of work. Why not just use shell to start
IE as any user you want using the Windows "RunAs" command, then attach
to the window?
Two short lines of code.
Lonny Eachus
==========
Marco wrote:
Hi
has anyone had to come up with a way of launching an instance of ie
from within a script but run as another user context?
I tried using cpau and I can launch a browser using a ruby script. I
then run that script using
cpau -u <user> -p <password> -ex "cmd /K \"launchbrowser.rb
<params>"" -enc -file launchbrowser.job
cpau -dec -file launchbrowser.job
whilst this works fine to run the script standalone when I try to run
this script from within a testcase using
puts("Foo1")
exec "cpau -dec -file launchbrowser.job"
puts("Foo2")
the browser launches but the testcase dosen't run through to
completition drops out to cmd prompt as soon as the exec finishes.
the plan was then to use ie.attach to attach to this browser window
I'm hoping someone else has an easier / better idea to do this sort of
thing?
The code below should be a step in the right direction. I have been
using this and expect contribute it to the main watir code base at some
point.
Bret
# based on http://svn.instiki.org/instiki/trunk/test/watir/e2e.rb
# and
http://rubyforge.org/pipermail/wtr-general/2005-November/004108.html
require 'watir'
class IEProcess
def self.start
startup_info = [68].pack('lx64')
process_info = [0, 0, 0, 0].pack('llll')
# TODO: make this portable
startup_command = 'C:\Program Files\Internet Explorer\IEXPLORE.EXE'
result = Win32API.new('kernel32.dll', 'CreateProcess',
'pplllllppp', 'l').
call(
nil,
startup_command,
0, 0, 1, 0, 0, '.', startup_info, process_info)
# TODO print the error code, or better yet a text message
raise "Failed to start IEXPLORE." if result == 0
process_id = process_info.unpack('llll')[2]
puts "Process ID: #{process_id}"
self.new process_id
end
<snip>
|
_______________________________________________
Wtr-general mailing list
Wtr-general@rubyforge.org
http://rubyforge.org/mailman/listinfo/wtr-general