1 :
名無しさん@お腹いっぱい。 :
2010/12/03(金) 12:31:43 ID:W92a0hyv0
●質問したい方へ。
「○○作れますか?」→ スクリプトを期待するのはお門違い。作れるか作れないか教えてくれる人はいるかも。
「○○が作りたい」→ 自分作ればいいんじゃない?
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。
●スクリプトを晒す上での注意
他人が読みやすいようにインデントを付けるように。解らない人はググレ。
(タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし)
言いたい事に関係無い部分は 〜○○の処理〜 や 処理A 等のようにし、
必要な部分を晒すようにする。
●他人の書いたスクリプトを安易に実行しないように。
ハードディスクをフォーマットされたりしても、自己責任。
前スレ
自動化ツールuwsc使いよ集まれ5
http://hibari.2ch.net/test/read.cgi/software/1260304053/
結婚おめ
スレ違いで申し訳ないのですが uwscに出会いプログラムが面白いなぁと思い。 とりあえず、htmlとcssは理解できるようになったので、つぎにphpを勉強しようと思います。 そこで質問です。 『超速!! Windows マクロテクニック』のような、分かりやすいphpの解説書はありませんか? ついでに、その次に覚えたほうがよいプログラム言語とその解説書も教えてください。
プログラム言語に入門したいのなら C++から始めるのがおすすめ 枯れた言語だから情報には事欠かないし 他言語を覚える際の基礎にもなる。 その後流行りのJavaなんか覗いてみるのはどうよ
7 :
名無しさん@お腹いっぱい。 :2010/12/06(月) 20:11:50 ID:B1kSF4Sri
>>5-6 専用スレで、連携外で他の言語の話は余り好ましくは無いだろう。
雑談や該当の専用スレで聞いた方が的確な返答が望めるしね。
>>6 ありがとう、参考にします。
>>7 他スレだと『超速!! Windows マクロテクニック』を知らない人が多いと思って・・・
uwscのサイトをまわると、何かとこの本を薦めているし、かつ、実際にいい本なので
これを知っている人の意見を聞きたかったのです。
9 :
名無しさん@お腹いっぱい。 :2010/12/06(月) 22:19:09 ID:Aj265gjo0
>>8 最終的に聞いてるのは、PHPのお薦めじゃねーかw
>>8 > 他スレだと『超速!! Windows マクロテクニック』を知らない人が多いと思って・・・
長年UWSC使ってるけどそんな本知らんけど。
大体、解説本なんか必要とするスクリプトじゃないだろ。
その本、俺も買ったけど役立たずだったぞw 「マクロで何をやりたいか」によると思うけど。
入門なら絵本系でいいんじゃないか?PHPの絵本。
uwscでIEのウィンドウが2つ以上だったら、ウィンドウを消す という動作をしたいのですが、ウィンドウの数を認識させる方法が分かりません どなたか教えてくださいませんか?
全部のウィンドウをチェックして、その中にIEがいくつあるか数えればいいだけでは
CLKITEM(id, ボタン, CLK_ACC) でchromeのボタンをクリックしようとしたら8.0.552.215に自動アップデートされたのを機に(?)クリックできなくなってしまいました GETITEMでも該当のボタンは取得できなくなっていました どうしたらこのボタンをクリックさせられるんでしょうか 起動オプションに --enable-renderer-accessibility をつけても駄目でした
16 :
名無しさん@お腹いっぱい。 :2010/12/08(水) 09:29:55 ID:j0S0Cxm7i
>>15 idが取れてない、が大半じゃねーか?
対象ウィンドウに対して、
ステータスの全確認をすると作業は捗るぞ。
CTRLWIN(id, MAX ) とするとちゃんとchromeのウィンドウが最大化するのでidが取れていないということはなさそうです インストールせずにchromeを実行する方法がchromeのスレに書いてあったので7.0.517.44のバージョンを落としてきて試してみた所 CLKITEM(id, ボタン, CLK_ACC) で問題なくクリックできました なのでバージョンアップを機にアクセシビリティ用インターフェース経由でのクリックが出来なくなってしまったのではないかと思うんですが もしそうであれば何か解決方法はないでしょうか
三つ質問があります。 1.PEEKCOLORで取得した色の値を知りたいのですが、 color = PEEKCOLOR(...); print color とするとFF0000が2550000といった風に16進数でなく10進数で表示されてしまい、数値から色を知ることが困難です。 PEEKCOLORで取得した色が何色なのか知るにはどうすればいいでしょうか? 2.ゲームのメッセージウィンドウに表示されているテキストを取得したいのですが、うまくいきません。 GETSTR(ID, i, j)としてiを0-100、jを0-4の範囲で組み合わせてprintしてみましたが何も表示されませんでした。 他に何か方法は無いでしょうか? 3.スレチになってしまうかも知れませんが、LAN上の他PCで走らせているUWSCを遠隔操作する方法を探しています。 任意の操作で任意のキーを他PCに送る方法があれば解決しそうですが、見つけられませんでした。 何か方法をご存知でしたらご教授ください。
>>18 1.color = PEEKCOLOR(...); print FORMAT(color,6,-1)
2.なんか対策されてんじゃない?たぶん無理
3.鯖でも立ててみるとか?
>>19 PEEKCOLORの件解決しました。ありがとうございます。
詳しく調べてないから間違えてるかもしれないけど、そのゲームが文字列を描画する際に テキストボックスやエディットボックスを使わずに DirectDrawやTextOutAとかの描画系APIを用いている場合は無理なんじゃないかな。 そういう場合はOCRみたいな機能のあるDLLを使うか(あるか知らないけど) メモリをいじれる技術を持っているならメモリを覗き見るしか方法がないと思う。 3についてはShowMyPCみたいな遠隔操作ツールを使えば出来るかも。 かなりの制限がありそうだけどね。
書いた後思い出したけど、ゲームに描画される文字列をAPIフックを使って抜き出すツールがあったような。 それと併用するのも手かも。
こんばんは、質問お願いします Callで別ファイルを呼ぶことができますが、Threadで別ファイルを呼ぶことはできないのでしょうか? ヘルプを読んだり検索してみましたが、それらしい内容は見つかりませんでした やってみるのが手っ取り早いですが、構文間違いなどでできるものをできないと認識してしまうのが怖いです よろしくお願いします
質問なんだけど UWSCで、ブログか何かに「ローグ」って文字をカタカナで打ち込んで、記憶したとするじゃん? その記憶したUSCファイルをtxtに拡張子変えて、メモ帳形式で開いてみた そして、そのメモ帳形式のUSCファイル(ローグという文字を打ち込んだ動作が記憶されてるファイル) を、Ctrl+Fで「ローグ」で検索しても、1件もヒットしない。 どういう事ですか? どうやれば、ローグと打ち込んだ箇所を発見することが出来るのでしょうか?
>>24 キー入力が記録されてるだけだから
Rキーを押した
Oキーを押した
-キーを押した
Gキーを押した
Uキーを押した
変換キーを押した
という形でしか記録されとらんよ。
文章なんか無いから検索も出来ん。
A・B・Cの3つの処理を、同時に平行して行いたいのですが、 Threadというので可能っぽいけど、どうしても理解できません>< どう設定すれば良いのか教えてもらえませんか?
thread A() thread B() thread C()
>>29 何が理解できてないかが伝えられていない。
ヘルプのスレッドの『例)』を実際に動かしてみて
その上でわからない点を説明してみろよ。
Thread カウント() PRINTにてカウント procedure カウント() 噴出しにてカウント fend これで噴出しにてカウントとPRINTにてカウントの2つを同時に実行するでしょ? これを3つ同時にするにはどうすりゃいいのさ?
>>31 まんま
>>28 だろ
あれに当てはめて実行してみてどんな不具合があるのかの説明が必要だ。
だからどう当てはめるか分かんねーって言ってんの…
>>33 お前はヘルプを読んだほうがいい
<スレッド生成>
// スレッド生成して実行する事ができます
THREAD 関数名() // 関数は別スレッドにて実行される
スレッド実行の対象は関数だと書いてある。「カウント()」だって関数だ
>これで噴出しにてカウントとPRINTにてカウントの2つを同時に実行するでしょ?
この動作を関数化しろ そして3つ呼べ
ちなみにスレッドは16個までしか生成できないから、多重生成しすぎるなよ
さらに色々な問題点はあるだろうが、とりあえず入り口だけ。
そんなこと書いてる暇があったら答えを書いてくれよw thread A() 処理A thread B() 処理B thread C() 処理C って書けばいいのか?違うでしょ? 関数化とか言われても分かんねーんだよ 具体例が分かればそこからは自分でなんとかするから
ID:T9rBTFby0 ↑教える気がないなら答えるな。バカにしてるだけか? 消えうせろよかす
「教えて下さい」と「作って下さい」は別だぞ。 ゆとりちゅんは来るなボケ!
>>36 threadなんて命令あるんだ。初めて知ったw
お礼に具体例書いておくよ。
thread A()
thread B()
thread C()
procedure A()
処理A
fend
procedure B()
処理B
fend
procedure C()
処理C
fend
>>39 おぉ、ありがとうございます。
早速試してみたところ、ABCそれぞれを繰り返したいのですが、
1回ずつ実行するだけで終了してしまいます。
なぜなんだぜ?
thread A()
thread B()
thread C()
procedure A()
While 1
KBD(VK_A,0,1000)
Wend
fend
procedure B()
While 1
KBD(VK_B,0,2000)
Wend
fend
procedure C()
While 1
KBD(VK_C,0,3000)
Wend
fend
41 :
名無しさん@お腹いっぱい。 :2010/12/15(水) 11:46:26 ID:Du+f2fhHi
>>40 ほんとだw
グーグル先生に聞いてみたら、呼び出し元が終了したら、呼び出し先も終了するらしい。
とのことなので呼び出し元が終了しないようにWhileで回してらいいかもしれない。
thread A()
thread B()
thread C()
While 1
sleep(0.1)
Wend
procedure A()
While 1
KBD(VK_A,0,1000)
Wend
fend
procedure B()
While 1
KBD(VK_B,0,2000)
Wend
fend
procedure C()
While 1
KBD(VK_C,0,3000)
Wend
fend
>>42 アンタ…惚れてまうやろー
完璧なお答えありがとうございました><
なんかすごいな いややばいのか
xOUAwrADP こいつの頭もどうかしてるしこんなやつに丁寧に教えれるやつもどうかしてる
こういう奴に丁寧に教えちゃう奴も 迷惑行為だって自覚するべき
(´・ω・`)
はいはい 分かったからお前は人への質問の仕方をママから教わりな
┐(´ー`)┌ ヤレヤレ
文句だけ言ってる奴よりは、よっぽど有益だと思うけどw
しかし何でこうヘルプ読まない奴ばかりなのか? 親切不親切で言ったらヘルプが一番親切に説明してあるだろうに。
超超超初心者はヘルプだと理解できないだろ。
例文を与えて少しずつアレンジしていくのが分かりやすい。
だから初心者は質問の前に
>>3 を一通り嫁。
記録したあと、UWSCフォルダから記録したファイルをデスクトップに持ってきた それで、それをtxtファイルに名前変更して、While 1とWendを付け足した ここまでは良いんだけど ファイルの名前をtxtからUWSに戻して、UWSCフォルダに戻そうと思ったら txt形式のままで、UWS形式に戻ってくれないから使えない。 どうすればいい?
意味不明 名前の変え方を知らないとかそんなレベル?
56 :
名無しさん@お腹いっぱい。 :2010/12/20(月) 18:15:22 ID:o9PwepWz0
だいたいそもそも、わざわざ拡張子を変更しなくても、 ちょっとしたエディタ入れてたら『右クリック』の『送る』で拡張子がなんであろうと エディタで開けるし。 目も超しか持って無い時点でそーとーのしろーと。
どの辺が意味不明だった? けなすのはいいけど、質問に答えてくれ 普通に、ファイルの名前の部分をクリックして、名前を○○○.UWSから○○○.txtと打ち込んで変更しただけだが あと素人って書いた方がよかったかな。素人初心者です。
それを言うならD&Dで済む話だが… SendToにショートカット置くような糞エディタあるのか?
>>57 > 普通に、ファイルの名前の部分をクリックして、名前を○○○.UWSから○○○.txtと打ち込んで変更しただけだが
逆の操作が出来ないって言ってるのか意味不明
だから、言ってるじゃん ファイルの名前をtxtからUWSに戻して、UWSCフォルダに戻そうと思ったら txt形式のままで、UWS形式に戻ってくれないから使えない。 って。
61 :
名無しさん@お腹いっぱい。 :2010/12/20(月) 18:33:31 ID:o9PwepWz0
で、なんでわざわざデスクトップに持っていくの? そのままの場所で拡張子を(わざわざ)変えてメモ超でひらいて、 そしてその場所でまた(わざわざ)拡張子を変えればいいんじゃない?
UWSCのフォルダ内で拡張子変更したら、FILE Not Foundなんたらデスクトップ uwsc○○○○.UWSって警告が出て、ファイルが消滅してしまうんだよ
>>62 そのレベルは、PC初心者板で聞いてもらった方がいいよ。
ここまで足運んできたのに、なんで別板に行かないといけないんだ? 頼む、なんで拡張子がtxtのまま変わらないのか教えて下さい。アホだからとかそういうネタは抜きで。
>>64 マジで言うと、アホだから。
…まさか、アホじゃないとか言うなんて、ネタでもやめてくれよw
>>64 お前がやった操作を1から10まで全部書けよ。
実は元々ファイル名も変えてないし、ファイル移動もしてないとかいう落ちが
つく超低レベルな話じゃないかと思うけど。
名前を変えると同じフォルダに同じ名前のファイルが存在してしまう状況では、名前は変えられない。
拡張子に関しても同じ事が言えるけど、
>>54 の状況見た感じでは違う理由な気がする。
勿論、「なんたら」とかいう勝手な省略は無しな。 警告文まで一字一句正確に書いてみろよ。
70 :
名無しさん@お腹いっぱい。 :2010/12/20(月) 18:54:38 ID:ukz8HFvs0
まぁ、だからてっとりばやい話『拡張子を変えずに編集しろ』ってこった。
71 :
名無しさん@お腹いっぱい。 :2010/12/20(月) 18:55:49 ID:ukz8HFvs0
ってか、みんな編集するとき、いちいち拡張子を.txtにしてるの?
1.デスクトップに移動してから戻すときはショートカットを戻す 2.ショートカットの名前変更 3.デスクトップのファイル消去 4.ショートカットを開こうとしてファイルが無いぞゴルァ みたいな事じゃないかと想像してみる。
@普通にUWSCで操作を記録したんだよ(記憶内容は関係ないから省く) A記憶を保存した B記憶を読み込むボタンを押して、UWSCフォルダを開いた C○○○.USCファイルをデスクトップに左クリック+ドラッグで移動した(デスクトップに移動した理由 UWSCフォルダ内でtxtに変更するとファイルが消滅するから) Dデスクトップ上で○○○.UWSのアイコンを左クリックして、名前を○○○.UWSから○○○.txtに変更する (キーボードで直接名前を打ち込んだ) Eそのtxt形式の○○○ファイルを開き、While1とWhenを付け足してデスクトップに保存した F保存したそれを○○○.txtを左クリックして、○○○.UWSに名前をキーボードで打ち込んで名前変更した Gしかし、アイコンがメモ帳のまま変わらない HUWSCの読み込みボタンを押し、UWSCフォルダを開く Iデスクトップ上にある○○○.UWSを左クリック+ドラッグで移動して、UWSCフォルダまで運ぶ Jなぜか○○○.UWSが見えない。おそらくtxt形式のままUWSCフォルダにぶち込んだせい
75 :
名無しさん@お腹いっぱい。 :2010/12/20(月) 19:07:25 ID:ukz8HFvs0
ファイルが消滅って・・・・それ、ただUWSCのファイルを開くダイアログでは 拡張子がuwsしか表示されないからじゃないかい? 無くなったわけじゃないだろ。 ファイルエクスプローラーで見てみたのかい?
76 :
名無しさん@お腹いっぱい。 :2010/12/20(月) 19:09:30 ID:ukz8HFvs0
>>74 俺は主にHTMLを打つからCrescent Eveを使っている。
あとはシェアウェアだけどEmEditorとか。
>>73 > F保存したそれを○○○.txtを左クリックして、○○○.UWSに名前をキーボードで打ち込んで名前変更した
> Gしかし、アイコンがメモ帳のまま変わらない
お前… 登録された拡張子は表示しない設定にしてるだろ。
hogehoge.uws → hogehoge.txt → hogehote.uws.txt
名前は変わったように見えるが拡張子変わってない。
爆釣れだな
いやいや釣ってないし
教えてくれた人サンクス。礼だけは先に言っておかないと
ちょうど書き込みに疲れて休憩してたのと、メシの時間が重なってただけ
とりあえず
>>75 が怪しいから後でやってみる
>>75-77 。なるほどサンクス
当然の事ながら、UWSCのファイルを開くダイアログには hogehoge.uws.txt は出てこないからな。
拡張子を変更せずにUWSファイル開こうとしたんだけど Crescent Eveって、txt形式のファイルしか開けなくない? どうなってんの? 拡張子変更せずにUWSファイル編集できるフリーソフト教えて
メモ帳
回りくどい言い方しないで、一発で教えてくれませんかね 本当にお願いします。1つの答えを得るのに1日も2日もかけたくないんですよ 今から寝るんで明日までにはどのフリーソフト使えばUWSファイルを拡張子変えずに編集できるのか書いてもらえるとありがたい あとフリーソフト使わなくても編集できる方法も
Windowsはファイル形式をアプリに丸投げ 拡張子は既定のアプリを決める判断材料なだけ それが実際にそのファイルを開けるかどうかについては一切関知しない
85 :
名無しさん@お腹いっぱい。 :2010/12/20(月) 22:04:39 ID:ukz8HFvs0
ファイルを右クリックしたら『送る』ってあるでしょ。 そこにEVEがあるから、それで開けるよ。
86 :
名無しさん@お腹いっぱい。 :2010/12/20(月) 22:07:43 ID:ukz8HFvs0
っていうかキミ、もっとWindowsの基本から勉強する必要があるよ。
初心者板に行け、って最初に言ってたのに…
>>83 普通の奴が数秒で済むことを何日もかけてるのは自分だろw
自分の無能さを棚に上げて文句ばかり言ってんじゃねーよ
ぶっちゃけメモ帳でもいいんだよ。
ファイルを開くで選択するだけ。
問題なのは、ここでファイル種類の選択を「テキスト文書(*.txt)」にしてると
拡張子がtxtのファイルしか表示されんってことだけ。
「すべてのファイル」にしろ。これで終わり。日本語わかる?
メモ帳にD&Dでいいじゃん
なんでお前ら相手にするの? ご丁寧に教えてしまうから、こういう奴が後を絶たないんだろ
それにしても久々にみる大バカだったな。 きっと俺の祖父ちゃんの方がパソコン詳しいぞw
93 :
名無しさん@お腹いっぱい。 :2010/12/21(火) 08:49:24 ID:iIjIVyoc0
>>85 ありがとう。マジでできました
ありがとう
>>92 あえて弁護するとすればMacから入ったんだろ
あっちはWindowsと違ってOSレベルでファイル形式がある
96 :
名無しさん@お腹いっぱい。 :2010/12/21(火) 19:24:02 ID:5jiCvbb30
今、PDFなどの画像ファイルを読取革命というソフトでエクセルへ転写する 作業をUWSCを使って自動化しようとしてるのですが アプリを開いたり画像読み込みの間の待機時間を sleep()で充分の時間待たせれば一応解決なのですが、 ソフトなどが動作中で次の操作に移行できないときにUWSCが上手くそのときだけ 止めて操作可能になったらスムーズに次の操作に動くようなスクリプトの書き方ってあるんでしょうか? 一応。 while STATUS(GETID("読取革命st_busy) のようなビジー状態で数秒sleepさせるというのを試してみたんですが、これは全然 動作を認識してとまったりしてくれません。
98 :
名無しさん@お腹いっぱい。 :2010/12/21(火) 21:26:12 ID:5jiCvbb30
>>97 ありがとうございます。ただ以前にCPU使用率でもあまり上手くいかなかったように
思うのですが、1%以上CPU使用でsleepのループということでしょうか?
それ以外にはスマートな方法はないのでしょうか?
>>98 読取革命がどんなソフトか知らないけど、
実行可能状態かどうか確認してから、次の動作に移れば良い。
ファイル(F)押してメニューが表示されるの確認するとか。
いつも決まった変化が起こる動作に対して、画像でマッチングとればいい。
100 :
名無しさん@お腹いっぱい。 :2010/12/21(火) 23:03:56 ID:5jiCvbb30
>>99 ありがとうございます。
おそらくそのやり方がスマートだと思うのですが、メニューバーの「ファイル」
などを押す動作を指定して、それが上手く押せなかった場合は
押せるようになるまでのリピートの文を書くということで
いいんでしょうか?まだまだ初心者なもので、まだちょっと上手くイメージが
つかないのですが。
>>100 あとは自分で試してイメージをつかむしかないだろう
>>100 が言いたがってることを代弁すると
回りくどい言い方しないで、一発で教えてくれませんかね
動作確認済みでそのまま即実行できるものを書いてもらえるとありがたい
だろ。「〜〜だと思うのですが」だの「〜〜になりませんか?」だの
口先ばっかり人並み以上に動くのに
自分の手は動かさない奴はこんなもん。
>>102 まあ、内心そうだろうなw
>>100 >口先ばっかり人並み以上に動くのに
>自分の手は動かさない奴はこんなもん。
なんて書かれてるんで、対処したら対処法を書きこんでくれ。
「面倒くさいんで結局sleepで対処しました」でもいいんで。
chkimg関数に関する質問なんですが メイプルストーリーというゲームでx:100^200,y:100^200にある画像を認証するときに chkimg("画像.bmp",1,0,0,200,200) こんな感じで書くとちゃんと画像認証してくれるんですが chkimg("画像.bmp",1,100,100,200,200) こんな感じで第2,3引数を0以外にしてしまうと認証してくれなくなってしまいます これってなにが原因なんですかね 画像は間違いなくサーチ範囲内にあります
ゲーム名を出しちゃマズイだろw
>>104 画像データのx or yが100px超えてるとか?
chkimg("画像.bmp",1,50,50,250,250)でも認識しない?
>>105 そのゲーム固有の問題なのかなっておもってw
>>106 はい、そういう風に変えてもダメですね
0,0にすればいいだけなんですけど
サーチ範囲がどうしても大きくなってしまう場合があるのでイヤなんですよね
>>107 chkimgでヒットしたときのg_img_xとg_img_yに画像の縦横の大きさ足すだけじゃん
x = おまえの持ってる画像の横幅
y = おまえの持ってる画像の高さ
msgbox(g_img_x + ", " + g_img_y + "#<cr>" + (g_img_x + x) + ", " + (g_img_y + y))
で、解決じゃないの?
109 :
100 :2010/12/23(木) 23:29:57 ID:NBC9tpKJ0
>>98 >>101 >>103 何とかできました。
REPEAT
sleep(1)
CLKITEM(読取革命の画面, "ファイル(F)", CLK_ACC)
GETID("ファイル(F)", "XTPPopupBar")
UNTIL GETID("ファイル(F)", "XTPPopupBar")
っていうようなので画面指定することでかなり円滑になりました。
ただ自分で作ってみていまいちまだ、なぜ上手くいってるのかピンと来ない
んですけどね。
CLK_ACC XTPPopupBar
の用語の意味がちょっとわからなくて、CLK_ACCはその画面の
中で「ファイル(F)」って書かれたものをクリックするよっていう意味で
良いんでしょうか?アクセシビティインターフェースというのがいまいち
横文字でわからなくて。
GETID("ファイル(F)", "XTPPopupBar") はポップアップバーが開いてれば
真、開いてなければ偽と思ってるんですが、あってますでしょうか?
111 :
104 :2010/12/24(金) 01:58:01 ID:G210KYo/0
>>108 画像のサーチ範囲は別の問題で
chkimgの第2,3引数を0以外にすると画像認証しなくなってしまうので困っているんです
113 :
104 :2010/12/24(金) 05:35:44 ID:G210KYo/0
>>113 じゃあ後やることは、ヘルプもう一度確認して引数の順序とか厳密に確認するぐらいしかないな
>>114 わからないってことですね
ありがとうございました
メイプルスレからきますた
イタチの最後っぺというか 余計な一言が多いというか 素直じゃないなぁというか 殺伐としたスレだな。
認証ってなんかの認証を自動化しようと思ってるのかと思ったわ。 認識だな・・・
119 :
100 :2010/12/25(土) 04:01:09 ID:nSu70GOj0
ヘルプみても用語の意味がピンとこなかったから聞いたんですが、
それはそうと
>>99 さんありがとうございます。
おかげで原始的なやり方から円滑なやり方を見出せました。
ALL_IMG_X[], ALL_IMG_Y[] に返って来る座標を確認してみるとかー もっと色々な範囲でヒットするかどうか試してみてから質問したほうがいいね どういう調べ方をして >画像は間違いなくサーチ範囲内にあります(キリッ って言ってるんだろうと訝しく思えてしまうよ
121 :
名無しさん@お腹いっぱい。 :2010/12/26(日) 23:35:50 ID:7rkarArC0
ヘルプが使えないのは俺だけ?
sageるの忘れた すまん
>>121 ネットワーク上のディスクにおいてあると駄目。ローカルにもってこい。
>>123 ちがう。
右クリックプロパティでアクセス権をなんちゃらにしないといけない。
ナンチャラの部分は、公式サイトに書いてあるから参照されたし。
シフト(コントロール)押しながらESCを押したら 動作中のスクリプトを止めたいのですが、 ↓の式を書いても動きません。 if(GetKeyState(VK_SHIFT) & VK_ESC) どういう式が正しいのでしょうか? おしえてください
125ですが if getkeystate(vk_esc) and getkeystate(vk_shift) then exit でやってみましたが 無理ぽ。エラーでないけど、exitに行かない
>>126 それで問題ないと思うけど
exit を msgbox にして、もう一度確認してみ
>>127 レスありがとうございます。
書き方は問題ないみたいで安心しました。
別のところの問題みたいですね。
exitから変えても、まったく反応してくれません。
ただ、SHIFT+DELETEにすると、連打したらはじめて
反応してくれます。(一回ではむり)
STOPFORM(TRUE) // ストップボタン表示
数 = input("終了まで残り何分にしますか?")
i=数*60
While TRUE //whileの右の引数省略はダメ。
i=i-1
if ( i < 0) then BREAK
fukidasi("残り分数"+i, 1150, 950, 0, 15, "SH G30-P",$FF0000 ,$00FF00,50)
sleep(1)
if getkeystate(vk_shift) and getkeystate(vk_ESC) then exit
Wend
FUKIDASI() //吹き出しを消す
>>128 > if getkeystate(vk_shift) and getkeystate(vk_ESC) then exit
全く問題無いが?
もしかしてさ、スクリプト動作中に1回shift+esc押せば
以降キーを離しててもexitするとか考えてない?
sleep(1)の動作中にキーを押しても全く反応しないって事だから、
少なくとも1秒以上キーを押しっぱなしにしないとexit実行は確実ではないことだよ。
連打すると動くのはたまたまsleepの時以外に押したって事だからね。
あと余計な事かもしれんが sleep(1) 処理() を10回やったら10秒+αの時間がかかる。ループ回数が多ければ多いほど 誤差が出てくる。 抜けることがわかってるループでwhile trueみたいにする意味もわからん。 while (i > 0) とかじゃいかんのだろうか。まあこっちは好みだろうけど。
aの処理→1時間後にbの処理をし、ループさせたいのですが、 1時間後の処理はsleep(3600)で問題ないでしょうか? またこれを使う場合注意すべき点があれば教えて頂けると幸いですー
>>131 処理『後』に3600秒待つ
ってことだけ覚えておけば問題無い
>>132 ありがとうございます、3600でやってみます!
興味本位だけどsleep(3600)の精度ってどれぐらいなんだろ?
>>129 レスありがとうございます。
たしかに一回だけポンと押せばWhileを抜けられると思っていました。
sleepのこと忘れてました。マルチスレッド(?)っていうのなら
常時ワンタッチで抜けられるのでしょうね。sleepめ。
でもやっぱりシフトESCキーのときは、ずっと押しっぱでも
連打でも、まったくWhileを抜けられませんでした。
他のキーなら連打で抜けられるのですが。
ほかの常駐ソフトのホットキーの問題かもしれません。
間違ってないの分かってよかったです。
ありがとうございました
質問にAAとか付けられるとふざけてんのかこいつとしか思えないわけだが… サンプルのまんまで何が問題なんだか。 文字列生成が問題じゃなくてそれを何かのダイアログに入力するのが問題ってんじゃ 情報少なすぎてどうにもならん。
質問です UWSCの14日期限が切れて使えないのですが どうしたらもういちどUWSCを使えるのでしょうか
金払えば使えるよ
6,720円を払わなければ使えないんですか・・・ 中学生にはきつい料金ですね;; どうもありがとうございました
フリー版をつかえ
フリー版は期限が切れてもう使えないんです 14日たってしまったので
>>137 レスありがとうございます。ご気分を害されたようでお詫び致します。
「SAMPLE24:任意の桁数でランダムなパスワードを好きなだけ生成する」
http://izagne.com/uwsc/#sample24 このサンプルは私が望んでいるスクリプトよりも複雑に作り込まれているようです。
ただ「アクティブウィンドウに12桁で一度だけ0〜9の数字とA~Zのアルファベット(計36個)からランダム入力」できたら事足りるのです。
とりあえず、こちらのサンプルから
EXEC("notepad")
を削除しました。
その後、どの部分を残してどの部分を削除すれば良いのかをご教授をお願いしたく存じます。
>>36 あたりからの質問が同一人物でも驚きはしない。
マジで 「丸々全部教えてくれ」 というのが多すぎるなぁ
テンプレ
>>2 を熟読するべきだと思う。
複雑も糞もないだろ。 サンプル見て何やってるのかさっぱりわからないレベルなわけ? 文字列ゲットするだけなら IDPASS(PASSWORD_KETA) だけあればいいだろ。
>>144 PASSWORD_KETAを12に固定
GETIDをアクティブウィンドウに指定
もうちょっとがんばってみて
>>143 フリー版に期限はないよ。期限があったのならそれは有料版
ありがとうございました。一応目的は達成できました。ご報告です。
「SAMPLE24:任意の桁数でランダムなパスワードを好きなだけ生成する」
http://izagne.com/uwsc/#sample24 このサンプルから不要と思える部分を除き以下のようにしました。
[このスクリプトでしたいこと]
アクティブウィンドウに12桁で一度だけ0〜9の数字とA~Zのアルファベット(計36個)からランダムで入力する
[スクリプト]
PASSWORD_KETA = 12
SEISEI_KAZU = 1
KEKKA = ""
FOR A = 1 TO 1
KEKKA = KEKKA + IDPASS(12)
NEXT
SENDSTR(GETID(GET_ACTIVE_WIN), KEKKA)
FUNCTION IDPASS(12)
STRING = ""
FOR KAISU = 1 TO 12
SELECT RANDOM(36)
CASE 0
moji = "a"
〜〜
CASE 35
moji = "9"
default
moji = "_"
SELEND
STRING = STRING + moji
NEXT
RESULT = STRING
FEND
以上です
KEKKAの部分がまだ無駄に思えますが現状として支障はないのでこれでよしとします。この度はありがとうございました。
つ、釣られるな俺… 書き直したい…けどそれやったら思うつぼじゃないか…
丁度文字配列の勉強をしていた処なので参考にさせて貰いました。 id = GETID(GET_ACTIVE_WIN) DIM MOJI[36] = "a", "b", "c", "d", "e",_ "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",_ "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",_ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" for j = 0 to 11 i = RANDOM(36) SENDSTR( GETID(GET_ACTIVE_WIN), MOJI[i]) next EXITEXIT 12桁に使用する文字に重複が認められる前提で記述してみました。 「これでも動作する」程度なので、修正箇所あれば指摘して頂けると助かります。
配列変数書くの面倒だから dim moji[35] for i=0 to 9 moji[i]=i next for i=0 to 25 moji[10+i]=chrb(97+i) next こんなんとかやっちゃうなあ… 配列数は36じゃなくて35ね moji="abcd...z0...9" とかにして copy(moji, random(36)+1, 1) とかでも面白いのかもね
>>154 moji[10+i]=chrb(97+i)
この辺り知らなかったので大変勉強になりました。
こちらの方が見た目的にもスッキリしていて良い感じです。
ありがとうございます。
>>153 >>154 >>155 ありがとうございます。参考にさせて頂きます。
勉強になります。使用する文字に重複はOKです。
色々な方法があるのですね。ありがとうございます。
私も処理の弄り方で楽しめるように勉強させて頂きます。
>>136 DIM 文字列, 抽選番号
FOR i = 1 to 12
抽選番号 = RANDOM(35)//0から35の間で抽選する
IFB 抽選番号 < 10 THEN
文字列 = 文字列 + 抽選番号//0から9の文字作成
ELSE
文字列 = 文字列 + CHR(65 + 抽選番号 - 10 )//A(65)からZ文字作成
ENDIF
NEXT
SLEEP(5)//この待ち時間の間に入力先ウインドウをアクティブにする
SENDSTR( GETID(GET_ACTIVE_WIN), 文字列)//アクティブウインドウに文字を貼り付ける
アルゴリズムをいろいろ考えるのは悪くないけどな
>>157 ありがとうございます。
>>136 です
分かりやすくてスマートな処理ですね
奥が深い・・・まだまだ知らないことだらけですが
皆さんに少しでも追いつけるように勉強します。
ありがとうございました。
>>159 ちったぁ自分で考えたソースを貼り付けろ。
ご教示、よろしくお願いします。 WEBフォームの選択欄を、VALUEで選択するにはどう書いたらよいですか? 今は項目名自体をそのまま指定してますがたまに(項目名が)マイナーチェンジされてしまうのでできればVALUEで指定したいと思っています 【WEBフォーム例(test.html)】 <SELECT NAME="test"> <OPTION VALUE="a">あああ</OPTION> <OPTION VALUE="i">いいい</OPTION> <OPTION VALUE="u">ううう</OPTION> ・ ・ ・ </SELECT> 【今のスクリプト(test.uws)】 IE = CREATEOLEOBJ("InternetExplorer.Application") IE.visible = true IE.navigate("C:\Documents and Settings\User\デスクトップ\test.html") IESetData(IE,"ううう","test") ↑★ここをVALUEで選択するようにしたい
LOCKHARDを使うとキーボードとマウスがロックされてしまいますが、どちらかのみというのは可能なんでしょうか?
164 :
名無しさん@お腹いっぱい。 :2011/01/02(日) 03:59:36 ID:VnQeO0sX0
あけましておめでとうございます さっそくですがミジンコ質問をしたいかとおもいます。 色の取得で色の検知はできたのですが目標地点までいかなかったり目標地点についているのに ずっと左にいっていたり右にいっていたり。。。時間の調整いじるとまたずれるのです。 現在だと 色検知(座標)→左or右へいく→左へ行きすぎ右へいきすぎでも折り返しはできる反対側の色検知の手前でとまった場合とまってしまう。→色検知もしくはとまったじょうたい。。。 そこで自分が考えているのは 色検知 行動 反対側の色検知する座標までいったらすぐに色検知(すぐ折り返し) もしたりない場合はそこまで続けるそして同じく反対側の色検知する座標までいったら折り返し。 不可能なんですかね?まだ自分がスクリプトなんていったらスクリプト()笑ですがこれは完成させたいです。 だれか教えてください、お願いします (分かりにくい質問でごめんなさい
まず日本語教室に行って来いよ
コレだけ伝わらないのも珍しいw
>>164 何言ってるのかさっぱりわからん
まず、スクリプトを載せて、何に対して何をやりたいのか書け
問題点を書くのはその後だ
169 :
名無しさん@お腹いっぱい。 :2011/01/02(日) 12:20:58 ID:VnQeO0sX0
While True ifb PEEKCOLOR(140,82) = $FFFF then//xyが黄色の場合左を押しながらX KBD(VK_LEFT,DOWN,15) KBD(VK_X,CLICK,1500) KBD(VK_X,CLICK,1500) KBD(VK_X,CLICK,1500) KBD(VK_LEFT,UP,5000) else endif ifb PEEKCOLOR(16,82) = $FFFF then//xyが黄色の場合右をおしながらX KBD(VK_RIGHT,DOWN,15) KBD(VK_X,CLICK,1500) KBD(VK_X,CLICK,1500) KBD(VK_X,CLICK,1500) KBD(VK_RIGHT,UP,5000) else endif Wend (Xの量は減らしています)指定の座標についたらすぐにRIGHT動作にしたいのです 色検知ではなくてよいです。
>>169 ある区間をカーソルで往復させつつ
その間Xを連打したい
そうことを言いたいのか?手順じゃなくても目的書け。
171 :
名無しさん@お腹いっぱい。 :2011/01/02(日) 13:03:54 ID:VnQeO0sX0
>>169 の状態だと座標140,82が黄色の場合左に移動するわけですが座標16.82に黄色が
あったとしてもまだ左移動をつづけてしまうんですよね
因みに途中で障害物などがありますから(ランダムで)一定の時間で往復することができないんですよね。
座標140.82からスタート座標16.82に黄色を検知した瞬間に右を押しながらX
目的は
>>170 のいうとおりです。
ある区間をキャラクターを往復させつつX連打したいのです。
>>171 まず、単純にカーソルで往復できるようにする
それができたら、その間にXを押す処理を入れる
折り返し地点で行き過ぎる問題は、ある1点じゃなく複座標で確認
あるいは、カーソルを押しっぱなしじゃ無く、刻んで毎回色を確認する処理にする
173 :
名無しさん@お腹いっぱい。 :2011/01/02(日) 13:24:10 ID:VnQeO0sX0
>>172 なるほど!!やってみます
何度も同じような質問申し訳ありませんでした。
また1人寝マクラーの誕生である
175 :
名無しさん@お腹いっぱい。 :2011/01/02(日) 17:44:59 ID:+6X/VWUo0
がぞうにんしきできないおしえろ
>>173 ゲームチートでよく堂々と人様に聞けるな
178 :
名無しさん@お腹いっぱい。 :2011/01/02(日) 21:30:21 ID:VnQeO0sX0
次の色認知までその1個前の色認知して動作する動作をループさせるほうほうある? ifb PEEKCOLOR(x,y) = 色 then//1 動作 else 動作 endif ifb PEEKCOLOR(x,y) = 色 then//2 動作 else 動作 endif 2の座標にいくまでずっと1の動作をさせることってできる?
>>178 いいかげんいしろカス
また同じやり取りをループさせたいのか?
死ね
180 :
名無しさん@お腹いっぱい。 :2011/01/02(日) 22:23:27 ID:VnQeO0sX0
暴言はかれました 死ねっていわれましたカスっていわれましたひどいです それと事故解決できました
UWSCで動作を記録し、マクロを組んだところ、たまにキーが押されなかったりします これを修正するにはどうすればいいでしょうか?
もうそういうネタはいいから
学生たちは冬休みでMMOマクロか。
164読んでて思ったんだけど、え、UWSCって色の探知出来るの? そんな機能、どこに付いてるんだ?
186 :
名無しさん@お腹いっぱい。 :2011/01/03(月) 06:29:21 ID:klfNJ70T0
画像認識 ↓ 画像がある場合→なにもしない ↓ 画像がない場合→クリックする そして尚且つ、画像認識の認識範囲を指定
187 :
名無しさん@お腹いっぱい。 :2011/01/03(月) 06:31:13 ID:klfNJ70T0
ってどうやるんですか
>>186-187 そのぐらい自分で考えろks
>過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
テンプレぐらい嫁
>>185 PEEKCOLORって何?
ヘルプ見ても、PEEKCOLORの項目が無い
教えて下さい
ヘルプにあります。終了。
マジだった。よく探したらあった! でも、意味不明な専門用語ばっかで陳腐還付だ・・・ 知識身につけないとBOTとかは作れそうにないな 1ヶ月ぐらいUWSCの勉強、真剣にやってみるか
192 :
名無しさん@お腹いっぱい。 :2011/01/03(月) 21:55:21 ID:+Gbor0dq0
意味不明な専門用語って・・・peekとかpokeって、BASICで勉強しただろ!
PEEKCOLORにそんな難解な専門用語なんて出てたっけ?ってヘルプ見たけど・・・ 座標とかXとかYがわからんてことか?小か中学校で習った気がするんだけども。
>>191 専門用語とか言う前に英語を勉強しろよ。
辞書引けば大体何の関数かわかるだろ
peek[ pk ]
[動](自)(…を)そっとのぞく((at ...));(穴などから)盗み見する,ちらっと見る((in, out/through ...))
peek in on ...
…をのぞいてみる.
▼peek atは受身可.
━━[名]
1 のぞき見
get [sneak] a peekat ...
…をそっとのぞいてみる.
2 ちらっと見ること.
ここら辺厨房臭いです!!!
ニコニコ生放送で化物語やってたからか、あちこちで素人童貞、もとい、童貞臭がするようになったようだ。 ところで、今日僕の誕生日なんです。セカンド筆下ろししてくれる人はいませんか。 いや、BLの方は結構です。 生まれつきの女性のうち享年小学5年生の発育のいい方の女性だけを募集してます。
"ところで、今日僕の誕生日なんです。セカンド筆下ろししてくれる人はいませんか。"との一致はありません ?
198 :
名無しさん@お腹いっぱい。 :2011/01/06(木) 06:55:41 ID:GM9nshCw0
XPで正常に動いているマウス操作のみのマクロを vistaに持っていったら動かなくなりました といってもカーソル移動は大丈夫なのですが、 クリックした後のアップ動作(BTN(LEFT,UP,866,584,500)) が上手く動作してないようです uwscのバージョンは46bでXP、vista共に同じものを使っています 今までに同じような報告ありましたでしょうか? 対処法わかれば教えてください
>>194 率直な疑問なんだけど、英語の意味なんて知って意味あるのか?
PEEKCOLORがどういう役割を果たすか、を知るなら意味あるけど
英語の意味なんて知ったところで、BOT製作の役に立たないんじゃないの?
じゃあ、
>>194 の理論では
PEEKCOROLは 「ちらっと見る色」って意味だから、PEEKPASSにすれば「ちらっとパスを見る」って事になるよね?
まぁPEEKPASSなんて適当に言っただけだから実在しないと思うけど
BOTってこういう風に覚えればいいの?
>>194 はBOTは辞書を引きながら覚えるべきって言いたいの?
プログラムで飯食ってたり趣味でよくプログラム書いてたりしてる人なんだろ よくある挙動の関数名はこういう単語を使うっていうお作法みたいなもんだ おまえとその英語調べろって言ってる人の視点が違うだけだから ここにコピペして間違いを指摘してもらうってんでもなけりゃ好きなように変数やら関数を命名しろ
あと今回みたいにこんなお作法的単語わかるわけねーだろみたいにわめいても 今更その単語がおまえに分かりやすいように変更されるわけでもねーからいちいち調べろて慣れろよ
194が191の言うところの「意味不明な専門用語」を「PEEKCOLORの説明文に含まれる用語」ではなく、「PEEKCOLOR」という関数名自体だと誤解した。 以上。
あのー、どなたか
>>161 を教えて頂けないでしょうか
>>203 無理じゃないの?
それより、ソフトウェア板が消えてるって聞いたけどなんともなさそうだね。
>>203 input_tags = IE.document.GetElementsByTagName("OPTION")
for i=0 to input_tags.length-1
ifb input_tags.item(i).VALUE="u"
input_tags.item(i).Selected = True
break
endif
next
こんな感じでどう?
ちょっと忙しいんで、動かなくても、再質問されてもレスできないと思う。
一応どんな感じになったか、動くようになったモノをこのスレに貼ってくれ。
じゃあな!
>>203 お、試してみたらうちの環境だとは
IE.document.all["test"].value="u"
これだけでもいけたよ。
207 :
205 :2011/01/07(金) 04:04:32 ID:uNRk3Z8V0
>>206 おお、凄いなw
それだけでいけるんだw勉強になった。
ところで、IE.document.〜は、みんなどこで勉強してるの?
やっぱりVBA使わないと理解出来ないものなの?
自分は仕事でJavaScriptに触れたことがあるのでそこから。 やりたい処理がある時もよくJavaScriptのコードを検索して、それを応用してる。 ほぼそのまま使えるし。
画像認証しようとしたら、変数:○○○○(認証したい画像のファイル名)が定義できません みたいなエラーが出て実効できない どうすれば画像認証出来るようになるの? ちなみにそのファイル名は漢字なんだけど、ローマ字のファイル名じゃないと実行出来ないのだろうか?
211 :
名無しさん@お腹いっぱい。 :2011/01/07(金) 08:03:17 ID:EIcdSQVu0
>>205-206 行けました!
お二人ともありがとうございます!
コードはまんまなので割愛します
どうでもいいけど複雑な処理を行う時にどれをよく使うの? ちなみに私は3 1 多次元配列 基礎的で日常の情報にも対応できる。 しかし、添え字を数字で指定するためどうしても次元が増えるとネストが増え あとからわかりにくくなってしまう。ような気がする。 2 連想配列 これはあまり使ったことが無いけど、とりあえず便利らしい 添え字に文字列をつかえ、キーがあるかどうかを調べたり ソートや順列読み出しもできるので 応用によってはかなり複雑な処理も可能なはず・・・ 3 INI 配列ではないけど・・・ ファイルに直に書き込むため、ほかのスクリプトとのの数値の共有や 一度終了しても前回の情報を引き出すことができ セクションやキーを組み合わせることにより連想配列並みの動作を行うことができる。 らしい。 もともとファイルなのでファイル関数と組み合わせると さらに複雑な処理にも対応できるとかできないとか ただし、動作はとても遅い。 4 その他 よくわからないけどCSVとか
扱うデータ形式に依るとしか言いようがない
処理の複雑さとデータ構造の複雑さに密接な関係はない
しかし実際問題として複雑なデータ構造を扱う処理はたいてい長い
質問です デスクトップ上に、ランダムな位置で特定の色が湧き出るとします その色は、デスクトップ上に同時に沸いたり、0・5秒後・1秒後などの時間差で沸いたりします 沸いた色は、3秒ぐらいで消えます。しばらくして、また沸きます その湧き出る色を画像認識して、色が湧き出た瞬間にその色の場所に左クリックで移動するマクロを組みたいんだけど、どうすればいいのでしょうか? 大雑把な質問ですみません。 詳しく説明してくれる人を探してます。
ミニゲームを他作マクロで放置クリアしたいとか胸が焼けてくるな
今までの質問は全部同じゲームの解法を細切れに聞いていそうな感じだなw
UWSC歴1週間程の俺でも自力で作れるレベル
1週間で作れるものなの?それなら自分で作れるようになりたい UWSCのヘルプメニューから、組みたいマクロの動作を行ってくれるキーワード名(ABSとか16進指定とかARCCOSとか)を1つ1つ調べて、順番にUWSファイルに書き込んでいくって感じですか?
222 :
名無しさん@お腹いっぱい。 :2011/01/08(土) 20:49:35 ID:HErQZRit0
>>221 (・c_,・`(-c_,-`(・c_,・`(-c_,-` )ウンウン、ソウダヨ
今やってるんだけど、画像認識させたい画像bmpって、どこに保存すればいいの? UWSCフォルダに入れてるんだけど、認識してくれない
>>223 chkimg("C:\MyDoc\UWSC\2ch\画像.bmp",0,100, 100,500, 500)
好きなところに保存しる
もし場所をちゃんと指定してダメなら画像が悪い
画像認識/クリック/ループって UWSCを知ったその日に組めるもんだろ 私プログラムもスクリプトも触ったことなかったけれど
>>225 サンクス!
画像認識、なんとか突破できた、と思う
さっきまで画像認識してくれなくて7行目でエラーだったんだけど、今11行目でエラーなので進んだと思う
でも今度は11行目に書いた「endif」がエラーになった。次に進めない
どうすればいいのでしょうか。
>>217 のマクロを組む場合、どういう順番に組んでいくのか詳しい人に教えて欲しいです
参考スクリプトを書いてくれると覚えやすいと思うのですが、さすがに無理かな
ここで聞かなくてぐぐれば出てくるから頑張ってください
素直に「答えを下さい」って言えばすぐ見捨てるのに。
なんで俺ってこんなにゴミなんだろう すぐにやる気が無くなってしまう。 とりあえず寝て出直します。すみませんでした。
> 参考スクリプトを書いてくれると覚えやすいと思うのですが、さすがに無理かな お前の対人スキルじゃ無理だ。 少なくとも「現時点でここまで自分で組みました」 を公開もせず、11行目がどんなソースか他人が分かると思うのか・・・? >>○○さんのアドバイスはn行目、>>△△さんのアドバイスはm行目で実現できました。 今詰まっているのは11行目のendifです。 と自分の出来ることもやらないうちに > 参考スクリプトを書いてくれると覚えやすいと思うのですが、さすがに無理かな はムリw
人を無料で動かせると思ってるうちは無理だろうなあ。
まあ、言いたい事は分かりました 仕事場じゃあるまいし、無料とかいう言葉が絡んでくる意味が分からないです ってか、人を無料で動かすとか思ったことないですし 分からない事があるから教えてほしい、ただそれだけですが? あんま喧嘩したくないけど敬語使って下手に出てたら調子づく輩が出てきたので 腹が立ちましたね。ここで反論のレスをしておきましょう。
その反論のレスとやらで お前が望む答えは出てこなくなったわけだ。 頑張れば1日目でも実現できると教えてやったのに、その努力すら放棄して。
あらあら^^ 「今からやろうと思ったところだったのにもうやる気なくなった」^^ 便利な言い訳だよね^^ まぁここ以外でも学べる場所はたくさんあるよ^^ プログラムだけじゃなく話の運び方とかもね^^ 頑張ってね^^
頭の悪そうな奴がわいてんな。 当たり前の様に教えて貰えると思ってる奴。 分からない事は学校の先生に聞けよ。
239 :
名無しさん@お腹いっぱい。 :2011/01/09(日) 09:18:16 ID:PST9PqXK0
>>217 > 色が湧き出た瞬間にその色の場所に左クリックで移動する
左クリックしたら移動というのがどういう動作になるかちゃんと考えてる?
離す動作が追いつかない場合、その場所に対してドラッグ&ドロップする事になっちゃうよ。
1〜5を段階的に作ればいいんだよ。
1.とりあえずビットマップで保存してchkimg+mmvだけするやつを作って
2.GetKeyStateで抜ける処理を加え、
3.mmvするたびにprintしてどれくらいの頻度でmmvしてるか調べ、
4.適切な回数まで減るように改良して
5.別途動作をチェック済みのクリックを伴う処理を加えて完成
>>233 を10回位読み直すべきだな。
自分自身でどこまでできているのかすら書いていないのだから
突っ込まれるのは当然っちゃ当然。
言い方は悪いかもしれないが、
>>233-234 が言ってる事も的を得てるのは事実。
売り言葉に買い言葉じゃないけど、素直に自分が書いたスクリプトでも貼っていれば
多少なりともアドバイス位貰えたろうに・・・。
動くスクリプトを作る能力があるかどうかは別として 走査領域が広いとchkimgは遅いから デスクトップの広さによっては厳しいと思うぞ。 時間制限があるものと無いものじゃ色々違うからな。
>>241 だねぇ。
> その色は、デスクトップ上に同時に沸いたり、0・5秒後・1秒後などの時間差で沸いたりします
> 沸いた色は、3秒ぐらいで消えます。しばらくして、また沸きます
同時ってのは厳しい。 消える時間は3秒程度で一律だとしても
沸きが複数起きるのは全対応は諦めてある程度間引きも必要になる鴨。
・色は一度に何個まで沸くのか
・沸く範囲はどのぐらいの範囲内に限られるのか(走査範囲を絞り込める)
・沸く色のサイズ自体はどれぐらいなのか(沸いた画像が重なるとか考慮してんの?)
とか前提もあいまいすぎる。この点はまぁ勝手な推測だが外部ツールの使用が規約で
禁じられてるMMOあたりで使うんだろうな。 ごく普通のブラウザミニゲームとかなら
普通に示せるだろうしw
test
すみません初心者です uwscのスクリプトをexe化したいのですが exe化するとそのスクリプトに再生・停止の記述がないので ソースにホットキーで再生と停止ができるように追加したいのですが 何か参考になるようなページはないでしょうか?
たぶん MMOでもブラウザミニゲームでもなく 海外製の、デスクトップにランダムに出てくるキャラをクリックして お小遣いが貰えるヤツじゃないのか? 確かそんなのあったような・・・ 手を差し伸べてやる必要ないと思うが。。。
使用PCのモニタは1024x768ピクセルです。 色は一度に最大5個まで沸きます 色は、3秒と言いましたが、1秒くらいで消えます 一度うっすらとした色Aが沸いた後、その色Aが消えて、同じ場所に0.4秒後ぐらいに新しい色Bが沸いてくるので その合計秒数を3秒ぐらいと数えていました。 沸いて1秒くらいで消えるのは、色Bの事を指しています。 ・沸く範囲は、デスクトップ全体まんべんなく沸きます。 ・沸く色のサイズは定規で測ると約縦幅4cm、横幅3cmほどです 何を教えて欲しいのか、自分でもよく分かりません。 まずスクリプトを完成させる事が、アドバイスを貰う最低条件だと分かっています ただとりあえず、自分の質問内容の曖昧さを正すために、書いておきました
色Aと色Bは、別々の色です。 色Bが沸いた瞬間に色Bを左クリックするスクリプトを作れたとしても、 即座に色Bの場所には行けません。 その場所を左クリックすればいい訳じゃなくて、クリックした後、キャラクタを色Bに持ってこないといけないので、移動が遅いです 色Bが沸いた瞬間、その場所に行くのに2秒ぐらいかかります あと、色が同時沸きした時に、例えば5個同時沸きしたとして、5個に翻弄されてスクリプトが狂うような事も避けたいです 1個1個の色Bに正確に辿り着きたいです
完全にゲームに対してのオートマクロだな 普通にチート扱い
デスクトップ上と言っているのに、ゲームに使用目的を繋げる強引さに悪意を感じます
背景が単色、キャラクタが動かないならできそうな気がしないでもないけど・・・ 色サーチと画像サーチを短時間で行うなんて処理は、UWSCに向いてないと思う。
>>249 悪意を感じるっていってもな。
むしろスレの人間に悪意のあるツールを作らせようとしてると思えるんだが?
ゲームじゃないって言い張ってもだれも信用せんぜ。
単にこういうツールですって名を上げればいいだけだろ。
具体的なスクリプトもあげない、使用目的のゲームの明言も頑なに拒否、
せっかく段取りについて超前向きなレスをくれている
>>239 を試すどころかガン無視。
そろそろウザいので ID:OfxEQ3pB0 には
>>2 を百回音読したあと回線切って半年ROMってろ、と反論レスをしておきます。 w
●質問したい方へ。
「○○作れますか?」→ スクリプトを期待するのはお門違い。作れるか作れないか教えてくれる人はいるかも。
「○○が作りたい」→ 自分作ればいいんじゃない?
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。
●スクリプトを晒す上での注意
他人が読みやすいようにインデントを付けるように。解らない人はググレ。
(タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし)
言いたい事に関係無い部分は 〜○○の処理〜 や 処理A 等のようにし、
必要な部分を晒すようにする。
では ID:OfxEQ3pB0 のレスを非表示設定にしておきます 個人的にですがw 以降一切リアクションできませんので あとよろしく
では俺も ID:OfxEQ3pB0 のレスを非表示設定にして離脱しまっすw (なぜか日中なのにID変わっちゃったけど ID:Eh8+/TBH0 も俺だったのでそちらももう付かないよ)
私は、ゲームマクロっぽいと自分が判断したら何も答えはせんがなぁ 正直チートだし、ゲームによっては排除対象だし、それを払拭できるようなソフト名の提示はされないし。
>>244 Pro版で付属のEXE化ならストップを出すかどうかを決める
選択があったと思うからそこをいじればいいんじゃないかな。
または、別スレッドでキーを監視して押されたらexitexitなんてどうかな。
再生は無理だとおもわれ。
・・・て、もしかしてスケジュールのこと?
もしそうだとしたら、前スレだったかにオートホットキーを組み合わせて
そんなことをやったのがあった。
時間で動かすならEXE化したのをさらに起動するマクロを作って
それをスケジュールで動かすとか・・・
>>239 やってみます
printの意味が何なのかよく分かりませんが、printscreenの事でしょうか?
意味がわからない時のためのリファレンスだと思うんです
>>257 ありがとうございます
すこしやってみます
マクロとチートって別だと思うが uwscは2年ほど使ってるけど、チョンゲで使うなら教えてあげるよ あんな単純作業は日本人がやるものじゃないし
どうせチート=データ改竄だと思ってるアホなんだろうな
マクロ∩チート≠φ
>>261 それ以前にチョンゲなんか日本人がやるものじゃないだろ
ゲームの仕様以外は全てチートだよ バグ利用もチートの定義に入る マウスのマクロもディスプレイの中心に印をするのも チートの語源を調べてみればわかる オンゲや対人ゲームでチートする奴はくたばれ
>>265 で、ゲームの仕様書はどこでダウンロードできるの?
>>266 大きくはアカウント登録時に同意した規約書
┐(´-`)┌ ヤレヤレ
反論出来なくなってAAでタゲそらしとかwwwwwwwwwwwwwwwwwwwwwwwwwww
変な人キタ(゚∀゚)!
チートじゃなくて不正行為。 チートマクロあたりの単語の定義なんて個々で違うんだからこれでいいじゃん。
最近使い始めたんだけど、画像認識微妙じゃない? 完全一致じゃないと動かないでしょ? 判定部分をもうちょっと高度な評価関数に置き換えるだけで 認識の精度グッとあげられそうなんだけど CHKIMG関数って自分でいじれないのかね?
リファレンス読めば色幅がうんたら、色を無視してパターン検索がうんたら。 図形の歪みも誤差として計算したいって言う話なら 他言語を使ってDLLを一から実装して、それをUWSCで利用するのが一番現実的。
知恵袋並みの質問で申し訳ないんですが UWSCでマイフォルダ内の画像をweb上のろだにキーワンタッチでアップロードするスクリプト サンプルどこかにないでしょうか?
お望み通り、知恵袋へ行け
>>274 アップロードする方法がWebサイトごとに違うから、そんなサンプルがあっても目的のサイトで使える可能性は低いよ。
恥ずかしながら とりあえずやりたいことは 2ちゃん用の画像ろだに自動うpしてURL取得して貼り付けまでできたらと思いまして…
>>278 だからどこのロダ?
その目的ならwatirのほうが向いてると思うがあえてuwscでやりたいんだろ?
指定したフォルダの画像全てを
2ちゃん用の画像ろだにアップロードして
そのURLを2chに書き込みたい。
ここで一番問題になるのはどんな内容の画像かってことだよ
俺が納得できるエロ画像を貼れるかが勝負だ、わかるな?
どこのロダでもいいよ これといってUWSCじゃなくてもいいし
じゃあここに来るな
マジキチかよ…
俺だよ!俺俺!
なんだ名無しさんか
P2なんだからさ
P2だからって何だ? 各ロダでアクセス法が違うから皆聞いているのに。 まさかロダといえば全て同じ機能とか思ってる超馬鹿なのだろうか。
こいつは端から他人にスクリプトを書いてもらうのが目的で ロダがどこかよりも書いてもらった後のスクリプトで対応している ロダを使おうと思ってるんじゃないの
特定の文字列が不特定の時間で消えるとしてその文字列が消えたら動作させたいのですがどうしたらいいんですか? 文字列検索でググってみたのですがやらせたい事が引っかからなくて
>>290 IEとかでイベントを受け取れるのを除けば、ループして自分で変更がないか監視。
イベントが使える場合は、自作関数をイベント登録する。
テキストボックスの変更とかは、HTMLのスクリプト上ではイベント扱いだけど、
COMオブジェクトでは受け取れないのが普通だから無理だろうけど。
// イベント処理の定義
OLEEVENT( オブジェクト, インタフェース名, イベント名, Procedure名 )
引数
オブジェクト: COMオブジェクト
インタフェース名: ディスパッチ インタフェース名
イベント名: イベント名
Procedure名: UWSC側の呼び出される Procedure名
イベントの引数は配列変数 EVENT_PRM[ ] に格納される (配列はゼロから)
>>289 ふむ。それならばロダを作ってそれ専用スクリプトを書くってのもいいな。
情報抜き放題だわ。
293 :
名無しさん@お腹いっぱい。 :2011/01/20(木) 17:15:47 ID:lrFqCGQ40
uwscでアプリの画像状態を認識してのキーボードマクロは可能ですかね? 早い話オンラインRPGとかで自動狩りとかできるかどうか
294 :
名無しさん@お腹いっぱい。 :2011/01/20(木) 17:20:11 ID:Lwx26L0M0
>>294 おお 素早いレス感謝です m(_)m
uwsc素晴らしいですね
本腰入れて取り組むことにします
>>293 作ってる人もいるけど、キャラがさまざまに変化するのは追っかけられないよ。
あれってどうやって実現してるんだろうな。
>>295 一応、ゲーム運営からはUWSCはチートツールとして広く認識されてるから
垢BANの対象だという事は覚えておくべし。
ウィンドウ操作・キー入力だけ、DLLとかで外部から使いたいわ。 そこの完成度は素晴らしい。 …そろそろローカル過ぎると感じてきた。
uwscで自動狩り使えますな 自動敵ロック自動戦闘まで完成 あとランダムウォークと回復、アイテム回収でBOT完成ですな
>>299 逆にその部分だけUWSCにやらせて
本体をDLL化する方向で
302 :
名無しさん@お腹いっぱい。 :2011/01/21(金) 20:33:34 ID:YHJzV2l60
ここの偉人さんに聞きたいです 対象の色を見てあればクリックさせ続け 指定された画像があれば画像をクリックし 指定個所をクリックする この2つの行動をエンドレスで続けたいのです while ( PEEKCOLOR( 776 + ADD_X, 911 + ADD_Y ) and $FF ) > 200 ifb CHKIMG("MOB.bmp",0) x=G_IMG_X y=G_IMG_Y BTN(LEFT, CLICK, x, y, 80) BTN( LEFT, CLICK, 780 + ADD_X, 930 + ADD_Y, 500 ) endif wend これで正解してますか?
>>302 正解だったら聞くまでもなく動いているだろ。
自分の環境でどううごいてるのよ。
ある位置で様々な時間sleepさせたくて複数のファイルを作ってそれを毎回変えてるんですが 入力フォームを作ってsleep()に入れる数字を好きなようにかえれますか?
かえれますよ
>>304 簡単だから自分で作ってみ。
解決したら、ここに解決した方法を書き込むこと。宿題だぞ!
>>208-209 参考になりました。ありがとう。
>>307 アホか、どこか偉そうなんだよ。
あの質問はヘルプ見ればできる簡単な質問や、そんな事すら解決出来ない事の方がかわいそうやろ。
それに、このスレは質問者と俺だけが見てるわけでもない、検索で引っかかって来る人もおるやろ、
そんな人達のためにも答えを書いとけよ、と書いたまでだ。
このチンカス野郎!
ヘルプに乗ってるような簡単な事だったんですか見てきますね ヘルプに乗ってるなら一々晒す必要はないように思われるのですが…?
知らない人にいきなり宿題出されるのは嫌だなw
>>309 そうそう、ヘルプに乗ってるような簡単な事だったんです。
君の様な、ヘルプに乗ってる事を知らない人達が、ヘルプ読むきっかけになったのだから、
晒して良かった思うけどなぁ…
俺は晒すとか、そんなつもりでレスしたのでは無かったんだけどね。
宿題は忘れないでね。
>>310 知らない人に答えを出される方が嫌だがw
>>311 おまえは読解力0な上に、検索でここに来た人が迷惑する
無駄レスを量産してるだけだから、黙った方がいい
316 :
名無しさん@お腹いっぱい。 :2011/01/23(日) 08:42:43 ID:RQKP7Ve+0
ttp://hibari.2ch.net/test/read.cgi/google/1294133533/6-7 これ見て思い出した。
UWSC本家に「ログインスクリプト作ってください」って、IDとパスワードを公開して書き込みがあったんですよ。
ログインせずに作って投稿してやったのに
「本当にこれでログインできますか?」って追加質問されたんでログインしてみた。
12年位前に僕がメモ帳でちょこちょこ書いたサンプル程度のものしかないような、本当に空っぽのWebサイトだった。
それからまもなく、警察に襲撃された。
最初から被害届けを出して身元を調べて襲撃するのが目的で書かれたものだった。
質問者が自由に削除できる掲示板は気をつけたほうがいい。
そういう人を陥れるようなことが簡単にできて証拠隠滅も簡単だから。
もちろん鯖運営に問い合わせればログが残っているだろうが、
被害者が質問掲示板への投稿を隠して被害届けを出せば、警察はそれ以上調べない。
事件そのものを隠蔽しているようなわが町の警察は、容疑者への質問などなしに容疑者を半殺しにする。
っていうか、警察自身がそのでっち上げ犯人だったりする。
2ちゃんねるでは事件数などで治安が悪い悪い言うけど、事件そのものをもみ消して事件数が少なかったり
異常に検挙率が高いところは人権無視の公務員天国だから、近寄らないほうがいい。
2011/01/23 UWSC Ver4.6c、 Pro版と Free版をリリースしました。
4.6cの目玉は新規ウィンドウの監視かな
どんな新機能だい?
あっ、また一人称がぼくで長文で頭がおかしい人がきた!
IE8でF12クリックするとソースがツリー構造で見れるな。
>>322 おぉ!全然知らなかった!!情報サンクス!!!
324 :
名無しさん@お腹いっぱい。 :2011/01/25(火) 15:15:26 ID:To7aq6r70
デフォルトパラメータとかデフォルト引数 を簡単に誰か教えてくれないでしょうか?
お断りします
326 :
名無しさん@お腹いっぱい。 :2011/01/25(火) 16:08:00 ID:To7aq6r70
指定しなかった場合に勝手に入ってるやつ
328 :
名無しさん@お腹いっぱい。 :2011/01/25(火) 23:03:57 ID:To7aq6r70
知恵袋に投稿したんだね。よくできたね。
頑張ったね。 頑張った結果が、リソースの無駄遣いとは皮肉な話だけどな。
>>328 その値というのは、"値"と言う名前の変数です。
予約語と重複しない限り自由に作ることが出来ます。
その二つの式の前に
>値 = 引数1
とありますよね。
このときに"値"という変数が用意され、引数1の内容がコピーされます。
つまり、ここで"値"と言う変数を作っているわけです。
その変数の中身は、その先の
>MSGBOX(値)
で表示しますが、
動作を止めずに確認するには
>print 値
とします。
ところで、UWSCに関する質問は公式掲示板かそのサンプルのあるサイトの掲示板でしたらいいと思います。
If GetKeyState(Vk_Esc) Then Break って、この分がある行に来たときに押さないと意味ないよね? どこでもかsleep中かに押しても効くと嬉しいんだが
Sleep(0.1)とかでThread実行して0.1秒以上押す ってぐらいしか俺には思いつかない
IFB PEEKCOLOR(X,Y) = $181818 上の文の否定文 座標(x,y)が黒では無い時としたいのですが <>,! どこに置けばいいのでしょうか?
IFB !(PEEKCOLOR(X,Y) = $181818) でいいのかな これも試した気がするけど、できたみたいです お騒がせしました
えっ
黒?
いやいやいや
341 :
名無しさん@お腹いっぱい。 :2011/01/29(土) 23:26:05 ID:UzHmkSyK0
UWSファイルの作成日時や最終アクセス日時が2000年から何秒後かを出すにはどうしたらいいですか? 両者を比較してかんたんな利用可能期間みたいなものを設定したいのですが
>>342 ありがとうございます。
こんなかんじに借りてきたコードで日付を得ることは出来ているのですが2000年からの秒数に治す方法がわからないでいます。
よろしくお願いします。
----------------------------------------
o_Fs = CreateOleObj("Scripting.FileSystemObject")
s_file = get_cur_dir+"\"+get_uwsc_name
o_file = o_Fs.GetFile(s_file)
s = o_file.DateCreated
msgbox("作成日時:"+ s)
----------------------------------------
↓
2011/01/30 00:01:23
↓
これを2000年からの秒数
349660883 のようにしたい。
>>344 その組み合わせ方がわからないんですよー(^^;
↓処理で言うとここんとこ。
2011/01/30 00:01:23
↓
これを2000年からの秒数
349660883 のようにしたい。
>>345 MSGBOX(GETTIME(0,"2011/01/30 00:01:23"))
結局こんなふうに実現しました。皆様ありがとうございました。 o_Fs = CreateOleObj("Scripting.FileSystemObject") s_file = get_cur_dir+"\"+get_uwsc_name o_file = o_Fs.GetFile(s_file) s = o_file.DateCreated t1 = GetTime(0, s) msgbox(t1)
製作者に聞いたらいいんじゃない
>>346 おお、一行でもかけるんですね
やってみます。ありがとうございます!
標準関数のgettimeのヘルプを読んでなかったというオチw 最低w
読んでもよくわかんなかったんです(^^; 上のもググッた結果を切り貼りしただけで半分くらいしか理解してないですし uwscのヘルプってプログラム素人には分かりにくい気がします 便利なソフトですが
>>351 同意
だからとにかくいろいろやってみてサンプルを積み上げていくんだよ。
じゃこのスレ発のわかりやすいヘルプ作る話しあいはじめてみる? 最初はお約束のPRINT"Hello World!"でw
REPEAT CHKIMG(画像) A1=G_IMG_X B1=G_IMG_Y until (200<B1<243) 数字の範囲指定をしたいが機能しない B1の値が-99999にも関わらずREPEATを抜ける
>>355 大小比較は2つずつしかできないから3つ比較する時は2回に分けなきゃいけない
UNTIL (200<B1) AND (B1<243)
x < y < z なんていう構文は無い x,y,zが何であっても真になってる模様。
>>356-357 ありがとうございます
(200<b1)&&(B1<243)なんてのも試したものの駄目で非常に参ってました
ヘルプ読もうよ…
論理積演算子なんて使うのは他言語経験者っぽいけどな。詰めが甘い。
361 :
名無しさん@お腹いっぱい。 :2011/02/01(火) 07:10:35 ID:YU8i1fml0
>論理積演算子なんて使うのは他言語経験者っぽいけどな。 キリっ!wwwwwww
あるプログラムから別のウィンドウを表示すると、本体のプログラムのウィンドウ位置やサイズが開いたウィンドウに追従してしまいます。 記録時は問題ないのですが、再生時はどうしてもこうなってしまいます。 UWSCのバージョンは4.6cでOSはXP、7で試して見ましたが同様に不具合が出ました。 この不具合の回避方法等はありませんでしょうか?
>>362 自分で好きな位置を指定すればいいだけだろ
どういう状態かよくわからんけど、実は追随するように指定しているのに 気付いていないって落ちだったりして。 オプションよくわからず指定してて自分がやってることわかってない人は結構いるし。
>>362 記録したのをそのまま使ってる人は殆どいないと思うよー
本番用プログラム組むときの手掛かりになる程度に考えてね^^
低レベル記録ならACWが原因で不具合出てるだろうからパラメータ弄ってみるといいよ
マウスの右クリックしたままマウスを動かすと視点が動くゲームでマウスやキーボードの動きを記憶させても 町の出入りでカメラの視点がずれてしまって記憶した動作を再現できません。 カメラの視点を決まった視点にリセットする方法ってないでしょうか?
ないのかあるのかで言えばたぶんあるんじゃない?
>>2
>>366 視点をリセットする機能はたぶんゲーム側で用意されてるから
そのコマンドをヘルプで調べてメモ帳で追加してやればいい
>>368 マウスの右クリックで正面を向くんで、左右のずれは訂正できるんですが
上下は無理なんです。
>>367 こんなのしかできないレベルですが、やってみました。
KBD(VK_CTRL,DOWN,80)
KBD(VK_DOWN,DOWN,85)
KBD(VK_DOWN,UP,3810)
KBD(VK_CTRL,UP,3812)
BTN(RIGHT,CLICK,1123,325,80)
>>369 どちらを向いているか、レーダーのようなものは画面のどこかに表示されてる?
されてるなら、その周辺のピクセルの色を調べれば判定できるかも
一度限界まで下を向いて、それから元に戻せば決まった角度にできるかも
371 :
名無しさん@お腹いっぱい。 :2011/02/04(金) 04:20:03 ID:6uDA8hcD0
UWSCでマクロ探知機回避ってどうやるかわかります?
http://ameblo.jp/maplez/ ↑で探知機回避のためにかったら詐欺されたね^^;
振込みしたあとにメールしたら振込みお願いしますと返信が帰ってきて
再度確認しても相手の振込先が間違えてるわけではないし。もしこのまんま
一点張りのようだったらFC2に問い合わせてまず削除依頼 もしできない場合は
警察行き^^豚箱いってぶひぶひいってろまじメシウマネタでしょ。。。
メシウマネタあげたんでUWSCの探知機回避方法を求
>371 アーチロイヤル乙!ここまで詐欺に来たかミジンコ君
こんな動作速度も遅いし有料版じゃないとexe化もできないマクロを未だに使ってる奴って情報弱者なの?
374 :
名無しさん@お腹いっぱい。 :2011/02/04(金) 18:09:07 ID:Nh/r7RnB0
while true ifb GETKEYSTATE(VK_ENTER) then chr = "" elseif GETKEYSTATE(VK_A) then chr = chr + "A" elseif GETKEYSTATE(VK_B) then chr = chr + "B" elseif GETKEYSTATE(VK_C) then chr = chr + "C" endif wend こんなスクリプトを書いたのですが、 これだとAを押した瞬間にchrがAAAAAAAAAAAAAAAのようになってしまいます。 1度押された場合1文字のようにしたいのですが不可能ですか?
>>374 一定時間無視するしかない。やり方はいろいろ。
・キー入力AがあったらフラグAを立てる ・同じフラグが立ってる間は何もしない ・キー入力Aが無くなればフラグAを消す
>>376 その通りにやったらできました。ありがとうございます。
表示完了待ち(id) ってコードが公式サンプルにあったんだけど、これってコメントアウトミス?それとも意味があるコードなの?
>>378 探してしまったじゃねーか。手間かけさせんな。
最近の言語はascii以外の文字も使えて日本語の関数名・変数も使えるんだよ。
uwsc以外のメジャーな言語でも同じく対応する事が最近は多い。慣習として使ってないだけだから。
//----------------------------------------
// IE にてGoogleを表示、日本語ページより検索 ACC(アクセシビリティインターフェース)方式 #n35
id = GETID("Internet Explorer")
SENDSTR(id, "
http://www.google.co.jp/ ", 1, True, True) // URL
SCKEY(id, VK_RETURN)
表示完了待ち(id)
SENDSTR(id, "検索文字", 4, True, True) // 検索文字(注:IEによりEDITの順番は違う、3かも)
Sleep(1)
ifb ! CLKITEM(id, "Google 検索", CLK_ACC, True, 2) // 検索ボタン(候補リストがある時:2つ目を指定)
CLKITEM(id, "Google 検索", CLK_ACC, True, 1) // 候補リストが無い時
endif
表示完了待ち(id)
CLKITEM(id, "日本語のページを検索", CLK_ACC)
表示完了待ち(id)
// ステータスバーにて表示完了を確認
Procedure 表示完了待ち(id)
Repeat
Sleep(0.4)
Until GETSTR(id, 1, STR_STATIC) = "ページが表示されました"
Sleep(0.2)
Fend
つか、コピペで使ってみりゃぁ判ることだけどな…
UWSCの掲示板に書き込みできないのでこちらに失礼させてもらいます シェア版の購入を考えておりますが ↓ (1ライセンス:1人の使用者もしくは1台のコンピュータのどちらかといたします) 一人で複数所持しているPCに1ライセンスでそれぞれにインストール可能なのでしょうか?
383 :
名無しさん@お腹いっぱい。 :2011/02/05(土) 02:38:36 ID:bKhwK/eX0
>>382 1ライセンス:
【1人の使用者】
もしくは
【1台のコンピュータ】
『一人で複数所持しているPC』という事は?
【1人の使用者】という事になるのではないでしょうか?
ニホンゴワカリマスカ?
>>382 そういうのは本人直メで聞けばいいだろ。
使用法とちがって間違ってたら権利侵害になるんだし。
「かつ」でなく「もしくは」だろ これぐらい聞くまでもないだろ
PUBLIC key,keyold,keyon,keyoff,item key=0;keyold=0;keyon=0;keyoff=0 while True if GETKEYSTATE(VK_F9) then exit keySet() ifb (keyon=1) KBD( VK_2, 1, 0 ); KBD( VK_2, 2, 0 ) ELSEIF (keyoff=1) //SFIFT離したらキー3 KBD( VK_3, 1, 0 ); KBD( VK_3, 2, 0 ) endif SLEEP(0.01) wend //------------------------------------------- Procedure keySet() DIM keych; keyold = key; key = GETKEYSTATE(VK_LSHIFT) keych = key XOR keyold; keyon = key AND keych; keyoff = keyold AND keych Fend これにspaceを押している間にも他のキーをバインドしたいのですが 追加の方法がが分かりません。どう記述すればよいのでしょうか
>>385 そう。通常は聞くまでも無いこと。
だがあえて聞くっていうならここより直メだろと。
>>386 PUBLIC key, keyold, keyon, keyoff, item
key=0; keyold=0; keyon=0; keyoff=0
while True
if GETKEYSTATE(VK_F9) then exit
keySet()
ifb (keyon=1)
KBD( VK_2, 1, 0 ); KBD( VK_2, 2, 0 )
ELSEIF (keyoff=1) //SFIFT離したらキー3
KBD( VK_3, 1, 0 ); KBD( VK_3, 2, 0 )
endif
SLEEP(0.01)
wend
//-------------------------------------------
Procedure keySet()
DIM keych; keyold = key; key = GETKEYSTATE(VK_LSHIFT)
keych = key XOR keyold; keyon = key AND keych; keyoff = keyold AND keych
Fend
見にくいのでインデントつけた。
PUBLICはややこしくなるので使わない方がいい。
使いたい場合はModuleでまとめた方がいい。
>>379 別なところがひっかかって意味不明なエラー吐くと嫌だから
現段階では慣習というか自衛としてascii以外はコメントだけだわ
firefox ver3.6.8なのですが単純に指定URLを開きたいのですが動作しません
ACW(GETID("Mozilla Firefox","MozillaUIWindowClass"),0,0,0,0,0)
URL = "
http://xxxx "
MSGBOX("終了")
このような記述でも開かず終了してしまいます
指定URLを開く方法は無いでしょうか
>>390 URLという変数にアドレス設定してるだけだからそりゃ何も起こらないでしょうね。
テキストを送信してエンターですよ。
なるほど有難うございます!
公式にありますgoogleのサンプルをそのまま使用してもブラウザが更新されるだけで
ということは文字入力が送信されておらずエンターだけが有効になっているから更新だけが行われてるように見えるという感じでしょうか
このように付け加えましてもうまくいきませんorz
ACW(GETID("Mozilla Firefox","MozillaUIWindowClass"),0,0,0,0,0)
id = GETID("Mozilla Firefox", "MozillaUIWindowClass")
SENDSTR(id, "
http://www.yahoo.co.jp/ ", 1, True, True) // URL
SCKEY(id, VK_RETURN)
MSGBOX("終了しました")
>>391 本当にすみませんorz
もしやと思いUWSCのverを確認しましたら・・・
ver4.4でした最新の4.6cにて正常に動きしました
お助けいただき有難うございました
>>392 テキストが送信されてるか、そこで止めて確認でしょう。
カーソルがどこにあるかも大事なので、止めて確認です。
メッセージボックスを出すとフォーカス移動するので消すか、数秒スリープです。
ウィンドウは移動してますか?非表示のウィンドウを拾ってないですよね?
うまくいかない場合、trueとかfalseとかのオプションをいじるのもいいかも。
あるゲーム用に作ったんだけど、安定しません。おかしいとこありますか? WHILE CHKIMG("画像.bmp",0,0,0,1000,650) IF !CHKIMG("HP.BMP",0,0,0,1000,1000) THEN KBD(VK_SHIFT,0) SLEEP(0.5) IF !CHKIMG("MP.BMP",0,0,0,1000,1000) THEN KBD(VK_U,0) FOR Y = 1 TO 4 KBD(VK_RIGHT,1,200) KBD(VK_INSERT,0,250) KBD(VK_INSERT,0,150) KBD(VK_INSERT,0,150) KBD(VK_INSERT,0,150) KBD(VK_RIGHT,2,200) NEXT FOR Y = 1 TO 4 KBD(VK_LEFT,1,200) KBD(VK_Y,0,250) KBD(VK_INSERT,0,150) KBD(VK_INSERT,0,150) KBD(VK_INSERT,0,150) KBD(VK_INSERT,0,150) KBD(VK_LEFT,2,200) NEXT //====================================== IFB CHKIMG("画像.bmp",0,0,0,1000,650) BREAK ENDIF WEND
>>395 0とか1とか2とかじゃなくて、省略orClick、DOWN、UPってちゃんと書くべき。作法としてね。
あと、カンマのあとは半角スペース入れるべき。
特に数字を入れる場合はピリオドと見間違う。
"HP.BMP"を見た後はSleep入ってるけど、"画像.bmp"とか"MP.BMP"を見た後は入ってないね。
バランスが悪い。
ループの脱出条件をチェックするときは特に、KBD()の直後とかはやめたほうがいい。
安定させるのはほんと難しいけど、僕はKBD()では時間を指定せず、Sleep()を使ってる。
あの時間はDOWNからUPまでの時間じゃなく、CLICKなどを実行するまでの待ち時間だからSleep()でもそう変わらない。
ただ、Sleep()の方がキー操作タイミングはずれる。
問題は操作対象が動くためのCPU時間があるかどうか。マルチコアならあるだろうけど、シングルコアならない。
動かないということではないが、重いときに画面表示などを省略されてしまう可能性がある。
ネトゲのボットを作ってます そのネトゲが3Dなのですが、右を90°ピッタリ向くという操作が超シビアで 事実上不可能なのです なので、ここで右90°回転する というマクロが組めません もちろん、道具屋をクリックする状態の向きも一定角度に安定しません また、扉の中に入ると、超微妙に3°ずれてたりしてて 上に2歩、右にまわってクリックというマクロが安定しません どなたか知恵を貸していただけないでしょうか?
ボットはマクロで無理して作るものじゃないだろ・・・ そもそもここはネトゲはNGだしその説明もたりね
>ネトゲはNG 必要ならテンプレに明記したほうがいいんじゃね? (漏れ自身はあんまり感じないが)
俺自身も感じてないけどばっちゃがいってたんだ・・・ ネトゲのマクロは規約違反なんじゃね?
知恵はないんですね
プギャ━━━m9(^Д^)━━━!!!!!!
ああ、ここは、そういうレベルなんですね 確かにこのソフトウェアは このようなレベルの方でも使えるくらい便利ですからね
そういうレベルです お引き取りください
EXEC関数のように位置やウィンドウサイズを指定してフォルダを開く事って出来ませんか?
>>405 Exec ("explorer C:\開きたいフォルダ", False, X座標, Y座標, ウィンドウの幅, 高さ )
どなたか4.4cフリー版お持ちの方うpしてもらえないでしょうか・・・
409 :
名無しさん@お腹いっぱい。 :2011/02/17(木) 12:33:45 ID:kz14X//y0
ここは、そういうレベルなんですね
YES → 【ヒットした?】 ─ YES → なら聞くなよ。死ね。 / \ 【検索した?】 NO → なら、ねぇよ。死ね。 \ NO → 死ね。
なぜ4.4cなんだろう 理由が知りたい 何か旧バージョンのバグに依存したスクリプトでも使ってるんかな
ネトゲーはNGなのか すべてのゲームがマクロ禁止なわけでもないだろうし いつそんなルールになったんだ? そこら辺の経緯を教えてくれないかな。
>>397 回転は三角関数を使うんだけど微妙に誤差が出る。
プログラム上で誤差が出るものをスクリプトで誤差が出ないように操縦することはできない。
なぜ90°ぴったりじゃないといけないのか知らないが、別の方法を考えるべき。
>>413 90°なら先にxとy入れ替えて目標決めとくとか
>>412 そう言う奴は、ゲーム名を明かさない
禁止されていない事を示せば良いのにそれが出来てない
ゲームなんてわざわざインチキしてまで遊ぶもんじゃない。 特に、他人に手伝わせなければインチキもできないほどに知能が足りてない奴は、 他にやるべきことがあるだろう。
>>412 別にこのスレに限った話じゃないよ。違法な事や他の人や
団体に迷惑をかけるような事柄を教えないってのは。
違法な用途に使われる事が想定されるものならちゃんと違法でない
用途を示すべきって当たり前の話。
コンピューターだって万能じゃないんだから、正確に90度右向く方法が一つもなければどうしようもない 方法はあるけどタイミングがシビアすぎて並の人間には不可能とか、そういう理由なら なんとかなるかもしれないけど
インチキをしない奴なんて この世に存在するの?
アングラは独力でコッソリやるもんだろ。 やるなとは言わん。言っても無駄だし。 しかしやり方を聞いてきたら死ね!と言うしかないな。
>>414 だからね、メモリ上の角度データを直接いじくるんなら不可能ではないが、
操縦してきっちり90°にすることは不可能と言ってるんだよ。
ゲームのチートは、通常のソフトの裏技的使い方に比べると何倍も難しい一方、見返りに得られるのはゲームの楽しさが増すことくらいである。 ゲームのチートに興味のない人がチート方法についての質問を目にしても、わざわざ苦労してまで手伝ってくれるはずがない。 親身になって手伝ってくれる可能性があるとしたら、元々チートプレイの習慣のあるゲーマーだけである。 だが、チートをしてまでゲームを楽しみたいと考えるほどゲームに没頭していながら、チートスクリプトの作り方を他人に教えられるほどの技術を身につけている人というのは、そもそもそんなに多くはない。 更に、そんなスキルのあるチートゲーマーでも、チートの成果を独り占めしたいと思っていたら、どんなに頼んでも教えてくれるはずはない。 逆に他人に教えて感謝されたりしたいという人なら、既に自身のブログなどで公開しているだろうから、やはりよその掲示板で質問に答えたりなんてしない。 チートの知識を独り占めする気は無いけどわざわざ公開しようともしないという人が、たまたま何らかの理由でこのスレッドを見ていて、質問を見つけて答えてくれる可能性なんて、ほとんど無いに等しいのである。 よって、掲示板でゲームのチート方法を教えてもらおうとしても無駄である。
長い
どんなプログラムでも、方法を考えるのは人間 コンピューターは人間の書いたプログラムのとおりに動くだけ その人間がどうしたらいいのかわからなければ、作ることはできない コンピューターが勝手に考えて答えを出してくれるのは漫画の中だけ
今夜のおかずからハッキングまでが2ちゃんねるじゃないの?
ワロタ ハッキングはどっちかというとセキュリティやプログラミングだろ 他のネトゲに迷惑かけるうえにマクロでBOTってw お前はセンスないからやめたほうがいいよw
427 :
名無しさん@お腹いっぱい。 :2011/02/18(金) 22:34:08 ID:7V1H+RVR0
WEBカメラがあれば直角に動かせるよ。 面倒だけど、そんなに手間もいらん。
>>426 はマクロ=他人に迷惑をかける
としか頭にない視野の狭い見解
マクロを前提としたとしかいいようのないネトゲの実体を知らない
また、社会人に中学生並の遊び時間を要求することもナンセンス
大人になってるんだから、知恵を絞ってもっと効率的にゲームを進めるべき
そのためにも頭を使い、道具を使い、金を使い、人を使い、ありとあらゆるものを使うのが社会人
ひたすら同じ動作を繰り返す
>>426 はパソコンという道具をしようするのをやめたほうがいい
大人になってるんなら最低限のルール守れる人間になれよw
>>428 > また、社会人に中学生並の遊び時間を要求することもナンセンス
普通は中学生並みの遊び時間を要求するゲームは社会人のやるものじゃないだろ。
逆説的に言えばそんなゲームをやってる奴はまともな社会人とは言えん。
ゲームをやらないことが最大の効率化だ
なんともムーンウォークなインターネットですね
そして2ちゃんねるを見ないのも効率化につながる
学校に行かないのも効率化
435 :
名無しさん@お腹いっぱい。 :2011/02/21(月) 12:50:16.87 ID:KYvLtMJ00
能力があるなら学校に行かないのは有効だし、実際に行われているからな。
時間のかかるゲームやってるからまともな社会人じゃないってのは暴論。 犯罪行為してるわけじゃなし。 やってるネトゲの規約見直したけどRMTはきっちり明記して禁止してるけどマクロについてははどうじゃろ? ユーザーの行為が、本サービスの運営を妨害した又は妨害するおそれがあると当社により認められる行為。 これに該当するかどうか。 やってるネトゲはモニターの前に居てGMの問い合わせに答えられる場合はOKで、完全放置のいわゆる寝マクロは禁止とか 言われてるが、俺は目立つ場所で長期間、完全放置したけどGMから問い合わせはこなかった。 もちろんアカウント剥奪もされてない。 黙認みたいな状況なのかもしれないが、完全に黒ってわけじゃない。 いずれにせよ、すべてのネトゲの規約を把握してるわけでもあるまいし、ネトゲのマクロの話は禁止ってのはおかしい。
常に全員の動きをチェックして、怪しい人すべてに問い合わせや確認をするなんて不可能なんだぜ 駐車違反やスピード違反と同じ 運が悪けりゃ捕まるってだけの話
>>436 『ソフトコピーの著作権違反は親告罪なので、捕まっていない奴も居る…だからコピーしようぜ!』
いや、コピーを自重しろよ…とは思う
>>436 > 時間のかかるゲームやってるからまともな社会人じゃないってのは暴論。
違うだろ。時間のかかるゲーム=対象年齢の低いゲーム。
つまり、対象年齢の低いゲームをやりたがる精神年齢の低い奴が
まともな社会人か?って話だ。
お金がないから万引きしていいみたいな理屈でわろた
>>437 マクロが規約違反に当たるかどうか決まってないゲームもあるだろうからって話。
はなから違法行為の著作権違反や万引きとは違う。
>>439 >時間のかかるゲーム=対象年齢の低いゲーム
そう決め付ける根拠がわからん。
加えて言うならネトゲーの対象年齢が高かろうが低かろうが
まともな社会人かどうかもマクロとは関係ない。
グダグダ言ってないで運営に問い合わせれば?BOT使っていいですかってさ
>>439 その物言いはちょっとやだな
人が操作する範囲内で時間を掛ける事がそのゲームのゲーム性なのだから
そのバランスが不満ならプレイしなければ良い
ゲーム上の利益を不当に増加させるために
ゲームバランスの破壊を目的としたツールの使用や公開は多数のプレイヤーに影響を与え
運営側からの個人特定+αにまで発展してもおかしくはない
見ず知らずの人に上記の可能性を負わせようとするのは悪だ
…と、思うので自己責任でひっそりとやってくれ。他人を巻き込むな。
マクロは犯罪じゃないから作り方教えてください とは図々しいにもほどがあるな。 やりたきゃ自分で作って勝手にやればいい。
無料でスペースを貸しているのに自分の意見を言うのは図々しい 言いたければ自分でHP作って勝手に行ってればいい
イメージでしか物事を語れないとかどんだけ
>>447 タイ焼き屋さんがあります
ここではタイ焼き一匹1000円で販売します
ある日タイ焼き屋さんがグルーポンを利用し、1000円の半額500円で販売すると決めました
グルーポンのシステムは100人集めたら1000円のタイ焼きを半額の500円で販売する
そして、売り上げの半分ずつを分け合う というシステムです
タイ焼き屋さんはあまり詳しく考えず、いつものタイ焼きが半額で提供できるなら と思い契約しました
そして、実際に半額で販売してみたところ100人のお客さんが集まり100個売れました
そこで問題です
タイ焼き屋さんにはいくらの収入があったでしょうか? 計算式もあわせて答えてください
"あああ"が"いいい"に変わったら次の処理に移る というスクリプトを作りたいんですが、毎回文章が違うので色指定や画像指定を使う事が出来ません 指定範囲の画像に変化が生じたらフラグと見做すor直前の状態を画像として毎回記録し、一致しなければフラグと見做す こんなスクリプトってUWSCで作れますか?
質問したいんですけど、高レベル記憶をしたときに 行っている作業が、どこをクリックしたかとかいうより id = GETID("ファイル", "MsoCommandBarPopup", -1) こういう風にどのウィンドウのどの場所を開いたかみたいな表示が出るんですけど、 これって今時点で、UWSCで記録してから出してみないとどういう名称の場所を開いたか 確認できない私なのですが。 何かソフトを使って、ここのファイルFを開くのはMsoCommandBarPopupを開くんですよ っていうのがリアルタイムでわかるような方法ってあるんでしょうか? それがあればスクリプト文を作るのが非常に楽になってくるんですけど わかる人います?
ゆとりってホント怖いな これでキレたりするんだろう
AHKだったかもしれんけど、リアルタイムでマウスカーソル下の オブジェクト情報を表示するスクリプトがあったなあ。
>>453 ありがとうございます。そのAHKというのは
MouseGesture.ahk というマウスジェスチャー用のソフトであってるんでしょうか?
失礼、AutoHotkeyのことですね。 調べてみます。
すみません質問です。 EXITEXIT [終了コード] この 終了コード って、どういう使い方ができるんでしょうか? DOS窓などでエラーメッセージ出力したりするのに使えると思ってたんですが、違うみたい?で。 ご存知の方、教えて下さい。
>>457 つまり現状、貴方は使えなくても何一つ困ってないんだろうに。 気にするなよ。
>>458 いや実はそうでもなくて、、
過去の別アプリの代替を作ろうとしてるのですが、そいつが
終了コードを吐いてて、そのコードを使うアプリがその後ろに控えているのです。
ですのでUWSCで終了コードを吐けるか判断したいです。
過去にも幾度か 終了コード が話題になってるみたいですが、
大概は根本からの別の方法を指南されて有耶無耶になっているように見えました。
で、そもそもこのUWSCでの 終了コード って、どういう動きをして、
どういう使い方を想定しているのかな、と思った次第です。
わかる方、ご教授よろしくお願いします。
>>459 取り合えず、自分で3〜4行のサンプルコード書いて
欲しい動作の想定と現状との差異を挙げてみては
画像認識とループの処理を並列で進めて画像見つけた瞬間にループ終わらせるっていう処理をしたいんですが、 処理を並列に進める方法ってありますか? ループの中の処理に画像認識混ぜるのが妥当何でしょうか?
>>459 DIM uwsc = GET_UWSC_DIR + "\UWSC.exe"
DIM uwsname = GET_CUR_DIR + "\test_exitexit.uws"
DOSCMD("ECHO EXITEXIT VAL(PARAM_STR[0])> " + uwsname)
PRINT EXEC("cmd /C EXIT 0", TRUE) // => 0
PRINT EXEC("cmd /C EXIT 1", TRUE) // => 1
PRINT EXEC(uwsc + " " + uwsname + " 0", TRUE) // => 0
PRINT EXEC(uwsc + " " + uwsname + " 1", TRUE) // => 1
DOSCMD("DEL " + uwsname)
Windows XP Home Edition SP3 / UWSC 4.6c で確認
終了コードの比較の仕方がマズかったんじゃないの?
| START /WAIT UWSC.exe test_exitexit.uws 1
| IF ERRORLEVEL 0 (ECHO exit code ZERO) ELSE (ECHO exit code NON-ZERO)
だとダメで
| START /WAIT UWSC.exe test_exitexit.uws 1
| IF %ERRORLEVEL% EQU 0 (ECHO exit code ZERO) ELSE (ECHO exit code NON-ZERO)
ならイけた
>>463 ありがとうございます459です。自分がいろいろ間違ってました。XPsp2+4.6で動いてます。
EXITEXIT 5555
って書いただけのファイル(tmp.uws)作って、uwsc tmp.uws → echo %ERRORLEVEL% で、5555が表示されました。
ちょっと条件次第で想定動作してくれませんが、たぶん自分のDOS知識の不足と思うので出直してきます。
ありがとうございました。
ifb CHKIMG("hoge.bmp") // 画像があった BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) // 左クリック こうすると画像の左上を左クリックしてしまうのですが、画像の真ん中をクリックさせる方法ってありませんか?
hoge.bmpの大きさが10x10だとしたら BTN(LEFT, CLICK, G_IMG_X+5, G_IMG_Y+5)
自分は馬鹿だから素直に sx = G_IMG_X + 元画像横ピクセルの半分の値 sy = G_IMG_Y + 元画像縦ピクセルの半分の値 btn(left, sx, sy) ってやっちゃってるなぁ
>>466 ありがとうございます
<center>的なものはやっぱりないか・・・
初歩的な事で恐縮ですが、どうかお教え下さい。 IEのあるサイトの画面に現れる文字列リンクの特定文字列を指定して探し、有ればその文字列リンクをクリックさせたいのですが、どのように書けば宜しいでしょうか? IFB POS("特定の文字列",?1,?2)?3 x=?4 y=?5 BTN(LEFT,CLICK,x,y,60) 上記のやり方が合っているようでしたら、?1〜?5のそれぞれの意味と記述方法が分かりません。 上記のやり方が根本的に間違えているようでしたら、恐れ入りますが記述方法を教えていただけますと助かります。 どうぞご指導の程、よろしくお願い申し上げます。
>>469 // Web上(IE)のリンクの選択
戻値 = IELINK( IE, リンク表示文字, [番号, 完全一致フラグ] )
引数
IE: IEオブジェクト
リンク表示文字: 表示されているリンク項目 (一部分だけでも可)
番号: リンク表示文字が同じ場合に順番指定
完全一致フラグ: Trueの時は完全に一致するものだけを (デフォルト:False)
戻値
TRUE:正常、 FALSE:処理不能
>>470 ご丁寧にありがとうございます、早速、記述してみます!
>>471 ヘルプは全部読んでからのほうが早くていいぞ。
全部眺めなおしたって、質問文書くより労力は少ない。
純正のヘルプはわかりにくいよ… あれを読みこなすには訓練が必要だから、ヘルプのが早いとは言い切れない
確かにあのヘルプは・・・ググったほうが早かったりするw
某言語の非公開仕様と格闘したことのある漏れには 簡潔にして十分な仕様解説があってありがたいと思うんだけどね 確かに別チュートリアルがあったほうがいいかもしれない
別チュートリアルはもはやグーグル先生でいい気がする。 あのヘルプは嫌いじゃないぜ、気軽に全部目を通せる量で。
チュートリアルというか、事例紹介的には
>>2 の「UWSCサンプル集」が重宝した。
ヘルプを読んで使い方が判らなければ、
該当関数を検索して実例を漁ると効率がよい。
ifb CHKIMG("a.bmp") の画像有無判定って、対象のウインドウが最小化されていたり、他のウインドウの裏に隠れていると、機能しないんですか?
なぜ試さないのでしょうか?
>>478 見ための画面が、指定した画像みたいになったら、実行したい。
っていう要求に応える機能だからなぁ。
どうしてもってんなら、対象ウィンドウを前に引っ張り出すよう記述すればいいかと。
>>480 なるほどです、対象のウインドウをアクティブにしてから画像有無判定をすればいいんですね。
あと、別な質問なのですが、IEですと、ビジー判定というか、IEがビジーでなくなってから動作する、旨の方法があるようですが、IE以外のソフトを自動化したい場合、同様にビジーでなくなるまで待機させるような方法はあるのでしょうか?
他のソフトにとっての「ビジー」とはどういう動作を指すのか それが判るのは、そのソフトをもっているお前しかわからない。
人間様から見て ビジーだな、っていう判断を、そのままUWSCにやらせりゃいいワケで。 ボタンの凹みを見てもいいし、画像で見てもいいし。 応答が帰ってこないような困ったソフトならウィンドウを動かしてみて動いてなかったらダメとか。
だめだだめだだめだw 画像認証の範囲指定がうまくいかねー とりあえずXY座標を確認するスプリクトはみつけて使ってるんだが まず、全画面じゃなくゲームの指定された大きさの画面だってのが あやしい。 だが、そのゲームの画面のXY座標がわからん。 ひんとくれ
ヘルプ見ればいいと思うよ MOUSEORGで躓いてるのかな? // マウス座標を相対座標にする、 またはマウスとキー情報を直接ウィンドウへ送る MOUSEORG( ID, [基準指定 ] ) 引数 ID: Windowを識別するID 基準指定 : 0: ウィンドウ位置 (デフォルト) 1: クライアント領域の位置を基準にする 2: 指定ウィンドウ(オブジェクト)へマウス、キー情報を直接送る(第1引数はウィンドウIDでもハンドル値でも可) 以降のMMV()、BTN()、PEEKCOLOR()、CHKIMG()関数の座標を指定ウィンドウを基準にしたものにする 基準指定にて 2が指定された場合は KBD()、MMV()、BTN()関数の情報は直接ウィンドウ(オブジェクト)へ送る スクリーン座標に戻す時はゼロを指定 MOUSEORG(0) だからこれ使った後はx=0、y=0はそのゲームの座標になるよ
486 :
頭痛い :2011/03/06(日) 19:35:19.34 ID:jfbn3qA00
UWSCでメイプルストーリーのマクロを作っているのですが、HP回復の設定がうまく出来ません。 内容としては、HPの色(赤系)を認識させて、違う色の場合特定のキーを押すように したいのですが、何回かやっても、HPが十分にあるにも関わらず、回復、してしまいます。 ちなみにこんな感じです。 While 1 ACW(GETID("MapleStory","MapleStoryClass"),235,13,806,627,0) RGB=PEEKCOLOR(298,598) R=RGB AND $FF0000 G=(RGB AND $000000)/$100 B=(RGB AND $000000)/$10000 IFB (R>$88 AND R<$FF) AND (G>$00 AND G<$00) AND (B>$00 AND B<$00) Kbd(VK_S, DOWN,30) //「1」キーを押す Kbd(VK_S, UP,30) //「1」キーを離す else //赤色じゃない時 Kbd(VK_Y, DOWN,30) //「2」キーを押す Kbd(VK_Y, UP,30) //「2」キーを離す Endif //判定終了 Wend
>>486 それ赤いときにボタン押すんじゃね?
ちなみに、メイプルストーリーは点滅するからそれが影響しないようにしないと。
つまり、赤じゃなくてグレーで判定するべきじゃね?
よく判らないんだけど、 赤だったら1を押す。ちがったら2を押す。 をノーウェイトでひたすら繰り返してるみたいだけど、やりたい事ってソレであってる? HPが減ってない時に2を押すのがよく判らんというか。攻撃か何かなのかな。。 とりあえずデバッグとして、IFの中の条件をバラして fukidasi() とかで表示させてみたらどうかと。 あと ACW() の行は While より前でに1回でたぶんいい。 KBD()には UP/Down の他に、CLICK って引数があるよ。
489 :
頭痛い :2011/03/06(日) 22:29:51.01 ID:jfbn3qA00
えっと、 今考えているのは 移動しながら攻撃するスプリクトの中にHP,MPを10秒毎事にチェックするようなもの物(上記のような感じのやつ) を組み込みたいと思っているのですが、 返信を見る限り、これではだいぶダメなようなので、どんなふうに書いていけば良いのでしょう? 自分もちょっと書き直してみます。
>>489 メイプルのシステム全く知らないけど、
while True
if GETKEYSTATE(VK_ESC) then exit
id = GETID("MapleStory")
MOUSEORG(id, 1)
thread A()
thread B()
while 1
sleep(0.1)
wend
wend
procedure A()
ifb PEEKCOLOR(298,598) = $0000FF then // 298.598のRGB値がFF0000(赤)だった場合
KBD(VK_S, CLICK,50) //「1」キーをクリック
sleep(10)
endif
fend
procedure B()
移動と攻撃の命令文
fend
こんなんでどうだろう?
回復キーがVK_Sなのはゲームの仕様かな?
あと298.598が赤(0000ff)になったらSクリックにしてるけど、
>>487 のいうグレー色が分からないので正しい色を調べてくれ。
>>489 なんか変っぽいね。486が。PEEKCOLORは左から順にBGRなのでそこ間違えてないかな。
あと察するになんでGとBでシフトしてるか判ってないのかな。どっかからコピってきて弄った?
まずは「色データ収集」で間違ってるのか、「アルゴリズム」で間違ってるのか見分けた方がいい。
cdntX = 298
cdntY = 598
while 1
RGBdt = PEEKCOLOR(cdntX,cdntY)
Rdt = RGBdt AND $0000FF
Gdt = (RGBdt AND $00FF00)/$100
Bdt = (RGBdt AND $FF0000)/$10000
c = ""
c = c + "座標 = " + cdntX + "," + cdntY + "<#CR>"
c = c + "RGB = " + FORMAT(RGBdt,0,-1) + "<#CR>"
c = c + "R = " + FORMAT(Rdt,0,-1) + "<#CR>"
c = c + "G = " + FORMAT(Gdt,0,-1) + "<#CR>"
c = c + "B = " + FORMAT(Bdt,0,-1) + "<#CR>"
fukidasi(c,100,100)
wend
これでRGB各値がどうなってるか随時表示されるから、まずそこが想定通りか確認かな。
てぇかよく見たら (G>$00 AND G<$00) って、、そりゃ永久にelse実行するだろうよ。
RGBで識別するなら、↓で赤っぽいとかって判断でも良い気がするね while True fb CheckColorScope(298, 598, "R", 255, 20) Then ifb CheckColorScope(298, 598, "G", 0, 10) Then ifb CheckColorScope(298, 598, "B", 0, 10) Then msgbox("赤っぽい") // 298.538のRGB値が255.0.0(16進数表記) // Rの誤差+-20まで GBの誤差+-10まで endif endif endif wend Function CheckColorScope(PosX, PosY, Element, BaseValue, Scope) select element case "R" ElementValue = PeekColor(PosX, PosY) And $FF; case "G" ElementValue = (PeekColor(PosX, PosY) And $FF00) / $100; case "B" ElementValue = (PeekColor(PosX, PosY) And $FF0000) / $10000; default Result = False; selEnd ifb (ElementValue >= BaseValue - Scope) And (ElementValue <= BaseValue + Scope) Then Result = True; else Result = False; endif Fend
色合いを見るなら、YCbCr系に変換して判定するのもいいよ。まぁ赤なら要らないかな。
496 :
頭痛い :2011/03/07(月) 16:13:38.89 ID:Gyb1foJQ0
みなさんいろいろ指摘してくださってありがとうございます。 495さんのご指摘してくださったレスに同じような項目があったにも関わらず、 今回質問してしまい、すみませんでした。 どうやら色設定を間違えてしまったようなのでそこを中心に直していこうと思います。
497 :
名無しさん@お腹いっぱい。 :2011/03/07(月) 16:31:31.42 ID:sjwaGV8L0
CHKIMGってウィンドウが隠れていたりするとチェックできないのでしょうか? 必ず見えるところに画像が出てないと見つけられませんか?
>>500 試した上で諦めがつかないから聞いてるんじゃねーかなぁ。
CHKIMGって今この瞬間モニタに表示されている映像を1ドット単位で比較してる っていうイメージ。
>>502 の通りだとするとgifアニメには反応出来ないのかな
何度か試したが処理が進まない
GIFアニメのコマより早くスキャンすれば出来なくもないかも。 まあ、実質無理だけどね。
POFF関数でスリープさせたい時ってどのコマンド使えばいいの? スタンバイので行ける?
指定範囲内に特定の色を発見→行動A はどのようにすればいいのでしょうか
>506 画像認識のbmpを該当色1ドットのものにすれば問題はないはず
いろんなサイト見て多重起動しようと思ったけど出来ない。pcの環境とか新しいバージョンだからとかあるんですか?もし良ければやり方教えて下さい。
>>507 うーん、なんと言えばいいか・・・
指定範囲内に1ドットでも指定した色がある→行動A
みたいな感じが理想なんです
507を100回音読しろよおまえの理想にちゃんと答えてあるだろ それとも自分で考えるのはめんどくさいから全部書けって言ってるのか?
ご名答 そういうことです わかったらはやくしてください そろそろ時間なんで
ウィンドウ内じゃなくて指定範囲内って事じゃないの?
>>512 そういうことですね
x,y(30,30)の枠内で1ドットでもあれば・・・ということです
一つの座標に対してはできているのですが
範囲の場合はどうすればいいのか・・・
>>513 その範囲の色を調べればいいだけだろ
何が難しいのかわからん・・・
範囲指定の方法が分からないんじゃねいの?
2ちゃんねるのスレッドを取得する単純なマクロ
効率的な取得のため、スレ一覧で「レス」項目をクリックし、1000に達したものから取得してください。
自動といっても特定の板しか取得できないので、各種情報を収集するなら
各板で「勢い」項目をクリックし、勢いの高いものに絞って上から数件だけ手動で取得しておくといいでしょう。
スレッド一覧を表示すれば自動的に「↓」とEnterをクリックするだけの単純なマクロを置いておきます。
スレッド一覧とスレ内容を同時に表示していないと使えません。
スレッドの項目をクリックするとフォーカスがスレ内容に移動するので動きません。
スレッドのタブをクリックしてフォーカスをスレ一覧にしてください。
JaneDoe View
http://www.geocities.jp/jview2000/ ダウンロード直リン
http://www.geocities.jp/jview2000/DoeView110309.zip UWSC
http://www.uwsc.info/faq.html ダウンロード直リン
http://www.uwsc.info/uwsc46c.zip 自動化ツールuwsc使いよ集まれ6
http://hibari.2ch.net/test/read.cgi/software/1291347103/ ==== ここから下を、テキストエディタで"Janeスレ一覧巡回.uws"というファイル名で保存。ファイルの種類が”テキスト”なら見えない拡張子になってるからなんとかしろ ====
ID = GETID("JaneDoe View","TMainWnd")
ACW( ID, 77, 0)
MOUSEORG( GETID("JaneDoe View","TApplication") , 2 )
while true
ifb Status( ID, ST_ACTIVE )
KBD(VK_DOWN,CLICK,40)
KBD(VK_RETURN,CLICK,40)
endif
sleep(20)
wend
>>518 まじすか。
普段、数日置きにニュー速+のスレ取得してるんだけど。
数日おきと20秒おきじゃ全然違うだろ。 短い時間の過剰アクセス=バーボンまっしぐら
いや、数日置きに、ニュース速報+の板の全スレ(700程度)を、8秒単位で取得してる。 で、みんながスクリプトを使うと混雑するので、8を20に書き換えて公開した。 俺は今日もまちBBSの東北、東海、東京でMAXに達したスレの一覧をスクリプトで取得したけど、バーボン来てない。 スレの更新を何度も取得しようと思ったらだめだし、同じスレを何度もF5するのも駄目だぞ。 あくまでも板一覧を巡回に使えるって話。 もしかすると鯖、プロバイダによって規制具合がちがったりするのかな?
>>517 そもそもこれをUWSCで(GUIボタン押させたりして)やる必要性ってなんなの?
例えばcygwin入れて シェルスクリプト書いてcronでやったほうが100倍便利そうなんだけど。
>>522 直接HTTPたたいたりしたら2ちゃんねるから排除されるじゃん。
偽装の仕方とか知らないし。
JaneView自身にスクリプトがあるけどよくわからん。
他人の書いたスクリプトは信用できんが、キークリックだけならコード見たら一発でわかる。
全自動スクリプトは便利だけど、そうすると登録した全ての板を巡回したくなるもので、
そうすると件数が増えすぎて普通にバーボンに飛ばされ、
飛ばされてもなおスクリプトが動き続けるとIP焼かれ、二度とアクセスできなくなる。
作るのが簡単、ソースの理解が簡単、動作も直観的でわかりやすい、ちょっと便利。
そのくらいがちょうどいいんですよ。
俺もある板に出現した荒らし追跡の為に板のスレ根こそぎDLしたことあるが datをDLしたからかバーボンは食らってないがな。
win7になってからbeep音が鳴らずスピーカーから音がでるように なったんだけどbeep音を鳴らすことはできないの? CPU変換機を使ってるほかのPCいじくってるときスピーカーからだと 音がならずに困ってるんだが。
>>525 Windows7のサウンドをのっとらない限り無理じゃね?
>>526 それは今の段階では無理?
本家できいてみるか。
訊く前に検索したわけだが同じようなことを書いてる人がいたw
解決策などは一切出てこなかった。無理なのかしらねー
多分それは俺が書いた奴だと思うけど、俺が調べた限りでの結論は 自分でドライバを書いて直接ハードを叩かない限り無理ということだった。 このスレではスレ違いになるんで書いてないけど。
試さずに書くけど、これじゃだめなの? DEF_DLL BEEP(以下略
ダメ。そもそもの俺がやりたかった事というかXPで使ってたスクリプトというのが Win32APIを使ってbeepを鳴らすものだった。 こっちの方がsound関数より反応が速いから使っていたんだが、7になってからこれが エミュレートになって反応速度ガタ落ちで使い物にならなくなった。
532 :
名無しさん@お腹いっぱい。 :2011/03/23(水) 14:14:22.02 ID:Xeavlajf0
・・・
デバッガ起動しようとすると 「L22が存在しません」 ってダイアログ出てきて使えないんだけどどなんで? ユーザ登録済みにはなっているはずなんだけど
534 :
533 :2011/03/23(水) 21:29:04.87 ID:u5wJnuUr0
ちなみに4.4から4.6cにバージョン上げたら使えなくなった
ちゃんとインストールした? アンインストールからやり直したほうがいいかも。 有料版なら本家掲示板で聞いたほうがいいよ。
こんなもんに金払うやついるんだな
なんだかんだで便利だしー。 払ってもいいかなって思えたんで払ったよ。
簡単なツールを実行ファイルとして配布したかったのでレジストした パソコンに詳しくない方にも簡単に使ってもらえるし あと今まで相当uwscにお世話になってたし感謝の意図もこめてってのもあるかな
ここは自分語りの激しいいんたーねっつですね
配列の操作で困っています。 配列内の最小値の「位置」を知りたいのですが、うまくいきません。 (例) Dim a[7] a[0] = 9 a[1] = 5 a[2] = 10 a[3] = 2 a[4] = 6 a[5] = 2 a[6] = 10 a[7] = 3 この例だと最小値の2が格納されている3もしくは5を戻り値として受け取れるような操作を行いたいです。 最小値は「min_a = CALCARRAY(a,CALC_MIN)」で取れることは確認済みなのですが、位置がわかりません。 条件として、 ・配列数が不定(最大10) ・格納される数値は最大3桁の整数(実際は3文字のString型をval) です。 連想配列で「Dim a[7]」を「HASHTBL a」に置き換えて、位置をキーとして数値を値として格納してみましたが、最小値を得る方法がわかりませんでした。 今現在の処理方法として、 min_a = 1000 For b = 0 to 7 ifb a[b] < min_a then c = b min_a = a[b] endif Next fukidasi(c) という処理を行っていますが、変数を多く使わなくてはいけないため、もっと簡単な方法がないか教えてください。
541 :
540 :2011/03/26(土) 12:43:50.55 ID:wSFqRGjR0
追記 条件の追加として、上記の例だと、得られる戻り値は3でも5でも構いません。
充分簡単な処理だと思ってしまったオレは馬鹿なのか・・・orz
543 :
540 :2011/03/26(土) 14:40:47.00 ID:wSFqRGjR0
>>542 おそらく頭がこんがらがっているんだと思います。
VBのMatch関数を実装するか、配列を連結させてPOSで位置を取得するか、とか。
>>540 m = 0
For i = 1 to 7
if a[i] < a[m] then m = i
Next
print a[m] //最小値
print m //最小値のインデックス
計算中の最小値は、仮の最小値なんだから、どれでもいいから放り込めばいい。
下手に特定の数値を放り込むのはバグのもと。
変数を減らすには、最小値を配列から直接取り出せばいい。
残りの全てと比較なので、比較回数は配列数-1。
min_a = CALCARRAY(a,CALC_MIN) for i=0 to length(a)-1 ifb a[i]=min_a print i break
途中で書き込んでしまった。タブでインデントしたつもりが… min_a = CALCARRAY(a,CALC_MIN) for i=0 to length(a)-1 ifb a[i]=min_a print i break endif next
最小値の添え字を複数取りたきゃbreakしないで続行すればよし。
548 :
540 :2011/03/26(土) 15:15:48.78 ID:wSFqRGjR0
>>544 レスありがとうございます。
やはり回して比較するしかないようですね。
HASHTBL a
番号 = a[CALCARRAY( a, CALC_MIN), HASH_KEY]
こんな感じで一発で出せたら良かったのですが、連想配列ではCALCARRAYはできないようで困ってました。
ありがとうございました。
>>540 7個の要素を持つ配列として宣言してるのに8個代入してるのはいいの?
550 :
540 :2011/03/26(土) 19:00:24.80 ID:wSFqRGjR0
>>546 レス遅くなってすみません。
For〜Nextで回すにしても、その方法はいいですね。
参考にします。
ありがとうございました。
>>549 JavaScriptとかではそうですよね。
自分も趣味でいろんな言語を扱うので最後に「;」とか入れそうになりますw
UWSCではDim a[7]はa[0]〜a[7]の8個の配列になるはずです。
uwscの配列表記はすごく気持ち悪いよね これってどの言語の影響なの?
普通だろ
>>551 プログラム言語界では一般的仕様
添字が1からのほうが少数派
えええ普通? Dim a[7] ってさ、入れ物的なイメージだと7個作られそうだけど 実際は8個作られてるじゃん C言語の配列と比べるとすごく気持ち悪いと思うんだが・・・ あれ?むしろCとかのほうが変なんだろうか? よく分かんなくなってきた・・・
Cも0からじゃなかったか? お前の認識の問題だろ
まあ、初心者の頃によく陥る事だ すぐ慣れるよ
配列が0から始まらない言語ってあるのか?
>>556 いや、先頭の話ではなく末尾の話。
Cだとたとえば
char a[7]
って書くとa[0], a[1], ..., a[6]まで作られる。a[7]なんて生成されない。
つまり宣言時の7は確保する場所の個数に相当している。
「7個確保して!」って感覚。
一方、uwscは
Dim a[7]
って書くとa[0], a[1], ..., a[7]が確保されるわけじゃないですか。
「a[7]まで作って!」って感覚なのかな。
Cみたいにa[7]はないくせに、宣言時にa[7]が出てくるのは確かに直感的ではないな。
これはいわゆる「ポインタ」とか「アドレス」の概念が関わってくるからこんな記述なわけで
Cを勉強したての頃は何で?って悩んだような気がしてきた。
まあ慣れですね。
それはVB系の特徴か?
VBっていうかBasicだな
You とにかく良いとこ取りしちゃいなYO
BasicでもCでも7って値を入れたら、0〜7だろ普通。
このカオスな仕様の処理系に良いとこ取りもクソも無いだろ 書き殴りで書いて動けばおkそんな感じ syntaxhighlighterのUWSC用のプラグイン書いてたんだけど 今までただの定数だと思っていたものが全て予約語ってことを知った こんなもんいちいち覚えてたら頭がフットーしちゃうよお
>>563 Cは違うだろ…
宣言時は要素数で、添え字は0から始まるから要素数-1まで。
firefoxでバックグラウンド処理って無理?
メイプルストーリーというネトゲで使ってるんですけど、 たまに「ご不便をおかけして申し訳ありません、終了します」的な感じのが表示されて 落とされてしまいます。 スクリプトに問題はないはずなのですが・・。 わかる方いますでしょうか?
>>567 一般的にゲームバランスの崩壊を招くチート扱いなのでゲーム側でブロックが基本です。
回避は出来ません。どうしてもと言うなら、ゲームの運営会社に陳情してください。
>>566 もしかしてXPCOM経由でできるかも
漏れなら素直にIE使うけどw
チート扱いっていう言い方はよくないな。 まさにチートそのものなんだから。
チートってのはデータを書き換えたりすることだろ
広い意味ではカンニングみたいなもんだ。ずるをすること。 チーターからみれば、直接メモリを見たり書き換えたりするのがチートで、 画面キャプチャしたりキャラを通常の操作でコントロールするのがbotとかスクリプト。 ただ、botにはスパイウェアを仕込んで操るものと言う意味もあるから、botと言えば普通はウィルスみたいなものを意味する。
>>572 そっちはチートの内だがクラッキングの類
広義の「ズル」で「不正行為」でいいと思うがね。
>>569 しかしUWSCにクロスプラットフォームCOMもどきを扱う機能などない罠
まずDLL自作するところから始めるしかないかと
x = G_MOUSE_X public x = G_MOUSE_X 上二つで値が違ってくるんだけど、どうすればいい? x = G_MOUSE_X public mx = x の記述だと怒られる
public mx mx = x
>>577 そりゃぁ実行時間差でマウスを動かしていれば違うこともあるだろう。
あとpublicでは、宣言と代入を二行に分けるといい。
>>579 言葉が少なかった。上2つってのは
CLKITEM(id, "hoge", CLK_ACC or CLK_MUSMOVE)
x = G_MOUSE_X
のファイルと
CLKITEM(id, "hoge", CLK_ACC or CLK_MUSMOVE)
public x = G_MOUSE_X
のファイルで2回試した場合ね。
ちなみに
>>578-579 の方法で取得できた。ありがとう。
ググったらpublicの初期値に変数の指定ができないのか。
ネトゲでuwsc使ってる間にネットサーフィンなどしたいのですが、 uwsc使用中はできないのでしょうか?
できますよ
>>581 仮想マシンのゲストでゲームとUWSCを動かす。
ホストで別のことする。以上。
まうすあいでぃー=2にしてやればいいじゃない
>>584 透明窓があったりコンポーネントになってたりしたらうまくいかん。
uwsc使用不可なネトゲなんてないですよね?
UWSCを起動してるとゲームが起動しないってのがなんかあったよ
589 :
581 :2011/04/06(水) 14:01:00.10 ID:xV0+fb4w0
>>583 ありがとう
自分が使いたいネトゲは仮想だとプレイできないんです..
逆でもできますかね
>>591 あらいやだ。 オーバーフローしますた ノノノ
procedure test() fukidasi("test") fend while true test() sleep(0.5) wend これ動かすとwhileループ入る前にスクリプトが終了してしまうんですが、原因は何でしょうか。
自己解決 後に置かないとダメなのね
ヘルプは読もうな
596 :
名無しさん@お腹いっぱい。 :2011/04/07(木) 22:47:00.50 ID:DXHRhLqW0
FF14で漁師マクロを作ろうとしているのですが上手くいきません。 釣り糸を垂らしてアタリがあるとコマンド欄の枠がちょっと広がるので、 その広がった枠を画像判定させようとしてみたのですが、 文章がおかしいのか判定がおかしいのか「↓キーを押す」を実行してないようです。 ACW(GETID("FINAL FANTASY XIV","RAPTURE"),200,0,1286,992,0) while TRUE ifb PEEKCOLOR(849,885) = $C1C3C3 then //アタリがあった時のゲージ枠が出現した時 sleep(1) KBD(VK_DOWN, DOWN,40) //↓キーを押して「釣る」にカーソル移動 KBD(VK_DOWN, UP,30) //↓キーを離す sleep(1) KBD(VK_RETURN, DOWN,40) //リターンキーを押して「釣る」を選択 KBD(VK_RETURN, UP,30) //リターンキーを離す 釣り作業予定地 else //枠が出ない時 sleep(5) Endif //判定終了 wend
>>596 1
KBD(VK_DOWN, DOWN,40) //↓キーを押して「釣る」にカーソル移動
sleep(0.1)
KBD(VK_DOWN, UP,30) //↓キーを離す
2
KBD(VK_DOWN) //↓
>>597 動きました
御指導ありがとうございました
メイプルストーリーのピラミッドマクロで Fがテレポート Vがヒール NがHP回復 MがMP回復 そのボタン配置でマクロのスクリプトの作り方がわかりません。 どなたか作っていただけませんか? お願いします。
>>599 ピラミッドマクロくらいならネット落ちてる
そもそもお前勉強する気ねぇだろwwwww
>>601 「関数の定義」のところに書いてあるよ
><関数の定義>
> ※ 関数はメインルーチンの後に書いて下さい。
> (メインルーチンは関数前までであり、関数後にメインルーチンを書いても実行されません)
まあとんでもない糞仕様だよね
599の物ですが、どうしても作れないのでお願いします。
出来てるとこまであげてみ
>>2 > 「○○作って下さい」→ 依頼スレじゃありません。
地震前ならスルーできたけど、なんかスゲームカツク自分がいる…
w
599と605の物です。 僕はUWSCというやつで記録してマクロしていましたがピラミッドだと3分記録したはずなのに 2分30秒で終わったりして時間が合いません。 なので誰かおしえていただけたらと思っています。
599と605の物です。 僕はUWSCというやつで記録してマクロしていましたがピラミッドだと3分記録したはずなのに 2分30秒で終わったりして時間が合いません。 なので誰かおしえていただけたらと思っています。
こりゃどういう自演なんだ?
ID:oHTb27s10
マクロを売りたいから作ってくださいってことか
なるほどそういう事か 死ねばいいのにね
みんな、もう少しスルーだ 久々の痛い逸材だ、楽しもうぜ
スルーしたら楽しめないだろ ちゃんとレス付けてあげなきゃ
DEF_DLLについて教えてください。 2010VB.netで Public Class Class1 Public Function A() As String Return "テスト成功!" End Function End Class のみのTest.DLLを作成し、それをUWSファイルと同じフォルダに入れて DEF_DLL A():string:Test.DLL print A() とやってみたのですが NULL としか表示してくれません。 今まであまりDLLを使うことはなかったけれども、なんでNULLを表示するのでしょうか? よろしくお願いします。
ぬるぽーーーーー
がっーーー これ何て発音だろ???
firefoxでmouseorg(,2)指定だとBTN、KBD使えないなー
と思ってスレ見に来たら
>>566 ,569,576で出てた
やっぱ無理なのね
>>620 VB.NETで吐くコードは.NET Framework上じゃないと動かない。
てゆうかUWSCが.NET Frameworkに勝るものなんて1つもないんだから全部VBで書けばいいのに。
>>624 vbで比較して、他プログラムのウィンドウ制御は同じ程度に出来るの?
メニュー項目へのアクセスやら、ボタンのテキスト取得や、ドラッグ&ドロップ等々
できる
>>625 UWCSなんてWindows APIの出来の悪いラッパーみたいなもんなんだから
.NET Frameworkでできないわけないだろ。
Chromeでマクロ実行しながらsleipnirで他の作業をしたいのですが、 MOUSEORGを使用することで可能になるというのを見つけ、 MOUSEORG(id, 2)は、MOUSEORG(id, 0)でもいいが、 "0"だと強制的に操作対象のウィンドウがアクティブになってしまう となっておりましたので2にしたところ、裏で作業しててもマクロ実行側がアクティブになってしまいます。 どのように対処したら宜しいでしょうか? 他の対処法はありますでしょうか?
>>624 Vista以降なら.NET Frameworkは標準搭載だからいいかもしれんな。
問題はバージョン。
「ID」と「タイトル」が同じダイアログが2 つ存在する時、切り分けってどうしたら良いでしょうか。 一例です。 秀丸エディタで、既に存在するファイル名で保存すると、既に存在する旨のメッセージダイアログが出ます。 この時、「名前を付けて保存」ダイアログと「メッセージ」ダイアログの ID とタイトルが同じなのです。 自動記録では、以下でした。 ACW(GETID("名前を付けて保存","#32770"),229,187,675,463,0) <- 名前を付けて保存 ACW(GETID("名前を付けて保存","#32770"),817,434,290,222,0) <- メッセージダイアログ 「2 つ目のメッセージダイアログが存在した場合、そのメッセージダイアログのボタンを押す」と言う処理をしようとしています。
>>633 訂正
× 「ID」と「タイトル」
○ 「タイトル」と「クラス」
です。
While True ifb PEEKCOLOR(25,335) = $CFCFCF or PEEKCOLOR(25,335) = $B0B0B0 or PEEKCOLOR(25,335) = $FFFFFF then KBD(VK_Z,DOWN) else KBD(VK_Z,UP) Endif Wend 上記のはZキーだけを叩くものですが、 これを色判定条件は同じでZキーとAキーを交互に叩くようにするにはどうすればいいでしょうか?
>>636 Dim VKey = VK_Z
while true
KBD(VKey)
ifb VKey = VK_Z
VKey = VK_A
else
VKey = VK_Z
endif
sleep(1)
wend
while true ACW(GETID("○○○),133,11,1050,974,0) IFB CHKIMG("@.bmp")= TRUE THEN ELSE BTN(LEFT,CLICK,800,371,250)//再選出ボタンを押すスクリプト ENDIF Ifb chkimg("A.bmp") = true then BTN(LEFT, CLICK, G_IMG_X+200, G_IMG_Y+40,100) endif Ifb chkimg("B.bmp") = true then BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10)) endif Ifb chkimg("夢試合開始!2.bmp") = true then BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10)) endif wend @が出るまで左クリックをし、見つかればA、Bの作業に移りたいのですが、 @が出た後は常にA、Bの作業をループしたい(@はもう見つけなくてもよい)したいとき どういったスクリプトの組み方をすれば宜しいのでしょうか? 行き詰まってしまったのでご教授御願い致します。
自己解決、簡単なミスでした、申し訳ありません。
chkimgでの画像判定ですが、画像が認識される時とされない時があって困ってます。 10*10くらいの小さな画像なのですが、小さすぎると認識に失敗することがあるのでしょうか?
1ドットでもちゃんと動くので微妙に色が変わってるとかじゃないだろうか
最近覚え始めたんですが、裏で動かすためにmouseorgを使おうと思ってますが うまくいきません。 id=GETID("新しいテキスト ドキュメント (2) - メモ帳","Notepad") ACW(id,-8,-8,1936,1056,0) MOUSEORG(id,2) while 1 BTN(LEFT,click,1266,93,109) KBD(VK_A,CLICK,359) KBD(VK_A,CLICK,219) KBD(VK_A,CLICK,187) MMV(1269,94,78) wend バックグラウンドでメモ帳にひたすらaaaを入れるだけのものなのですがどこが悪いか アドバイスお願いします idのとなりを0や1にするとうまくいくけど2だと反応しません
>>643 id=GETID("メモ帳")
MOUSEORG(GETCTLHND(id,"Edit"),2)
while 1
KBD(VK_A,CLICK,100)
wend
>>644 ありがとうございます。一つ勉強になりました。
いつも参考にさせていただいてます。 以下のスクリプトの組み方を教えていただけナでしょうか。 @「画像A」が出るのを待つ A出たら「1」のキーを押す B数秒から数分で「画像B」が出るので待つ C出たら「2」のキーを押す ※画像Aと画像Bは画面に出たままだが、もう押さない D数秒から数分で「画像C」が出るので待つ E出たら「3」のキーを押す F画像A・B・Cが消えるので@に戻る よろしくお願いします。
参考にした結果どこまでできたん?
>>646 > @「画像A」が出るのを待つ
> A出たら「1」のキーを押す
> B数秒から数分で「画像B」が出るので待つ
> C出たら「2」のキーを押す
> ※画像Aと画像Bは画面に出たままだが、もう押さない
> D数秒から数分で「画像C」が出るので待つ
> E出たら「3」のキーを押す
> F画像A・B・Cが消えるので@に戻る
組み方ってのはコレ自体の事。
この次やることは単に関数調べて書き写すだけ。
頭使わない単純作業。
そんなもの自分でやれ。
while true ACW(GETID("Google Chrome","Chrome_WidgetWin_0"),133,11,1050,974,0) KBD(VK_NEXT,CLICK,40) Ifb chkimg("1.bmp") = true then sleep(181) endif Ifb chkimg("2.bmp") = true then BTN(LEFT, CLICK, G_IMG_X+150, G_IMG_Y+10,100) endif Ifb chkimg("3.bmp") = true then BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10)) wend 調べたのですが、中々見つけることが出来ないので質問させて下さい。 指定の画像が現れた場合にバックグラウンドでクリックを実行するということは可能でしょうか? MOUSEORGを使用するところまではわかったのですが、その先が・・・ お願い致します。
画像の出る場所もバックグラウンドなら不可能
>>650 ありがとうございます。
id=GETID("Google Chrome")
MOUSEORG(GETCTLHND(id,2))
while true
Ifb chkimg("A.bmp") = true then
BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
Ifb chkimg("B.bmp") = true then
BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
Ifb chkimg("C.bmp") = true then
BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
wend
上記の状態だとクリック時にマウスポイントが移動し
アクティブ状態になってしまいます・・・
これを非アクティブで実行するにはどうしたら宜しいでしょうか?
もちろん画像は見える状態にあります。
非アクティブクリックは出来る
655 :
名無しさん@お腹いっぱい。 :2011/04/25(月) 19:35:22.03 ID:jsRtYAq90
今日UWSCをDLしたばかりの初心者です。質問に答えていただけるとうれしいです。 1つ目:UWSCでキーボードの↑(Pg Up)と↓(Pg Dn)とAを同時に押すことは可能でしょうか 2つ目:例として KBD(VK_RIGHT,DOWN,500) を挙げるとします。 VKとかなんでしょうか。 RIGHT,DOWNとはどこのキーでしょうか。 なかなか調べてもキーや言語については書いておらず、困っております。 ぜひわかりやすい回答をよろしくお願いします。
down キーを押しっぱなし up で戻す click で普通に押す 組み合わせれば同時押しができる vk_A Aボタン押す right はカーソルの右 ヘルプ読んで後はネットで調べるそれでわからなければここで聞けばいい
657 :
名無しさん@お腹いっぱい。 :2011/04/26(火) 11:09:45.35 ID:B0OZFNNp0
フリー版ですが、スクリプトが再生、スケジュールのどちらで起動されているかを得る方法はありますか?
>>658 知らないけどスケジュールの方でコマンドラインオプション使えるならそれの有無で
660 :
名無しさん@お腹いっぱい。 :2011/04/28(木) 11:34:29.35 ID:WUQnwKcg0
F3キーを押したいんですけど KBD(VK_F3,click) じゃ無理だったのですが 押し方教えてもらえませんか
662 :
658 :2011/04/28(木) 14:24:10.79 ID:LtzVx3ZJ0
>>659 遅くなりましたが、ありがとうございます。
その方法でやってみます。
UWSCで、開き済みのEXCELから「検索」ってできますか? .Cells(y,x).Value = "A"のように、セル自体に読み書きまでは出来てますが、 それ以上のことは出来てません。できれば、検索して完全一致があればその座標を入手、 完全一致がなければ「なかった」ことを知りたいです。 判る方、ご教授宜しくお願いします。
>>663 VBAじゃだめなの?
Excelファイルにコード埋め込めないなら、アドインにしちゃうとか
>>663 条件抽出できるExcel関数をそのセルに書き込んで結果を得るとか
複数のIDであるサイトに順番にログインし、同じ動作を実行させたい。 下記Aのようにすると動作を何箇所も修正するのが面倒なので、Bのようにできますか? 可能でしたらどのようにすれば良いのかお願いします。 A ID1 動作 ID2 動作 ID3 ・ ・ ・ B ID1 ID2 ID3 ・ ・ ・ 動作
お世話になります。 テンキーの「0」を1秒間隔でずっと押させつつ、 画面にAの画像が出たら画像をクリック。 これをループさせたいのですが、下記のように記述しても動いてくれません。 どこが間違っているのでしょうか? thread A() thread B() While 1 sleep(0.1) Wend procedure A() While 1 Sleep(1) KBD(VK_NUMPAD0,CLICK,) Wend fend procedure B() While 1 IFB CHKIMG("A.bmp",-1 ) Sleep(1) BTN(LEFT,DOWN,G_IMG_X+96,G_IMG_Y+99) Sleep(1) BTN(LEFT,UP) ENDIF Wend fend
過去ログから見ると、同じような質問が続いてるなぁ。 しかも、自分で書いておきながら自分のロジックがわからないというものばかり。 単なるこぴぺスクリプターにありがち。成長してくれない。 …同じゲームのスクリプトを分割して聞いていても不思議ではない。
ゲームをスクリプトで補助させるのって、それ楽しいのかな、、といつも思う。 > 1秒間隔でずっと押させつつ 正直ニホンゴが意味わからん。 つーか、どこの行でダメなのか、くらいは自分で追い込もうぜ。 fukidasiでもPRINTでもいいから、ログとりながらデバッグすりゃあできるっしょ。
UWSC proでEXE化されたファイルからUWSファイルを取り出す事って出来ますか?
ゲームとかでの座標認識ってどうやるんですか? サイト探しまくったんですけどどこにも乗ってないです。
ん?
座標は、ゲーム画面でそれっぽいところ動かすのを記録して 保存して、ファイル開けばだいたいわかる。 画像使う場合はCHKIMGとか使えばいいし
>>672 全画面またはゲーム画面の左上から何ドットかは普通にわかる
ゲーム内でのそのゲーム特有の座標とかは判るわけがない
どうも後者を要求されてる気がする 前者を探しまくってわからないとかありえないし
おおおお ありがとうございました!!!!
後者でも前者との位置関係から割り出せるでしょ
後者ってウィンドウ外まで広がるゲームマップの何処かっていう座標だろ
メイプルストーリーでマクロやってる人いませんか? もしよければマクロでログインするときどうやって パスワード欄に文字を打ち込んでるか教えてほしいんですが・・ sentstrとかKBD関数で打ち込めないんです
すいません誤字です sentstrじゃなくてsendstrです
> パスワード欄に文字を打ち込んでるか教えてほしいんですが・・
> sentstrとかKBD関数で打ち込めないんです
>>2 ●質問したい方へ。
「○○作れますか?」→ スクリプトを期待するのはお門違い。作れるか作れないか教えてくれる人はいるかも。
「○○が作りたい」→ 自分作ればいいんじゃない?
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。
>>671 もってないからよくわかんないけどたぶんEXE化は
エンジン+スクリプトの構成のはずだからバイナリエディタ使えれば不可能ではない
>>681 IDの入力は問題ないんですけどメイプルのパスワード入力欄が特殊だと思うんで
なにかヒントとなるような助言でも頂ければと思ってます><
ゲームチートに使う奴ネトゲ板とか裏技板とかで別スレ立ててやってくんないかな。 そもそも低レベルで自助努力ナッシングな質問ばかりだし、まともな用途に使ってる 人間としてはウゼエこと限りないんだが。
マクロにまともも糞もないけど低レベルなのは確かだわ
UWSC自体が糞処理系だから仕方ない
ところでretってなんですか?
特定の場所をクリックさせたいんですがうまくいきません。 KBD(VK_ESC,DOWN,80) SLEEP(2) ifb CHKIMG("a.bmp",-1) x=G_IMG_X y=G_IMG_Y MMV(X,Y,80) ENDIF SLEEP(1) BTN(LEFT,CLICK,X,Y,80) SLEEP(1) BTN(LEFT,CLICK,X,Y,80) KBD(VK_ESC,UP,80)
画像は問題ないの? ifb〜endifをループで囲んでbreak入れれば?
xyって大丈夫なの?
>>689 XとYの座標って絵の左上だから
XとYの座標に+5するとか。
あとどんな作業してるのかわからないけど
ボタンのクリックはENDIFの内側に入れるんじゃないの?
あとはループで囲うとかかな。
詳細が良くわからないので頓珍漢なアドバイスかもしれないけど
ウィンドウの特定の入力欄に英数字を入れたいんですがうまくいきません。 直前のID欄の入力までは出来て、タブキーを押してパスワード入力欄をアクティブにした状態でやりました 一応マウス操作でパスワード欄をアクティブにしたりもしましたが出来ませんでした click部分をdown,upに分けたり、 KBDとKBDの間にsleep(1)を入れたり、 40の部分を1000にしたりもしましたが出来ません sentstrで変数や英数字などをウィンドウidをちゃんと取得した状態でやりましたができません (そもそもID欄とPW欄にコピペできない仕様なので無理だと思います) それとなぜかID欄では半角状態では入力できないみたいです、 なのでIDは全角で「お」を打ち込んで変換で半角数字にしました KBD(VK_o,CLICK,40) KBD(VK_1,CLICK,40) KBD(VK_5,CLICK,40) KBD(VK_7,CLICK,40) sleep(0.8) KBD(VK_RETURN,CLICK,40) //エンターキーでログインします パスワード欄は強制的に半角入力になるみたいです
ID入力は「お」という文字に事前にIDの数字を辞書登録した状態でやりました KBD(VK_O,down,40) //「お」キーです KBD(VK_O,up,40) //「お」キーです KBD(VK_space,down,40) //変換キーです KBD(VK_space,up,40) //変換キーです sleep(0.8) ログイン() //複数IDでログインしたいので「お」の後ろに条件に応じて数字を打ち込むようにしてますがパスワード欄の入力には影響はないです sleep(0.8) KBD(VK_space,down,40) //ログイン()も全角で入力なので変換で半角にします KBD(VK_space,up,40) //ログイン()も全角で入力なので変換で半角にします sleep(0.8) KBD(VK_RETURN,CLICK,40) //全角入力なのでエンターキーで確定します KBD(VK_TAB,down,40) //パスワード欄に移るタブキーです KBD(VK_TAB,up,40) //パスワード欄に移るタブキーです sleep(0.8) 〜ここからパスワードの入力〜 KBD(VK_o,CLICK,40)と続きます たぶん全角でないと入力できないんだけどパスワード欄では半角入力になってしまう この問題を解決する助言をください
ディレイ40って0.04秒だからもっとしっかりゆとりを持たせたら? あとパスワード欄の入力可否はそのソフト依存だと思う
>>695 レスどうもです
これと同じようなことをuwscでやってる人がいるので
出来ないことはないと思うんですけど
なにかわかりませんか?
ディレイのところも1000などに変えたりしたんですけど無理でした・・
すまん上で書いてたな
記録ボタン使ってみたら? 記録→保存→動作確認→中身を簡素化する でいいかと
>>693 辞書とかパスワードに影響ないとか、正直何したいのか分かり辛い。
入力段階ごとにIDとパスワードの状態を例として示した方が良いよ
メイプルストーリー …自動ログインで多重ログインか…ひどいもんだ。
>>694 ttp://scripts.web.fc2.com/scriptsup/MSLogin.UWS 自動ログインスクリプト。
先にIDとパスワードのテキストファイル(MSLogin.dat)を作っておく必要がある。
-- MSLogin.dat ここから--
MapleStory ID List
名前, ID, パスワード // この行は変更してもかまいません。データは次の行から開始。
漢字名(表示用),ID,pass,メモ
-- MSLogin.dat ここまで--
KBD()で入力する場合はシフトとか特殊文字の処理が必要。
// UNICODE?文字を、キー送信用ASCIIキーコードに置き換える
Function CnvCCode( char )
if !CHKNUM(char) Then char = STRCONV(char, SC_UPPERCASE)
select char
case "."
code = VK_OEM_PERIOD
case "@"
code = VK_OEM_3
default
code = ASC(char)
selend
result = code
Fend
// Webページの入力コントロールにデータをセットする Procedure InputData( ID, Info[], Data ) Select Info[ID_Type] case ID_TEXT // テキスト SENDSTR( ID, Data, Info[ID_No], true, true ) case ID_CLIP // クリップボード経由でテキストを貼り付け SendStr( 0, Data ) SENDSTR( ID, "", Info[ID_No], true, true ) SCKey( ID, VK_SHIFT, VK_END ) sleep( 0.03 ) SCKey( ID, VK_CTRL, VK_V ) case ID_CLICK // クリック CLKITEM( ID, Data, CLK_ACC or CLK_SHORT or CLK_CONTINUE ) case ID_KBD // 手入力エミュ SENDSTR( ID, "", Info[ID_No], true, true ) SCKey( ID, VK_SHIFT, VK_END ) sleep(0.1) for j = 1 to length(Data) sleep(0.03) SCKey( ID, CnvCCode(Copy( Data, j, 1 )) ) next sleep(0.2) case ID_LIST // リスト選択 CLKITEM( ID, Data, CLK_ACC or CLK_SHORT or CLK_CONTINUE ) sleep(0.1); SCKey( ID, VK_TAB ) sleep(0.1); SCKey( ID, VK_UP ) sleep(0.1); SCKey( ID, VK_DOWN ) default msgbox("i:" + " No." + Info[ID_No] + " Data:" + Data ) Selend Fend
PUBLIC ID_NONE = 0
PUBLIC ID_TEXT = $10 // テキスト(貼り付け)
PUBLIC ID_KBD = $11 // キー入力をエミュ(ASCII文字限定)
PUBLIC ID_CLIP = $12 // クリップボードから貼り付け
PUBLIC ID_CHKBOX = $20 //
PUBLIC ID_LIST = $30 // リストを選択
PUBLIC ID_LISTCsr = $31 // カーソルキーによる選択
PUBLIC ID_CLICK = $40 //
PUBLIC ID_Type = 0
PUBLIC ID_No = 1 // テキストボックス, チェックボタンの番号
PUBLIC ID_Key = 2
PUBLIC HASHTBL Data
================
Dim GooP[][2] = _
_ // タイプ、番号、キー
ID_TEXT, 2, "ID", _
ID_TEXT, 3, "パスワード", _
ID_TEXT, 4, "パスワード", _
ID_TEXT, 5, "漢字姓", _
ID_TEXT, 6, "漢字名", _
ID_CLICK, 0, "性別", _ //(選択不可能)
ID_LIST, 0, "生年", _
ID_LIST, 0, "生月", _
ID_TEXT, 13, "", _ //手入力なのでラスト
"", "", "" // dummy
s = //データの準備
InputData( ID, GooP[i], s ) // データの入力
>>701-702 にこんな感じで定義したやつをぶち込む
g
できますよ
>>707 どうやってやればいいのでしょうか?
ご教授いただければ・・。
CHKIMGではBMPしか駄目みたいなので、他にどういうアプローチが あるか教えていただけるとうれしいです。
>>710 BMPで十分だろ
それが気に入らんならMSAAで直接flashの操作するといい
>>706 って会員登録しないとダメなのかw
面倒だから見てないけど、この手のゲームだったらCHKIMGを使うのが1番確実だよ。
スクリーンショットとペイントだけで十分だ。
713 :
名無しさん@お腹いっぱい。 :2011/05/18(水) 18:31:24.99 ID:6WrbT/z10
調べても分からないので教えて下さい。 アクティブウインドウでは指定した所をクリックするのですが、 バックグランド(最小化)の時は違う所をクリックしてしまいます 両方で同じ場所(座標)をクリックするには、 どのようにすれば良いでしょうか? wnd_id = GETID("○○○) MOUSEORG(wnd_id, 2) MMV(1100,585,1500) BTN(LEFT,CLICK,1100,585,30)
>>712 ありがとうございます。
これは一旦スクリーンショットをBMPとして保存して
それと照合させるってことですか?
スクリーンショットで撮った画像を必要な部分だけ切り取る。 それをCHKIMGで探させてクリックさせる。 ifb CHKIMG("画像.bmp") BTN(LEFT, CLICK, G_IMG_X+10, G_IMG_Y+20) endif 画面上に"画像.bmp"があったら、その画像の左上から 右(X)に10ピクセル、下(Y)に20ピクセルの部分をクリックするというもの。 基本中の基本です。
ググってすらねーだろ
こんな親切なスレだと思わんかったよw 質問する前に試せば良いだろうに。
718 :
名無しさん@お腹いっぱい。 :2011/05/19(木) 15:56:48.62 ID:hu5TkwSm0
UWSCで詳細なデバックをしたいと思っています コマンドプロンプトに返り値などを表示せる方法は無いものでしょうか? Msgboxだと中断されてしまうので print でコマンドプロンプトに表示される感じがいいのですが 方法がありましたら教えていただけないでしょうか よろしくお願い致します
使ってて思ったんだけど他の言語の拡張ライブラリにChkImgとPeekColorを自分で実装したら UWSC使う必要無くね?
車輪の再発明って知ってる? 敢えて作りたいのなら作ればいいと思うよ
721 :
忍法帖【Lv=1,xxxP】 :2011/05/21(土) 10:58:30.97 ID:BbMPCqlJ0
2ちゃんねるの忍法帖切り替えツールが一応でけた。 こないだ3回目くらいのすいとん食らったときに思い立って複数作ってみたが、 IEへの反映方法がリストアか直接編集しかなくて意外と大変だった。
>>722 同じ部分を何度かキャプチャして違いがないか調べてみてください。
見た目で分かればそれでいいし、分からなければ色コードを・・・
同じエリアで切り取ってバイナリの一致をするかどうか見てもいいです。
変化がある場合は変化に対応するオプションが必要です。
(色ではなく形で見るというあれ)
キャプチャするときにJPEGとかで保存するようなソフト使ってないですか?
もし使ってたらその時点で色が変化しているので一致しません。
確実なキャプチャはAlt+PrintScreenです。
(ただし画面の色数によって違ってくるかも)
ビットマップファイルの形式はフルカラーじゃないといけません。
それ以下だと減色されて違う色になります。
もちろん画面の色数もフルカラーじゃないと。
>>723 お忙しい中見て頂いてありがとうございます
色変化してるんですかね
やって見たけどダメでした。もっと扱いに慣れてからこの手に触れようと思います
vistaやwin7だと、管理者で実行してやると解決するかも
>>719 UWSCのドキュメントが少なく複雑で謎な言語仕様と戦う必要が無くなるから
ほとんどの人はそうしてる
>>726 オーソドックスなBASIC的文法
最近主流のC的文法に慣れてると最初面食らうかもしれない
>>727 文法とか以前にインスタンスが作れない名前空間的機能にclassって命名したりどうなの。
あと
>>593 のこの仕様とかw
競合しているなでしこのほうがまだオブジェクト指向で書けるからいいとオモッタ
でも結局C言語(win32 api)と相性のいいpythonの拡張ライブラリに
自前でChkImgとPeekColor実装したらどっちも使う必要無くなった。
>>728 希望としては、そのライブラリを公開してほしい
調べたのですが、見つからないので質問させてください。 IEを使用したときの接続表示待ちの指定は while True if (! IE.busy) and (IE.readyState=4) then Break sleep(0.1) だとわかったのですが、chromeを使った際の 接続表示待ちの指定がわかりませんでした。 何か方法はあるのでしょうか?
ありますん
なんかファイルを開けないんですが ドラッグドロップして一回動かさないと読み込みできない
そうですか
exeファイルをmew11で圧縮したのがいけなかったのかな?
>>730 何を持ってページ読み込み完了とするかをまず考える。
忍法帳を管理するツール作ったんだけど、なぜかクッキーが消えることがあります。
クッキーに対しては一括読み込みして全行削除して1行書き込みして閉じるという
それだけのことしかしてないんですが。
クッキーは特別な管理がされているのでそれが影響してるのかなと思わなくもありませんが・・
バージョン確認したら4.5a (2009/3/31)だったので最新に差し替えてみます。
問題のツールも置いときますね。
ttp://scripts.web.fc2.com/scriptsup/ninpo.zip
While True ifb PEEKCOLOR(511,605) = $0000e6 then//xyが赤の場合↓の場所を左クリック BTN(LEFT,CLICK,723,758) else endif Wend ↑動かないんです どこが違ってるか見てもらえませんか?
>>737 BTNが実行されたらマウス座標が移動するけど、それは起こる?起こらない?
あと、座標、色コードはあってる?ちょっとでも違うと反応しないよ。それだと。
あと、Sleep()入れないと相手も動けないよ。
UWSCがCPU占有して重くなると、UIは受け付けなくなるようなゲームも多いからね。
どうやらクッキーは頻繁に書き換えるとだめらしい。 ある程度、時間を置いてのんびりやるとうまくいくようだ。 それよりJaneの動作がおかしくなった。 仮想マシンを新品に入れ替えてJaneドライブを接続して使っているが、 ログ取得の記録がどうも書き換わらない・・・ あ、そっか。ユーザーを一般ユーザーに変更したからアクセス権がないんだ・・・ ディスクのチェックをする権限もなかったし。 変なアクセス権が設定されてるんだろうな。
チラ裏でした
ACW(GETID("パチンコ")) While True Sleep(1) ifb PEEKCOLOR(511,605) = $0000e6 then//xyが赤の場合↓の場所を左クリック KBD(LEFT,CLICK,723,758) else endif Wend ↑此処まで修正しました やっぱり無反応です。 色はペイント座標は記録からメモ帳で調べてますが、 皆さんはどうやって見てますか?
>>741 ペイント(拡大)とメモ帳で問題ないけど、
色ってシェーディングかかってたら似た色でもコードが違ってくる。
座標がピンポイントで一致しないといけない。
それは大変なので、特にシビアじゃないときには「赤っぽい色」で判定する。
red = color and $FF
green = (color and $FF00) / $100
blue = (color and $FF0000) / $10000
if (80 < red) and (green < 40) and (blue < 40) then 赤っぽい
てな感じで。
数値は適当なので、カラーマップとか見て目で判断する。
括弧つけないとredとgreenの論理積扱いされるかも。
括弧つけると先に不等号判定され、結果がbool値になるので、それを論理積する。
大小判定は直感的に分かるように、大小の方向を一致させるといい。
勉強になるなぁ
>>741 狙ってるところを、何回もスクショとってみて、確認かな。
ずーっと同じ値なら固定値でいい。
バラついてるなら、ばらつき加味してプログラムすべし。
画像認証の範囲指定をおしえてください。 Ifb CHKIMG("mp45452.bmp",409,714,1500,1500,) > 0 //MP薬補充 sleep(0.1) KBD(VK_F8) endif 範囲指定しなければちゃんと動いています。 後ろの範囲は適当に入れた数値で、もし0,0,1500,1500だったら動作します。 MOUSEORG(0) ↑などもいろいろやってみましたがだめでした。
特定の画像を一定の秒数表示された場合にF5を押すマクロを組みたいのです。 ググってみたもののわからなかったので教えて下さい。
UWSCで書くとコードの再利用性が無いから せめてclass機能が欲しい
現状はモジュールなのにクラスとか名づけてるのが嫌だし、それはあるなぁ… あとは配列で dim list = 1, 2, 3, [4, 5, 6], [aaa:7, bbb8] とかネストしたりキーバリューが書けたらなぁ …上でもかかれてたけど、UWSCでやる必要ってWin32APIのウィンドウ操作と画像認識だけだよな。
画像認証に関してお聞きしたいのですが、どうやら画像が微妙に変化してるようで 同じような外見の画像に対して画像Aか画像Bのどちらかに反応するようです 詳細(ディスプレイ=32Bitカラー、キャプチャしたBMPイメージ=24bitカラー) そこで ifb (CHKIMG(画像A.bmp)or(CHKIMG(画像B.bmp)) ...(以下の動作は画像AもBもほとんど同じ) か ifb CHKIMG(画像A.bmp) ... ELSEif (CHKIMG(画像B.bmp) ... を考えたのですが上下どちらの方がいいでしょうか?
>>750 変化のない部分だけを切り出す。
たとえばボタンとしては画像の全体がボタンとして機能するとしても、
ボタンの場所を探るのに必要な部分というのは、他の場所と混同しない最小限のドット数があればいいわけです。
似た感じだが全体が違う画像の場合、色を無視して形で判断するオプションをつけます。
上記2つが出来ない場合にだけ、
>>750 のどちらかが必要になりますが、
基本的に画像が見つからない状態でループを繰り返すならどちらでも同じなので、
シンプルに or で結ぶのがいいでしょうね。
質問です。 Test.uws ”C:\Test\新しいフォルダ\20110601 テストてすとTest.txt” と実行した場合のパスの文字列を取得したいです。 PARAM_STR[0]は C:\Test\新しい~1\201106~1.TXT となります。 「C:\Test\新しいフォルダ\20110601 テストてすとTest.txt」という文字列を取得したいのですが、 どのようにすればよいでしょうか。
APIのGetLongPathName()か、DOSコマンドかな。
DWORD GetLongPathName(
LPCTSTR lpszShortPath, ショートファイル名
LPTSTR lpszLongPath, 受信バッファ(UWSCの場合は空白文字列)
DWORD cchBuffer バッファサイズ(LengthB(lpszLongPath))
);)
空文字列と言えば "" ですが、
空白文字列は " " こんな感じで十分な長さのものです。
DOSのDIRコマンドでとる方法もあるけど、フォルダごとにやらないといけないのかな
ttp://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_18496_0.html パス名をショートファイル名で表示するように設定してたりしませんか?
> UWSC.exe test.uws "ロングファイル名"
っていう呼び出し方でMsgBox(PARAM_STR[0])ってやると、普通にロングファイル名で出てきますが。
FastHash.dllを使ってハッシュ計算をやろうとしてるんだけど とりあえず書いてエラーは出ないんだが、肝心のハッシュがデタラメ… DEF_DLLってほとんど使ったこと無いから根本的に間違ってそうなのが怖い。 誰か何処が間違ってるのか教えて下さい… DEF_DLL FHCreateHashEngineObject(DWORD):HWND:FastHash.dll DEF_DLL FHComputeHash(HWND, pchar, DWORD):Bool:FastHash.dll DEF_DLL FHGetHashValue(HWND, var pchar, DWORD):DWORD:FastHash.dll DEF_DLL FHHashValueToHashString(var string, pchar, DWORD, BOOL):FastHash.dll DEF_DLL FHCloseObjectHandle(HWND):Bool:FastHash.dll DEF_DLL FHCreateHashValueObject(HWND):HWND:FastHash.dll DEF_DLL FHInitHashValue(HWND):int:FastHash.dll htype = $4 msg = "" cr = "<#CR>" fh = FHCreateHashEngineObject(htype) ado = CREATEOLEOBJ("ADODB.Stream") ado.Type = 1
ado.Open ado.LoadFromFile("FastHash.dll") fsize = ado.size msg = msg + fsize + cr bufsize = 512 while !ado.EOS buf = ado.Read(bufsize) FHComputeHash(fh, buf, lengthb(buf)) wend hash = format(" ", 32) hashsize = FHGetHashValue(fh, hash, htype) out = format(" ", hashsize*2+1) FHHashValueToHashString(out, hash, hashsize, false) msg = msg + out + cr msgbox(msg) //正しい値 "BAD795FCF94AE0532B57F886205965C7" FHCloseObjectHandle(fh)
>>754-755 buf = ado.Read(bufsize)
print LengthB(buf)
とすると、妙に小さくてランダムなサイズになってるんです。
多分NULL終端文字列扱いになってる。
UWSC自体はChr(0)を途中に含めた文字列でもデータの最後までの長さを取得できるんですが、
配列データを受け取るときに安全のために終端するんでしょう。
DEF_DLL RtlMoveMemory( string, SafeArray, DWord ):kernel32.dll
と宣言して
buf = format( " ", bufsize )
RtlMoveMemory( buf, ado.Read(bufsize), bufsize )
とやれば、受け取ったバッファを確実にコピーできるはずですが、
正しい値は得られませんでした。
ちなみに、FHComputeHash のループが終わったら
FHCreateHashValueObject でハッシュオブジェクトを作ることが必要だとか。
bufsize = 1 while ! ado.EOS buf = "" for i = 1 to 512 if ado.EOS then break ByteData = ado.Read(bufsize) buf = buf + CopyB( ByteData, 1, 1 ) next ifb ! FHComputeHash(fh, buf, lengthb(buf)) こうやったら512バイトのバッファが作れてファイルサイズ分だけの処理は出来るようになりましたが、 どうもデータが壊れてしまうようでうまくいきませんね。 半角はいけるんですが、2バイト文字が壊れます。 文字コード変換してるのかも。 引数に受信バッファを指定できるタイプの関数を使わないと無理でしょう。
>>756 > FHCreateHashValueObject でハッシュオブジェクトを作ることが必要だとか。
これ、最初の頃は書いてましたが、どうもFHGetHashValueを
呼べばそのときに再計算やってるらしく、1回だけ計算するときは
必要ないようで消してます。
どうもFastHash.dllをUWSCで扱うのは無理っぽいのかな…
これは今後の課題としてとりあえずはBASP21でも使ってみようかと思います。
UWSC 旧バージョンをダウンロードできるサイトってありますか?
ためしにバイナリコピーを書いてみた。 adoS.LoadFromFile(GET_CUR_DIR + "\ReadMe.txt") adoS.CopyTo(adoD, -1) adoD.SaveToFile("copy.bin", 2 ) // adSaveCreateOverWrite ↑動く ↓動かない while ! adoS.EOS buf = CopyB("",0,0) // 本家からの引用で、文字コードをユニコードじゃなくANSIにする技。 // buf = "" だとユニコード扱いらしい。 for i = 1 to 512 if adoS.EOS then break buf = buf + CopyB( adoS.Read(bufsize), 1, 1 ) size = i next print size print buf adoD.Write(buf) // そもそもCOMエラーで動かない。バリアント型に変換されないのか。 wend adoD.SaveToFile("copy.bin", 2 ) UWSCがデータを触らないで済めば受け渡し自体は出来るんだよ。 型変換ができればいけそうな気はするんだけど VARTYPE( 変数, [変換タイプ] ) とか書いてあるところがあったけどUWSCは対応してないみたいで
fsize = ado.Size buf = ado.Read FHComputeHash(fh, buf, fsize) 全部メモリに読み込んでやってみると エラーが出たり出なかったり… エラー出てない時の値もランダム。
762 :
名無しさん@お腹いっぱい。 :2011/06/04(土) 22:23:36.02 ID:tgYxdGHc0
「指定のテキストが画面上に現れたら、 指定の画像をクリックする。」 のようなマクロを作りたいのですが、 色々試しているのですが、エラーが出てしまいます。 どなたか教えて頂けないでしょうか?
色々試したソースを挙げてごらん
>>754 画面ポチポチ以外はC#とか普通の言語でやればいいのに
なんでこういうのをUWSCで書くという苦行を選ぶんだ?
>762 できるが俺も>763と同意見だな。 いちから書くのはめんどい。おまえが元になるものを出せば訂正してやるよ。 偉そうにいえるほど能力は高くないが、汚く直すくらいはできる。 んで、それをおまえの好みに整えて使えばいい。
766 :
名無しさん@お腹いっぱい。 :2011/06/04(土) 22:42:12.23 ID:tgYxdGHc0
752です。 ifb CHKIMG("画像1.BMP",0) // 画面上に画像があった場合以下へ x=G_IMG_X // 画像の座標をxへ代入 y=G_IMG_Y // 画像の座標をyへ代入 BTN(LEFT, CLICK, x, y, 80) // 画像の場所を左クリック の辺りまでは出来ました。
767 :
名無しさん@お腹いっぱい。 :2011/06/04(土) 23:05:06.87 ID:tgYxdGHc0
ついでに画像認証はテキストの認証方法が分からなかったので 応用しました。 しかし、上記のスクリプトでは認証した画像をクリックすること くらいしかできなく、私もかなり最近始めて これ位の基礎動作しか分からなかったため、 質問を上げさせて頂きました。
テキスト認証ってやっぱ画像にするしかないのかな
で、その後の処理とエラー内容を想像しろと?
>>766 endifが無いとかそういうエラーじゃないよな。
どんな問題がおきてるか書かないと、だれも判らないよ。
自分が書いていることを客観的に見れないのがそもそもの問題のような気がするけど。
自分の記述が、uwscにどう解釈されるのか、伝えたい相手にどう解釈されるのか。
受け取る側の立場に立てないと難しいぞ。
772 :
771 :2011/06/04(土) 23:45:49.08 ID:HC7Ps71g0
2011/06/05 UWSC Ver4.7、 Pro版と Free版をリリースしました。
>>773 ので型変換できたのでやってみました。
dat1 = VARTYPE(buf,VAR_BYTE or VAR_ARRAY) // 文字列→バイト配列
adoD.Write( dat1 )
bufのサイズは512なんだけど、出力した結果は2倍近い数字に。
しかし、表示された半角文字分くらい、2倍には足りない。
サイズを見ると、LengthBなら変換前も後も512だけど、Lengthだとちょっと短い。
adoD.Write() に渡すときはデータだけであって、サイズは自動処理されるから、
どっちの長さを渡しているか分からない。多分Lengthだろう。
しかも出力結果は倍のサイズ。
いやまて、バイト配列にしたときに配列数よりバイト数が大きいと言うことは、いくつかは2バイト文字として格納されているのか。
意味が分からない。
しかし、SETHOTKEY( キーコード, [修飾子キー, Procedure名] )は便利かも。
以前リモコン動作をバッチファイル経由で・・・あ、実行ファイル指定だと意味ないか。
>>767 よくある画像認証システム(画像を読み取ってテキスト入力)はUWSCでは対処できません。
変化のある画像を扱えないからです。
その変化が単調な変化ならPEEKCOLORで色コードで判定できます。
>>774 は
>>760 の下のコードに追加したものです。
他に試したパターンを以下に
// dat1 = VARTYPE(buf,VAR_DISPATCH) // String型からBoolean型へのバリアント型変換はできません。
// dat1 = VARTYPE(buf,VAR_BSTR) // (元の型) Write時にCOM Error
// dat1 = VARTYPE(buf,VAR_VARIANT) // String型からバリアント型への変換はできません。
dat1 = VARTYPE(buf,VAR_BYTE or VAR_ARRAY)
// dat2 = VARTYPE(dat1,VAR_VARIANT) // Byte型からバリアント型への変換はできません。
// dat2 = VARTYPE(dat1,VAR_DISPATCH) // Byte型からInteger型への変換はできません。
関連する情報を検索してて、0〜0xffをテストデータにする方法が載ってたんでやってみた。 0x80までは問題ないけど、その後のデータが化ける。 chr(0)とか、CRLFを扱えるからバイナリいけるとおもってた。 他にもDLLに文字列バッファを渡したりしてたけど、 受け渡しするデータが扱える文字列だったり、 UWSCではポインタの保持のみ(代入したり関数に渡したりしない)だからちゃんと扱えるように見えたのかも。 関数で使いたいときはvar で参照渡しすることで回避できるけど、 代入できないとどうにもならんよな。 結果: 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 21 81 91 81 92 3F 5C 7C 81 98 81 4E 63 61 81 E1 81 CA 2D 52 81 50 81 8B 81 7D 32 33 81 4C 83 CA 81 F7 81 45 81 43 31 6F 81 E2 3F 3F 3F 3F 41 41 41 41 41 41 41 43 45 45 45 45 49 49 49 49 44 4E 4F 4F 4F 4F 4F 81 7E 4F 55 55 55 55 59 54 73 61 61 61 61 61 61 61 63 65 65 65 65 69 69 69 69
>>776 のコード
代入方法はどれでも一緒。
// サンプルデータの準備
//dat = CopyB("", 0, 0) // dat = "" との違いが見られない
//dat = ""
//dat = chr(0)
dat = CopyB(chr(0), 1, 1)
for i = 1 to $ff
dat = dat + chr(i)
next
for i = 0 to 16 - 1
str = ""
for j = 0 to 16 - 1
// str = str + format( ABS(ascB(CopyB(dat, i*16+j+1, 1))), 3, -1) // ↓でも同じ
str = str + format( VarType(ascB(CopyB(dat, i*16+j+1, 1)), VAR_INTEGER), 3, -1)
next
print str
next
ifb ascB(chr(0)) = 0
print "ascB(chr(0)) = 0" // 一致する
else
print "ascB(chr(0)) <> 0"
endif
ifb ascB(chr($81)) = $81
print "ascB(chr($81)) = $81"
else
print "ascB(chr($81)) <> $81" // 一致しない
endif
sleep(10)
>>777 の条件文は、Format関数でおかしくしたのかの実験。
だが、そうではなかった。
absを使ってみたけど関係なし
しかし、ASCではFF8Aとかに変換されたりするので、AscBを使う必要がある。
どの道0x80以上の範囲でのことなので大差はないが。
あのさ、先にやりたいこと全部試して まとめだけ書くって知恵は無いの?
>>779 やりたいことは別にない。とりあえずUWSCでバイナリデータを”自由に”扱えるか知りたい。
今まではバイナリデータでも"ADODB.Stream"を使えば扱えると思ってたけど、
受け渡しすら出来ないなら選択肢からさっさと外さないと時間の無駄でしょ。
DLLならメモリに直接書き込んでくれるから文字列バッファを使って受け渡しは出来ていたけど、
COMオブジェクトは代入渡しだからUWSCが自動処理する関係でおかしくなるんだね。
で、動くコードは結論だけで済むんだけど、動かない場合は単に作った人が使い方を間違っただけかもしれない。
それを他人が検証するには「何をしたか」を書かないといけない。
>>750 だってコードは出してるけど、肝心な部分がないので判断できないでしょ。
今まではバイナリデータっぽく扱うことが出来ていて不便は感じなかったんだけどね。
バイナリデータなんて実際は扱ってないから。
そもそも他アプリを操縦するのがUWSCの基本だから(以下略
>>779 あ、やりたいことあったよ。
HSPスクリプトのDLL呼び出しが出来るけど、あれってEXECするのと変わらないよね。データの受け渡しが出来ないから。
一応管理データがあるみたいだけどHSP内部で使うものであって、スクリプトで扱うものじゃない。
あれを使ってデータのやりとりやら制御ができたらいいなと。
まあ、HSP覚えるのめんどくさいから使わないんだけどね。
HSPでも結局はDLLで全部やっちゃうらしいし。
あれを使おうと思ったのはそもそもチートするときに、食いついたゲームプログラムから
呼び出すことが可能でメモリ改ざんが可能なスクリプト実行環境だったからなわけで。
結局、実行ファイル展開後に食いつく方法とかセキュリティソフト回避する方法とか分からなくて投げ出したんだよ。
UWSCから呼んでみたのは、実際どう呼び出すのかテストと、
UWSC Free版で画面を自由に使えるかなと。
ひとまず深呼吸をしよう。 腹式呼吸で10秒吸って、10秒はくのを10回繰り返す。 そしてこのスレを全レス表示させて1から順に流して見ていこう。 中身は見なくても大丈夫。スレの流れる様子を見るようにして。 するとどうだろう。 君の実験は邪魔になってるのがよくわかるよね。 君の実験メモをここに書くのはやめよう。
>>782 いや、それはどうよ。
UWSCで出来ないことがある…という情報は「誰にとっての『邪魔』」なんだ?
>>783 全部書くことはないと思う
先にやりたいこと全部試して結果のまとめだけ書いて
コードはcodepadにでも貼れば1レスでまとまるでしょ
それで同じことに興味がある人がいたらレスを拾うんじゃないかな
今みたくコードも含めて途中経過も全部書きこんでたら読むのめんどくせってなるよ
>>785 シンタックスエラーになるだけだし荒らしにならないよ
てかPlain Text選べばいいだけでしょ
787 :
名無しさん@お腹いっぱい。 :2011/06/05(日) 21:36:43.20 ID:UpCDO7L00
Java Access Bridge for Microsoft Windows Operating System 2.0 が正しくインストールされているかどうかを調べる方法ってありますか? と言うのも、Javaで作られたアプリを操作しようと四苦八苦しているんですが、操作できません。 GETIDは取得でき、SCKEYを利用できたりは出来るんですが、SENDSTR、CLKITEMなど直接コントロールを 操作/設定しようとしても無反応です。 例えば以下のような感じで記述しています。 SENDSTR(ID,"aaa",1,TRUE,TRUE) なので、一番最初の文に戻りますが、Java Access Bridgeが正しくインストールされていないのでは? と疑っています。
>>784 まさしくその通り。
1レス内で収まる範囲のソースコードや説明であれば誰かの役には立つとは思う。
しかし、こんな長文をダラダラ延々と続ければ続けるほど誰も見なくなり
情報価値は少なくなる。むしろマイナスだ。邪魔。荒らし行為そのもの。
一応フォローするけど、まともなコードも書けるようだし頭はいい人だとは思う。
アスペルガー症候群なんだろうか。
そうかな。 ホームラン級のバカだと思うけどな。 uwscの役割を理解せずに、何でもかんでも要求してるだけだろ。 v2cみたいに。w
要求はしてないだろ。確認しただけだ。本当に馬鹿発言だな。
uwscに要求したじゃん。
>>789 いまどきバイナリファイルも扱えないスクリプトなんてw
…というレッテル張りに始終するのが賢い選択だったのかな?
>>792 近代的なプログラミング言語は言語仕様は最小限にして
機能はライブラリで提供するのが主流だからバイト配列が扱えない言語も多いよlua、lisp、javascriptとか。
PHPやVBは時代に逆行して機能を言語仕様に詰め込むから言語としてバカにされ続ける。
lispとか古すぎ
>>793 外部ライブラリを使っても、UWSCの制限でバグるのが問題なんだろ。
使える外部ライブラリを提示出来るならその指摘もありだとは思うけど…
>>795 UWSCにライブラリ作るためのAPIなんて用意されてないだろ。
画面ポチポチやるかき捨てプログラム書くための専用ツールなんだから
どうしても必要なんだったら普通の言語使うか
>>771 みたくネイティブコード吐ける言語に処理させて
結果だけ受け取ったほうが圧倒的に効率いいだろ
>>796 すでに存在するものを利用できるのがスクリプトのいいところだ。
バイナリの受け渡しさえ出来ればいいんだからUWSCが対応したらそれでこんな議論は終わりだ。
しかし、加工したはずの文字列がゴミまで一緒に渡すようになると、既存のコードに影響するからね。
>>796 が主張するように自分で処理するDLLを作って文字列を加工したのに、
UWSCがそれを無視してゴミをデータとして処理したとすると、それはそれで問題がある。
> 結果だけ受け取ったほうが圧倒的に効率いいだろ
それは当たり前だよ。
だけど、スクリプトでやることに意味があるんじゃないか。
コンパイル環境がいらないとか、コンパイル言語でバグ出す前にテストしてみるとか。
WSHやJavaScriptじゃなくUWSCを使うのは、手軽にDLLを使えるからだろ。
DLLはバイナリデータを扱うことが多いんだから、バイナリがうまく扱えないのはメリットをデメリットで相殺してるようなものじゃないかな。
まあ、ハッシュ計算の問題はWindowsAPIのReadFile関数をDLLで呼び出せばたぶん解決だよ。
バイナリデータが扱えないと言うより、COMオブジェクト特有の代入演算がネックだったと。
>>798 登場時期が古い=レガシー言語ってお前バカだろw
C言語よりC++やD言語がモダンだと思っちゃうタイプ?
>> 結果だけ受け取ったほうが圧倒的に効率いいだろ
>それは当たり前だよ。
>だけど、スクリプトでやることに意味があるんじゃないか。
>コンパイル環境がいらないとか、コンパイル言語でバグ出す前にテストしてみるとか。
どんだけこのマウスポチポチツールに入れ込んでるのか知らんけど
これでいいじゃん
http://codepad.org/fLQESQnS この話題終了
ふぉーとらんを馬鹿にする奴は俺が許さん
>>801 科学系では現役で新規プロジェクトに使われてたりするしね
こんなヘンピなスレで、なんでキチガイが湧くのかなぁ。 スレ過疎化すると、スレ建てした奴が必死に成るのかなぁ。 それにしても、スレチな発言しても意味無いと思うけどなぁ。 あ、かまってほしいだけ!?
804 :
名無しさん@お腹いっぱい。 :2011/06/07(火) 00:02:06.85 ID:czDeR00m0
クリップボードの中身によって行動を変える条件分岐はどう書いたらよいの
クリップボード=GETSTR(0) IFB クリップボード = "こっち" THEN ELSEIF クリップボード = "そっち" THEN ENDIF
ありがとうごじゃました!
>>806 変数名に日本語使うと一瞬それらしく見えなかったりしたw
誤動作しそうだから、使わないとココロに決めた。
MOUSEORGとか使わなくても ifb Status( ID, ST_ACTIVE ) で表にいるときだけ操縦するようにすれば 単純な記録・再生でも使えるよ。 まあ俺も誤動作させまくってるから失敗が怖ければ使わない方がいいけど、 たとえば仮想マシン上で動かせば仮想マシンの外には影響しないよ。 逆は可能だけどね。
古いの使ってたのを最新にしてみたら、既存のコードでシンタックスエラーになった。 コード; if 〜 then exit っていう1行で続ける条件文がだめで、 改行したらOKになった。
すでになおっとる(6/5)
画像リンクがどーしても出来ないです… IELINKやページ内の画像を取得後にaltをターゲットに検索して、などは出来るんですが。。 必ずaltが宣言されてればいいんですけどそうじゃないので困っています。 画像が小さいと認識しにくいとの事ですが どの程度の大きさまで認識できますか? また画像の一部分を基準に認識可能でしょうか?
814 :
813 :2011/06/09(木) 18:35:10.26 ID:S+BrRx410
画像クリック他の所で試したら普通にいけました… それと目的の画像をペイントで表示する場合は認識するのですが 画像として表示させた場合は認識しません。 認識の精度を上げる事は出来ないのでしょうか?
画像として表示って何かな? 画像が拡大縮小とか加工されて表示されたらそりゃ別物と認識しますよ。 色範囲を広げるオプションはあるようなので、使ってみたら?
816 :
813 :2011/06/09(木) 20:55:58.40 ID:S+BrRx410
画像としてはWindowsフォトギャラリーでの表示です。 オプションは一通り試しみました… 形だけでも拾えないのでpngで四隅を透過処理してあるのは無理なんですかね。 もしかして対象もbmp形式じゃないとダメなんて事はないですよね? ヘルプには参照元はbmpとは書いてあったんで、大丈夫だとは思うんですけど。。
フォトギャラリーって自動縮小でしょ。100%で表示しないと。 あと、フォトギャラリーで表示した状態でキャプチャしてそれを切り取って検索したらうまくいくはず。
認識の精度を上げるんじゃなくて下げるんだろ。 違う画像を認識させようってんだから。
ここも、GIMPスレ並のYahoo!知恵遅れ状態だなぁ… UWSCで何させようとしてるか判ったら、爆笑できそうだな。w
>>820 なにこれ、こんなに書いたの?かわいそう・・
>>819 物をどう使おうと個人の自由だろ
お前は他人の使い方をバカに出来る程に凄い使い方してんの?
そういう意味か。 てっきり、A→Bと言う方法があるのに、A→C→D→E→B と言う風にするなんてプギャーみたいな事かと思った。
>>822 いや、ボクが爆笑できそうなのは
>>823 が近い。
どっちかって言うと、UWSCじゃ無いソフトでスコーンとやれそうな気がして、想像すると笑えるって話さ。w
>>817 が結論っぽいんだけど、そうなのかどうなのか返事が無いからなんともだし。
>>それと目的の画像をペイントで表示する場合は認識するのですが画像として表示させた場合は認識しません。
こんな事書かれても、なにをどうしたのか、サッパリワカラナイヨ。
>>ペイントで表示する
>>画像として表示する
どう違うってんだ?w
バカにされたくなかったら、他人が読んでも判る文章を書くべきじゃないのかな?
> UWSCじゃ無いソフトでスコーンとやれそうな気がして やれたとしてそっちを使う意味がどれほどあるかってことなんだけど。 ところでLuaっていう言語はコンパイルもできるっぽくていいね。 VM使うみたいだけど、 C言語 ⇔ Lua の相互呼び出しが可能なので、Windowメッセージでスクリプト関数を呼び出すなんてことも可能。 でもC++とか.netでも使えるかどうかが分からないな。
>>825 うーむ、キミの読解力の無さに絶望したぁぁぁぁ。
例えば、UWSCを使ってIEで2ちゃんねるを巡回するより、専用ブラウザ使った方が楽だろ?
メイプルでchkimg使うとき範囲指定したら認識してくれないんだけど・・ 手作業でメイプルのウィンドウ内をクリックしたらなぜか認識してくれるんだけど KBDでやっても認識してくれないんだけどなにかコツとかあるんですか? あとsaveimgでメイプルのウィンドウ内の画像取ったら真っ白になるんだけど これってちゃんと撮れる方法とかないんですか?
訂正 KBDじゃなくてBTNでした
あれ? 結局、ボットの話?
>>827 > KBD→BTNでやっても認識してくれないんだけど
時々クリックできないバグみたいのがあるんですよ。ボタンをあげることが出来ない場合とか。
その状態でもマウスカーソルの移動とクリック動作はしてたりします。
だからマウスカーソルが移動するのかしないのか、その上でクリックできるのか出来ないのか言ってくれないと。
まあどっちにしろ分かりませんけどね。
mouseorgで座標の基準がずれてるのかもしれないし。
もしかするとmouseorg(ID, 2)で、目的のアプリのIDとは違うものを指定しているとか。
それでイベントがあさっての方向に飛んでいっているとか。
あるいは適切なコントロールにメッセージが飛んでないとか。
>>644 みたいに
> MOUSEORG(GETCTLHND(id,"Edit"),2)
ってコントロールを指定しないといけないとか。
>>826 > 専用ブラウザ使った方が楽だろ?
UWSCが使えるならUWSCで専用ブラウザをコントロールするとはかどりますけど?
>>824 >バカにされたくなかったら、他人が読んでも判る文章を書くべきじゃないのかな?
始めはなにをさせようとしてるか判ったら
って言ってるのに次は文章ですか。
論点のすり替え上手いね。
メイプルの画像認識は検索範囲をウィンドウの外から始めないと上手くいかない 例えば、HP回復だと ID = GETID("MapleStory") MX = STATUS(ID,ST_X) MY = STATUS(ID,ST_Y) HPx = 500 + MX HPy = 780 + MY ifb CHKIMG("HP.bmp",0,MX-1,MY-1,HPx,HPy) then KBD(VK_HOME,CLICK,100) endif だと上手くいくけど、 CHKIMG("HP.bmp",0,MX,MY,HPx,HPy) にすると認識してくれなくなる
835 :
名無しさん@お腹いっぱい。 :2011/06/12(日) 19:07:19.31 ID:4/CpV7DF0
RGBのうちBの値が100<150のときに動作Aを行うようにしたいのですが、 「関数が正しく閉じていません」とエラーがでてしまいます なにが原因なんでしょう IFB(PEEKCOLOR(700,300) and $FF0000)/$10000 100< and <150 then 動作A else 動作B Endif
>>835 IFB (PEEKCOLOR(700,300) and $FF0000)/$10000 100< and <150 then
↑スペースがないから関数の括弧扱い ↑?
> 100< and <150
こんな比較方法はありません。
こうしないと↓
(100 < B) and (B < 150)
だけどPeekColorを2回も呼び出すと遅くなるから、一旦変数に入れるべき。
よく読んだら違うか…ifの比較文がだめなんだろ。 true,falseで判断できない式は認められない。 あと、三つの値の同時比較はuwscは対応していない。
> true,falseで判断できない式は認められない。 falseでないものは全てtrueになるので問題ない
>>839 マジかよw …と思ってたら、
100< and <150 は1でtrue扱いだったw
>>836-839 ありがとうございます。
とりあえず100以上であれば大丈夫そうなのでそれでやってみます
なにこれ気持ち悪い・・ 書けば書くほど発見されていく糞仕様 print ( 100 < and < 150 ) //=> 1
100 -> 01100100 150 -> 10010110 論理積 00000100 比較演算子が無視されてるかな
数値 < and // 常に0 数値 > and // 常に1 100 < and < 150 → (100 < and) < 150 → 0 < 150
print ( and ) print ( or ) print ( and + or ) 全部エラーにしてくれないよ
>>844 納得した。
こういうのって一般的に構文エラーにするべき物?
UWSCはBNFすら公開されてないしパーサが正しい文として解釈してるんだろうと想像するしかないよね
別に、いちいちエラーにしてくれなくても問題無いじゃん? こうこう、こんな事したら、思ったとおりに動かないんです。 と、作者に 日本語で メールするなりすれば良い事。 結果に影響が無いなら、俺だって放置するさ。w
例)キャラがX座標の指定の位置まで右に動き、指定の位置に着いたらジャンプをする 次に指定の位置まで左に動き、指定の位置に着いたら上に移動する 次に指定の位置まで右に動き、指定の位置に着いたら最初の位置まで左に移動する というように条件を満たした場合、次の動作をするそして全ての動作が終わったらまた最初から繰り返す というようなマクロを作りたいと思っていますが 作り方がわかりません 教えていただけないでしょうか? よろしくお願いします 下記のものは考えつく構成ですがこれではうまくいきませんでした WHILE CHKIMG("自分のマーク.BMP",0,0,0,0,0) KBD(VK_RIGHT,1,100) KBD(VK_ジャンプキー,0,200) WEND KBD(VK_RIGHT,2,100) WHILE !CHKIMG("自分のマーク.BMP",0,0,0,0,0)
>>849 そういうのはモジュール化した方がいいね。
で、グループ化(見た目的に)する。
キャラ位置の確認方法は分からん。画像判定は難しいからね。
VK_Right とかそのまま使ったけど、キーコードはグローバル変数で持った方がいいね。
// ステップ1
伽羅.→歩行()
伽羅.停止()
伽羅.跳躍()
// ステップ2
伽羅.←歩行()
伽羅.停止()
伽羅.上昇()
// ステップ3
伽羅.→歩行()
伽羅.←歩行()
伽羅.停止()
module 伽羅
dim r_key = false // falseはUP中、trueはDOWN中
dim j_key = false //
・・・
function →歩行()
・・・
// →に移動するには、←をキャンセルしないといけないので、それを先にやる。
ifb l_key then
kbd(VK_Left, UP); l_key = false; sleep(0.023)
endif
kbd(VK_Right, DOWN); r_key = true // ←操作と状態は1行につなげると確実にセットで指定できる。間違えにくい。
UWSCでCOMやAPIを扱いたいのですが、 調べ方が悪いのかさっぱり理解できません。 これらを扱うには多言語から行った方がいいのでしょうか あとこれらはオブジェクト指向というものなのでしょうか。
>>851 APIは違うけどCOMはオブジェクト指向な技術。
ただし、いわゆるオブジェクト指向プログラミングとは違う。
APIについて知りたい時は、
「WIN32 api」と関連キーワードで検索
DLLの宣言が知りたければ
UWSCの DEF_DLL とか
VBの"Declare Function"で検索
COM オブジェクトについては
UWSCの CREATEOLEOBJ とか
VBScriptの CreateObject で検索すると使用例が出るので早い。
オブジェクトの詳細はオブジェクト名+site:msdn.microsoft.com を
「日本語で検索」オプションで検索。
>>852 簡潔で分かりやすい説明ありがとうございます。
早速検索などで調べてきます。
ちょとすれ違いかもですが とあるゲームでUIにほとんどKBが割り当てられてないので Enter押したら指定座標にあるOKボタンをクリック →キーを押したらして座標にある次のページへのボタンをクリック みたいな機能を作りたいんですがUWSCでできますでしょうか 以前はkeybatでやってたんですが、7に変えてから使えなくなってしまったので
> Key Batはキーボードとマウスにドライバレベルで割り込むので、 > Direct X用のソフトや、MS-DOSプロンプトのソフトでさえ、その支配下におさめ、 > 非常に強力なマクロ実行が行なえます。 ああ、UWSCは確かにキーボードやマウスを操縦できますが、 目的のソフトで使えるかどうかは分かりませんね。 > →キーを押したらして座標にある次のページへのボタンをクリック SETHOTKEYが使えるかも。 試したら大概のキーを一つの関数に割り当てできたので、分岐したらシンプルにまとまりますね。 SetHotKey( VK_Right, 0, r_crick ) // 省略方法がよく分からないのでとりあえず0 while true sleep(1) wend function r_crick() ifb chkimg("OK_Button.bmp",IMG_MSK_BGR4,0,0,200,200) BTN( RIGHT, CLICK, G_IMG_X、 G_IMG_Y ) endif fend -- VK_LEFT VK_UP VK_RIGHT VK_DOWN
SetHotKey() 意外と使えるわ。 SetHotKey( Ascb(c), , "OnKeyClick" ) とかでほとんどのキーや文字を割り当ててインターセプトしても、 そのままKBD()で操作すれば漢字入力も普通に出来るし、 コピペとかもできる。 Procedure OnKeyClick() kbd(HOTKEY_VK, click) Fend 問題はカーソルキー(↑↓←→)かな。 押しっぱなしはClickじゃなくてDOWNだけど、文字で見る限りClickしてもDownしても同じに見える。 いや、それより、操縦とチャットの切り替えの判断が必要になることか。 アプリケーションの切り替えならアクティブかどうか見ればいいけど・・・ それはどのやり方でも一緒か。
外部からUWSCの関数を呼び出す方法があればいいなと思ってたけど、 HotKey経由でやったらいいかもしれん。 受け渡すデータはクリップボードに入れておいて、キー入力を発行。 単純にクリップボードを監視するループでやるよりもCPU食わんし 誤作動の確率が減る。 でも、KBD()とクリップボードが扱えるならUWSCを呼び出す意味ってないかも。 別プロセスとして起動したUWSCとの通信に利用できるか。 やってみたら出来たけど、複数登録は出来ないね。 登録が一つのキーには一つ。 だから違うキーを使えばやり取りは可能。 UWSC同士でやっても混乱するだけだけど、やれなくもない。
>外部からUWSCの関数を呼び出す方法があればいいなと思ってたけど、 全くやる必要を感じません 普通の脳の持ち主は仕様が提供されている他の処理系を使います。
プロセス間通信をサポートしてる処理系。 UWSCでなんでもかんでもやりたい基地の人と同一だろうけど そういった用途のスレでは無いし あんた荒らしにしかなってないから自分のサイトでやっててってみんな思ってるよ
そうは言うけど.netとVS入れたら何GBも食うでしょ。しかもC:ドライブを。
しかも別のマシンで実行するには.netとかDLLをセットアップしないと動かない。
俺は旧いPCとXPしか持ってないからきついんですよね。
スクリプトなら軽量かなとPython入れてみたら案外でっかいし
簡単そうに見えて案外難しかったし
あのときはいきなりUnity3Dを動かしてみようと思ったのが悪かったのかもしれないが。
HSPも意外とでっかいんだよね。
画面が簡単に作れるのはいいんだけど画面以外とのやりとりがいまいちよくわからなかった。
画面内だけのことならSmallBasicが出てきたからこっちのほうが文法とか含めて分かりやすいかなと。
SmallBasicはサイズは軽量な割りにIDEがアニメーション使いまくっててゲストじゃ重かったけど、
HSPだってネイティブのようには軽くないし。
確かにUWSCは文法や挙動がいまいち分かりにくかったりしますが、
一旦覚えてしまえばエディタで気楽に書けるし実行するのも本体の実行ファイルがあればいいし、
やれる範囲のことなら楽なんですよ。
そんなたいそうなことは最初からやらないしね。
こんなことをだらだら書くほうがよっぽどうざいと思うけど
>>860 みたいに言われたら書くしかないよね?
まあお勧めはやっぱりSmallBasic+VBかな。
HSPも初心者に優しいけど文法とかがな・・
本気でプログラマ目指すならC++。もうちょっと楽なところがよければJAVAかC#かVB。
Ruby?なにそれ。
今、Luaとか squirrel とか AngelScript とかも見てみているんだけど
やっぱりどれもいいところと悪いところとあって迷うんだよね。
中途半端に手をつけると混乱するだけだし。
昔、親指シフトをエミュで練習したことがあったけど、必ずローマ字入力のときに混乱するんだよね。
確かに入力は速いかもしれないけどそれだけで通用するわけじゃない。
特にエミュはそれを覚えた人が応急的に使うものであって、親指キーボードを持たない人がやるものじゃなかった。
>>862 あんたはUWSC使わなくても何でも出来るんでしょ?なんでUWSCを使ってるの?
何でも作れるような人がUWSCを使う意味って何?
むしろそこが重要なんじゃね?
>>853 今の仕事の前任の人が業務で使うものを好き勝手UWCSとかいう糞アプリで大量書いて捨てて行ったから
それを保守、メンテナンスするハメになっている縁でスレ見てるだけだよ。
俺が.net frameworkで書き換えるのは簡単だけど
UWなんとかはwebのどこ探しても仕様書なんて見つからないから
業務で一定期間使ってる以上簡単には切り替えられないんだよ。わかるでしょ?
お前みたいななんでもかんでも裏技的なテクニックを使って実装しようとしてる基地外を見て
不幸な人間を増やしたくないと思った。
本気で何言ってるかわからないからもう少し落ち着いてレスしてみてはどうでしょうか?
>>864 .net(C#,VB)でのUWSC的な
・他ウィンドウの制御のサンプル
・デスクトップ画面の画像認識の手法サンプル
を教えてくださると凄く嬉しい。
…助けて。
私はそれが出来ずに、不幸を引き継ぎそうな低レベルな人です。
事務的な足し引きは判るけど、上記の様な一つ進んだ内容になるとアリモノを使う以外に無かった。
取っ掛かりさえあれば…と毎度思っていたのです。
どんな環境だって問題が複雑になれば裏技的にやるもんでしょ。
大事なことは正しく知ること。
↓に引用したのがあるけど、みんな自分に合った物を捜し求めてるんですよ。
ttp://hibari.2ch.net/test/read.cgi/tech/1301414458/270 > Luaはダメだ。 AngelScriptを試してみよう…
> とりあえず実装可能っぽいけど… 呼び出しコストとかどうなんだろ?
> 試すしかないかなぁ… はぁ… 資料少ないなぁ。
.net framework だってOSが新しくなればメンテナンスは必要でしょ。
もちろん.netは開発効率はいいんでしょうけどね。
自分のHPであれが出来ないこれがダメとかやってもいいんですけど、
業務妨害とか言われたりするのがね・・・
自分が間違っていたりした場合でも、レスが返せれば間違いを訂正してくれる人がいるかもしれないけど、
そんな凝ったページ作るのめんどくさいし。
何より、人がレスくれたページをいじくって消すと申し訳ないじゃないですか?
とにかくめんどくさいんですよ。
あなたがUWSCのメンテがうざいって言うのと同じようにね。
>>866 例えばUWSCに添付されているGuruGuru.uws(でしたっけ?)のようなものと
chkimgしてクリックするようなサンプルをC#書いてアップローダにアップしますね
>>867 >どんな環境だって問題が複雑になれば裏技的にやるもんでしょ。
しません。
Linuxのシステム管理スクリプトがなぜperlからpythonに取って変わられたのか調べてみてください。
> なぜperlからpythonに取って変わられたのか 書けるけど読めないからでしょ?
>>868 ありがたい。
出来れば、GruGru.uwsよりかは、『サンプル.uws』のような情報取得と入力等の機械的制御が本分かと思います。
>>869 もちろんperlはきれいに書こうと思えば書けるんですが
Perlのモットーは「やり方はいろいろある (TMTOWTDI; There's More Than One Way To Do It)」なので
100人プログラマがいたら100通りの書きかたが出来てしまいます。
裏技的に書く書きかたが許されているのでグダグダになりやすいんですよね。
対してPythonはwikipediaの頁にも書かれているように
>Pythonでは多くのユーザによって書かれた同一の仕事をするプログラムは、
>だいたいどれも同じようなコードに収束する。基本機能にないものの多くはライブラリによって提供されている。
>また、Pythonではプログラムの文書化(ソフトウェアドキュメンテーション)が重視されており、言語の基本機能の一部となっている。
ドキュメントが豊富で誰が書いてもだいたいどれも同じようなコードに収束したほうが
他人が書いたコードを再利用しやすいですよね。
どちらの言語がより一般的になっていくかは明白ですよね。
ところでUWSCはどうでしょう、ドキュメントは読みやすいですか?
バイナリを扱う仕様はありますか?扱えたところで他人から見て暗号のようなソースコードになりませんか?
>>871 > ドキュメントは読みやすいですか?
ヘルプの使い方を勉強すれば使えるよ。
あと、ソースコードも日本語が自由に使えるから読みやすいよ。
コードがどんなであれ、日本語のコメントを入れれば解決。
> バイナリを扱う仕様はありますか?
それができないねえって書いてたら怒られたんですけど。
> 扱えたところで他人から見て暗号のようなソースコードになりませんか?
関数化して見えなくすれば解決しますよ。
何子供みたいなこと言ってるんですか。
中身が分からないならテストする。それで解決ですよ。
>>871 > Perlのモットーは
最もよく使われてきたC言語
今も信頼されて使われることの多いC言語も、自由に書けるようになっていますが何か。
確かにPerlの難解さは異常かもしれませんが、当時はPerl以外にありえなかったんです。
だからPerlが使われてきたんです。
>>855 なんとか希望通りの操作は実行できたんですが
やはりキーボードがゲームのほうに奪われてるのか
ゲームが非アクティブな状態からでしか実行されませんでした
なにか他のツール探してみます
言語自体の是非についてならム板あたりでやって欲しいなぁ。
876 :
名無しさん@お腹いっぱい。 :2011/06/16(木) 18:33:49.37 ID:VwsA5JPn0
RecIEで記録していって、うまくいっていたのですが、ある一箇所で動かなくなってしまいました。 その部分の書かれている物を抽出してみたら、下記のように書かれている部分でした。 <a onclick="javascript:loadpage('/job/start.jsp');" href="javascript:void(0)"><span>スタート</span></a> これはjavascriptと呼ばれるものでしょうか? こういうものをマウスクリック以外で自動で押下して先のページに進むにはどうしたらいいでしょうか? ググって、見よう見まねで応用してみたのですが、うまく機能するサンプルがありませんでした。 どうかお願いしますm(_ _)m。
>>876 なんかのセキュリティ制限に引っかかってるんじゃない?
OSとIE何よ
>>877 ありがとうございます。
IEは8.0.7600と書かれています。
OSはWindows7 Professional です。
お願いします。
>>876 onclickだから多分、そのボタンのIDを探して
IE.Document.all.BUTTONID.Click()
ってやったらクリックできるかも。
allでだめな場合はFormのIDか番号も必要かも。
flash上でドラッグ&ドロップを行いたいのですが、 BTN(LEFT,DOWN,〜 BTN(LEFT,UP,〜 では出来ませんでした。 実現可能な方法がありましたら教えてください
881 :
880 :2011/06/17(金) 10:22:59.10 ID:HostJxq00
ドロップ側の受け取りイベントが上手く発生しなかっただけみたいです 失礼しました
>>879 ありがとうございます。
IDといいますと、html上でのIDでしょうか?
このアンカー自体にはIDはふられてませんが、2階層上のLOGINという名前のIDのふられたDIVの中にある唯一のアンカ-なので、特定は可能だと思います。
いちおう、
IE.Document.all.LOGIN.Click()
で走らせましたが、当該の行で、
COM:error 例外が発生しました
と表示されて終了してしまいました。
ボタン自体にIDがない場合の書式はどうすればいいのでしょうか?
どうかお願いしますm(_ _)m
>>882 DIVのIDは直接扱えないっぽいですよね。
単独では使えますけど。
GetElementByID()でDIVのIDからオブジェクトを取得し、
そのオブジェクトを元に
getchildnodesやGetNextElementなどでたどっていって<a>タグのオブジェクトを取得できれば、
aタグ.click() が実行できるかも。
ちなみにUWSCの標準関数ではタグを指定してソースを取得は出来ますけど
オブジェクトを取らないとClickできないので。
UWSC的にはブラウザのアクセス方法はやめてClkItemが早いかも。
ClkItem( HNDToID(IE.HWND), "スタート", CLK_ACC, , 番号1から )
>>875 AutoHotKeyでもダメでした
ドライバレベルでフックしないとだめっぽさそうです
PowerShellの実行が複数行行けるから、EVALで同様に出来るかなと思ったけど無理だった。 関数として記述すればいいんだけどね。 それかファイルに吐き出してExec()か。 他アプリの操縦は別としてだけど UWSCに変わるスクリプト言語としてBooってのもいいかも。 文法は6割がPythonと共通で、.net またはLinuxのMonoのアプリケーションだけど、 ランタイム自体はUWSC並に小さくてエディタで書いていけるらしい。 実行形態は対話形式スクリプト、スクリプトファイルの実行、コンパイルしてexe単体実行ができる。 最初のうちはHTMLをローカルで実行できるHTAがいいかなと思ったけど JScriptかVBScriptなんだよね。どっちもあんまり・・ もちろん汎用的ではあるんだけどUWSC覚えたらUWSCの範囲でやってしまう。
「らしい」とか「みたいだけど」とかって言うヤツは信用しちゃならねってばっちゃが言ってた。
新規で覚えるなら .netが必要ならば.net環境で作るよ…
タスクトレイのVolumeを右クリック後の再生デバイスを選択するにはどうしたらいいですか?
>>888 オーディオプロパティの調整とか表示されてるメニュー?
基本的にトップレベルにないと消えるメニューだから (A)とかで指定されたキーを KBD()で送信でもいいけど、
めくら操作したくないならウィンドウクラス"#32768"でGetIDすればいい。
メニュー Class:"#32768"
ダイアログ Class:"#32770"
ツールチップ Class:"tooltips_class32"
>>889 有り難う御座います!
書き込んでからKBD()で行ける事に気が付きました…
タイトルないので指定出来ないと思って居ましたが
クラス名#32768でもそうやって指定すれば行けるんですね
一つ勉強になりました。
>>883 どうもありがとうございました。
ClkItemで代用し、一応動きはするのですが、
バックグラウンドでの動作はできないようでした。
どうしてもクリックと同時に最前面に出てきてしまいます。
IDの指定と、オブジェクトの取得は、スキルが必要なようです。
もしそれについての解説サイトがあれば、お教えいただければ幸いです。
1ステップ1ステップ小出しにしてねーで そもそも何をやろうとしてんだよ。 糞が。
そんな事書いたら、オンラインゲーム必死だな( ´,_ゝ`)プッって笑われるだろーが!!
あー、そっかーーーーー。
そうだったんだーーー
そっかーーーーー ごーめーんーーーー
>>891
オンラインゲームでRMTして儲けたいからマクロ書いてください ってこと?
896 :
名無しさん@お腹いっぱい。 :2011/06/25(土) 15:22:20.33 ID:e2nGd7v50
マウスやキーボード入力が一定時間なかったことを確認する方法はないですか? スクリプト起動直後に今アイドリング状態なのか判定したい
CHKIMG関数で質問です 検索範囲未指定時は画面全体が対象との認識であってますか? また最小化時にチェックすることは可能ですか?
900 :
名無しさん@お腹いっぱい。 :2011/06/29(水) 15:56:24.05 ID:rcowTlhM0
UWSCというマクロツールで ランダム質問をクリックしてから”役に立った” (下URL参照)をクリックするプログラムを作りたいのですが
うまくいきません。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1263203487 私の作ったプログラムはランダム質問までいくのですがそこからがいきません。 何が悪いのでしょうか?
とりあえず私の未完成プログラムを書きますね^^
皆さんの回答をお待ちしております
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("detail.chiebukuro.yahoo.co.jp/qa/rand.php")
REPEAT
sleep(0.5)
UNTIL !IE.busy AND IE.readystate = 4
ret = IELINK(IE,"役に立った!")
バックグラウンドで動作するプロセスの起動確認をUWSCでしたいのですが、 どうすれば出来ますか? タスクマネージャのプロセス一覧には表示されるけど、タスクバーには表示されないので、 GETALLWINでは取得できません。 ちなみにVBSでは以下の記述で使っていました。 Set objProcList = GetObject("winmgmts:").InstancesOf("win32_process") For Each objProcess In objProcList if objProcess.name = "aaa.exe" then msgbox "aaa.exe は起動しています" Exit For end if Next
>>901 .length 個の.item(i) があるようです。
ttp://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&start=20&log=ON&cnt=4 for i= 0 to col.length-1
objITEM = col.item(i)
ifb objITEM.Name = "kansou" And objITEM.Value = strRADIO1[nNO]
objITEM.Checked = True
break
endif
next
GETOLEITEMもあるっぽい
// c:\windows下のディレクトリ表示
fs = CreateOLEObj("Scripting.FileSystemObject")
gf = fs.GetFolder("c:\windows")
for i = 0 to GETOLEITEM(gf.SubFolders)-1 // コレクション取得
print ALL_OLE_ITEM[i].name
next
結果だけが欲しければコピペをPOWERSHELLで処理するとか
あ、書式だいぶ違った。
qprocess | find "iexp" をDOSCMNDで実行して戻り値を見るとか
ただし、最後に改行がつくから面倒な場合もある。
uwscファイルの修正を行っていたらわけがわからなくなってしまったので もしよければ教えていただきたいと思い書き込みしました。 elseif CHKIMG("A.bmp", 0) then x1 = G_IMG_X; y1 = G_IMG_Y; 質問1:G_IMG_Xとは画像のX座標のどの位置を指すのですか?(中心とか右端とか) 質問2:例えばA.bmpの中心座標x1からbだけずれた位置をxと定義する場合 どのようにx1 = G_IMG_X; y1 = G_IMG_Y;以降に書き加えればよいのでしょうか? 色々と調べてみたのですがわからなかったのでお手数おかけしますがご指導お願いします。
この程度の事なら調べたら絶対どこかに載ってるだろ
FUKIDASIを使うと発見場所をピンポイントで指してくれていいんだけどね
>>904-
>>906 ご指導ありがとうございました!!
特に
>>906 さんのヒントで修正できました!
わざわざお忙しい中教えてくれてありがとうございます!
釣りさげさんw
聞くは一時の恥と言いますしクレクレ言ってるより全然いいです
>>902 サンクス、ずいぶん短くなった
if doscmd("qprocess | find <#DBL>aaa.exe<#DBL>") <>"" then msgbox("aaa.exe は起動しています")
912 :
名無しさん@お腹いっぱい。 :2011/06/30(木) 12:59:42.54 ID:KNK9iezw0
WebFlash上で該当画像が見つかったらクリック、見つからなかったらもう一度探す ように動作させたいのですがどこを変えれば良いでしょうか while True if GETKEYSTATE(VK_ESC) then exit // ESCキーを押すと終了させる ifb CHKIMG("該当画像.bmp") // 画面上に画像があった場合以下へ x=G_IMG_X // 画像の座標をxへ代入 y=G_IMG_Y // 画像の座標をyへ代入 BTN(LEFT, CLICK, x, y, 80) // 画像の場所を左クリック endif wend
見つかった場合ループ抜けるなら endifの前にBREAKでいいんじゃないかな もしくは REPEAT SLEEP(0.5) UNTIL CHKIMG("画像.bmp") BTN(LEFT, CLICK, G_IMG_X, G_MIG_Y,) こんな感じでも行けるかな。
XPでは普通に動くのにwin7だとsleepの待ち時間が異常に長くなったりします。 何が原因なんでしょうか?毎回なるのではなくちょっとした変更をしたときなどに 起こります。
>>916 内容も判らんのに答えれるかよ
何をどう変更した時になるか
どういった処理途中なのかぐらい書けば?
>>916 XPでもCPU100%使っていれば1.5倍くらい長くなったりするよ。
>>915 最終的に座標をY軸方向に-1移動することで期待していた動きを命令できました
指導ありがとうございました
質問させてください。 指定する色の大きさ(領域)を取得することは可能でしょうか?
>>920 色の領域じゃちょっと意味が分からないな。
ファイル名からサイズを取得するのを調べてたんだけど
UWSCで使えるのはまだ見つかってない。
そう言えばUWSCは比較する時に画像のサイズを持ってるんだから
真ん中とか指定できてもよさそうなもんだが
>>920 1ピクセルの色取得が出来るんだから、出来るに決まってるだろ。
塗りつぶしのアルゴリズムが使える…まぁ、スクリプトとしての速度の問題があるとは思うが。
それは自分で判断するしかあるまい。
>>921 UWSCに頼らず、自分でBMP用意してるんだし。
BMPのヘッダとか自前で読めばいいんじゃない?
>>922 >>776 前後で書いたけどUWSCはバイナリ読めないので、どの道他のツールを使うことになる。
ならUWSCから既存のOLEなりを呼んでもいいだろと。
925 :
sage :2011/07/04(月) 16:33:50.58 ID:OnV/XTnZ0
UWSCで5番目のAタグをクリックするコードを教えてください
日本語でおk
>>925 TABキーを、何回か押して、エンターキーを、押すと、いいよ!
UWSCで、 次回起動時刻○時○分を取得 ↓ UWSCのスケジュール機能に○時○分をセット ↓ スタンバイ という動作をしたいんですが、UWSC.INIファイルの「M1=」に時刻を書いても無理でした。 一度UWSCで読み直させる必要があるんですかね? どなたか簡単に時間セットをする方法をご存知でしたら教えてください。
> 一度UWSCで読み直させる必要があるんですかね? 普通はそうじゃないですかね。 UWSCを再起動すればいいんじゃないですかね。
930 :
名無しさん@お腹いっぱい。 :2011/07/07(木) 10:13:43.29 ID:z0Ayilpv0
>>925 IElink(IE, IE.document.getElementsByTagName("a").item(4).innerText)
複数のウィンドウ(@とAとします) にPostMessageAで同時にマウス操作はできませんか? @のウィンドウのハンドルを入れた画面1.uws Aのウィンドウのハンドルを入れた画面2.uws 画面1.uwsと画面2.uwsの二つのファイルには マウス操作の記述やifchkimgなどを記述しています。 画面1.uwsと画面2.uwsファイルを二つ起動すると、 最初に起動したウィンドウにしか正常動作せず、次に起動したウィンドウは マウスクリックやifchkimgなどが正常に動作せず、困っています。 二つのウィンドウを同時にマウス操作を行う場合は、 PostMessageAではできないのでしょうか?
>>931 追記です。
すごくわかりにくいのでやりたいことを明記します。
ウィンドウ@・・・どこかに赤丸が表示される(場所、時間ランダム)
ウィンドウA・・・どこかに赤丸が表示される(場所、時間ランダム)
このウィンドウ@とウィンドウAに赤丸が出現したら、
その赤丸をクリックしたい場合はどうすれば良いか教えて下さい。
複数ウィンドウではなく単体ウィンドウ(たとえばウィンドウ@のみ)の
場合の.uwsファイルはできています。
試したこととしては、931に書いた通り、単体用のuwsファイルを二つ用意
してウィンドウ@とウィンドウAのハンドルを画面1.uwsと画面2.uwsに
与えて同時に実行しました。
結果は、最初に起動したウィンドウしか正常動作がしませんでした。
ウィンドウ@起動 → ウィンドウA起動の場合
ウィンドウ@は正常動作
ウィンドウAは座標取得等がうまくいっていないのか赤丸クリックせず
>>複数ウィンドウではなく単体ウィンドウ(たとえばウィンドウ@のみ)の場合の.uwsファイルはできています。 コレが出来たなら、どうしないとダメなんだかも解りそうなもんだけどなぁ… なんか裏技ネタの釣り?
> 二つのウィンドウを同時にマウス操作を行う場合は、 ウィンドウが二つとか関係なく、同時に複数のキー入力は出来ないでしょ。
>>934 UWSCとWindowsAPIは、手動でできないことは自動では
できないってことですか?
>>935 PostMessageAの方はうまくいってもおかしくないけど
キー入力は操作性の問題で短時間の入力はアプリケーション側でキャンセルにされるでしょ。ゲームとか特に。
メッセージを処理するか無視するかはアプリケーションが判断できるんでね。
ちゃんと届いているならあとはアプリケーションの問題です。
非アクティブだから動かないとかそんなんでもなくて?
>>936 postmessageaのキー入力かマウス操作か何が無視されているか
調べてみます。
非アクティブだと届いたり届かなかったりするのかな?
exe化されたuwsファイルをソースにすることは出来ませんか?
パーサがノードに畳みこんだ後のバイトコードでも格納してんだろうから ソースコードは残ってないんじゃね
940 :
名無しさん@お腹いっぱい。 :2011/07/14(木) 18:30:44.72 ID:ihcGcGar0
while True if GETKEYSTATE(VK_ESC) then exit // ESCキーを押すと終了させる sleep(1) ifb CHKIMG("指定画像.bmp",0) // 画面上に画像があった場合以下へ x=G_IMG_X // 画像の座標をxへ代入 y=G_IMG_Y // 画像の座標をyへ代入 BTN(LEFT, CLICK, x, y, 80) // 画像の場所を左クリック BTN(LEFT, CLICK, x, y, 80) // 画像の場所を左クリック BTN(LEFT, CLICK, x, y, 80) // 画像の場所を左クリック endif wend こんな感じでやってるんだけど画像認識してくれない。 指定画像のスクリーンショットをとって3*3ピクセルぐらいにしてるんだけど、 その編集した画像はクリックしてくれるんだけど、クリックしてほしい画面では クリックしてくれないんだ・・・。 これは画像編集の仕方が間違えてるのかな?
いまproの試用をしてるんだけど Web記録と普通の記録ってどう違うの?
あそこが緑であそこが黒なときTHEN以下がしたいんですがうまく動きまへん 助けてくらはい IFB PEEKCOLOR(195,893)=$008000 and PEEKCOLOR(14,894)=$000000 THEN
943 :
名無しさん@お腹いっぱい。 :2011/07/17(日) 13:47:29.75 ID:kiBDTF4u0
uwsc_4_5a を探してるのですが何処探してもないのでもしよければ誰か下さい。
944 :
あお :2011/07/17(日) 15:54:46.56 ID:vLe+GyhK0
何故古いバージョン?
945 :
ANNIN@AQUA :2011/07/17(日) 20:18:48.99 ID:SFjiKwCCO
古いバージョンを探してる人は、オンラインゲームの不正行為対策プログラムにUWSCが検出されている人です。 UWSCが対策されてしまったためでしょう。 なぜかUWSC45は、検出されないみたいですよ。 情弱者乙
犯罪まがいの情報を知らないのは情弱とは違う
犯罪(笑 大体のゲームは規約違反だろうが法律は違反してねーよw
>>947 マナーをルール化する必要が出てきてしまう幼稚な要因だな。
そういわずとも、規約違反の程度によっては損害賠償の請求も考えちゃうけどねぇ…
まぁ、法律には違反してないと主張して盛大に営業妨害してみてくれw
4.5ってaだけ? c1なら持ってるけど
ここは「犯罪」と「犯罪まがい」の違いすらわからないお子様が見ていいスレじゃないですよ
951 :
ANNIN@AQUA :2011/07/18(月) 05:18:20.41 ID:MSDlk85MO
現在4.5ならどんなバージョンでも、オンラインゲームの不正行為対策プログラムに検出されないようで。 ググれば…普通にバージョン4.5手に入るのに、どんな検索のしかたをしたら見つからないってなるんですかね(笑)
CHKIMG("gazou.bmp",1,100,200,300,400) x = G_IMG_X y = G_IMG_Y MMV(x,y) こう書くと画像へのマウス移動が動作するんですが CHKIMG("gazou.bmp",1,100,200,300,400,-1) x = ALL_IMG_X[0] y = ALL_IMG_Y[0] MMV(x,y) こうやると、変数ALL_IMG_Xが定義されていません とエラーが出てしまいます。 ALL_IMG_Xを使うにはどのように記述したらよいのでしょうか?
VirtualBox上で動いてくれないんですが、動いている方いらっしゃいますか?
UWSCのChkImgって凄く高速にスキャンが終わるけど どんな実装になってるか誰か想像つきます? 普通に実装するとあんな速くならないんですよね。
お前さんの言う「普通に実装」するコードをちょっと書いてみてもらえないだろうか? それとお前さんが普通に実装したツールとUWSCの客観的なタイム比較も。
スクリプトで1ピクセルづつ色を比較とかだったりしてw
Repeat 〜 Until構文で IFB CHKIMG("画像.bmp") BTN(ry ELSE BTN(ry みたいな感じで動かしてるのですが、 この場合画像が一度でも認識されたらELSEへの分差はしないのでしょうか?
>>953 Virtual PC上のXP MODEで最小化して動かしているけど、
VirtualBox上だと動かないのか・・・
ここから
>>953 のこうどなペイドライバー作戦が展開されます
教えて下さい。
BTN(LEFT,CLICK,x,y,80)の行で、マウスカーソルは移動するのですが、
クリックをしないと判定されて、文字を入力するカーソルが表示されません。
何か関係あるのかと思って、
>>958 さんのアドバイスを実行してみましたが、変わりませんでした。
何かいい方法はありませんか?
よろしく お願いします。
>>961 クリックがうまく行かないのはよくあること。
前後にSleep()を入れるとうまく行くことが多い。
あと、Mouseorgで直接送るとかも失敗しやすい。
それ以外でも失敗する原因があるが、うまく行かないときはとりあえずWindowsを再起動してみるといい。
963 :
961 :2011/07/26(火) 02:00:09.26 ID:3h/3KUwv0
>>962 レスありがとうございます。
マウスカーソルは指定座標に移動して、左クリックだけしない状況なので、
関係ないと思いましたが、試しにsleepを記述しましたが、変わりませんでした。
あと、mouseorgは使っていません。
色々検索してみましたが、解決策が見当たりませんでした。
何かいい方法はありませんか?
よろしく お願いします。
こちらこそよろしくお願いします。
>>963 どっかでDOWNしたのにUPしてないとか。
CLICKはUP状態からDOWNしてUPしないと成立しない。
966 :
961 :2011/07/26(火) 18:10:25.30 ID:pssSHwtl0
>>965 レスありがとうございます。
BTN(LEFT,CLICK,x,y,80)は低レベルAPIの定義文としては、一番初めにあります。
念の為、前後にDOWNやUPを色々記述してみましたが、変わりませんでした。
元々、LEFT,CLICK自体が機能していれば、文字入力をするカーソルが現れるのですが、それが現れません。
ダブルクリックする定義文が見当たらないので、BTN(LEFT,CLICK,x,y,80)の後に、
BTN(LEFT,CLICK)を入れても、文字入力をするカーソル現れません。
何かいい方法はないでしょうか?
カーソルが現れないならMMVとか
968 :
名無しさん@お腹いっぱい。 :2011/07/27(水) 13:30:35.42 ID:cb46GFl40
またTWで使えなくなったな
このソフトでTwitterつぶやけますか?
無理ですお帰り下さい
できるよ
このソフトおもろいけどあんま使い道が思い浮かばん 通販の転売用の買占めとかネトゲの放置ぐらい以外なんかある?
マルチモニタ環境でサブモニタに表示させているGOM player に動画ファイルをdropfile しても再生されません。プライマリモニタだと大丈夫なんですが
そうですか 大変ですね
ええ
クリックメールを自動的にCrickさせたりできそうだけど
この命令を作りたいのですが スタート @とAの画像があったとき この場所をクリックします @の画像がなかったとき、何もしません BとCの画像があったとき、この場所をクリックします スタートへ戻る ACW(GETID("パチンコ"),27,149,1024,740,0) WHILE TRUE BTN(LEFT,CLICK,688,791,422) ifb CHKIMG("保留ランプあり.BMP") BTN(LEFT,CLICK,688,791,422) elseif CHKIMG("保留ランプなし.BMP") BTN(LEFT,CLICK,688,791,422) ENDIF WEND ↑でエラー出ます
インデントが間違ってる ifb CHKIMG("保留ランプあり.BMP") BTN(LEFT,CLICK,688,791,422) elseif CHKIMG("保留ランプなし.BMP") BTN(LEFT,CLICK,688,791,422) ENDIF エラーの内容書かないと分からないよ。 あと、ループにはSleep()を入れろと
失礼します。
パソコンゲームなどの自動ツール作成出来る方を探しております。
マクロと言うのでしょうか?
内容は具体的に書けませんので
興味がある方がいましたらステアドを晒しておきますのでご連絡下さい。
あなたの力を貸して下さい。
もちろん報酬の用意もさせて頂きます。
[email protected] 失礼しました。
具体的に書かないとゲームガードで操縦できるか分からないよ。 UWSCの機能で出来るようなものかもわからない。 僕も単純なマクロは書くけど、自由に行動するマクロは無理。 時間もかかるし。
金払えるなら企業に依頼すればいい
指定した座標の色が変化するまでキーボードを押すというマクロを作りたいんですが 色が変化しても動作し続けてしまいます。アドバイスください。 public マウスX,マウスY xx = 300 while true if getkeystate(vk_numpad1) then サブターゲット設定() IFB GETKEYSTATE(VK_CTRL) x = マウスX y = マウスY repeat KBD(VK_1,DOWN,xx) KBD(VK_1,UP,xx) until !(peekcolor(x,y)) ENDIF wend //--------------------------------- procedure サブターゲット設定() sleep(0.1) マウスX = g_mouse_x //マウス座標取得 マウスY = g_mouse_y sleep(0.3) fend
>>983 peekcolorの戻り値はその座標の色だから色が変わったことを判別するなら比較する色がないとダメ
たとえば先に
color = peekcolor(x,y)
しておいて
until !(peekcolor(x,y) = color)
みたいな感じでいけないかな?
もし変化する前の色が常に決まってるなら直接色を指定してもいい
>>984 やってみたけどダメでした。なんでなんだろ・・・
CheckColorScopeで色判定することにします。
ありがとうございました。
>>493 のはあんまりよくない。
単色しか見ないんだと合成色とか明るさだけで反応する。
白くても赤とか
暗い赤は赤じゃないとかね。
>>985 適当に作ってみたけどちゃんと動いたよ
while true
ifb getkeystate(vk_a)
x = g_mouse_x
y = g_mouse_y
color = peekcolor(x, y)
repeat
kbd(VK_1, DOWN, 100)
kbd(VK_1, UP, 100)
until !(peekcolor(x, y) = color)
endif
wend
それってマウスポインタ自体の色を拾わない?
>>988 普通はマウスポインタはハードウェアで描画してるので拾わない。
ソフトウェアで描画するゲームなんかでは拾う。
マウスポインタの影とか軌跡はどっち?