barby
August 15, 2008, 9:01am
#1
Hi
Is there a simple way to interact with the GUI of a WPF/Winforms
application?
I’ll clarify a little what I would like to achieve:
when you start a console session with an environment loaded you could
potentially type the following lines in there
require ‘config/boot’
start_wpf_application
System::Windows::Application.current.main_window.my_panel.children.add
Wpf.build(TextBox, :text => “Very important placeholder text”)
That last line would then add a textbox to the panel while the
application
is running.
I could probably use threading to achieve this or different appdomains
maybe.
any thoughts?
Cheers
Ivan
barby
August 15, 2008, 4:46pm
#2
Running in a separate thread is what you probably want to do.
There’s an IronPython sample that does something like this for WinForms
– it’s called winforms.py and lives in the tutorial directory.
Unfortunately, it looks like it depends on some IronPython-specific
functionality in the command line – but it wouldn’t be too hard to add
something similar to IronRuby.
From: [email protected]
[mailto:[email protected] ] On Behalf Of Ivan Porto
Carrero
Sent: Friday, August 15, 2008 12:01 AM
To: [email protected]
Subject: [Ironruby-core] Interacting with a WPF/Winforms application
Hi
Is there a simple way to interact with the GUI of a WPF/Winforms
application?
I’ll clarify a little what I would like to achieve:
when you start a console session with an environment loaded you could
potentially type the following lines in there
require ‘config/boot’
start_wpf_application
System::Windows::Application.current.main_window.my_panel.children.add Wpf.build(TextBox, :text => “Very important placeholder text”)
That last line would then add a textbox to the panel while the
application is running.
I could probably use threading to achieve this or different appdomains
maybe.
any thoughts?
Cheers
Ivan
barby
August 16, 2008, 9:38pm
#3
FWIW, the easiest way is to rename the exe to dll,(btw, is there a
reason we
can’t require exes?) and then call “Thread.new { Program.main args }”