• 締切済み

ロボットのマウス制御について

現在、Microsoft Visual C++ 6.0を使ってアームロボットをマウスで制御するプログラムを作っています。 私は、C++は初心者なのでよく分からず困っているのですが、マウスの座標値はどのようにして取り出せばいいのでしょうか??参考になるホームページなどありましたら教えてください。よろしくお願いします。

みんなの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.5

★次のリンクを見て下さい。 ・http://www.incx.nec.co.jp/imap-vision/html/japanese/DOC_LIBIMAP/node4.html#SECTION00022200000000000000→『1.2 ライブラリファイル』  マルチスレッドの場合は『/MT』または『/MTd』などを指定します。  オプションを指定しないでもマルチスレッドが出来るなら問題はないです。  VC++6.0は使っていないのでオプションに関する細かいことが分かりません。  確認して下さい。 >問題は無事に解決したのですが、マウスの時間ごとの移動量を取り出すプログラムが現在作成できていません。  前回のマウス位置から今回のマウス位置を単純に引き算すれば移動量は出ますけど。  何かつまづいているのでしょうか?

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.4

★??? ・補足とお礼のどちらを先に書きましたか?  お礼には『無事解決することが…』となっていますが、補足ではエラーが出たとなっています。  マルチスレッドでプログラムを組んでいるのでしょうか?  VCの場合はマルチスレッドのときにオプションを指定する必要があります。  知っていますか? ・参考に。

atsno1
質問者

お礼

すいません。 問題は無事に解決したのですが、マウスの時間ごとの移動量を取り出すプログラムが現在作成できていません。 マルチスレッドのときにオプションを指定する必要がありますとはどういったことなのでしょうか??参考になるホームページなどありましたらぜひ教えてください。 お手数おかけしますがよろしくお願いします

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★サンプルについて ・サンプルのインデントはいつも全角空白文字で記述しています。  ここのQ&Aでは半角空白文字は1つになってしまうため全角文字を使っています。  注意書きしておくべきでしたね。 ・全角空白を半角空白に変換すればエラーはなくなります。  またコンソール・アプリケーション以外でもマウスの座標を取得できます。 >このプログラムは他のプログラムと併用することで座標値を取り出すことができるのでしょうか??  ↑  ただ、この他のプログラムとは何ですか? ・補足をお願いします。

atsno1
質問者

お礼

お礼遅くなってしまってすいません。 間違って補足の方にかいてしまいました。 上の問題はOh-Orangeさんのおかげで無事解決することができました。 現在はこのプログラムを使ってマウスの時間ごとの移動量を取り出すプログラムを作成しています、アドバイスなどありましたら是非ともお願いいたします

atsno1
質問者

補足

お礼遅くなってしまって申し訳ございません。 無事にプログラムは実行できたのですが、以下のような(エラー?) がでてしまってマウスの座標値を得ることができませんでした。 これは、マウの座標値を得るのに必要なプログラムが入ってないということなのでしょうか? 'mouse.exe': 'C:\Documents and Settings\yamada\My Documents\Visual Studio 2005\Projects\mouse\debug\mouse.exe' を読み込みました。シンボルが読み込まれました。 'mouse.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\user32.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\gdi32.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\msvcrt.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\imm32.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\advapi32.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\rpcrt4.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\secur32.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\lpk.dll' を読み込みました。シンボルが読み込まれていません。 'mouse.exe': 'C:\WINDOWS\system32\usp10.dll' を読み込みました。シンボルが読み込まれていません。 スレッド 'Win32 スレッド' (0xc7c) はコード 0 (0x0) で終了しました。 プログラム '[3960] mouse.exe: ネイティブ' はコード 0 (0x0) で終了しました。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★アドバイス >コンソールでの取得はできるのでしょうか??  ↑  GetCursorPos()関数を利用します。  http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_getcursorpos.asp ・下の『参考URL』もどうぞ。 使い方: #include <stdio.h> #include <windows.h> // メイン関数 int main( void ) {  POINT po;    GetCursorPos( &po );  printf( "%d,%d\n", po.x, po.y );  return 0; } 以上。

参考URL:
http://www.geocities.jp/ky_webid/win32c/007.html
atsno1
質問者

お礼

お礼遅れてすいません。 サンプルプログラムまでつけていただきありがとうございます。 サンプルプログラムを実行した結果、以下のエラーが出ました。 このプログラムは他のプログラムと併用することで座標値を取り出すことができるのでしょうか?? 1>: error C3872: '0x3000': この文字を識別子で使用することはできません 1>: error C2065: ' POINT' : 定義されていない識別子です。 1> : error C3872: '0x3000': この文字を識別子で使用することはできません 1>: error C3872: '0x3000': この文字を識別子で使用することはできません 1> : error C2065: ' ' : 定義されていない識別子です。 1>: error C2146: 構文エラー : ';' が、識別子 ' ' の前に必要です。 1>: error C3861: 'GetCursorPos': 識別子が見つかりませんでした 1>: error C3872: '0x3000': この文字を識別子で使用することはできません 1> : error C2228: '.x' の左側はクラス、構造体、共用体でなければなりません 1> 型は 'int' です。 1>: error C2228: '.y' の左側はクラス、構造体、共用体でなければなりません 1> 型は 'int' です。 1> : error C3861: ' printf': 識別子が見つかりませんでした 1>: error C3872: '0x3000': この文字を識別子で使用することはできません 1> : error C2065: ' return' : 定義されていない識別子です。 1> : error C2143: 構文エラー : ';' が '定数' の前にありません。 1>ビルドログは "file://c:\Documents and Settings\yamada\My Documents\Visual Studio 2005\Projects\mouse\mouse\Debug\BuildLog.htm" に保存されました。 1>mouse - エラー 14、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

回答No.1

マウスの動作の取得は通常のWindowsアプリケーションであれば、イベントして受け取ります。MFCではCWnd::OnLButtonDown(MFC)を使用。 googleなどでOnLButtonDownを検索してみてください。 使用例などが書かれてたサイトがいろいろ見つかると思います。

atsno1
質問者

お礼

解答ありがとうございます。 何度も質問してすいませんが、コンソールでの取得はできるのでしょうか??よろしかったらご解答の方お願いします

関連するQ&A

専門家に質問してみよう