[#34722] cgi.rb の form の挙動 — FUJIOKA Takeyuki <fujioka@...>
藤岡です。
18 messages
2002/04/02
[#34754] 続: cgi.rb の form の挙動
— FUJIOKA Takeyuki <fujioka@...>
2002/04/03
藤岡です。
[#34755] Re: 続: cgi.rb の form の挙動
— Wakou Aoyama <wakou@...>
2002/04/03
青山です。
[#34758] Re: 続: cgi.rb の form の挙動
— FUJIOKA Takeyuki <fujioka@...>
2002/04/03
藤岡です。
[#34759] Re: 続: cgi.rb の form の挙動
— Wakou Aoyama <wakou@...>
2002/04/03
青山です。
[#34769] Re: 続: cgi.rb の form の挙動
— FUJIOKA Takeyuki <fujioka@...>
2002/04/04
藤岡です。
[#34724] 「たのしい Ruby 」 — Shin-ichiro HARA <sinara@...>
原(信)です。
18 messages
2002/04/02
[#34728] Re: 「たのしい Ruby 」
— matz@... (Yukihiro Matsumoto)
2002/04/02
まつもと ゆきひろです
[#34746] Re: 「たのしい Ruby 」
— TAKAHASHI Masayoshi <maki@...>
2002/04/02
高橋征義です。
[#34752] Re: 「たのしい Ruby 」
— Shin-ichiro HARA <sinara@...>
2002/04/03
原(信)です。
[#34763] Re: 「たのしい Ruby 」
— TAKAHASHI Masayoshi <maki@...>
2002/04/04
高橋征義です。
[#34730] RubyUnit: I want to test a message of an exception with assert_exception(){}. — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
7 messages
2002/04/02
[#34732] Re: RubyUnit: I want to test a message of an exception with assert_exception(){}.
— nobu.nakada@...
2002/04/02
なかだです。
[#34735] Re: RubyUnit: I want to test a message of an exception with assert_exception(){}.
— Koji Arai <JCA02266@...>
2002/04/02
新井です。
[#34771] 用語集 super の問題 — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
7 messages
2002/04/04
[#34820] libplot - Bus Error on Solaris 8 — KATAYAMA Toshiaki <katayama@...>
Solaris 8 の上で ruby-libplot-0.0.5 + plotutils-2.4.1 を使いたいと
4 messages
2002/04/04
[#34835] module_function([name ... ]) — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
10 messages
2002/04/06
[#34842] [ann] Web 家計簿(β版)リリース — 堀川 久 <vzw00011@...>
こんにちは。
18 messages
2002/04/07
[#34869] Re: [ann] Web 家計簿(β版)リリース
— Nobuhide Kanagawa <nobuhide@...>
2002/04/11
こんばんわ!
[#34885] creating a scope / anonymous module — Takaaki Tateishi <ttate@...>
立石です.
38 messages
2002/04/13
[#34888] Re: creating a scope / anonymous module
— Koji Arai <JCA02266@...>
2002/04/13
新井です。
[#34891] Re: creating a scope / anonymous module
— nobu.nakada@...
2002/04/14
なかだです。
[#34892] Re: creating a scope / anonymous module
— Takaaki Tateishi <ttate@...>
2002/04/14
At Sun, 14 Apr 2002 18:00:12 +0900,
[#34894] Re: creating a scope / anonymous module
— nobu.nakada@...
2002/04/14
なかだです。
[#34896] Re: creating a scope / anonymous module
— Takaaki Tateishi <ttate@...>
2002/04/14
At Sun, 14 Apr 2002 21:08:47 +0900,
[#34899] Re: creating a scope / anonymous module
— matz@... (Yukihiro Matsumoto)
2002/04/15
まつもと ゆきひろです
[#34901] Re: creating a scope / anonymous module
— Takaaki Tateishi <ttate@...>
2002/04/15
At Mon, 15 Apr 2002 09:51:05 +0900,
[#34902] Re: creating a scope / anonymous module
— matz@... (Yukihiro Matsumoto)
2002/04/15
まつもと ゆきひろです
[#34903] Re: creating a scope / anonymous module
— Takaaki Tateishi <ttate@...>
2002/04/15
At Mon, 15 Apr 2002 13:53:53 +0900,
[#34904] Re: creating a scope / anonymous module
— matz@... (Yukihiro Matsumoto)
2002/04/15
まつもと ゆきひろです
[#34910] Re: creating a scope / anonymous module
— Takaaki Tateishi <ttate@...>
2002/04/15
At Mon, 15 Apr 2002 15:07:57 +0900,
[#34911] Re: creating a scope / anonymous module
— matz@... (Yukihiro Matsumoto)
2002/04/15
まつもと ゆきひろです
[#34913] Re: creating a scope / anonymous module
— Takaaki Tateishi <ttate@...>
2002/04/15
At Mon, 15 Apr 2002 17:47:00 +0900,
[#34923] Re: creating a scope / anonymous module
— Takaaki Tateishi <ttate@...>
2002/04/16
立石です.
[#34924] Re: creating a scope / anonymous module
— matz@... (Yukihiro Matsumoto)
2002/04/16
まつもと ゆきひろです
[#34897] icc でコンパイルできない — rubikitch <rubikitch@...>
るびきちです。
7 messages
2002/04/14
[#34921] ruby-1.6.7 got SIGILL on Debian/sparc (with patch) — ryu1 <ryu1@...>
はじめまして。
6 messages
2002/04/16
[#34943] Thread by callcc — Shin-ichiro HARA <sinara@...>
原です。
9 messages
2002/04/18
[#34958] windows 版 ruby でシステムコマンドが動かない — "jazzski _comp" <jazzski_comp@...>
はじめてrubyを使うのですが、windows版(cygwin版1.6.1)で下記のように
12 messages
2002/04/23
[ruby-list:34780] win32api getdibits (long)
From:
"Norman Makoto Su" <normsu@...>
Date:
2002-04-04 06:12:56 UTC
List:
ruby-list #34780
ノーマンです。始めまして。私の日本語はあまり得意ではありませんが、よろしくお願い
します。
どなたかWin32APIのGetDIBitsの機能を利用したことがありませんか? GetDIBitsで、デス
クトップのScreenShotを撮りたいんです。ウェッブで調べると、
http://www.fortunecity.com/skyscraper/windows/364/scrncapt.html(参照してくださ
い)のページにScreenShotを撮るコードがあって、そのコードをRubyに変換しようとしま
したが、なかなかうまく動かせません。
BitBltの呼びまで、正しいと思いますが、その後、どのようにしてGetDIBitsを
lpvpxldataにデスクトップのピクセルを書き込ませるのを分かりません。このプログラム
を実行し、lpvpxldataは""(空白String)の状態です。
hpxldata = GlobalAlloc.call(GMEM_FIXED, screenWidth * screenHeight * 3)
lpvpxldata = GlobalLockI.call(hpxldata)
bmInfo = [40, screenWidth, screenHeight, 1, 24, 0, 0, 0, 0, 0,
0].pack('LLLIILLLLLL')
bmFileHeader = [19778, (screenWidth * screenHeight * 3) + 40 + 14, 0, 0,
54].pack('ILIIL')
GetDIBits.call(hmemDC, hmemBM, 0, screenHeight, lpvpxldata, bmInfo,
DIB_RGB_COLORS)
File::open(filename, "w") { |bitmap|
bitmap.print(bmFileHeader)
bitmap.print(bmInfo)
bitmap.print(lpvpxldata)
}
以下に全てのコードを貼り付けておきました。Win32APIが詳しい人を手伝ったら嬉しいで
す。では、
--
Norman Su
--------code--------
SelectObject = Win32API.new('gdi32', 'SelectObject', ['L', 'L'], 'L')
BitBlt = Win32API.new('gdi32', 'BitBlt', ['L'] * 9, 'L')
GlobalAlloc = Win32API.new('kernel32', 'GlobalAlloc', ['L', 'L'], 'L')
GlobalLock = Win32API.new('kernel32', 'GlobalLock', ['I'], 'P');
GlobalLockI = Win32API.new('kernel32', 'GlobalLock', ['I'], 'I');
GetDIBits = Win32API.new('gdi32', 'GetDIBits', 'LLLLPPL', 'L')
GlobalUnlock = Win32API.new('kernel32', 'GlobalUnlock', ['L'], 'L');
GlobalFree = Win32API.new('kernel32', 'GlobalFree', ['L'], 'L');
DeleteObject = Win32API.new('gdi32', 'DeleteObject', ['L'], 'L');
DeleteDC = Win32API.new('gdi32', 'DeleteDC', ['L'], 'L');
ReleaseDC = Win32API.new('user32', 'ReleaseDC', ['L', 'L'], 'L');
HORZRES = 8
VERTRES = 10
SRCCOPY = 0xCC0020
GMEM_FIXED = 0
GMEM_MOVEABLE = 0x0002
DIB_RGB_COLORS = 0
GHND = 0x40
GPTR = 0x42
def screenshot(filename='test.bmp')
hScreenDC = GetWindowDC.call(0)
hmemDC = CreateCompatibleDC.call(hScreenDC)
screenWidth = GetDeviceCaps.call(hScreenDC, HORZRES)
screenHeight = GetDeviceCaps.call(hScreenDC, VERTRES)
hmemBM = CreateCompatibleBitmap.call(hScreenDC, screenWidth, screenHeight)
SelectObject.call(hmemDC, hmemBM)
BitBlt.call(hmemDC, 0, 0, screenWidth, screenHeight, hScreenDC, 0, 0,
SRCCOPY)
hpxldata = GlobalAlloc.call(GMEM_FIXED, screenWidth * screenHeight * 3)
lpvpxldata = GlobalLockI.call(hpxldata)
bmInfo = [40, screenWidth, screenHeight, 1, 24, 0, 0, 0, 0, 0,
0].pack('LLLIILLLLLL')
bmFileHeader = [19778, (screenWidth * screenHeight * 3) + 40 + 14, 0, 0,
54].pack('ILIIL')
GetDIBits.call(hmemDC, hmemBM, 0, screenHeight, lpvpxldata, bmInfo,
DIB_RGB_COLORS)
File::open(filename, "w") { |bitmap|
bitmap.print(bmFileHeader)
bitmap.print(bmInfo)
bitmap.print(lpvpxldata)
}
GlobalUnlock.call(hpxldata)
GlobalFree.call(hpxldata)
DeleteObject.call(hmemBM)
DeleteDC.call(hmemDC)
ReleaseDC.call(0, hScreenDC)
end