1 名前:名無しさん@お腹いっぱい。 [2009/12/09(水) 05:27:33 ID:J1DL1P1U0] Windowsを自動化させるツールUWSC。 www.uwsc.info/ uwsc使いのみなさま、マターリ己のスクリプトを晒しましょ。
232 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/08(月) 15:19:30 ID:8gw+l4vY0] >>231 >>97 で使ってる > GetWindow( H, GW_ENABLEDPOPUP ) COMは多分止まってるからIEオブジェクトは使えないので、 あらかじめH = IE.HWNDとしてハンドルを保存しておく。 GetWindow()でダイアログが表示されていればハンドルが取得できる。 ただし、ポップアップウィンドウにはサブメニューとかツールチップも含まれるので、 Status()で"#32770"かどうかをチェックする必要がある。 すべてのウィンドウをリストアップするのと違い、自分の子ウィンドウだけを見るAPIを直呼びするので高速。
233 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/08(月) 17:11:16 ID:LRrJZmuF0] >>232 アドバイスありがとうございます。 APIの使い方とかわからない素人で、 >>97 のスクリプトを見てもよくわからないのでもう少々詳しく質問させてください。 def_dll GetWindow(hWnd,long):long:user32.dll //dllを呼び出せるように宣言 Public GW_ENABLEDPOPUP = 6 // ポップアップウィンドウ ここまではわかります。 >あらかじめH = IE.HWNDとしてハンドルを保存しておく。 これはどういう意味でしょうか? おそらくスクリプトとしては ifb GetWindow( H, GW_ENABLEDPOPUP ) > 0 //ダイアログを閉じる処理をする endif こういう感じになるのですよね?
234 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/08(月) 17:42:07 ID:8gw+l4vY0] >>233 > H = IE.HWND これはIEオブジェクトを管理するウィンドウのウィンドウハンドルです。 UWSCで言うIDのようなものですが、ウィンドウハンドルと言うのはWindowsのAPIで使うものです。 IDとウィンドウハンドルは「IE.HWND」で検索したら出てきますが、 ID = HNDToID(IE.HWND) HWND = IDToHND(ID) と言うように変換できます。 if ! IDToHND(ID) then exit と言うように、IE窓が終了している場合に中断できるのでIDを保存しておくと便利です。 GetWindow()で使うときも GetWindow( IDToHND(ID), GW_ENABLEDPOPUP ) とできるので、IDを保存しておいてもいいです。 > ifb GetWindow( H, GW_ENABLEDPOPUP ) > 0 ハンドルは符号なし整数なので、この比較はしない方がいいでしょう。 負の整数と判断された場合に失敗します。 !が分かりにくいなら0 <> GetWindow() でもいいです。
235 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/08(月) 19:25:04 ID:LRrJZmuF0] >>234 ご丁寧にありがとうございます。 もう少々ググッて勉強してきます。 またよろしくお願いしますm(__)m
236 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/16(火) 15:03:54 ID:HiT6yWWl0] テキスト入力のやり方が分かりません教えてください
237 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/16(火) 21:52:10 ID:cI9JqU5P0] 何を聞きたいのか分かりません教えてください
238 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/17(水) 06:51:54 ID:DkHyneUl0] windows7でuwscを通常通り動かす方法ありませんか
239 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/17(水) 07:01:16 ID:8KLxlRw70] UAC切れ
240 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/17(水) 11:05:24 ID:u/flnLmx0] >>238 普通にwin7で使ってます。 しかも64 64アプリを制御できなかったりしますが、ほぼ問題なし ==>IEは32,64両方入ってますから
241 名前:名無しさん@お腹いっぱい。 [2010/03/17(水) 23:14:19 ID:j5IphMiE0] スクリプト入力補助、3文字ぐらいうったらあとの文字が自動でるようにしたい んですけど、どうすればいいんですか?CLCLというのは使い方が意味がわからなかったです。
242 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/18(木) 16:58:33 ID:HTSNWkk9P] それをUWSCで作ればいいと思うよ
243 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/18(木) 17:57:55 ID:pleFRDKk0] >>241 xyzzy + ac-mode.l (white.s151.xrea.com/wiki/index.php?script%2Fac-mode ) + uwsc-mode.l (big.tm.land.to/handbook/uwsc.htm ) でできる。
244 名前:名無しさん@お腹いっぱい。 [2010/03/19(金) 00:16:25 ID:r6TwPwzy0] 241です、回答ありがとうございます。そこまで教えられてるのにわからない自分がなさけないです. uwsc-mode.lはsite-lispフォルダに、uwscはetcフォルダに入れてください。←ここまではわかる siteinit.lとかに以下の文を追加してください。 ; UWSC (load-library "uwsc-mode") (push '("\\.uws$" . uwsc-mode) *auto-mode-alist*) ↑意味ワカラン
245 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/19(金) 00:40:50 ID:ZI4R2SXH0] そうですか
246 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/19(金) 01:34:35 ID:rPEvvIJr0] >>244 xyzzy.s53.xrea.com/wiki/index.php?QuickTour あとは気合いと根性で
247 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/19(金) 03:40:08 ID:y7YOOYqA0] 釣りじゃ無かったのかよ
248 名前:名無しさん@お腹いっぱい。 [2010/03/20(土) 18:31:49 ID:B79HWejI0] 241です 気合と根性で補完入力できるようになったんですが、そのファイルにしか適用 されないというか、ほかのファイル開いたときはまた補完されなくなっちゃうんですけど 入力して覚え直させないといけないんです。これじゃー意味ないです。
249 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/20(土) 19:02:33 ID:Ajn0jtpj0] あー、そうですか。
250 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/21(日) 23:22:41 ID:FxCOzvKn0] while true ifb getkeystate(VK_X) then sleep(0.3) endif ifb getkeystate(VK_UP) then sleep(1) endif ifb getkeystate(VK_G) then KBD(VK_DOWN,DOWN,40) KBD(VK_DOWN,UP,40) KBD(VK_DOWN,DOWN,40) KBD(VK_DOWN,UP,40) KBD(VK_X,CLICK,10) sleep(1) KBD(VK_DELETE,CLICK,100) endif KBD(VK_F,CLICK,50) wend これだとVK_Gのときに最初の処理がスルーされることが あります。最初というのはダウンアップとXキーのことです。 しかもそれが大体ですがひとつおきになります。 何が問題なのでしょうか?
251 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/21(日) 23:42:42 ID:9nY7crvD0] >>250 あまりよく読んでないけど、短間隔ループの中でGetKeyで分岐というのはUWSCはムズイよ。 そこまでに押されたKEYを取得だから… 公式の過去ログで良い回答あったと思うけど、探すの面倒だわ。
252 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/22(月) 10:04:04 ID:r9UvCn9t0] >>250 用途がイマイチわからないので答えるのも難しいけど 自動操作系? それとも入力支援? 自動操作系なら一定の待ち時間を設けるといいかも。 sleepじゃなくてループで。 例えば while true i=0 Repeat ifb getkeystate(VK_X) then sleep(0.3) endif Sleep(1) i=i+1 Until i>3 とか。Xキーの押下状態で処理をする時に押されてないor押そうとしている時の待ち状態を作る感じ?
253 名前:250 mailto:sage [2010/03/23(火) 00:07:33 ID:l7gIg+dd0] ゲームでアイテムを拾うというのとコマンド入力というので使っています。 連続して使うこともありできれば時間をあまりおかずに使いたいと 考えてましたがやはり短い間隔では取得が難しいみたいですね。 それとパソコンの性能が低いというのも関係あるかも。 >>252 UWSC以外にもゲームパッド用のソフトも使ってるのでXが押されたときの スリープはそっちのソフト用です。 UPのスリープもコマンド入力時のためのものです。 ずーっとアイテムを拾うようにFキーが連打されるように なっているのでスリープを設けないと入力できないと いうことからです。
254 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/24(水) 12:24:59 ID:2ytrfO4cP] ifb getkeystate(VK_X) thenとかが何のためにあるかわからない・・・ これは俺がアホなのか?
255 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/24(水) 15:09:35 ID:HwpEcix70] ハンゲームでファミスタオンラインというゲームをやっているのですが、 このソフトを使ってバックグラウンドで動作させる事は可能でしょうか?
256 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/24(水) 16:10:50 ID:yu0OAHHi0] 間違いない
257 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/24(水) 16:47:13 ID:C4V6o9Yd0] 外部DLLとかも読み込めるんだから基本不可能なことはないだろ
258 名前:255 mailto:sage [2010/03/24(水) 17:14:51 ID:HwpEcix70] MOUSEORG で 2 を指定したのですが受け付けてくれないのです。 他に何かやるべき事はあるのでしょうか?
259 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/24(水) 18:13:20 ID:C4V6o9Yd0] ヒント;DirectInput
260 名前:255 mailto:sage [2010/03/24(水) 18:42:44 ID:HwpEcix70] DirectInputを使用しているアプリはUWSCの送信は受付ないという事でしょうか? 表では動くのですが、裏では動かないです><
261 名前:名無しさん@お腹いっぱい。 [2010/03/27(土) 09:48:15 ID:2VmSdvyL0] KBDで使用するCLICKとDOWNの違いってなんですか? CLICKが反応しなくてDOWN/UPに変更した事もあるんですが。
262 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/27(土) 10:03:17 ID:2VmSdvyL0] すいません。補足です。 例えばキーを押しながら別のキーを押したい場合はDOWNだと思うのですよ。 ですが例えば"A"を単打したい場合ってCLICKでもDOWN/UPでもどちらでもいいんですかね? 記録する時どちらも記録されていたので違いがよくわかりませんでした。
263 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/27(土) 12:20:23 ID:GJlX799VP] どっちでもいい 好きな方をつかえばいいと思うよ
264 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/27(土) 12:40:55 ID:HsANWc9NP] >>262 環境によるけど 自分はダウンアップにしてるよ ハンゲのゲームやってたときに よく固まってたんですよ それでダウンダウンダウンダウンって 違う箇所を4回くらいダウンさせて アップってしたら固まらないようになったです 珍しい事例かもしれないけど 一応お伝えしておきますねw がんがってください^^
265 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/27(土) 20:09:52 ID:2VmSdvyL0] レスありがとうございました。 なるほど。やっぱり違いはなかったんですね。 >>264 事例ありがとうございます。覚えておきますw
266 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/29(月) 16:50:16 ID:zWqUoN180] UWSCでスクリプトを動かしている間に別の作業をしたいのでMOUSEORGを使ってキーイベントを直接送りたいのですがうまくいきません // マウス座標を相対座標にする、 またはマウスとキー情報を直接ウィンドウへ送る MOUSEORG( ID, [基準指定 ] ) 例えばnotepadに直接キーイベントを送りたい場合は MOUSEORG( notepad, [2] ) という書き方でよろしいのでしょうか ご教授いただけるとうれしいです
267 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/29(月) 21:36:29 ID:xNpZMuTv0] ドラッグしてCtrl+Cでコピーした文章をSendstrで出力したいんですが、 コピーした文章の出力方法がわからないのです。 Sendstrの文字列に当たる部分にはどのように書けばいいのでしょうか?
268 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/29(月) 22:25:27 ID:NFgbt+8v0] >>266 IDはプロセスIDだから、UWSCからnotepadを開くなら開く時の戻り値、 そうでないならGetIDでIDを貰って来なきゃならん。 [基準指定]の[]は省略可を表すだけで、2っていれときゃいいよ。 >>267 何処に出力したいのかは大丈夫? ファイルに出力するなら、ヘルプのファイル操作関連 起動しているメモ帳やなんかに出力したいならSendStr 画面に表示したいならFukidasiやらPrintやらを使えばいい。 SendStrはヘルプ読めば解ると思うけど、 String=GetStr(0) SendStr(送り先ID,String) とすれば、変数Stringにクリップボードの文字列を格納して、それを送り先のIDに送る。 文字列の部分には""で囲った文字列か、文字列を格納した変数名を書けば良い。
269 名前:267 mailto:sage [2010/03/30(火) 02:35:32 ID:i+J5d4Um0] >>268 ありがとうございました。クリップボードからの取得方法がわからなかったのです。 よく見たらヘルプにも書いてましたね・・・初心者ですいませんm(_ _)m
270 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/30(火) 06:36:51 ID:w9o7uVAy0] どなたか、TaskbarSorterをVista対応に改良してもらえないでしょうか? 一応使えることは使えるようなんですが、使えない機能がいくつかあるので、よろしければお願いします
271 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/30(火) 06:37:53 ID:w9o7uVAy0] すいません、>>270 は誤爆です…
272 名前:266 [2010/03/30(火) 10:20:54 ID:enNRlci80] >>268 返信ありがとうございます GetIDで取得するIDはClassというものでよろしいのでしょうか? id = GETID("Notepad") MOUSEORG(id,2) 〜処理〜 これでは間違っているのかうまくいきませんでした よろしければ教えていただけるとうれしいです
273 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/30(火) 10:51:08 ID:nQEKerym0] >>272 Notepadはクラス名はNotepadになるけど、タイトル名は別名かと…
274 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/30(火) 12:21:01 ID:uAc8A7pjP] なにか重大な勘違いをしているようだ
275 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/30(火) 12:24:14 ID:B93d/s/o0] >>272 ウィンドウのタイトルでOK ヘルプの例にあるように、 id=GetID("メモ帳") でいいよ。
276 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/30(火) 13:57:27 ID:TB+znm4l0] 親切な人が多くて素晴らしいですね
277 名前:266 mailto:sage [2010/03/30(火) 17:44:58 ID:enNRlci80] ご丁寧に教えていただいてるにも関わらず未だにうまくいきません>< 実はLaTaleというオンラインゲームのウィンドウに直接送りたいのですが ウィンドウのタイトルはLaTale Clientです id = GetID("LaTale Client") mouseorg(id,2) REPEAT KBD(VK_RIGHT,DOWN,100) KBD(VK_RIGHT,UP,100) KBD(VK_RIGHT,DOWN,100) KBD(VK_RIGHT,UP,500) KBD(VK_SHIFT,DOWN,100) KBD(VK_SHIFT,UP,400) UNTIL FALSE これではだめでした どうすればよろしいのでしょうか よろしくお願いします
278 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/30(火) 20:54:57 ID:B93d/s/o0] なんでREPEAT-UNTILに入れてるの? 条件FALSEにしてるんじゃ意味無いでしょ。 つーかまたゲームのマクロの話かよ… どうせまたDirectInput使ってるとかだろ そもそも配布サイトのFAQくらい読んでから来いと…
279 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 00:50:17 ID:2kVfTA890] >>277 それをやろうとするとバン対象だよ ゲーム側で出来ないように工夫してるし。
280 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 03:14:21 ID:QDwO3+WbP] そもそもこのスレって暗黙の了解かなんかでチート関連の話題は原則禁止じゃなかったか?
281 名前:名無しさん@お腹いっぱい。 [2010/03/31(水) 03:40:13 ID:J88r7xmw0] cheatだろうと何だろうと関係ない UWSCの事なら何でもあり そもそもUWSCを何に使おうがそれは使い手の勝手 それが気にいらなければレスしなければよい
282 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 04:05:03 ID:/r7+U6cH0] 質問してる以上、流石にそれはないと思う というか>>280 が言いたいのはこんなスレでチートとかの質問するようなアフォは喋るなって事じゃないの なんか最近不正行為っぽい質問が多いし 要約すると>>278 不正行為関連の質問は自重すべき
283 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 06:08:31 ID:eObzEOzl0] >>281 そうだな。チートだと思われる質問には誰も一切何も答えなければ問題ないな チートなんか使おうとする奴が質問自重するとは思えないから、答える側が気をつけないとな
284 名前:266 mailto:sage [2010/03/31(水) 12:00:12 ID:mAVKXcTv0] ハンゲームのファミスタの話が出ていたのでオンラインゲームの話題もいいのかと思っていました; 以降気をつけます。ご迷惑をおかけしました><
285 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 12:05:44 ID:wRNvV5G10] でもなんだかんだでこのソフトはチートでの使用が一番多いわけだが・・・
286 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 15:12:32 ID:02z0GkxwP] >>285 に1票www
287 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 17:19:37 ID:db3wAIhw0] なんか変な流れを切るようで悪いんだけど教えてほしい。 既に開いてるIEをF5で更新した時に読み込み完了まで待ちたいんだけど どうすればいいのかな? よく見かけるのは IE = CREATEOLEOBJ("InternetExplorer.Application") IE.visible = True IE.navigate("www.yahoo.co.jp/ ") REPEAT SLEEP(0.1) UNTIL !IE.BUSY AND IE.readystate = 4 これだけど、これだとブラウザ起動からしちゃうので目的と違うんだよね。 最初に上記でブラウザを起動してから更新の度に REPEAT SLEEP(0.1) UNTIL !IE.BUSY AND IE.readystate = 4 をすればいいのかな? できればサイトを開くまでは手動でやりたいんだけど。
288 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 17:57:48 ID:zl81UiL50] も少し、ヘルプよんでよ IE=GETactiveOLEobj ちなみに F5=IE.refresh
289 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 18:45:29 ID:db3wAIhw0] >>288 レスサンクス ほんとだ、、、書いてあった。。。 ヘルプに書いてあるのに質問しちまって申し訳なかったね。 お蔭様で希望通りの動きができました。 ありがとうm(__)m
290 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 20:08:51 ID:vqZHXpqN0] >>289 おいおい、ニダランスレから出て来るなよw
291 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/03/31(水) 21:03:28 ID:db3wAIhw0] ニダランスレってなんだ?
292 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 03:53:25 ID:fwJ098Wi0] 何でニダーラン?
293 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 04:01:38 ID:S8TPP2lzP] そんなことまで「なんで?」って聞き返してくるのかよ ここは昔から質問者に「なんで?」「何するの?」「何がしたいの?」 自分の開発のヒント探るために聞くだけ聞いて質問者への回答は無視か罵倒 だから嫌になって来なくなったんだけど たまたま覗いてみたら相変わらずのウンコ解答者ぶり 質問者さんへ ここで聞いても無駄だよ 作者のうみうみ氏のサイトで聞いた方が時間はかかるけど正確だ 質問するために少々勉強してからの方がいいが ここよりまともに回答してくれるよ 俺も以前はよく解答してたんだけど UWSCというより何か儲けれるツールを作れないか そのネタ探しに解答者ぶっているだけ こいつらアホだからここで質問しても無駄だよ
294 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 04:27:25 ID:S8TPP2lzP] UWSC覚えるのには時間がかかるよ なんせ解説本は「Windowsマクロテクニック」という基本中の基本のみの あまり役立たない本が1冊のみ販売されている 何をしたいかによって習得期間は変わるけど オンラインゲームでちょっと自動化を作成するのに何ヶ月もかかった インターネットを通じてしか勉強できないのも原因のひとつだろね 解答者は無報酬で応えているので 生意気だと思えば応えないし応える義務も無い だから解答者ぶって質問者をイビリ倒すのが趣味って変人も多いよ ぶっちゃけ奥深く入っていくとUWSCでは間に合わないよ ゲームだけじゃないよ事務系の仕事を自動化するのも一緒 UWSCがでてすぐに課金ユーザーになって2年ほど夜も寝ないでUWSCばっかし勉強して気づいた事がある 結局間に合わせのUWSCは間に合わせに過ぎない きちんとしたプログラムを勉強するのが一番近道だよ それでパールやったけどパールもダメだな 掲示板の解答者がUWSCと同じ種類の人間だらけ それでジャバスクリプトも勉強したけど 結局スクリプト言語じゃダメだったんだ 初めからC++がいいよ C++ならなんでもできる 教材もいくらでもあるからね 掲示板でペコペコしながら質問する必要もない UWSCの2年間全く無駄でした 初心者は初めからC++のほうがいいよ じっくりやれば俺でも出来るようになった やりたいことはこれだけだからって簡単にUWSCを勉強しだしたけど 次から次へと課題は出てくるもんだ それをなんでも解決できるのはC++ですキッパリ 俺、おっさんなんだけど俺でも出来たがんがれ ここでいつもゴマすりながら質問してた自分が今でも情けないよ やればできるよ
295 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 04:52:02 ID:S8TPP2lzP] 俺が一番最初に質問してた頃は1人物凄く親切な方がいてた 大阪に住んでるって言ってたな それで俺はUWSCの楽しさを教えてもらったんだ あの方には今でも感謝してるよ あの方はもうこないみたいだし 今、解答者ぶって質問者にレスしてる連中は 質問者が何をしたいか聞きだすのが目的なんだ 美味しいと思えば自分が先に作ってやろうって魂胆みえみえ それで質問者へのレスは適当にしておくか 更に罵倒して、その質問者はもう来れなくするか ヘンテコ解答者っていうか解答者の仮面を付けた基地外だな UWSCの使い方云々抜かしてるガキが出てきた頃から 大阪に住んでるって言ってた解答者さんは来なくなって 質問者も罵倒されるのが嫌で来なくなった 前スレか前々スレは過疎過ぎてダット落ちしてたみたいだし UWSCの使い方までご指導頂かなくて結構ですって言いたいんだけど それを言っちゃー解答もらえないから我慢する それで「質問者が何をしたいのかわからないので応えようが無い」とかはぐらかされて終了 UWSCとperlの解答者には気をつけた方がいいよ スクリプト言語なんて役に立たないことが多いし 悪い事いわないからC++かJAVAがいいよ ゲームに使おうがビジネスに使おうがお前に関係ないだろ>糞解答者
296 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 06:04:35 ID:f/9UZXtU0] おいおい、なんのコピペだよこれ
297 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 06:11:53 ID:NSxeyl3Z0] 不覚にもワロタ
298 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 11:07:20 ID:0yWWJhZV0] ID:S8TPP2lzP なにこのキチガイ
299 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 11:14:41 ID:2Up7o9yS0] C++がいいよ
300 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 21:46:18 ID:URK6iTyf0] 指定時刻に指定ポイントをクリックするスクリプトつくれる?
301 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/01(木) 22:23:08 ID:5xeykHJ2P] 余裕で作れる というか初歩中の初歩
302 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/02(金) 00:28:22 ID:4cLa/HLo0] なんで?って聞くのは別のアプローチから期待された動作をさせた方が、 確実だったり楽だったりすることがあるからだろ… ジャバスクリプトとかカタカナで書いている所とか、一度も出てこなかったJAVAが一番最後だけ出てくるとか、 自己矛盾か自己批判を孕んでるあたりとか、自動化をやるのにC++なんぞを使うと言い出すあたりの所ですよね、笑うポイントは。 ゲームに使おうがビジネスに使おうがなんて言ってるけど、そもそもオンゲなんかはプロテクトがかかってるのが多いから、 それすら知らないとか、プロテクトをかいくぐる技術も無いのに質問するヤツが多いから回答者が辟易して、ゲーム関係をうざがるんだろーが… そういうダークな範囲で使いたいなら独学しろと…
303 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/02(金) 05:17:12 ID:/tViDlcK0] お前はなにをいっているんだ
304 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/02(金) 05:28:23 ID:Ue5xH3Cy0] ID:S8TPP2lzPには手を触れないよーに
305 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/02(金) 06:59:15 ID:I68nnadS0] たぶんこいつは本人で自演だろう
306 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/02(金) 09:08:28 ID:+bubi7hm0] 大阪に住んでる凄く親切な回答者:ID:S8TPP2lzPがしつこくてうざいからここくるのやめた
307 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/02(金) 13:18:16 ID:fDfu5inU0] >>302 うざい解答者ってお前のことだわ
308 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 05:17:27 ID:YpPiuNaU0] 001 while 002 //いろいろ計算やら比較をやって 003 条件="おなら" 004 if 条件="ほにゃら" then break 005 print "ほにゃらではない" 006 wend 004行 で breakで ループを抜けたと思ったら、 005行を実行した上で 多重ループを抜けるんで 005 if !( 条件="ほにゃら" ) then print "ほにゃらではなかった" というような 記述でとりあえずは逃げたんですけど、 こういうもんなんでしょうか?
309 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 09:20:05 ID:n8jkUacb0] 003 条件="おなら" て書いてるかられしょ
310 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 09:54:44 ID:3BOGl5Ct0] >>308 単純に、3行目のif文を間違えているだけだろう。 「5以上になったらループ抜ける」をやりたいのに「if 5>i then break」と書いちゃってるとか。
311 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 09:56:16 ID:3BOGl5Ct0] >>310 符号が逆だった。 「5以上になったらループ抜ける」をやりたいのに「if 5<i then break」と書いちゃってるとか。
312 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 13:47:14 ID:nLPIw5SzP] >>308 × 003 条件="おなら" ○ 000 条件="おなら"
313 名前:308: mailto:sage [2010/04/08(木) 14:31:05 ID:YpPiuNaU0] >>309-312 ありがとうございます. やはり ありえないって事のようなので指摘していただいた点を再度調べてみます. >>312 あ、初期値がUWSCから見えないってことでしょうか。その手の事だとすると実行前に構文チェックに掛かって修理してるような気がするんですが?
314 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 15:00:26 ID:nLPIw5SzP] >>313 条件="おなら" は 条件="おなら" であって 条件="ほにゃら" ではない
315 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 15:29:50 ID:n8jkUacb0] >>313 初期値っていうかなんというか みんな言いたいことは、UWSCは間違ってなくて、記述どおり動いてるってこと
316 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 15:35:19 ID:9crZpxrL0] >>313 いやちゃんと整理して考えてみ
317 名前:308: mailto:sage [2010/04/08(木) 16:24:53 ID:YpPiuNaU0] >>314 すみません.ぐっちゃぐちゃでした. 訂正 000 条件="おなら" 001 while 条件="おなら" 002 //いろいろ計算やら比較をやっった結果 003 条件="ほにゃら" 004 if 条件="ほにゃら" then break 005 print "ほにゃらではない" → 005 if !( 条件="ほにゃら" ) then print "ほにゃらではない" 006 wend こうかな? こんな感じで Break条件の 否定条件をつけて逃がしてます.でした.orz ってか、今作ったのを見直してるんですが、実際作った部分はこうです. 0001 mdelay=0; oldmdelay=mdelay; delaysw=0 //スクリプト冒頭で初期値設定済 0100 optx=7 // POPUPMENU(pp, STATUS(xID, st_x), STATUS( xID, st_y )+STATUS(xID,st_height)) 0101 SELECT optx 0102 CASE 7 0103 REPEAT 0104 x= INPUT("Now : "+oldmdelay+" to set new(ms):",mdelay) 0105 IF x= EMPTY THEN BREAK 0106 UNTIL CHKNUM(x) 0107 IFB !(x = EMPTY) THEN 0108 mdelay= x; oldmdelay=mdelay;delaysw=1 0109 PRINT "*Set07. Delay. ms: "+mdelay 0110 ENDIF 0111 CASE 8 0112 PRINT "*Set08. Hi Sensitive Start." 1000 SELEND 1001 sleep(911) 0107 と 0110 が break したつもりでも抜けられなかったんで付け加えた行です. この行に”//"を入れてやったら、やっぱり抜け出せなかったです.
318 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 17:13:56 ID:2KfY3Rs50] >>317 「107と110を付け加えた」のなら 例文と実際のコードのprint位置が違うのだが・・・ 「107〜110を付け加えた」のなら修正前のコードが欲しいところ。
319 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/08(木) 17:19:01 ID:nLPIw5SzP] >>317 ちょっと待て 0105 のbreakでどこを抜けようとしたって? 0107にはxに数値が入ったときかxが空だったときとなるので その制御では分岐が確かに必要になる。 そうしないとxを使ったときにエラーになるからね。 それを0105でどうにかしようと思うならifb使ってそこになにやら書くか、 exit、もしくはループを追加してbreak 2 を使う必要がある。 UWSCはBasic系なのでcaseを抜けるbreakはない。 そこで、0105から0110に飛ぶようにしたらどうだろう? 0102 CASE 7 0102.5 while true 0103 REPEAT 0104 x= INPUT("Now : "+oldmdelay+" to set new(ms):",mdelay) 0105 +---- IF x= EMPTY THEN break 2 0106 | UNTIL CHKNUM(x) 0108 | mdelay= x; oldmdelay=mdelay;delaysw=1 0109 | PRINT "*Set07. Delay. ms: "+mdelay 0110 +->wend ループ条件を変更して0108〜0109を次のようにするほうがいいと思う 010x ifb CHKNUM(x) then 010x mdelay= x; oldmdelay=mdelay;delaysw=1 010x PRINT "*Set07. Delay. ms: "+mdelay 010x break 010x endif
320 名前:308: mailto:sage [2010/04/08(木) 17:27:56 ID:YpPiuNaU0] >>318 すみません. 『break文で 多重ループを抜け出せない』って事があるものなのかって事を 相談したかったんで 条件式の錯誤に気がつかず、また実際のものとずいぶん違うものを提示してしまい迷惑をおかけしました. 最初 書いたときは 107 110行はありませんでしたが 105行の "EMPTY"(CANCEL)入力で BREAKしないので 単純に 107,110行を追加しているのが現状です.
321 名前:308: mailto:sage [2010/04/08(木) 18:30:40 ID:YpPiuNaU0] >>319 今 BREAK のヘルプを読んで 顔が熱くなってきました.はずかしい限りです. 0001 mdelay=0; oldmdelay=mdelay; delaysw=0 //スクリプト冒頭で初期値設定済 0100 optx=7 // POPUPMENU(pp, STATUS(xID, st_x), STATUS( xID, st_y )+STATUS(xID,st_height)) 0101 SELECT optx 0102 CASE 7 0102.5 while true 0104 x= INPUT("Now : "+oldmdelay+" to set new(ms):",mdelay) 010x ifb CHKNUM(x) then 010x mdelay= x; oldmdelay=mdelay;delaysw=1 010x PRINT "*Set07. Delay. ms: "+mdelay 010x break 010x endif 0100 WEND 0111 CASE 8 0112 PRINT "*Set08. Hi Sensitive Start." 1000 SELEND 1001 sleep(911) こうですね.バッチリきれいに抜け出せました,皆さんどうもありがとうございました.
322 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 09:21:19 ID:WP7Ufm9tP] 無料版でIE以外のブラウザの操作もできますか?
323 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 10:53:36 ID:7t91Tinz0] >>322 基本、無理。
324 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 11:09:55 ID:WP7Ufm9tP] そうですか。 このゲーム(待ってクリック、待ってクリックを繰り返すFH)で 自動戦闘を繰り返すマクロ作れたらお願いします ttp://mob-2.com/
325 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 11:40:13 ID:L29VjoPvP] 了解しました。 20万円くらい用意しといてね。
326 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 16:04:40 ID:S762n6IR0] >>324 テンプレくらい読んで書き込めよカス
327 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 16:21:34 ID:ikeA/Ag60] ブラザウ動かせない糞ソフト
328 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 16:53:32 ID:7t91Tinz0] シベリアにいた頃に作った、ゲームでクリックするだけのマクロをあげとくわ。 太鼓の達人マクロ。 gamezone.gooside.com/taiko.htm // ( . ) ピリオドの位置にマウスを合わせて開始するといい。 FUKIDASI("マウスを読み取り位置にあわせてください。<#CR>Ctrlキーをクリックで開始します。") // VK_CTRL が押されたら開始 Repeat; sleep(0.2); Until GetKeyState(VK_CONTROL) FUKIDASI("実行中。<#CR>Ctrlキーをクリックで終了します。") // マウス座標保存 MouseX = G_MOUSE_X MouseY = G_MOUSE_Y // キー保存変数 dim previousKey dim key dim isYellow = false dim isPreviousYellow = false sleep(1) while true isPreviousYellow = isYellow isYellow = false sleep(0.005) // VK_CTRL が押されたら終了 if GetKeyState(VK_CONTROL) then break key = 判定( MouseX, MouseY, previousKey, isPreviousYellow, isYellow ) if ! key then continue
329 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 16:54:06 ID:Ik0GncC3P] // キーをクリック ifb isPreviousYellow then ifb isYellow then sleep(0.02) endif endif KBD(key) // 最後に押したキーを保存 previousKey = key sleep(0.02) wend // 戻り値:キーコード // 処理しない場合、0を返す。 // X: X座標 // Y: Y座標 // key: 最後のキー // fYellow: 前回のYellow フラグ // isYellow:今回のYellow フラグ // 呼び出し回数:呼び出し側は常に省略する。 // 自分を呼ぶときは+1する function 判定( X, Y, key, fYellow, var isYellow, n = 0 ) result = 0 // 色を取得 color = PEEKCOLOR( X, Y ) ifb ! fYellow then //黄色が出た後はグレーの判定はなし if isGray(color) then exit endif
330 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 16:54:53 ID:7t91Tinz0] red = color and $FF green = (color and $FF00) / $100 blue = (color and $FF0000) / $10000 ifb fYellow then // 黄色フラグが立っているときは、他のカラー(青、赤)の判定はしない。 ifb 0 = color then // 前回黄色だったら、黒は黄色とみなす。 isYellow = true else exit endif elseif 255 = blue then result = VK_M // 青なので「m」 elseif 255 = green then isYellow = true // 黄色 elseif 255 = red then result = VK_Z // 赤なので「z」 else exit endif ifb isYellow then ifb 4 <= n then // 黄色で確定 // 黄なのでmとzを交互に if key <> VK_M then result = VK_M if key <> VK_Z then result = VK_Z exit endif // 規定個数の箇所をチェックする // (黒を除く)グレーがあれば中断 if ! n then X = X + 35 result = 判定( X + (n * 5), Y, key, fYellow, isYellow, n + 1 ) endif fend
331 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 16:55:11 ID:Ik0GncC3P] ////////////////////////////////////////////////////////////////// // グレーチェック // メーターカラーなどがグレーかどうかを調べる function isGray( color) red = color and $FF green = (color and $FF00) / $100 blue = (color and $FF0000) / $10000 sum = red + green + blue aveH = sum / 3 + 10 aveL = sum / 3 - 10 Ifb ( red < aveL ) or ( aveH < red ) Then RESULT = false elseif ( green < aveL ) or ( aveH < green ) Then RESULT = false elseif ( blue < aveL ) or ( aveH < blue ) Then RESULT = false else RESULT = true endif Fend
332 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/04/11(日) 17:07:04 ID:7t91Tinz0] >>328-331 1.スクリプトを起動し、 2.ゲームのページを開いて開始し、 3.( . ) ←の顔を合わせる丸括弧のピリオドの位置にマウスを合わせ、Ctrlキーで開始する。 ゲーム中は放置。 4.ゲームが終了したらCtrlキーでマクロを終了する。 マウスで指定した座標の色を監視し、顔が合わさる瞬間にキーを自動クリックするだけだが、 連打する部分を見分けるためにちょっとめんどくさい処理になっている。 顔の種類の判定をそれぞれ色素の一つしか見ずに済むこんなシンプルなゲームでも、 識別して適切な動作をするのにこれだけの長さのコードが必要になる。 グレーチェックの関数は流用でそれ以外の部分を新規に作ったが、 これだけで5時間もかけてる。 UWSCで小さいマップを動き回るマクロをいくつか書いてる僕がそれだけ時間かかるんだから、 実現可能だとしても、ゲームマクロにはそれなりの労力が必要。 ちなみにマップを動き回るマクロは1000行くらい必要になった。