rdp-win32screenshot 0.0.6.3 → 0.0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +3 -0
- data/VERSION +2 -1
- data/lib/win32/screenshot/bitmap_maker.rb +11 -2
- data/lib/win32/util.rb +4 -0
- data/spec/win32_screenshot_spec.rb +5 -3
- data/spec/win32_screenshot_util_spec.rb +6 -1
- data/win32screenshot.gemspec +4 -4
- metadata +4 -4
data/History.rdoc
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
= 0.0.7 2010-08-18
|
2
|
+
* Supports now fully JRuby, 1.9.1 and 1.9.2 MRI!
|
3
|
+
|
1
4
|
= 0.0.6 2010-08-07
|
2
5
|
* Trying to bring window to the foreground more aggressively (Roger Pack)
|
3
6
|
* Added utility class Win32::Screenshot.Util with some helper methods not related directly with taking of the screenshots:
|
data/VERSION
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.7.1
|
2
|
+
|
@@ -42,7 +42,8 @@ module Win32
|
|
42
42
|
[:long], :bool
|
43
43
|
attach_function :set_active_window, :SetActiveWindow,
|
44
44
|
[:long], :long
|
45
|
-
|
45
|
+
attach_function :GetWindowThreadProcessId, [:ulong, :pointer],
|
46
|
+
:uint
|
46
47
|
|
47
48
|
# gdi32.dll
|
48
49
|
attach_function :create_compatible_dc, :CreateCompatibleDC,
|
@@ -62,7 +63,9 @@ module Win32
|
|
62
63
|
attach_function :release_dc, :ReleaseDC,
|
63
64
|
[:long, :long], :int
|
64
65
|
|
65
|
-
|
66
|
+
|
67
|
+
|
68
|
+
|
66
69
|
EnumWindowCallback = FFI::Function.new(:bool, [ :long, :pointer ], { :convention => :stdcall }) do |hwnd, param|
|
67
70
|
searched_window = WindowStruct.new param
|
68
71
|
title = Util.window_title(hwnd)
|
@@ -119,6 +122,12 @@ module Win32
|
|
119
122
|
attach_thread_input(foreground_thread, other_thread, false) unless other_thread == foreground_thread
|
120
123
|
end
|
121
124
|
end
|
125
|
+
|
126
|
+
def get_process_id_from_hwnd hwnd
|
127
|
+
out = FFI::MemoryPointer.new(:uint)
|
128
|
+
GetWindowThreadProcessId(hwnd, out)
|
129
|
+
out.get_uint32(0) # read_uint
|
130
|
+
end
|
122
131
|
|
123
132
|
def capture_all(hwnd, &proc)
|
124
133
|
width, height = Util.dimensions_for(hwnd)
|
data/lib/win32/util.rb
CHANGED
@@ -174,8 +174,10 @@ describe Win32::Screenshot do
|
|
174
174
|
end
|
175
175
|
|
176
176
|
after :all do
|
177
|
-
|
178
|
-
|
179
|
-
|
177
|
+
for name in [/calculator/i, /Notepad/, /Internet Explorer/] do
|
178
|
+
# kill them in a jruby friendly way
|
179
|
+
pid = Win32::Screenshot::Util.window_process_id(Win32::Screenshot::Util.window_hwnd(name))
|
180
|
+
system("taskkill /PID #{pid}")
|
181
|
+
end
|
180
182
|
end
|
181
183
|
end
|
@@ -4,6 +4,8 @@ describe Win32::Screenshot::Util do
|
|
4
4
|
include SpecHelper
|
5
5
|
|
6
6
|
before :all do
|
7
|
+
# should not have any running calculators yet...
|
8
|
+
proc {Win32::Screenshot::Util.window_hwnd("Calculator") }.should raise_exception("window with title 'Calculator' was not found!")
|
7
9
|
@calc = IO.popen("calc").pid
|
8
10
|
wait_for_calculator_to_open
|
9
11
|
@calc_hwnd = Win32::Screenshot::Util.window_hwnd("Calculator")
|
@@ -33,6 +35,9 @@ describe Win32::Screenshot::Util do
|
|
33
35
|
end
|
34
36
|
|
35
37
|
after :all do
|
36
|
-
|
38
|
+
# test our hwnd -> pid method
|
39
|
+
calc_pid = Win32::Screenshot::Util.window_process_id(@calc_hwnd)
|
40
|
+
system("taskkill /PID #{calc_pid}")
|
41
|
+
proc {Win32::Screenshot::Util.window_hwnd("Calculator") }.should raise_exception("window with title 'Calculator' was not found!")
|
37
42
|
end
|
38
43
|
end
|
data/win32screenshot.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{win32screenshot}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jarmo Pertman", "Aslak Helles\303\270y"]
|
12
|
-
s.date = %q{2010-08-
|
12
|
+
s.date = %q{2010-08-18}
|
13
13
|
s.description = %q{Capture Screenshots on Windows with Ruby}
|
14
14
|
s.email = ["jarmo.p@gmail.com", "aslak.hellesoy@gmail.com"]
|
15
15
|
s.extra_rdoc_files = [
|
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.homepage = %q{http://github.com/jarmo/win32screenshot}
|
37
37
|
s.rdoc_options = ["--main", "README.rdoc"]
|
38
38
|
s.require_paths = ["lib"]
|
39
|
-
s.rubygems_version = %q{1.3.
|
39
|
+
s.rubygems_version = %q{1.3.7}
|
40
40
|
s.summary = %q{Capture Screenshots on Windows with Ruby}
|
41
41
|
s.test_files = [
|
42
42
|
"spec/spec_helper.rb",
|
@@ -48,7 +48,7 @@ Gem::Specification.new do |s|
|
|
48
48
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
49
49
|
s.specification_version = 3
|
50
50
|
|
51
|
-
if Gem::Version.new(Gem::
|
51
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
52
52
|
s.add_runtime_dependency(%q<ffi>, [">= 0"])
|
53
53
|
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
54
54
|
s.add_development_dependency(%q<os>, [">= 0"])
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.0.
|
8
|
+
- 7
|
9
|
+
- 1
|
10
|
+
version: 0.0.7.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jarmo Pertman
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-08-
|
19
|
+
date: 2010-08-19 00:00:00 -06:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|