[#19082] TermIO for ioctl — Shugo Maeda <shugo@...>

前田です。

19 messages 1999/12/01

[#19086] iconv wrapper — nobu.nakada@...

なかだです。

22 messages 1999/12/01
[#19103] Re: iconv wrapper — Hiroshi IGARASHI <igarashi@...> 1999/12/02

いがらしです。

[#19104] Re: iconv wrapper — nobu.nakada@... 1999/12/02

なかだです。

[#19187] Re: iconv wrapper — Hiroshi IGARASHI <igarashi@...> 1999/12/06

いがらしです。

[#19139] 簡易プリプロセッサ epp 0.1 — SASAKI Shunsuke <ele@...17.odn.ne.jp>

どうも。佐々木です。

12 messages 1999/12/03

[#19193] Japanese Regular Expression — Hiroyuki KUROSAKI <noir@...>

はじめまして。黒崎と申します。最近 Ruby を使いはじめました。よろしく

18 messages 1999/12/06
[#19195] Japanese Regular Expression — gotoken@... (GOTO Kentaro) 1999/12/06

In message "[ruby-list:19193] Japanese Regular Expression"

[#19200] Re: Japanese Regular Expression — Hiroyuki KUROSAKI <noir@...> 1999/12/06

gotoken さん、お返事ありがとうございます。

[#19206] Re: Japanese Regular Expression — matz@... (Yukihiro Matsumoto) 1999/12/06

まつもと ゆきひろです

[#19246] 破壊的イテレータ? — Hiroshi Saito <HiroshiSaito@...>

どうも、お世話になっております。サイトウです。

71 messages 1999/12/07
[#19257] Re: 破壊的イテレータ? — Wakou Aoyama <wakou@...> 1999/12/07

青山です。

[#19259] Re: 破壊的イテレータ? — Wakou Aoyama <wakou@...> 1999/12/07

青山です。

[#19278] オブジェクトの代入について — Hiroshi Saito <HiroshiSaito@...> 1999/12/08

サイトウです。

[#19296] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/08

In message "[ruby-list:19278] オブジェクトの代入について"

[#19316] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19325] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19328] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19331] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19337] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19343] Re: オブジェクトの代入について — ogino@... (Ogino Junya) 1999/12/09

荻野ともうします。

[#19351] Re: オブジェクトの代入について — Motomichi Matsuzaki <mzaki@...> 1999/12/09

[#19358] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19366] Re: オブジェクトの代入について — Motomichi Matsuzaki <mzaki@...> 1999/12/10

[#19249] ruby story ? — "Kikutani, Makoto" <kikutani@...>

Maya Stodteつー人からRuby storyについて話を聞きたいのだが、

29 messages 1999/12/07

[#19441] 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

49 messages 1999/12/13
[#19470] Re: 自動翻訳プロジェクト — Wakou Aoyama <wakou@...> 1999/12/13

青山です。

[#19471] Re: 自動翻訳プロジェクト — Wakou Aoyama <wakou@...> 1999/12/13

青山です。

[#19474] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 1999/12/14

まつもと ゆきひろです

[#19481] Re: 自動翻訳プロジェクト — nakajima kengo<ringo@...> 1999/12/14

[#19482] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 1999/12/14

まつもと ゆきひろです

[#19483] Re: 自動翻訳プロジェクト — nakajima kengo<ringo@...> 1999/12/14

[#23719] Re: 自動翻訳プロジェクト — TAKAHASHI Masayoshi <maki@...> 2000/07/06

高橋征義です。

[#23722] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 2000/07/06

まつもと ゆきひろです

[#23723] Re: 自動翻訳プロジェクト — TAKAHASHI Masayoshi <maki@...> 2000/07/06

高橋征義です。

[#19442] ClipBoard I/O 対応 — Itou-T15@...

クリップボードI/O はたいていファイルI/Oの様に抽象化されていないが

47 messages 1999/12/13
[#19465] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/13

[#19467] Re: ClipBoard I/O 対応 — matz@... (Yukihiro Matsumoto) 1999/12/13

まつもと ゆきひろです

[#19508] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/14

[#19523] Re: ClipBoard I/O 対応 — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/15

なひです.

[#19551] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/15

[#19556] Re: ClipBoard I/O 対応 — matz@... (Yukihiro Matsumoto) 1999/12/15

まつもと ゆきひろです

[#19565] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/15

[#19456] mod_ruby & eRuby — Wakou Aoyama <wakou@...>

青山です。

20 messages 1999/12/13
[#19490] Re: mod_ruby & eRuby — TAKAHASHI Masayoshi <maki@...> 1999/12/14

mod_ruby初心者の高橋征義です。

[#19484] Ruby Application Archive — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1999/12/14

[#19578] ruby-list の過去ログの作り方 — Momotaro Nishiumi <momotaro@...>

はじめまして。ももたろといいますm(_ _)m

48 messages 1999/12/16
[#19581] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/16

原です。

[#19583] Re: ruby-list の過去ログの作り方 — Momotaro Nishiumi <momotaro@...> 1999/12/16

こん○○は〜。ももたろです。

[#19622] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/17

原です。

[#19626] Re: ruby-list の過去ログの作り方 — matz@... (Yukihiro Matsumoto) 1999/12/17

まつもと ゆきひろです

[#19630] Re: ruby-list の過去ログの作り方 — Wakou Aoyama <wakou@...> 1999/12/17

青山です。

[#19698] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/19

原です。

[#19722] [PROPOSAL] Reimplement 'blade' (Re: ruby-list =?ISO-2022-JP? B??= の過去ログの作り方) — Hideto ISHIBASHI <s34204@...> 1999/12/20

石橋秀仁です。

[#19690] Book : rb_obj_call_init() — "Shigeo Kobayashi" <shigeo@...>

小林です。

29 messages 1999/12/19

[#19776] [mswin32] TCPSocket::new() raises Errno::ENOENT — "NAKAMURA, Hiroshi" <nakahiro@...>

なひです.

17 messages 1999/12/21
[#19789] Re: [mswin32] TCPSocket::new() raises Errno::ENOENT — Koji Oda <oda@...1.qnes.nec.co.jp> 1999/12/21

小田@QNES です。

[#19858] Re: [mswin32] TCPSocket::new() raises Errno::ENOENT — Katsuyuki Komatsu <komatsu@...> 1999/12/23

小松です。

[#19934] RD with method index (again) — Koji Arai <JCA02266@...>

新井です。

78 messages 1999/12/27
[#20160] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/10

新井です。

[#19937] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 1999/12/27

Toshです。

[#19962] Re: RD with method index (again) — Koji Arai <JCA02266@...> 1999/12/28

新井です。

[#19988] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 1999/12/29

Toshです。

[#20012] Re: RD with method index (again) — nobu.nakada@... 2000/01/02

なかだです。

[#20016] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/02

Toshです。

[#20017] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/02

新井です。

[#20022] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/03

Toshです。

[#20025] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/03

新井です。

[#20032] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/03

Toshです。

[#19976] Tell me your favorite tools — Yasushi Shoji <yashi@...>

やすしです。

25 messages 1999/12/28
[#20010] Re: Tell me your favorite tools — Yasushi Shoji <yashi@...> 2000/01/01

やすしです。

[#21496] Re: Tell me your favorite tools — OZAWA Sakuro <crouton@...> 2000/03/16

さくです。

[ruby-list:19230] Re: Clipbord を  Ruby で使うには?

From: Ataru NAKATA <anakata@...>
Date: 1999-12-07 11:32:37 UTC
List: ruby-list #19230
In message "[ruby-list:19218] Re: Clipbord を Ruby で使うには?",
TADA Tadashi <sho@spc.gr.jp> wrote:
>  でも、元の質問だと、Rubyでいじった文字列を、またクリップボードに
> 戻したいようなんですが、これってできるのでしょうか。GlobalAllocで
> 確保した領域に、RubyのStringの内容をコピーするところがわからない。
> ハンドルをGlobalLockしてみても、戻ってきた値は長さが8しかないし(謎)。
> 拡張モジュールを書かないとダメなのかな。

できてるみたいです。私はこんなんで二台のマシンでクリップボード内容の
やりとりをしています。

(clipbrd.rb)
#!/usr/local/bin/ruby

require 'Win32API'

module Clipboard

# Clipboard API
$OpenClipboard = Win32API.new('user32', 'OpenClipboard', ['I'], 'I');
$CloseClipboard = Win32API.new('user32', 'CloseClipboard', [], 'I');
$EmptyClipboard = Win32API.new('user32', 'EmptyClipboard', [], 'I');
$IsClipboardFormatAvailable = Win32API.new('user32', 'IsClipboardFormatAvailable', ['I'], 'I');
$GetClipboardData = Win32API.new('user32', 'GetClipboardData', ['I'], 'I');
$SetClipboardData = Win32API.new('user32', 'SetClipboardData', ['I', 'I'], 'I');
# Predefined Clipboard Formats
CF_TEXT = 1;
CF_BITMAP = 2;
CF_METAFILEPICT = 3;
CF_SYLK = 4;
CF_DIF = 5;
CF_TIFF = 6;
CF_OEMTEXT = 7;
CF_DIB = 8;
CF_PALETTE = 9;
CF_PENDATA = 10;
CF_RIFF = 11;
CF_WAVE = 12;
CF_UNICODETEXT = 13;
CF_ENHMETAFILE = 14;
CF_HDROP = 15;
CF_LOCALE = $10;
CF_MAX = 17;


# memory manager API
$GlobalAlloc = Win32API.new('kernel32', 'GlobalAlloc', ['I','I'], 'I');
$GlobalSize = Win32API.new('kernel32', 'GlobalSize', ['I'], 'I');
$GlobalLock = Win32API.new('kernel32', 'GlobalLock', ['I'], 'P');
$GlobalUnlock = Win32API.new('kernel32', 'GlobalUnlock', ['I'], 'I');
$GlobalFree = Win32API.new('kernel32', 'GlobalFree', ['I'], 'I');

# Global Memory Flags
GMEM_FIXED = 0;
GMEM_MOVEABLE = 2;
GMEM_NOCOMPACT = 0x10;
GMEM_NODISCARD = 0x20;
GMEM_ZEROINIT = 0x40;
GMEM_MODIFY = 0x80;
GMEM_DISCARDABLE = 0x100;
GMEM_NOT_BANKED = 0x1000;
GMEM_SHARE = 0x2000;
GMEM_DDESHARE = 0x2000;
GMEM_NOTIFY = 0x4000;
GMEM_LOWER = GMEM_NOT_BANKED;
GMEM_VALID_FLAGS = 32626;
GMEM_INVALID_HANDLE = 0x8000;

GHND = GMEM_MOVEABLE + GMEM_ZEROINIT;
GPTR = GMEM_FIXED + GMEM_ZEROINIT;

$lstrcpy = Win32API.new('kernel32', 'lstrcpyA', ['P', 'P'], 'P');
$lstrlen = Win32API.new('kernel32', 'lstrlenA', ['P'], 'I');

$lstrcpyIP = Win32API.new('kernel32', 'lstrcpyA', ['I', 'P'], 'P');
$lstrcpyPI = Win32API.new('kernel32', 'lstrcpyA', ['P', 'I'], 'P');
$GlobalLockI = Win32API.new('kernel32', 'GlobalLock', ['I'], 'I');


  def GetText
    result = ""
    if $OpenClipboard.Call(0) != 0
      if (h = $GetClipboardData.Call(CF_TEXT)) != 0
        if (p = $GlobalLock.Call(h)) != 0
          result = p;
          $GlobalUnlock.Call(h);
        end
      end
      $CloseClipboard.Call;
    end
    return result;
  end
  
  def SetText(text)
    if (text == nil) || (text == "")
      return
    end
    if $OpenClipboard.Call(0) != 0
      $EmptyClipboard.Call();
      len = $lstrlen.Call(text);
      hmem = $GlobalAlloc.Call(GMEM_DDESHARE, len+1);
      pmem = $GlobalLockI.Call(hmem);
      $lstrcpyIP.Call(pmem, text);
      $SetClipboardData.Call(CF_TEXT, hmem);
      $GlobalUnlock.Call(hmem);
      $CloseClipboard.Call;
    end
  end
end

include Clipboard;

# sample:
#   require 'clipbrd';
#   print Clipboard.GetText;
#   Clipboard.SetText("aaaaa\nbbbbb\n");

(clipserver.rb)
#!/usr/local/bin/ruby

require 'socket'
require 'clipbrd'
Port = 4445

gs = TCPserver.open(Port)
addr = gs.addr
addr.shift
printf("server is on %d\n", addr.join(":"))

# for ^C trap
Thread.start do
  while TRUE
    print "|\b"; STDOUT.flush
    sleep 1
    print "-\b"; STDOUT.flush
    sleep 1
  end
end

# server thread
while TRUE
  newsc = gs.accept
  #print(newsc, " is accepted\n")
  print(newsc.peeraddr.join(":"), " is accepted\n")
  Thread.start do
    sc = newsc
    #sc.gets
    #print $_; STDOUT.flush
    str = Clipboard.GetText
    #print str; STDOUT.flush
    sc.write(str + "\n")
    sc.close
  end
end

(clipclient.rb)
#!/usr/local/bin/ruby

require 'socket'
require 'clipbrd'
Port = 4445

host=(if ARGV.length == 1; ARGV.shift; else "localhost"; end)
STDERR.print("Trying ", host, " ..."); STDERR.flush
sc = TCPsocket.open(host, Port)
STDERR.print("connect."); STDERR.flush
str = ""
#sc.write("HELLO\n")
while sc.gets
  str = str + $_
end
sc.close
print str
Clipboard.SetText("[#{host}]\n"+str)

In This Thread