クリップボードに入っているテキストを出力するプログラム。Windows用です。Cで書きました。
ρ(∂_∂) ソースだよ☆
showclip.c:
作成したきっかけは、頻繁にクリップボードの内容をコマンドに渡す必要があり、いちいちWindowsコマンドプロンプトにクリップボードの内容を貼り付ける ([Alt]+[Space] を押し、[編集(E)] → [貼り付け(P)] を選択する) 操作さえ面倒だったことです。showclip.exeさえあれば、バッチコマンドの中で以下のように記述することで、簡単にクリップボードの内容を任意のコマンドに渡すことができます。
クリップボードの内容をテキスト出力するツールとしては、既にGNUのpclipがありますが、テキスト出力前に簡単な整形もさせられるように、自分でコーディングしました。後々pclipと異なるオプションを実装する可能性があるため、名前をshowclipとして区別しています。
今回もバイナリをコンパクトにしたかったので、C++ではなく、Cで書きました。おかげで私が使っているバイナリは52KBとコンパクトに収まっています。ご入用の方は、お好きなコンパイラでコンパイルしてご利用ください。
ρ(∂_∂) ソースだよ☆
showclip.c:
/* Show contents of the clipboard */ #include <stdio.h> #include <string.h> #include <windows.h> #define BUFSIZ 4096 /* Exit values */ #define SUCCESS 0 #define WARNING 128 #define FAILURE 255 static char buf[ BUFSIZ]; int main() { int retcode = FAILURE; if (IsClipboardFormatAvailable( CF_TEXT)) { if (OpenClipboard( 0)) { HANDLE hData = GetClipboardData( CF_TEXT); if (hData) { strncpy( buf, (char *)GlobalLock( hData), sizeof( buf) - 1); buf[ sizeof( buf) - 1] = '¥0'; GlobalUnlock( hData); retcode = SUCCESS; } CloseClipboard(); } printf( "%s", buf); } return retcode; }
作成したきっかけは、頻繁にクリップボードの内容をコマンドに渡す必要があり、いちいちWindowsコマンドプロンプトにクリップボードの内容を貼り付ける ([Alt]+[Space] を押し、[編集(E)] → [貼り付け(P)] を選択する) 操作さえ面倒だったことです。showclip.exeさえあれば、バッチコマンドの中で以下のように記述することで、簡単にクリップボードの内容を任意のコマンドに渡すことができます。
FOR /F "usebackq delims=" %%i IN (`showclip`) DO myprogram %%i
クリップボードの内容をテキスト出力するツールとしては、既にGNUのpclipがありますが、テキスト出力前に簡単な整形もさせられるように、自分でコーディングしました。後々pclipと異なるオプションを実装する可能性があるため、名前をshowclipとして区別しています。
今回もバイナリをコンパクトにしたかったので、C++ではなく、Cで書きました。おかげで私が使っているバイナリは52KBとコンパクトに収まっています。ご入用の方は、お好きなコンパイラでコンパイルしてご利用ください。