`

【转】ruby 调用其他函数

    博客分类:
  • Ruby
 
阅读更多
1、获取其他程序的运行结果

x= system("date")

x='date'

x=%x{date}



2、调用其他程序,同时把执行权移交给被调程序

exec "shutdown -s -t 0"

puts "this will never be displayed!"



3、同时运行两个程序

forking就是值程序的实例进程复制自身,导致该程序的两个进程并发运行。

if fork.nil?<pre class="ruby" name="code">if fork.nil?
   exec "ruby some_other_file.rb"
end

puts "this ruby script now run!"


4、与另一个程序进行交互

5、安全级别$SAFE,在drb中有使用过该特性,防止客户端调用server服务执行非法操作

6、使用window的API
[code = "ruby"]
require "Win32API"

title = "My Application"
text = "Hello world"
Win32API.new('user32','MessageBox' , %w{L P P L},'I').call(0,text,title,0)

7、控制windows程序

对windows的自动化访问是通过ruby的WIN32OLE程序库实现的,例如

require "Win32API"
require "win32ole"

title = "My Application"
text = "Hello world"
result = Win32API.new('user32','MessageBox' , %w{L P P L},'I').call(0,text,title,1)

case result 
when 1
  puts "clicked OK"
when 2
  puts "clicked cancel!"
else
  puts "clicked something else!"
end

web_browser = WIN32OLE.new('InternetExplorer.Application')
web_browser.visible = true
web_browser.navigate('http://www.baidu.com')


转自: http://blog.csdn.net/zhanggs007/article/details/7606525
分享到:
评论

相关推荐

    Ruby-PyCall从Ruby语言调用Python函数

    Ruby-PyCall是一个非常有用的库,它允许Ruby程序员无缝地调用Python的函数和模块,极大地扩展了Ruby的生态系统。这个库使得两个语言之间的交互变得简单而高效,特别是在需要利用Python的强大科学计算或数据处理能力...

    从Ruby语言调用Python函数-Ruby开发

    PyCall:从Ruby语言中调用Python函数该库提供了直接从Ruby语言中调用Python并与之进行部分互操作的功能。 您可以在PyCall中导入任意Python模块:从Ruby语言调用Python函数该库提供了直接从Ruby语言调用Python并与之...

    pycall.rb:从Ruby语言调用Python函数

    您可以将任意Python模块导入Ruby模块,通过从Ruby到Python的自动类型转换来调用Python函数。 支持的Ruby版本 pycall.rb支持Ruby 2.3或更高版本。 支持的Python版本 pycall.rb支持Python 2.7或更高版本。 请注意,...

    ruby-rust-interop:展示在 Ruby 运行时中从 Rust 调用基于数字的函数

    ruby-rust-互操作展示在 Ruby 运行时中从 Rust 调用基于数字的函数我希望这些例子能帮助你使用 Rust 设置 Ruby! 所有这些示例都在使用 Ruby 2.1.6 和 Rust 1.0.0-beta.4 的 Windows 上进行了测试如果你克隆 repo,...

    透视Ruby 1.9的Lambda函数

    《Ruby 1.9中的Lambda函数详解》 Ruby语言的一大魅力在于其Block功能,它使得编写简洁、可复用的算法变得轻而易举,...对于熟悉其他语言的开发者来说,理解并熟练运用Ruby的Lambda函数是深入掌握Ruby的关键步骤之一。

    函数式-确定性-Ruby取笑___下载.zip

    在Ruby中,任何不修改实例变量或全局变量,不调用有副作用的方法的函数都可视为纯函数。 2. **高阶函数**:高阶函数可以接受一个或多个函数作为参数,或者返回一个函数作为结果。Ruby中的Proc和Lambda就是很好的...

    Ruby-Functo是ruby中的可组合方法对象

    4. **部分应用**:部分应用是柯里化的一种变体,它允许你预先设置函数的部分参数,然后得到一个新的函数,这个新函数在调用时只需要提供剩余的参数。 5. **函数工厂**:Functo可以创建函数工厂,这是一种可以根据...

    Ruby Reference Sheet.pdf

    - **表达式分隔符:** Ruby中的表达式可以通过换行或分号来分隔,但其他空白字符通常不影响解析。 - **变量类型:** Ruby中变量没有类型,而值有类型。变量的类型由其指向的对象的类决定。变量无需显式声明类型。 #...

    learning-ruby.

    3. **函数与方法**:Ruby中的函数称为方法,可以定义全局方法或类方法。了解如何定义、调用和传递参数是学习Ruby的重要部分。 4. **面向对象编程**:Ruby是一种纯面向对象的语言,每个值都是一个对象,每种类型都是...

    ruby中文教程,从基础到深入的让你学习ruby

    此外,Ruby的`send`方法可以动态调用方法,`method_missing`可以捕获未定义的方法调用。 Ruby的Gem库是其生态系统的一大亮点,提供大量的第三方库和框架,如Rails(一个流行的Web开发框架)、Sinatra(轻量级Web...

    Ruby元编程第二版中文

    1. **方法定义与调用**:Ruby允许在运行时定义和修改方法,如`define_method`函数可以动态创建方法,而`send`或`__send__`则用于在运行时调用方法。 2. **类与模块操作**:Ruby的`Class.new`和`Module.new`可以用来...

    实例讲解Ruby中的钩子方法及对方法调用添加钩子

    Class#inherited方法也是这样一个钩子方法,当一个类被继承时,Ruby会调用该方法。默认情况下,Class#inherited什么都不做,但是通过继承,我们可以拦截该事件,对感兴趣的继承事件作出回应。 class String def ...

    Ruby In a Nutshell

    - Ruby中的函数定义使用`def`关键字,可以接收参数,并支持默认值、可变数量的参数和块参数。 - 方法调用可以使用点操作符或括号,根据上下文自动推断。 4. **类和对象** - Ruby是纯面向对象的语言,一切皆为...

    Ruby编程Ruby Programming

    根据提供的文件信息,我们将深入探讨与“Ruby编程Ruby Programming”这一主题相关的几个核心知识点。这本面向初学者和高级读者的指南旨在全面介绍Ruby编程语言的基础及其高级特性,因此我们将从多个角度来解析这些...

    ruby语言帮助文当

    这个版本带来了许多性能改进和新特性,例如引入了“关键字参数”来增强函数调用的清晰度,以及“二进制字符串”类型,使得处理二进制数据更加便捷。此外,Ruby 2.0还引入了垃圾回收的改进,提升了程序运行效率。 ...

    如何利用Ruby简单模拟Lambda演算详解

    在Ruby中,可以先调用一个函数,再将结果作为参数传递给另一个函数,如`func1.call(arg).send(func2)`。 4. **λ抽象**:在Lambda演算中,λ抽象用于定义新的函数。在Ruby中,`-&gt;`或`Proc.new`可以用来创建这种抽象...

    《Ruby用户指南》中文版

    Ruby语言的基础部分包括变量、常量、数据类型(如整型、浮点型、字符串、数组、哈希等)、控制结构(如条件语句、循环)、函数定义与调用、异常处理等。Ruby的面向对象特性非常突出,类、对象、继承、模块和 Mixin ...

    Ruby新手学习书(Ruby语言中文教程)和Rails_4_days

    3. **函数与方法**:了解如何定义和调用函数,以及Ruby中的块、 Proc 和 Lambda 的使用。 4. **面向对象编程**:Ruby是一种纯面向对象的语言,你将学习类、对象、继承、模块、封装和多态等核心概念。 5. **异常...

    ruby元编程.pdf

    2. 闭包(Closures):在Ruby中,闭包是匿名函数的概念,它能够捕获定义时的上下文环境。闭包是元编程中不可或缺的元素,它允许开发者在不同的上下文之间传递代码块。 3. 领域特定语言(DSLs)的定义:领域特定语言...

Global site tag (gtag.js) - Google Analytics