C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 対象ウィンドウへのメッセージ送信


(過去ログ 137 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■80752 / inTopicNo.1)  対象ウィンドウへのメッセージ送信
  
□投稿者/ Altair (1回)-(2016/08/08(Mon) 22:59:40)

分類:[C#] 

質問させていただきます。
開発環境はvlsual studio 2015
.NET framework 4.5.2です。

パソコンでのゲームを他ウィンドウから操作したいと考えています。
SPY++で上矢印、下矢印のメッセージを確認したところ
上が
<000380> 000E0C88 P WM_KEYDOWN nVirtKey:VK_UP cRepeat:1 ScanCode:48 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
<000381> 000E0C88 S WM_GETDLGCODE
<000382> 000E0C88 R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_WANTTAB | DLGC_WANTALLKEYS | DLGC_WANTCHARS
<000383> 000E0C88 S WM_GETDLGCODE
<000384> 000E0C88 R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_WANTTAB | DLGC_WANTALLKEYS | DLGC_WANTCHARS
<000385> 000E0C88 P WM_KEYUP nVirtKey:VK_UP cRepeat:1 ScanCode:48 fExtended:1 fAltDown:0 fRepeat:1 fUp:1
となり、下が
<000374> 000E0C88 P WM_KEYDOWN nVirtKey:VK_DOWN cRepeat:1 ScanCode:50 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
<000375> 000E0C88 S WM_GETDLGCODE
<000376> 000E0C88 R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_WANTTAB | DLGC_WANTALLKEYS | DLGC_WANTCHARS
<000377> 000E0C88 S WM_GETDLGCODE
<000378> 000E0C88 R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_WANTTAB | DLGC_WANTALLKEYS | DLGC_WANTCHARS
<000379> 000E0C88 P WM_KEYUP nVirtKey:VK_DOWN cRepeat:1 ScanCode:50 fExtended:1 fAltDown:0 fRepeat:1 fUp:1
でした。

メッセージ送信系はほとんどわからない状態なのですが、これはpostmessageで対象ウィンドウに上のメッセージを送れば動作するものなのでしょうか?
その場合どのように記述すればいいのでしょうか?
全くわからないため、どうかよろしくお願いします。
引用返信 編集キー/
■80753 / inTopicNo.2)  Re[1]: 対象ウィンドウへのメッセージ送信
□投稿者/ Azulean (675回)-(2016/08/09(Tue) 06:31:18)
No80752 ( Altair さん) に返信
> メッセージ送信系はほとんどわからない状態なのですが、これはpostmessageで対象ウィンドウに上のメッセージを送れば動作するものなのでしょうか?
> その場合どのように記述すればいいのでしょうか?

ウィンドウメッセージを送るアプローチを使った場合だと、動くケースもあれば、動かないケースもあります。
理由はゲーム側の実装によって、メッセージでキー入力を察知しているケースもあれば、別の方法で察知しているケースもあるためです。
その他、オンラインゲームの一部ではツールなどによる不正操作予防のため、他のプロセスからの入力行為を排除しているケースもあります。

最近、同じような話題が下記のスレッドでもありましたが、そちらに書かれているようなキーワードでまず調査してみてください。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=80558
引用返信 編集キー/
■80762 / inTopicNo.3)  Re[2]: 対象ウィンドウへのメッセージ送信
□投稿者/ Altair (1回)-(2016/08/09(Tue) 21:14:02)
返信ありがとうございます。
SendInput, keybd_event, GetAsyncKeyStateについて調べてみます。
オンラインゲームではなく、また10年以上前のオープンソースのものなので、変な外部対策はしていないと思うのですが、
その場合はウィンドウメッセージを送れば動くのでしょうか?
引用返信 編集キー/
■80765 / inTopicNo.4)  Re[3]: 対象ウィンドウへのメッセージ送信
□投稿者/ Azulean (676回)-(2016/08/09(Tue) 22:29:41)
No80762 (Altair さん) に返信
> オンラインゲームではなく、また10年以上前のオープンソースのものなので、変な外部対策はしていないと思うのですが、
> その場合はウィンドウメッセージを送れば動くのでしょうか?

ウィンドウメッセージを受けて動いているだけならそうですが、GetAsyncKeyState などを用いてキーの押下状態を関数で取得しているような実装ならメッセージだけでは足りません。
正直、やってみないとわからないとしか言えません。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -