tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB.NETでクリップボード内の文字データの編集は可能ですか?
記事No11360
投稿日: 2015/02/02(Mon) 18:28
投稿者たちばなん
例えば、EXCELのデータをコピーして貼り付ける際、
@コピー元は「ABC」と書いてあった文字列をクリップボード内で「DEF」に書き替えて貼り付ける
Aコピー元は明朝体だったフォントをクリップボード内でゴシック体に変更して貼り付け
の様な事です。

手順としては、クリップボードへコピーは手作業で行い、
ツール(これから作ろうとしている物)を使用してクリップボード内を改変し、
貼付けは、また手作業です。
※EXCEL以外のアプリでも使いますので、EXCELの機能を利用した方法は出来ません。
文字以外にもベクタ・ラスタの画像情報を含む場合もあります。(これが無理でしたら、文字限定でも構いません)

VBのバージョンは2008か2010でお願いします。

[ツリー表示へ]
タイトルRe: VB.NETでクリップボード内の文字データの編集は可能ですか?
記事No11361
投稿日: 2015/02/03(Tue) 07:44
投稿者花ちゃん
細部の仕様にもよりますが、概ね可能です。
Win32 API を使ってクリップボードを監視して
クリップボードにコピーされたらそれを取得して
編集してからクリップボードにいれる
といった流れになるかと。

下記のようなものでも結構なコード量になりますが。
http://www.hanatyan.sakura.ne.jp/vb2005/vb2013software04.htm

[ツリー表示へ]
タイトルRe^2: VB.NETでクリップボード内の文字データの編集は可能ですか?
記事No11362
投稿日: 2015/02/03(Tue) 10:00
投稿者たちばなん
ありがとうございます。
まだ全く何も理解していない状態ですが、「可能である」と判れば作成意欲が出てきます。

> クリップボードにコピーされたらそれを取得して
> 編集してからクリップボードにいれる

との事ですが、
クリップボードから取得するのは文字情報(等の必要な部分)だけ抜き出し、その部分だけ書き戻す様な事が出来るのでしょうか?
それとも、クリップボード内の情報を全て書き出し、クリップボードをクリアにした後、全てを書き戻すのでしょうか?

[ツリー表示へ]
タイトルRe^3: VB.NETでクリップボード内の文字データの編集は可能ですか?
記事No11363
投稿日: 2015/02/03(Tue) 12:47
投稿者花ちゃん
> クリップボードから取得するのは文字情報(等の必要な部分)だけ抜き出し、その部分だけ書き戻す様な事が出来るのでしょうか?
> それとも、クリップボード内の情報を全て書き出し、クリップボードをクリアにした後、全てを書き戻すのでしょうか?

貴方がどのような目的でどのように作成したいかで、色々変わってきます。

編集したフォーマットを後で貼り付けたいなら、編集後、どこかに保存しておき貼り付けるときにそこから
フォーマットを指定して貼り付けるようにしないと、手動でクリップボードから貼り付けるのでフォーマット
が指定できないので使い勝手が悪いと言われるかも知れないし。

基本的にファイルの編集と同じで読みこんで編集して保存という方法しかないかと。
従って、クリップボードから必要なフォーマットを読み込んで編集してクリップボードにコピーし直す。

又は、編集した画像・文字等をどこかに保存しておく。

Web 上を  Clipboard をキーに検索してどのような事ができるか、フリーソフトや VB のコードを
調べて見て下さい。(下記についても)

WIN32API                          FrameworkAPI

ChangeClipboardChain    
CloseClipboard    
CountClipboardFormats       System.Windows.Forms.DataObject.GetFormats
EmptyClipboard    
EnumClipboardFormats        System.Windows.Forms.DataObject.GetFormats
GetClipboardData            System.Windows.Forms.ClipBoard.GetDataObject
GetClipboardFormatName    
GetClipboardOwner    
GetClipboardViewer    
GetOpenClipboardWindow    
GetPriorityClipboardFormat    
IsClipboardFormatAvailable    System.Windows.Forms.DataObject.GetDataPresent
OpenClipboard    
RegisterClipboardFormat       System.Windows.Forms.DataFormats.GetFormat
SetClipboardData              System.Windows.Forms.ClipBoard.SetDataObject
SetClipboardViewer    

[ツリー表示へ]
タイトルRe^4: VB.NETでクリップボード内の文字データの編集は可能ですか?
記事No11364
投稿日: 2015/02/04(Wed) 11:14
投稿者たちばなん
現状、「できたらいいな」 な段階です。
とりあえず、一番簡単そうな方法でそれを実現できるか考えてみます。
使い勝手はその後に考えます。(結果、全然違った手法になるのかもしれませんが)

色々とヒントを頂いたので、何とかなるかもしれません。
ご指導ありがとうございました。

[ツリー表示へ]