1989年開業 情報工学部門 文部科学省登録番号 第22082号 公益社団法人日本技術士会会員 東大阪商工会議所会員

≫サンプルプログラム一覧 

オープンソース/C言語サンプルプログラム クリップボード文字列取得

●クリップボードからテキストを取得し、表示するプログラムです。
●現在クリップボードに格納されている文字列が表示されます。
●goto文の使用については議論がありますが、関数の出口を1つにする
 ためには有効です。
 ≫ソースファイルのダウンロード: clipbord-get01.c

【問題】
●メモ帳やテキストエディター、文書編集ソフト、表計算ソフトなどで
 文字列をコピーし、このプログラムで確認してみよう。
●クリップボード処理の部分を関数化し、main関数から呼び出してみよう。

/*--------------------------------*/
/*  クリップボード・テキスト取得  */
/*--------------------------------*/
#include <stdio.h>
#include <windows.h>

void  main( )
{
  char   str[1024];            // テキスト文字列
  HANDLE chandl=NULL;
  int ir,len,len0=1024;

    ir=OpenClipboard(NULL);                             // クリップボード開く
    if ( ir==0 ) goto LF;

    chandl=GetClipboardData(CF_TEXT);                   // クリップボードデータ取得
    if ( chandl==NULL ) goto L9;                        // 空

    GlobalLock(chandl);                                 // グローバルメモリオブジェクトロック
    len=strlen(chandl);
    if ( len==0 ) goto L9;
    if ( len<len0 ) strcpy(str,chandl);
         else       sprintf(str,"%.*s",len0,chandl);

    GlobalUnlock(chandl);                               // グローバルメモリオブジェクト解除

    printf("\n【クリップボード内容】\n%s",str);

L9: CloseClipboard( );                                  // クリップボード閉じる
LF: ;
}
   

※SSL暗号化通信対応

佐伯英子技術士事務所 〒542-0073 大阪市中央区日本橋 1-14-13 サンオフィス日本橋601  E-mail: info@saeki-pe.com