Tag: winapi

使用Ruby的win32ole库在.doc中插入图像

正如标题所示,我试图找到如何使用ruby Win32Ole api在MS Word(.doc文件)中插入图像。 我已经尝试了Range Object的函数InsertFile但看起来,它只是用于在我们的文件中插入其他doc文件。 有谁知道与此有关的任何事情。 这将非常有帮助。

用Fiddle将Ruby复制到剪贴板

我试图用Fiddle模块将字符串复制到剪贴板,但此代码失败。 require’fiddle’; user32 = Fiddle.dlopen ‘USER32.dll’; $openClipboard = Fiddle::Function.new(user32[‘OpenClipboard’],[Fiddle::TYPE_INT],Fiddle::TYPE_INT); $closeClipboard = Fiddle::Function.new(user32[‘CloseClipboard’],[],Fiddle::TYPE_INT); $emptyClipboard = Fiddle::Function.new(user32[‘EmptyClipboard’],[],Fiddle::TYPE_INT); $setClipboardData = Fiddle::Function.new(user32[‘SetClipboardData’],[Fiddle::TYPE_INT,Fiddle::TYPE_VOIDP],Fiddle::TYPE_VOIDP); class Clipboard def initialize @closed = false; puts “openClipboard : #{$openClipboard.call(0)}”; puts “emptyClipboard : #{$emptyClipboard.call}”; end def data=(d) return ‘Cannot write to closed clipboard’ if @closed; puts “setClipboardData : #{$setClipboardData.call(1,d)}”; # 1 is CF_TEXT end def close […]

在Win32上,如何使用Perl,Python或Ruby(或C)检测是否按下了Left Shift或Right ALT?

在Win32上,我想知道如何使用Perl,Python或Ruby(甚至在C)中检测是否按下了Left Shift或Right ALT? 不仅适用于当前窗口,还适用于整体环境。 示例:当我输入文档时,我可以按下右键ALT启动用Ruby编写的音乐播放器,然后再次按下右键ALT,它可以暂停或停止程序。 谢谢。

使用Perl,Python或Ruby,如何编写程序以在预定时间“点击”屏幕?

使用Perl,Python或Ruby,我可以编写一个程序,可能是调用Win32 API,在预定的时间点击屏幕,就像每1小时一样? 细节: 这是为了实验 – 点击对Flash内容以及屏幕上的任何元素都有效吗? 如果程序可以记录点击需要在屏幕上显示的位置,或者至少在屏幕上绘制一个红点以显示点击的位置,那就太好了。 点击是针对窗口还是只是屏幕上的一般像素? 如果弹出一些病毒扫描程序覆盖点击发生的地方怎么办? (尽管如果程序首先点击窗口的空白区域,那么它可以首先将该窗口带到前台)。 顺便说一句,Grease Monkey或任何Firefox插件都可以用来做这个吗?

如何使用Windows上的Ruby捕获屏幕的一部分?

而不是使用某些第三方应用程序,我想在Ruby中编写一个应用程序,在调用时,将捕获全屏并将其保存在c:\ screenshot \ snap000001.png中 图形包很容易,但是如何从全屏捕获区域以便保存? 该程序将由某些热键调用,例如在按下CTRL-PrtScn时将其设置为运行,或者按CTRL-CTRL(左右控制)或ALT-ALT。

Win32的FindWindow()可以找到一个具有确切标题的特定窗口,但是“try.bat – Notepad”呢?

Win32的FindWindow()可以找到一个标题为“Untitled – Notepad”的窗口,但如果我只是想找到一个记事本窗口但不知道它是“try.bat – Notepad”还是其他一些文件名怎么办?标题栏? 似乎如果标题是以NULL值传递的,那么将返回任何窗口,但只返回一个窗口,因此无法使用正则表达式grep标题。 (我使用Ruby的Win32API这样做)

如何编写Perl,Python或Ruby程序来改变Windows上另一个进程的内存?

我想知道是否可以使用Perl,Python或Ruby来编写程序,以便它在另一个进程的内存中查找0x12345678(可能是堆,对于数据和代码数据)然后如果找到它,则更改它到0x00000000? 它类似于Cheat Engine ,可以在Windows上执行类似的操作。

什么是Ruby Win32API参数| 如何传递空指针?

我知道以下内容: ‘L’ – 很长 ‘P’ – 指针 ‘I’ – 整数 ‘V’ – 无效 我的问题是,当我执行API调用时,我无法传递空指针。 例如: [‘L’, ‘P’, ‘L’] -> api.call(0, nil, 0) :: ArgumentError: Null pointer given 。 我的问题是:是否有更多我不知道的参数类型以及如何将空指针作为方法参数传递? 背景 我一直在互联网上搜索基于WinForms的应用程序的原生Ruby编程示例。 为了简化编码(试图避免使用wxRuby,以及.NET风扇),我已经考虑过将Ruby添加到Ruby中称为IronRuby,但我首先希望能够首先在纯Ruby中进行显式编码。 现在,我已经成功地实现了我在user32.dll对象中测试过的大多数地址,例如: api = Win32API.new(‘user32’, ‘MessageBox’, [‘L’, ‘P’, ‘P’, ‘L’], ‘I’) # or api = Win32API.new(‘user32’, ‘MessageBeep’, [‘L’], ‘I’) ..但是我不能在没有null参数的情况下执行CreateWindow或CreateWindowEx 。 如果它有任何帮助,我已经在Python中找到了如何做到这一点 (在WinAPI下)。 使用Win32API:msdn.microsoft.com/en-us/library/ff381397(v=VS.85).aspx […]

Ruby win32 api接口

我需要在ruby中访问win32库的一些函数。 我在网上找到了关于Win32API类的非常稀少的信息,所以我在这里问。 我知道你可以这样做: function = Win32API.new(‘user32′,’MessageBox’,[‘L’, ‘P’, ‘P’, ‘L’],’I’) 但我似乎无法使用当前的win32绑定调用此函数: http://msdn.microsoft.com/en-us/library/bb762108%28VS.85%29.aspx 问题在于它的原型: UINT_PTR SHAppBarMessage( DWORD dwMessage, PAPPBARDATA pData ); 我将能够使用win32 ruby​​绑定来获取返回类型和第一个参数,但是,第二个参数需要一个结构。 结构的定义如下: typedef struct _AppBarData { DWORD cbSize; HWND hWnd; UINT uCallbackMessage; UINT uEdge; RECT rc; LPARAM lParam; } APPBARDATA, *PAPPBARDATA; 我尝试使用两者来定义这个api方法: api = Win32API.new(‘shell32′,’SHAppBarMessage’,[‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’],’I’) 和 api […]