• 締切済み

C++ でクリップボード履歴の表示をさせる方法

C言語の勉強をする目的で、まずはローカル環境で作動する簡単な練習プログラムを 書こうと考えています。 基本的な言語文法は大体把握していますが、OS側の操作をどのように処理するかが 本などにあまり詳しく解説がされていないため、とても困っています。 そこで、最初の題材として、直近10回分のクリップボード履歴を、 使用中のアプリケーションが何であるかに影響されることなく OS上でポップアップウィンドウ表示をさせて その中で1行ごとに表示させることを考えています。 このプログラムをキーボード上の特定キーの組み合わせで起動させて Enterボタンを押した時に、その時に最前部にあるアプリケーション上に 選択されたクリップボード履歴内容をコピーできるようにしたいと思います。 よろしくお願いいたします。 Windows でも Mac でも共用できるような方向でプログラム作製をしたいと思っています。 *

  • mqm
  • お礼率42% (581/1355)

みんなの回答

  • chie65535
  • ベストアンサー率43% (8525/19377)
回答No.1

>Windows でも Mac でも共用できるような方向でプログラム作製をしたいと思っています。 「クリップボード」は「OSに依存する部分」なので「WindowsでもMacでも」は不可能です。 >OS側の操作をどのように処理するかが 「アプリケーションとOSの橋渡し」は「API」と言う仕組みを用います。 http://it-trend.jp/words/api Mac OS(iOS)とWindowsでは「APIがまったく異なる」ので「Mac OSではMac OS用のAPIライブラリを使用し、WindowsではWindows用のAPIライブラリを使用」しなければなりません。 クリップボードにアクセスするAPIライブラリも、MacとWindowsでは「まったく違う」ので、共用できるようなプログラムを作る事は不可能です。 iOS用のアプリを書くなら、以下のような本を買いましょう。 https://www.amazon.co.jp/iOS5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%96%E3%83%83%E3%82%AF-%E5%8A%A0%E8%97%A4-%E5%AF%9B%E4%BA%BA/dp/4844332228 Windows用のアプリを書くなら、以下のような本を買いましょう。 https://www.amazon.co.jp/API%E3%81%A7%E5%AD%A6%E3%81%B6Windows%E5%BE%B9%E5%BA%95%E7%90%86%E8%A7%A3-%E6%97%A5%E7%B5%8CBP%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%99%E3%82%B9%E3%83%88%E3%83%A0%E3%83%83%E3%82%AF-%E5%AE%89%E5%AE%A4-%E6%B5%A9%E5%92%8C/dp/4822228266 MacのAPIは「Macの書き方」があるし、WindowsのAPIは「Windowsの書き方」があるので、それぞれ別々に習得する必要があります。 本気でAPIを勉強するなら、上記のような図書を、OSに合わせて最低でも4~5冊は購入しないといけません。 また、Windows APIは「32ビット用API」と「64ビット用API」があって、その2つを共用するには、ある程度の知識が必要です。 一般に、32ビット版アプリを「x86アプリ」と、64ビット版アプリを「x64アプリ」と呼んで区別します。

mqm
質問者

お礼

早速のご回答 ありがとうございました

関連するQ&A

  • クリップボード履歴を自動で取るソフトは?

    クリップボードの履歴を取るソフトがwindows95のときは確実にあったが、 windows98SEになって、いろいろ試してるがまだみつからない。 クリップボードの履歴を10個か20個、自動的に取ってくれるソフトを教えて下さい。 TEXTだけでいいんです。

  • クリップボードを排他的に利用する方法

    自アプリケーションが起動している間、他アプリケーションからクリップボードを利用できないようにしたい、 あるいは他のアプリケーションがクリップボードに保存したデータと混ざらないように区別して自アプリケーションがデータを保存しこれを利用できるようにしたい と希望しています。 具体的には、 一定間隔毎に、画面をキャプチャしクリップボードに送り、これをピクチャーボックスに表示する処理を繰り返すプログラムを作成していますが、 この処理の間、たとえばWordなどの他アプリケーションで、コピーや貼り付けの操作を行えないようにしたい あるいはWordなどでコピーしたデータとは完全に区別して保存しこれを独占的に利用したいと希望しています。 このようなことはできるのでしょうか。もしも可能でしたら、どのように記述すればよいのでしょうか。 恐れ入りますが具体的にサンプルコードなどで教えていただければ大変ありがたく存じます。 恐れ入りますが、何卒ご教授いただきたくお願いいたします。 ちなみによくは分からないのですが、EmptyClipboard()関数を使って、クリップボードの所有権を取得できるとの記述を見たのですが、 (http://www.vbvbvb.com/jp/gtips/0051/gEmptyClipboard.html) たとえば、上記のサンプルプログラムで ' クリップボードの所有権を持つウィンドウハンドルを取得 lngClipboardOwner = GetClipboardOwner ' クリップボードの所有権が自フォームと同じときは If lngClipboardOwner = Me.hwnd Then   ' 画面のスナップをクリップボードに送り?   ’またクリップボードのデータの取得を行う? End If といったような感じで指示することは可能なのでしょうか。 もしも可能であれば申し訳ございませんが、上記If文部分の具体的な記述方法をご教授ください。宜しくお願いいたします。

  • クリップボードについて。

    既存のExcelファイルを開き、1シート全てをクリップボードにコピーし、 テキストボックスに貼り付けるという動作をさせたいのですが、 クリップボードを貼り付ける際に以下のようなメッセージが表示されます。 --------------------------------------------------------------------- クリップボードに大きな情報があります。この情報をほかのプログラムに貼り付けられるようにしますか? ・後で貼り付けるためにクリップボードに保存する場合は、[はい]をクリックします。 ・クリップボードにある情報を削除する場合は、[いいえ]をクリックします。 --------------------------------------------------------------------- このメッセージは表示させたくないのですが、非表示にすることはできますか?

  • Windows のクリップボード機能のことで

    Windows 98 上で、Word 98 を使っています。 知人から聞いたんですが、 「Windows 98 上で Word 2000 を使っていて、その Word 2000 には複数のクリップボードがあって」 とかの話でした。 クリップボード関係で状況を教えていただきたいんですが、 ・ OS の Windows Me とか Windows 2000 なんかのクリップボード機能は、Windows 98 に比べて 変わった点とかはありますか?(たとえば、複数クリップボードとか) ・ Word 2000 にあるという複数のクリップボードというのは、他のアプリケーションとの関係でも いろいろ活用できるものなんでしょうか? (その知人に聞いたりもしたんですが、相手はまだ入門レベルなもので、・・・・)

  • macでクリップボードの履歴を出したい

    macのos x 10.9.5を使っています。 クリップボードにコピーした言葉の履歴をさかのぼって100件、200件という単位でテキストとして出力したいと考えています。 こういうことが出来るアプリを教えて下さい。 具体的には、pdf上で英文を読むときに、l分からない単語があったら、選択してクリップボードにコピーして、logophileという辞書検索ソフトにて単語検索しています。読み終わってから、今回はどんな単語を調べたかとチェックしたいと考えています。

    • ベストアンサー
    • Mac
  • 「クリップボードに・・・」といったメッセージを表示させない方法を御存知ないでしょうか?

    エクセルのデータをコピペして閉じるときに、 「クリップボードに大きな情報があります。この情報をほかのプログラムに貼り付けられるようにしますか?」 といったメッセージが表示されます。 作業ごとに毎回メッセージが出てわずらわしいので、クリップボードを空にして、上記のメッセージが表示されないようにする方法を御存知ないでしょうか?

  • 右クリックに履歴が出るクリップボードソフト

    windows7(64bit)でクリップボード拡張ソフトを探しています。 タスクトレイのアイコンをクリックして張り付けるのではなく、 もっと簡単に、入力中の右クリックの中に5個くらいの履歴を表示できるものはありませんでしょうか ?

  • Outlook2010でクリップボードに大きな

    Outlook2010を完了した時「クリップボードに大きなサイズのデータが残っています。このウインドウを閉じた後、Microsoft Outlook または 他のアプリケーションでこのデータを使用しますか?」が表示されます。データを使用することもないので、これを表示させない方法を教えていただきたい。

  • クリップボードがない!?( ̄□ ̄;)

    先ほど、同様の質問をさせていただいて、みなさんに教えていただいたのですが、 プログラム→アクセサリ→システムツール→ この先にクリップボードという項目がないんです。(泣) ちなみに表示されるのは 「Windowsへようこそ」「システム情報」「スキャンディスク」「タスク」「ディスククリーンアップ」「デフラグ」「ドライブコンバータFAT32」「ドライブスペース」「メンテナンスウィザード」「圧縮エージェント」 の10項目です。 OSはWin98です。 他に見る方法はありませんか?

  • Excel2002でクリップボードについて

    OS:XP Excel:2002 あるシートで「列のコピー」を行い、別のシートに貼り付けします。そして、Excelを閉じようとする際に、 「クリップボードに大きな情報があります。この情報を他のプログラムに貼り付けられるようにしますか?」というメッセージが表示されます。 上記の件で、過去の質問の中から、クリップボードの情報を削除する方法やさらに別のもの(サイズの小さい)をコピーすることで、メッセージをさけることができるというのはわかりました。 が、さけるための操作をプラスして行うのではなく、最初からメッセージそのものを出さないように設定するところなどはないのでしょうか? (説明が下手ですみませんが、もしわかる方がいらっしゃったら、よろしくお願いします。)