- 论坛徽章:
- 30
|
本帖最后由 shijiang1130 于 2013-05-25 22:52 编辑
- require 'gtk2'
- require 'net/ssh'
- $ssh = ''
- window=Gtk::Window.new
- window.title="xxx"
- window.default_width=300
- output=Gtk::Window.new
- output.title="terminal"
- output.default_width=500
- output.default_height=600
- vbox=Gtk::VBox.new(false,0)
- window.add vbox
- v1=Gtk::TextView.new
- name=v1.buffer
- name.text='root'
- v2=Gtk::TextView.new
- pass=v2.buffer
- pass.text='root'
- v3=Gtk::TextView.new
- host=v3.buffer
- host.text='www.lookdata.cn'
- v4=Gtk::TextView.new
- port=v4.buffer
- port.text='22'
- $v5=Gtk::TextView.new
- $bt = Gtk::Button.new("connect")
- $send = Gtk::Button.new("send command")
- $send.sensitive = false
- $dis = Gtk::Button.new("Disconnect host")
- $dis.sensitive = false
- $bt.signal_connect("button_press_event") {
- $ssh=Net::SSH.start( host.text, name.text, :port => port.text,:password => pass.text )
- $bt.sensitive = false
- $send.sensitive= true
- $dis.sensitive = true
- output.add $v5
- output.show_all
- }
- $send.signal_connect("button_press_event") {
- begin
- result = $ssh.exec!('ls')
- $v5.buffer.text=result
-
- rescue SocketError => e
- connection_failed = true
- puts "SOCKET ERROR: "+e.message
- rescue Net::SSH::AuthenticationFailed
- connection_failed = true
- puts "AUTH ERROR: "+e.message
- rescue Exception => e
- puts "EXCEPTION: "+e.message
- end
- }
- $dis.signal_connect("button_press_event") {
- result = $ssh.close
- $bt.sensitive = true
- $send.sensitive= false
- $dis.sensitive = false
- }
- window.signal_connect('destroy') { Gtk.main_quit }
- vbox.pack_start(v1,true,true,0)
- vbox.pack_start(v2,true,true,0)
- vbox.pack_start(v3,true,true,0)
- vbox.pack_start(v4,true,true,0)
- vbox.pack_start($bt,true,true,0)
- vbox.pack_start($send,true,true,0)
- vbox.pack_start($dis,true,true,0)
- window.show_all
- Gtk.main
复制代码 |
|