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
on 15.08.2008 09:01
on 15.08.2008 16:46
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: ironruby-core-bounces@rubyforge.org [mailto:ironruby-core-bounces@rubyforge.org] On Behalf Of Ivan Porto Carrero Sent: Friday, August 15, 2008 12:01 AM To: ironruby-core@rubyforge.org 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
on 16.08.2008 21:38
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 }" :)