
windowsアプリを作りたいです。
環境:
VS2008
ネイティブアプリ
C/C++
内容は、キーボードでctrl + c, ctrl + v時に
マウスカーソル部に「コピー」「貼り付け」などの
メッセージを表示するものです。
実現方法が分かりません。少し調べたら、"DLL注入", "フック"など
のキーワードが出てきましたが、いまいちどのように使用するものなのかが
分かりません。(DLL注入とか危険な感じもします。。実際危険と書かれていたような。。)
実現方法を分かる方がいましたら教えてください。
No.3ベストアンサー
- 回答日時:
> メモ帳でも、エクセルでも、ワードでもその他のソフトでも
> どのソフト上でもメッセージが出るものにしたいです。
なるほど,そういう場合はフック(しかもシステムフック)が必要です。
基本的にはフックプロシージャを用意して登録するだけなのですが,
システムフックの場合には DLL を用意したり,
DLL の複数のインスタンス間でデータを共有したり,
と細かいテクニックが必要です。
そのあたりも,前の回答で紹介したページに詳しく書かれています。
> 具体的にはどのようなことが発生する可能性があるのでしょうか
例えば,Ctrl + V をホットキーに登録すると,
メモ帳で Ctrl + V を使って貼付けができなくなります。
この辺はちょっと自身がなかったので,ぼかした表現にしておきましたが,
試してみたらやはりそうでした。
# おせっかいついでに,細かいことを言うと,
# Ctrl + C や Ctrl + V をどういう意味で使うかは,アプリケーション次第ですよね。
ご回答ありがとうございます。
どうやらシステムフックなるものを使用して作りこむしか
方法はないようですね。。
道は困難なものになろうかと思いますが、やってみたいとおもいます。
No.2
- 回答日時:
> 内容は、キーボードでctrl + c, ctrl + v時に
どこで,(どこにフォーカスがあるときに),
によって実現方法が変わります。
自分のウィンドウ内ならフックしなくても,
メッセージループで WM_KEYDOWN とか見れますし。
本当にフックが必要な場合は,
↓が DLL の作り方から説明されていて,分かりやすかったです。
http://www.kab-studio.biz/Programing/Codian/#DLL …
# RegisterHotKey を使うと,
# 他所様を含めて本来の Ctrl + C, Ctrl + V の動作を妨害するかも。
この回答への補足
ご回答ありがとうございます。
メモ帳でも、エクセルでも、ワードでもその他のソフトでも
どのソフト上でもメッセージが出るものにしたいです。(ユーティリティソフトのような感じ)
フォーカスはコピー対象のものをマウスを使用して、選択しますので、
その対象を含むアプリのどこか(?)になるかと思います。
># RegisterHotKey を使うと,
># 他所様を含めて本来の Ctrl + C, Ctrl + V の動作を妨害するかも。
具体的にはどのようなことが発生する可能性があるのでしょうか
No.1
- 回答日時:
私の紹介する方法ではホットキーのAPI関数を使用します。
関数はホットキー登録と登録解除の2つです。
BOOL RegisterHotKey(
HWND hWnd, // ウィンドウのハンドル
int id, // ホットキーの識別子
UINT fsModifiers, // キー修飾子フラグ
UINT vk // 仮想キーコード
);
BOOL UnregisterHotKey(
HWND hWnd, // ウィンドウのハンドル
int id // ホットキーの識別子
);
RegisterHotKeyでホットキーを登録すると、そのキーが押された時にウィンドウにWM_HOTKEYメッセージが流れてきます。
ただし、この方法はWin95など昔からある方法なので、最近のWindowsやVC++ではもっと使いやすい方法があるかもしれませんね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトについて。
-
C++でデスクトップGUIアプリ開...
-
Windows Formアプリからコンソ...
-
バッチファイルで以下のような...
-
コンソールアプリを作成するの...
-
c言語
-
DLLファイルの逆コンパイラにつ...
-
C言語の関数のextern宣言
-
C言語 関数、変数の宣言について
-
C言語のことです。写真(見にく...
-
私は
-
C#でログファイルにファイルパ...
-
MACで動く実行ファイルをWindow...
-
VisualStudioでC++クラスを追加...
-
大量のデータを読み込んで表示...
-
visual studio 2022でのC#プロ...
-
プログラマー達は何故、プログ...
-
PIC12F1822でLED調光器を作りたい
-
最初に聞かれたこと
-
C言語について(初心者)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaから他のアプリを終了
-
SetWindowText関数について
-
他のウィンドウのボタンを自動...
-
メッセージボックスの選択ボタ...
-
msgboxの表示位置
-
VBAでコントロールのハンドルを...
-
メッセージハンドラ
-
点滅で知らせる方法
-
ウインドウが閉じたことを知る方法
-
SendMessage で ESC など
-
キーボード・フックのアプリを...
-
VB.netでFindWindowExやると・...
-
WM_NCLBUTTONUPについて
-
WINAPI 他のウインドウを重ね...
-
システム例外のメッセージを変...
-
VBでRegisterWindowMessage関数...
-
デスクトップ上のアイコンの位...
-
チェックボックスのキーダウン...
-
VBでRegisterWindowMessage関数...
-
C# の MDI
おすすめ情報