HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
1007
弘中クリップボードを経由せずinput内の選択内容を取得したい4解決


弘中

リンク

2020/10/7(Wed) 23:22:44|NO.91561

すみません、もう一つ質問させてください。


#define WM_COPY $301 #include "hspext.as" buf = "abcdefghijklmnopqrstuvwxyz" input buf, 600//, 200 hMesbox = objinfo(stat, 2) button "WM_COPY", *copy stop *copy ; 選択文字をクリップボードにコピー sendmsg hMesbox, WM_COPY sdim msg,1024 clipget msg,1024 dialog msg stop

inputにabc~xyzまでの文字列があると思いますが、これの任意の文字列
(例えばfghijklmn)を選択し、下のボタンを押すと、選択されていた
文字列がクリップボード経由で取得されます。

この場合、実行前にクリップボードに入っている文字列が消えてしまいます。
もちろん、取得して作業後にクリップボードへ戻せば問題無いのですが
ファイルなどがクリップボードに入っている場合、面倒と思います。
出来ないことは無いと思いますが・・・

そこでお聞きしたいのが、クリップボードを経由せず、直接取得する方法は
何かあるでしょうか?

知りたいことは、
ファイルがクリップボードにコピーされている場合は作業後にファイルをクリップボードへ
再度コピーする方法ではありません。クリップボードを経由せず同じ事が出来るかが知りたいです。

よろしくお願い致します。



この記事に返信する


MillkeyStars

リンク

2020/10/7(Wed) 23:57:20|NO.91562

こんな感じ?

#define WM_COPY $301 #include "hspext.as" buf = "abcdefghijklmnopqrstuvwxyz" input buf, 600//, 200 hMesbox = objinfo(stat, 2) button "WM_COPY", *copy stop *copy sendmsg hMesBox,0x00B0,0,0 position_start = stat & 0xFFFF position_end = stat >> 16 & 0xFFF size = position_end - position_start sdim msg,size + 1 msg = strmid(buf,position_start,size) dialog ""+msg stop



弘中

リンク

2020/10/8(Thu) 06:44:23|NO.91564

ありがとうございます、希望の動作確認出来ました!



弘中

リンク

2020/10/8(Thu) 09:09:27|NO.91566

MillkeyStars さん

既に解決を押した後で申し訳ありません。
頂いたコードを実装しようとして、気付いた点があります。

対象文字列がアルファベットのみで有ればこれで問題無いのですが、
2バイト文字が混ざってくるとずれるようです。


buf = "abcdefghijにほんご日本語漢字123123##klmnopqrstuvwxyz" input buf, 600 hMesbox = objinfo(stat, 2) button "COPY", *copy stop *copy sendmsg hMesBox,0x00B0,0,0 position_start = stat & 0xFFFF position_end = stat >> 16 & 0xFFF size = position_end - position_start sdim msg,size + 1 msg = strmid(buf,position_start,size) dialog ""+msg stop

帰ってくる数字はバイト数関係無く何文字目かということでしょうか?


よろしくお願いいたします。



弘中

リンク

2020/10/8(Thu) 16:28:34|NO.91567

こちらを参考にしたら出来そうです、お騒がせしました。すみません。

http://hsp.tv/play/pforum.php?mode=pastwch&num=3414



ONION software Copyright 1997-2023(c) All rights reserved.