DEF_DLL PostMessageA(HWND,LONG,LONG,DWORD):LONG:user32.DLL
id=getid("IEXPLORE")
hnd=idtohnd(id)
ACW(GETID("IEXPLORE"),0,0,640,480,0)
while true
sleep(0.003)
IFB PEEKCOLOR(400, 300) = $0000FF
PostMessageA(hnd,$201,0,0)
while true
ifb PEEKCOLOR(400, 300) <> $0000FF
sleep(0.1)
PostMessageA(hnd,$202,0,0)
break
endif
sleep(0.01)
wend
ENDIF
wend
拾い物のソースなのですが
もし〜が〜色ならクリックするというものが書かれています
これをDelphiで書き直したいのですが
どのようにすればいいのでしょうか?
プログラミングに関してはかなり初心者です
環境はWinXP Pro Delpi7 Proです
よろしくお願いします
無理なのでしたら無理という回答でもいいのでください
お願いします
無理ではない、しかしここまでソースがあるなら自分で調べてDelphiに書き直す。
初めの〜の部分が曖昧すぎます。
自分のアプリ内のイメージなのか?
デスクトップ上の色情報?
その他?
クリックは?
自、別アプリ?もしくはWM_LBUTTONDOWN?
たとえばフラッシュゲームで画面の真ん中が赤くなった瞬間クリックする
ようなものがあるとしたら
それを自動化したいのです
自分でしらべたのですがなにせ初心者なもので
PEEKCOLORをDelphiでどう書けばいいのかとさっぱりなのです・・・
無知識でご迷惑おかけします・・・
スクリーン上の固定位置でいいのなら、
GetPixel(GetWindowDC(0), x, y);
フラッシュの画面なら普通は無理
モニタ上の一点の色で判断できませんか?
IEウィンドウ内のFlash画面でも、
デスクトップのDCで GetPixcelすれば色取得可能。
http://www.swissdelphicenter.ch/torry/showcode.php?id=246
ここのサンプルそのまま使って
で試しましたが、取得できました。(jellyがFLASHでできてるとして、ですけど)
色取得もクリックも比較的簡単にできます。
色取得はすでに回答があるようなので、クリックの方ですが
mouse_event
というのが使えますし、Flashでの動作も確認しています。
まぁ、やりたいことを察するにいわゆるcheat行為だと思うので、
このくらいの回答に留めておきます。
あまりいいたくなかったのですが
正直いいますとKaRaKaNというDirectXを利用するゲームで
動作する自動クリックツールが使いたかったのです
GetPixelはDirectXを利用するゲームの画面の色を取得することが出来るのでしょうか?
DirectXを利用するゲームであっても、ウィンドウ表示であれば
デスクトップのGetPixelで取得可能だけど、全画面表示ならばダメ。
一応全画面なんですけど
DirectX窓化ツールとかあったのでそれ使えば出来るかな・・・
ツイート | ![]() |