• ベストアンサー

WIN上で動くマウスユーティリティを作るための用意

ウィンドウズ上でマウスを右に動かせば左に動き、左に動かせば右に動く。上に動かせば下に動き、下に動かせば上に動くというユーティリティを作りたいのですが、どこから勉強すれば良いのでしょう。 とりあえず私のレベルはCの初歩的教本の内容なら一応目を通しているというレベルです。つまり型の宣言やforループなどの論理文、ポインタや参照などは理解しています。ウィンドウズに登録できるユーティリティとは何かはまるで知りませんし、マウスを操作するプログラムを組んだこともありません。 言語はCを想定しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • Quant
  • ベストアンサー率18% (23/122)
回答No.1

下のMSDNのサイトを見てサンプルを改造しながら作っていくのが早いかもしれません。 C++ による Windows プログラミングの学習 http://msdn.microsoft.com/ja-jp/library/ff381399(v=vs.85).aspx マウスを移動する http://msdn.microsoft.com/ja-jp/library/gg153550(v=VS.85).aspx マウス クリックに応答する http://msdn.microsoft.com/ja-jp/library/gg153548(v=VS.85).aspx その他のマウス操作 http://msdn.microsoft.com/ja-jp/library/gg153551(v=VS.85).aspx 下のプログラムは上のサイトを参考にして作ったマウスのウインドウ内の座標を表示するプログラムです。 Visual C++ 2010 Expressでコンパイルできます。 Borlandではpragma命令とクラスの設定で引っかかります。 #pragma comment(lib,"user32.lib") #pragma comment(lib,"gdi32.lib") #include <windows.h> #include <windowsx.h> #include <stdio.h> #define CLASSNAME "SKELETON" #define MAINTITLE "Move Mouse" #define WSTYLE 0 #define WNDPROC WndProc #define CLSEXTRA 0 #define WNDEXTRA 0 #define INSTANCE lih #define ICON LoadIcon(NULL,IDI_APPLICATION) #define CURSOR LoadCursor(NULL,IDC_ARROW) #define BACKGROUND (HBRUSH)(COLOR_WINDOW + 1) #define MENUNAME NULL #define CW_WIDTH 800 //GetSystemMetrics(SM_CXSCREEN) #define CW_HEIGHT 600 //GetSystemMetrics(SM_CYSCREEN) #define CW_LEFT ((GetSystemMetrics(SM_CXSCREEN) - CW_WIDTH) / 2) #define CW_TOP ((GetSystemMetrics(SM_CYSCREEN) - CW_HEIGHT) / 2) LRESULT CALLBACK WndProc(HWND wh,UINT ms,WPARAM wp,LPARAM lp) { HDC dh; char b[4096]; switch(ms) { case WM_MOUSEMOVE: sprintf(b," % 4d,% 4d ",GET_X_LPARAM(lp),GET_Y_LPARAM(lp)); dh = GetDC(wh); TextOut(dh,10,10,b,strlen(b)); ReleaseDC(wh,dh); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(wh,ms,wp,lp); } return 0; } int WINAPI WinMain(HINSTANCE lih,HINSTANCE rih,LPSTR argv,int ws) { MSG m; HWND w; WNDCLASS c = { WSTYLE,WNDPROC,CLSEXTRA,WNDEXTRA,INSTANCE, ICON,CURSOR,BACKGROUND,MENUNAME,CLASSNAME }; RegisterClass(&c); w = CreateWindow(CLASSNAME,MAINTITLE, WS_VISIBLE | WS_SYSMENU, CW_LEFT,CW_TOP,CW_WIDTH,CW_HEIGHT, HWND_DESKTOP,NULL,lih,NULL); while(1) switch(GetMessage(&m,NULL,0,0)) { case -1: case 0:return m.wParam; default: TranslateMessage(&m); DispatchMessage(&m); break; } } WindowsプログラムはGUIライブラリを使うことになりますので、Cを勉強するというよりライブラリの使い方を勉強するということになりますのでC自体やWindowsの仕組みがはっきり分かっていないと上記サイトの内容も難しく感じるかもしれません。

makoji
質問者

お礼

早速勉強してみます。 ありがとうございました。

関連するQ&A

  • マウスの操作を逆にしたい

    マウスを左、右、上、下に動かすと当たり前ですが 各々の方向にポインタが移動しますが これをソフトで逆にすることはできますか? つまりマウスを左に動かせばポインタが右に動く ようなソフトを探してます。

  • フリーのマウスユーティリティー

    左クリック一発で右クリック~すぐ左クリックと操作できる マウスユーティリティーはありませんか? ググってみたのですがわかりません。 教えてください、よろしくお願いします。 できればフリーのソフトで・・・・

  • マウスの不具合

    レーザーマウスを使用してたのですが壊れてしまったので PC本体を購入した時に付属していたボール型マウスを 操作してみたのですが右クリック+左クリックは正常に動作。 しかしマウスポインタが右と上と下にしか動かず左に動きません。 Windows Vistaの影響でしょうか。。。。

  • マウスポインターが画面から消える?

    マウスポインターを移動させた時、画面の上と左はSTOPしますが 右と下に移動させると、STOPせず、どこまでも行ってしまいます。 よろしくお願いします。

  • マウスポインタが正反対に動いてしまう

    今さっきPCを起動しましたら、マウスポインタが上下左右、逆に動いてしまいます。 マウスを右に動かすとポインタは左に動き、上に動かすとポインタは下に動く…といった感じです。 再起動してみたのですが直りませんでした。 PCに詳しくなくてどうしたら良いのか分かりません。 OSはWindows XPです。 回答よろしくお願いします。

  • ワイヤレスマウスの動きが突然90度ずれる

    サンワサプライというメーカーのワイヤレスマウスを1か月ほど使っています。 先ほど突然マウスの動きとマウスポインタの動きがずれるようになりました。 90度左にずれます。右にマウスを動かすと上にポインタが、下だと右、左だとした、上だと左に。 マウスそのものを左に90度ずらして何とか使えない事もないんですが、使いづらくて困っています。 乾電池を新品に交換した、受信機を差し直した、USBポートを別の位置に変えた、win7を再起動した、コントロールパネルのマウスの所を見たけどずれを直す項目は見当たらなかった、マウスの裏を掃除した、マウスの電源を入れなおした、思い当たる言葉すべて行いました。 思えばここ1週間ほど、マウスの電源が入っているのに、マウスが反応しない事が有り、マウスの電源を入れなおして直った事がある。 これはマウスを買い替えるしかないんでしょうか? 持ちにくい、電池ぶたの開閉がやりにくいし。

  • マウスポインターを隅っこにしたい

     XPです。PCのデスクトップをあけると、マウスポインターがどまんなか?です。背景を邪魔することこの上なしです。右でも左でも良いのでポインターセットできないでしょうか??教えてください。

  • マウスの故障!?

    マウスのポインタと右クリックはできるのですが、肝心な左クリックが画面上で作動しません。 マウスを動かせば、ポインタ自体は動くのですが、左クリックしても反応がありません。 これは単にマウスが壊れせいでしょうか? 再起動しても元に戻りません。 毎日マウスを使用しているので壊れたのでしょうか?

  • マウスをうごかしても

    マウスをうごかしても ポインタが上下するだけで 左右に動けません 右にはある程度動くのですが 左は全く動きません マウスは裏側にボールの ようなものが入っていて ホコリなどはありません どうしたら解消できるでしょうか

  • 光学式マウスがおかしいです

    無線の光学式マウスについてなんですが マウスを操作してるときマウスのポインタが いきなり右下、左下など勝手な方向に行ってしまったり、 何もしていないときでもポインタが左や右に移動していったり。。 と、このような状況でマウスが扱いづらいのですが どのようなことをすればこの症状は治るのでしょうか?