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

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

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

Re[9]: VBで指定した画像への左クリック


(過去ログ 123 を表示中)

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

■73618 / inTopicNo.1)  VBで指定した画像への左クリック
  
□投稿者/ kakadjdjkaka (1回)-(2014/10/17(Fri) 19:50:58)

分類:[VB.NET/VB2005 以降] 

ボタンをクリックしたら指定した画像へ左クリックするコードを教えてください。
できればマウスカーソルは移動しないでクリックできればいいなと思います。
ボタンをクリックして指定した画像への左クリックというのは、ブラウザ内で例えばstart.pngの画像が出てきたらそれを左クリックするというわけです。
ブラウザ起動→サイトへ移動→スタート(start.png)のボタンが表示されたら左クリック
というような流れです。
visual basic 2010 を使ってます。
引用返信 編集キー/
■73620 / inTopicNo.2)  Re[1]: VBで指定した画像への左クリック
□投稿者/ Azulean (343回)-(2014/10/17(Fri) 23:52:31)
2014/10/17(Fri) 23:52:44 編集(投稿者)

正直なところ、この内容ではお望みの回答を得ることができません。
ただ、最初からすべて書けというのも酷だと思いますので、必要そうなポイントをいくつか書いてみます。

No73618 (kakadjdjkaka さん) に返信
> ボタンをクリックしたら指定した画像へ左クリックするコードを教えてください。
> できればマウスカーソルは移動しないでクリックできればいいなと思います。

あなたはどのプロジェクトテンプレートを選択していますか?
Windows フォームアプリケーション、WPF アプリケーション、ストアアプリなど、どういったテクノロジーを使い、どのように作ろうとしているのか、情報を足してみてください。

> ボタンをクリックして指定した画像への左クリックというのは、ブラウザ内で例えばstart.pngの画像が出てきたらそれを左クリックするというわけです。

必ずブラウザが対象なのでしょうか。
また、そのブラウザは自分のアプリ内に表示するコントロールなのか、外部のブラウザなのか。
外部のブラウザなら IE なのか、Chrome なのか、Fire Fox なのか。
それとも、ブラウザや自分のアプリ内問わず、フォーム操作さえできればよいのか。



とりあえず、前提条件・要件が足りていないので、回答することが難しいのが実情です。
また、ピンポイントの質問もよいのですが、「何のためにそれをするのか」といった目的の部分も書くと、違った視点の助言を得られる可能性があります。
引用返信 編集キー/
■73622 / inTopicNo.3)  Re[2]: VBで指定した画像への左クリック
□投稿者/ kakadjdjkaka (2回)-(2014/10/18(Sat) 02:01:43)
No73620 (Azulean さん) に返信
> 2014/10/17(Fri) 23:52:44 編集(投稿者)
>
> 正直なところ、この内容ではお望みの回答を得ることができません。
> ただ、最初からすべて書けというのも酷だと思いますので、必要そうなポイントをいくつか書いてみます。
>
> ■No73618 (kakadjdjkaka さん) に返信
>>ボタンをクリックしたら指定した画像へ左クリックするコードを教えてください。
>>できればマウスカーソルは移動しないでクリックできればいいなと思います。
>
> あなたはどのプロジェクトテンプレートを選択していますか?
> Windows フォームアプリケーション、WPF アプリケーション、ストアアプリなど、どういったテクノロジーを使い、どのように作ろうとしているのか、情報を足してみてください。
Windows フォームアプリケーション
>
>>ボタンをクリックして指定した画像への左クリックというのは、ブラウザ内で例えばstart.pngの画像が出てきたらそれを左クリックするというわけです。
>
> 必ずブラウザが対象なのでしょうか。
> また、そのブラウザは自分のアプリ内に表示するコントロールなのか、外部のブラウザなのか。
> 外部のブラウザなら IE なのか、Chrome なのか、Fire Fox なのか。
> それとも、ブラウザや自分のアプリ内問わず、フォーム操作さえできればよいのか。
フォーム操作でお願いします。
>
>
>
> とりあえず、前提条件・要件が足りていないので、回答することが難しいのが実情です。
> また、ピンポイントの質問もよいのですが、「何のためにそれをするのか」といった目的の部分も書くと、違った視点の助言を得られる可能性があります。
アメーバピグというゲームで相手にグッピグをしたいピグをクリックするだけでグッピグするという補助ソフトを作るためです。
要はグッピグ.pngの画像が認識できたらそれを左クリックするということです。
自動ソフトとは違います。

引用返信 編集キー/
■73624 / inTopicNo.4)  Re[3]: VBで指定した画像への左クリック
□投稿者/ Azulean (345回)-(2014/10/18(Sat) 10:30:36)
No73622 (kakadjdjkaka さん) に返信
> 要はグッピグ.pngの画像が認識できたらそれを左クリックするということです。
> 自動ソフトとは違います。

「自動ソフトとは違います」と書かれていますが、何を以て「自動ソフト」を定義されているのでしょうか?

ゲームによってはその手の外部補助的なツールを使うことを禁止している可能性もありますし、一部操作だけとはいえ、自動的に実行することで制作者側が想定しないスピードで反応を返すことになります。
また、不具合によってツールが暴走し、サーバーに多大な負荷をかけてしまった場合、アカウント停止や損害賠償などといったトラブルを招く恐れがあります。


仮に規約面で許容されていたとしても、どこまでがセーフで、どこまでがアウトなのか、一律に線を引けるものではありません。
そのリスクを理解した上で製作されるのであれば、いろいろと学んでいただかないといけないでしょう。
(WebBrowser コントロールを使ってフォーム操作をするサンプルレベルでいいのなら、検索で見つけられるでしょう。あとはサイト個別の構成なり、フォームなりでシーケンスを作ることになるので、一般的な回答ではなく、特化した内容になります)
引用返信 編集キー/
■73653 / inTopicNo.5)  Re[4]: VBで指定した画像への左クリック
□投稿者/ xlink (2回)-(2014/10/22(Wed) 14:16:44)
No73624 (Azulean さん) に返信
> ■No73622 (kakadjdjkaka さん) に返信
>>要はグッピグ.pngの画像が認識できたらそれを左クリックするということです。
>>自動ソフトとは違います。
> 
> 「自動ソフトとは違います」と書かれていますが、何を以て「自動ソフト」を定義されているのでしょうか?
> 
> ゲームによってはその手の外部補助的なツールを使うことを禁止している可能性もありますし、一部操作だけとはいえ、自動的に実行することで制作者側が想定しないスピードで反応を返すことになります。
> また、不具合によってツールが暴走し、サーバーに多大な負荷をかけてしまった場合、アカウント停止や損害賠償などといったトラブルを招く恐れがあります。
> 
> 
> 仮に規約面で許容されていたとしても、どこまでがセーフで、どこまでがアウトなのか、一律に線を引けるものではありません。
> そのリスクを理解した上で製作されるのであれば、いろいろと学んでいただかないといけないでしょう。
> (WebBrowser コントロールを使ってフォーム操作をするサンプルレベルでいいのなら、検索で見つけられるでしょう。あとはサイト個別の構成なり、フォームなりでシーケンスを作ることになるので、一般的な回答ではなく、特化した内容になります)


なんとか完成に近くなったのですが、

Public Class Form1

 Private Sub Button()



 End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
 'ファイルから画像を読み込む
 Dim img As Image = Image.FromFile("C:\Users\mikuma\Desktop\ピグをクリック.jpg")
 '画像の描画範囲を決める

 Dim sp2 As New Bitmap(PictureBox2.Width, PictureBox2.Height)
 Dim g2 As Graphics = Graphics.FromImage(sp2)
 Dim img2 As Image = Image.FromFile("C:\Users\mikuma\Desktop\ピグをクリック.jpg")
 g2.DrawImage(img2, 0, 0, PictureBox2.Width, PictureBox2.Height)
 img2.Dispose()
 g2.Dispose()
 PictureBox2.Image = sp2
 'PictureBox1の座標
 mouse_move(888, 366)
 'マウスポインター移動
 Cursor.Position = New Point(Me.Left + mx1(), Me.Top + my1())
 mouse_event(mousdown, 0, 0, 0, 0) 'マウスダウン
 mouse_event(mousup, 0, 0, 0, 0) 'マウスアップ
 End Sub
 Private Sub mouse_move(ByVal mx1 As Integer, ByVal my1 As Integer)
 'マウスポインター移動
 Cursor.Position = New Point(Me.Left + mx1, Me.Top + my1)
 mouse_event(mousdown, 0, 0, 0, 0) 'マウスダウン
 mouse_event(mousup, 0, 0, 0, 0) 'マウスアップ
 End Sub



 
 'API関数の宣言部分
 <System.Runtime.InteropServices.DllImport("USER32.DLL")> _
 Private Shared Sub mouse_event(ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)
 End Sub
 '定数宣言
 Private Const mousup As Integer = &H4 '左ボタンUP
 Private Const mousdown As Integer = &H2 '左ボタンDown

 

 

 Private Function my1() As Integer





 End Function
 Private Function mx1() As Integer
ーーメソッドまたは操作は実装されていません。ーー
 Throw New NotImplementedExceptioそ
ーーメソッドまたは操作は実装されていません。
 End 
End Class


ソースなんですが

↑のよエラーが出て、一回目ボタンを押すとクリックはするが
二回目以降は終了してくださいの画面が出て強制的に終了されます。。
これを修正してください。
二つ目の問題があります。
画像指定といいましたがただの座標指定になっていてクリックするのですが画像をクリックしませんでした。
なので、画像指定で画像が表示されたらそれを認識してクリックするように修正お願いします。

引用返信 編集キー/
■73660 / inTopicNo.6)  Re[5]: VBで指定した画像への左クリック
□投稿者/ 774RR (185回)-(2014/10/22(Wed) 18:38:40)
それって作成依頼ぢゃね?
しかるべき業者に適切な費用を払ってお願いしてください。
引用返信 編集キー/
■73663 / inTopicNo.7)  Re[6]: VBで指定した画像への左クリック
□投稿者/ ヴァン (3回)-(2014/10/22(Wed) 19:15:59)
No73660 (774RR さん) に返信
> それって作成依頼ぢゃね?
> しかるべき業者に適切な費用を払ってお願いしてください。

クラウドワークスにもで掲載すれば作成してくれる人が居るかもしれませんね。


引用返信 編集キー/
■73666 / inTopicNo.8)  Re[7]: VBで指定した画像への左クリック
□投稿者/ 優希(ゆき) (4回)-(2014/10/22(Wed) 20:21:37)
No73652っておんなじ人じゃない?w
引用返信 編集キー/
■73675 / inTopicNo.9)  Re[5]: VBで指定した画像への左クリック
□投稿者/ Azulean (349回)-(2014/10/22(Wed) 22:04:34)
すでに指摘されていますが、kakadjdjkaka さんと xlink さんは同じ方でしょうか。

掲載されているコードは1回目のボタン押下で例外が発生するはずです。2回目以降ではなく、1回目の例外表示に時間がかかっているだけでしょう。
また、肝心のブラウザ内の画像を特定する処理をあなたは実装されていないようです。
そこが肝(一番難しいところ)なのに、それを「実装してください」はすでに作業依頼と言えます。

なお、私の疑問 No73624 に対しては何かクリアになったんでしょうか。
引用返信 編集キー/
■73679 / inTopicNo.10)  Re[6]: VBで指定した画像への左クリック
□投稿者/ xlink (7回)-(2014/10/22(Wed) 22:22:53)
No73675 (Azulean さん) に返信
> すでに指摘されていますが、kakadjdjkaka さんと xlink さんは同じ方でしょうか。
>
> 掲載されているコードは1回目のボタン押下で例外が発生するはずです。2回目以降ではなく、1回目の例外表示に時間がかかっているだけでしょう。
> また、肝心のブラウザ内の画像を特定する処理をあなたは実装されていないようです。
> そこが肝(一番難しいところ)なのに、それを「実装してください」はすでに作業依頼と言えます。
>
> なお、私の疑問 No73624 に対しては何かクリアになったんでしょうか。

そうなんですね。。
肝心なところはおいといて、なぜ例外が発生するのでしょうか?
引用返信 編集キー/
■73682 / inTopicNo.11)  Re[7]: VBで指定した画像への左クリック
□投稿者/ Azulean (350回)-(2014/10/22(Wed) 22:37:18)
No73679 (xlink さん) に返信
> 肝心なところはおいといて、なぜ例外が発生するのでしょうか?

あなたが「Throw New NotImplementedException」を残しているからです。
これは「”実装されていません”という例外を投げる」コードです。
引用返信 編集キー/
■73688 / inTopicNo.12)  Re[8]: VBで指定した画像への左クリック
□投稿者/ xlink (12回)-(2014/10/23(Thu) 12:22:59)
No73682 (Azulean さん) に返信
> ■No73679 (xlink さん) に返信
>>肝心なところはおいといて、なぜ例外が発生するのでしょうか?
>
> あなたが「Throw New NotImplementedException」を残しているからです。
> これは「”実装されていません”という例外を投げる」コードです。

ここと左クリック解決しました。
すみません、xlinkとkakadjdjは同一人物です。
すでに質問したのですが、
指定した画像が表示されたらそこへマウスカーソルを移動させるコードを教えてほしいです。
ここがどうしてもわからなかったです。
引用返信 編集キー/
■73690 / inTopicNo.13)  Re[9]: VBで指定した画像への左クリック
□投稿者/ 魔界の仮面弁士 (161回)-(2014/10/23(Thu) 13:42:03)
2014/10/23(Thu) 13:54:08 編集(投稿者)

No73688 (xlink さん) に返信
> すみません、xlinkとkakadjdjは同一人物です。

了解です。(一応、ここの利用規約も再読しておいてくださいね)
http://bbs.wankuma.com/index.cgi?mode=man

>>> 一貫して同じハンドルを使用し、場を混乱させないようにしましょう。
>>> 同じハンドルの方が質問の背景がわかりやすいです (自作自演をしたり
>>> 別人を装うのは回答者の善意を裏切る行為です)。

ところで……No73618 のスレッドと No73652 のスレッドは、
発言者が同一というだけでなく、最終目標としている案件そのものも、
同じところ(Flash アプリの自動操作)を目指しているものだと
考えてよいのですよね?


> 指定した画像が表示されたら
まずはそのために、「画像をどのように指定するのか」を
明らかにしておかないといけませんね。

画像を判別する手段をまず検討しないことには、それを実現するための
コードを組むこともままなりません。コーディングの前に
アルゴリズムの検討が先だということです。

しかし、掲示板を見ている第三者は、操作対象の Flash ソフトを
持ち合わせているわけではありません(ソフト名すら分からないでしょう)。

現状では情報不足で、そのものズバリなコードはおろか、技術的な提案を
提示することすら困難だと思います。ゆえに完成させるまでには、
そうした各種技術を自身で調査・理解し、それらを組み合わせられるまでの
スキルが要求されてくると思います。



で。たとえば手抜き実装として思いつく方法としては……

目的の画像位置が分からないまま、外れの座標も含めて、
あちらこちらにカーソル位置を超高速で振り回してみるとか。

画面の端から順番に走査させていけば、そのうち、本来の
クリック対象の位置に突き当たるはずなので、各座標を
ただ只管に自動クリックさせてみるとか。(Flash 側の動作仕様を
知らないので、目標の動作を得られるかは分からないですけれど…)


> そこへマウスカーソルを移動させる
「そこ」が「どこ」なのかが曖昧なだけであって、
カーソル移動の件については、既に解決していますよね。

Cursor クラスを使う方法や、API を使う方法が紹介されています。


> コードを教えてほしいです。
――それは「質問」ではなく、「作成依頼」ですね最早。

アルゴリズムが出来あがった上で、それを VB のコードにしていこうとして
悩んでいる段階なら、回答者がサンプルや資料を提示することが可能かもしれません。

しかし現状のように、Flash 側の仕様等がほとんど明かされないままで、
アルゴリズムの検討から VB への実装までを、ほぼすべて丸投げで
作成依頼しようというのであれば、協力してくれる人は皆無でしょう。

無償対応ともなれば尚更です。

…あるいは、有償で作成依頼することも吝かでは無いのだとしたら、
マウスエミュレーションで Flash ソフトを無理やり制御するのではなく、
大元の Flash ソフトの作者に頼んで、VB 側から Flash コンテンツを
操作できるような機能(ExternalInterface でしたっけ?)を
用意してもらった方が
手っ取り早い気がします。(あるいは、特定のメソッドを呼び出すことで、
クリックした場合と同じ動作が得られるような裏道を作ってもらうとか)


で。

そういった、Flash ソフトの作者側の協力が得られそうにないのであれば、
  「画面内に、特定の画像が含まれているかどうかを検出し、
   その座標を調べる方法」
について調査していく事になるのでは無いか、と予想しています。
http://oshiete.goo.ne.jp/qa/6163698.html

# 画像検出だと OpenCV のライブラリが使えないかな…? (未確認)
# テンプレートマッチングの機能があると聞いたことがあったような無い様な。
引用返信 編集キー/
■73691 / inTopicNo.14)  Re[9]: VBで指定した画像への左クリック
□投稿者/ 優希(ゆき) (5回)-(2014/10/23(Thu) 13:43:55)
No73688 (xlink さん) に返信
> ■No73682 (Azulean さん) に返信
>>■No73679 (xlink さん) に返信
> >>肝心なところはおいといて、なぜ例外が発生するのでしょうか?
>>
>>あなたが「Throw New NotImplementedException」を残しているからです。
>>これは「”実装されていません”という例外を投げる」コードです。
>
> ここと左クリック解決しました。
> すみません、xlinkとkakadjdjは同一人物です。
> すでに質問したのですが、
> 指定した画像が表示されたらそこへマウスカーソルを移動させるコードを教えてほしいです。
> ここがどうしてもわからなかったです。

HTML解析するしか無いと思う。

てか、ピグは釣りとかの自動ツールは禁止だけど、そう言うのはわからないから聞いたほうがいいと思う。

突然のBANで泣くのは自分よ。
引用返信 編集キー/
■73693 / inTopicNo.15)  Re[10]: VBで指定した画像への左クリック
□投稿者/ 魔界の仮面弁士 (162回)-(2014/10/23(Thu) 14:15:54)
No73691 (優希(ゆき) さん) に返信
> HTML解析するしか無いと思う。

No73671 の発言を見ると
>>> 最近買ったオフゲー
とあったので、スタンドアロンの無通信ゲームを想像していました。


これがオンラインのゲームだとして、HTTP 通信の中に十分な情報が
含まれているのだとすれば、FiddlerCore を利用できるかもしれませんね。
今回の案件で使えるかどうかは別として。
http://www2.hatenadiary.jp/entry/20131208/1386528611
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -