1 名前:名無しさん@お腹いっぱい。 [2009/03/02(月) 19:49:20 ID:rP5khwz50] Windowsを自動化させるツールUWSC。 ttp://www.h7.dion.ne.jp/~umiumi/ uwsc使いのみなさま、マターリ己のスクリプトを晒しましょ。 前スレ 自動化ツールuwsc使いよ集まれ3 pc11.2ch.net/test/read.cgi/software/1176677869/
577 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/23(水) 11:07:08 ID:IbHZjMsfP] >>529 の最初に >出来るだけ正確に投稿するにはどうしたらいいかと考えて、 >JaneDoeViewの「書き込み」ボタンをクリックすることにした。 >以下即席スクリプト ソースの最後では >kbd(VK_SPACE, UP) って書いてあっても分かんないみたいだから、「どこが分からないの?」とかいちいちやり取りする良り 一から十まで丁寧に書けば1レスで済むとおもったんだよ。 結局長くなって2レスになったけど。 なのにいちいちあおりを入れる奴がいるから無駄にレスを消費してしまうんだよな。 それより栗ご飯はやっぱり炊飯器で炊いた方がいいかもな。 高圧鍋だとやわらかいけど・・・水が多かったのかやわらかすぎて栗の歯ごたえがなくなってる。 いや、栗だけなら高圧でもほくほくなんだよな。 水がやっぱり多すぎなのかなあ?
578 名前:名無しさん@お腹いっぱい。 [2009/09/23(水) 11:48:36 ID:39u478qO0] >>575 正気で言ってる? パケットはインターネットのどこを通って相手サーバーに辿り着くか保証しない ping,tracert打てば分かるけど到達時間のゆらぎはここの影響が一番大きくて 光回線だろうと専用回線だろうと正確に書き込むなんてスクリプトの創意工夫じゃ無理な話
579 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/23(水) 11:50:59 ID:xgMteTKH0] 出来るだけ正確にってことでいいじゃないですか
580 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/23(水) 13:33:41 ID:IbHZjMsfP] >>578 まさかその話を蒸し返すとは思わなかったよ。 ほとんどの板では最小単位は秒なので、多少の揺らぎがあってもきっちりあわせることは可能ですよ。 だって、いくら揺らぎがあっても最速より早くなることはないわけで、 そうすると遅れが1秒近くまで許容されるわけです。 pingで100msを超えることなんて、海外鯖じゃないかぎりあまりないことでしょ。 150msくらいなら国内でもありえなくはないけど。 通信が安定してない無線環境は論外ってことで。 あと、ルートがころころ変わるみたいに言ってるけど、基本的にトラフィック分散を意図的にでもしてない限りは同じルート通るでしょうに。 そもそも鯖の時計が正確かどうかも分からないんだから、期待通りの時刻になるかどうかは何度か書き込んでチェックしておくのは前提ですよ。 そんでもって、現実にほぼ100分の2秒プラスするくらいの誤差に収まっているんだから、揺らぎの影響をいくら説いたところで無駄です。 1000分の1秒の正確さを要求するとしても、Windowsがそんな正確に時間を刻むことが出来ないのに通信がそれ以上正確に出来るわけもないんですよ。 最近のWindowsは1000分の1秒まで正確に刻めるんだっけ?知らないけど。 >>579 ですよねえ 原爆の爆縮レンズじゃないんだからそこまで正確である必要はないのに。
581 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/23(水) 14:04:12 ID:IYhj49D60] 時間刻んでるのはマザーボードじゃね
582 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/23(水) 17:51:15 ID:7k3kCu8k0] まあ一言で言えば、長文ウザイ、ってことだな
583 名前:名無しさん@お腹いっぱい。 [2009/09/23(水) 18:32:42 ID:39u478qO0] なんでこう延々と想像だけで話を進めるのかねぇ。ちっとも確認する努力をしない。 いつから2chは日本に移転したんだかww 御託を並べるのはいいからコマンドプロンプトでこれ打ち込め(Ctrl+Cで停止) ping -t pc12.2ch.net んで出力される数字がルーティングは一定ではない証拠になっている これの意味分かるか?意味が分からないというなら解説してやるよw ↓ pc12.2ch.net [207.29.225.90]に ping を送信しています 32 バイトのデータ: 207.29.225.90 からの応答: バイト数 =32 時間 =139ms TTL=50 207.29.225.90 からの応答: バイト数 =32 時間 =131ms TTL=51 207.29.225.90 からの応答: バイト数 =32 時間 =119ms TTL=51 207.29.225.90 からの応答: バイト数 =32 時間 =134ms TTL=50 207.29.225.90 からの応答: バイト数 =32 時間 =120ms TTL=51 207.29.225.90 からの応答: バイト数 =32 時間 =127ms TTL=50 207.29.225.90 からの応答: バイト数 =32 時間 =136ms TTL=50 207.29.225.90 からの応答: バイト数 =32 時間 =120ms TTL=51 207.29.225.90 からの応答: バイト数 =32 時間 =135ms TTL=50
584 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/23(水) 19:42:45 ID:IYhj49D60] ちょっとそれは不安定すぎ 俺のだと134msTTL52、135msTTL52を行ったり来たりするくらいでほぼ一定 つまり通信環境が安定してればルーティングなんて計っても計らんでも同じだぞ まあどっちにしろ100%なんてないだろうがw
585 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/23(水) 23:38:33 ID:1bHA/wNB0] >>581 Reply from 207.29.225.90: bytes=32 time=151ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=146ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=148ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=149ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=153ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=149ms TTL=45 Reply from 207.29.225.90: bytes=32 time=148ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45 Reply from 207.29.225.90: bytes=32 time=147ms TTL=45
586 名前:585 mailto:sage [2009/09/24(木) 00:12:31 ID:hVVrxn3L0] >>583 pingの応答時間のばらつきがルーティングが一定でない証拠になるのなら、 逆説的に、一定であれば同じルートを通ってることになるわけだ? 俺の場合はたまたま146msがあったけど、基本的に147msで安定 5回に1回くらいの頻度で1ms以上遅れるブレがあり、>585のリストでは最大153ms つまり、最大でも6msしか遅れないわけだ。 そしてこのばらつきは同じルートを通っていることを示すものだ。 トラフィックによる遅れがあり、それが往復で6msということだ。 そもそも、同じルートを通っても時間にばらつきが出るのはネットワークの基礎だ。 ルートを保障しないというのはルートを変更できるということであって、どこを通っても到達可能という意味ではない。 君の家、君の会社の出口はたくさんあるのか? 複数の出口を使ったためにホームページが機能しなくなった淀橋。comのような例もあるが、基本的に出口は一箇所だろう。 僕は拠点を数箇所持っている会社で、会社の出口までのpingを見ていたが、専用線とは言え細い帯域を使っていたため >>585 程度のばらつきは発生していた。 他にルートがないのは、俺がこの目でそれぞれの装置の設置とケーブルの接続を確認していたんだから間違いないんだ。 ・・・そういえば複数の回線を束ねる方法があったっけね。 でも、基本的に同じ仕様の回線を使って同じ相手への接続をするだろう。 複数の相手にランダムに送りつけるなんてありえないね。
587 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/24(木) 13:14:20 ID:LnjpJUXE0] いくらなんでも583はブレすぎw
588 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/24(木) 15:45:37 ID:WyG49l9r0] >>587 シーっ 自分で気づいたとき 顔まっかっかにになるおw
589 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/26(土) 12:45:09 ID:i6V0HPzG0] サブに使ってるノートパソコンを買い換えたんだけど OSは Windows Vist HB です 今までXPで作ったuwsファイルが動かないんだよね それでvist HB にて カメラモードで記録して再生してみたけど 動かないorz どうなってんだかさっぱりわかりません VistでUWSCを使えないでしょうか? 自分にとってUWSCは物凄く大切なツールなので 最悪の時はOSの入れ替えしてでも使っていきたいです どなたかわかる方おられましたらお願いいたします
590 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/26(土) 12:54:56 ID:pa8lBq8j0] >>589 VISTAなら管理者権限で動かせば動く なお、SP1とか入ってないと動かない ショートカットの上で右クリック 項目に管理者として実行(A)
591 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/26(土) 13:06:04 ID:i6V0HPzG0] >>590 さん 早速のレスありがとうです^^ 一応SP1のようです 管理者権限ってのがよくわからないんですけど 教えてもらったとおりにやってみます 1時間くらい後になるかもしれませんが 後ほど報告します
592 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/26(土) 13:53:25 ID:i6V0HPzG0] >>590 さん できました! ショートカットの上で右クリック 管理者権限で実行 これで以前作ったUWSファイルが見事に動いています! >>590 さんマジでありがとです m( _ _ )m
593 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/27(日) 18:05:14 ID:7JVGpQHe0] firefoxを閉じる方法がわかりません教えてください
594 名前:名無しさん@お腹いっぱい。 [2009/09/28(月) 14:16:23 ID:dKc8Xyde0] 新着情報 / お知らせ 2009/09/28 UWSC Ver4.5c、 Pro版と Free版をリリースしました。 [Ver4.5c] .NETのMDIアプリ対してCLKITEM関数の処理が不完全だったのを修正 高レベル記録にてMDIアプリの記録ができなかったのを修正(一部不可) HASHTBLの宣言にて変数名に一部使えない2バイト文字があったのを修正 SAFEARRAY型を作るSAFEARRAY関数を付けた CHKIMG関数にてヒット数/順番指定ができるようにした CHKIMG関数にて各色に対し色幅を持たせられるようにした SELECT-SELEND構文にてCASE部を先に全部計算していたのを随時計算するように変更した Pro版: CREATEFORM関数にてFOM_NOSUBMITが指定されていると frame表示ができなかったのを修正 RecIE:表示項目の取得にて、タグにidがある場合はタグの順番では無く idを記録するようにした UDebug:Trace実行時にて行末に横スクロールしていたのをしないようにした
595 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 16:40:50 ID:irclUfzT0] nyやshareでダウンロード終わったrarなんかを自動的に解凍してくれるようなスクリプト組めない? いちいち揃ったか確認してってちとめんどい
596 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 18:00:48 ID:PAsbME+j0] それを人に聞いて教えてくれる奴がいるとでも思ってるのかP2P厨
597 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 18:08:44 ID:XYX6H4wP0] >>593 いくらなんでもそれはわかるだろう
598 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 18:09:50 ID:J6+ufsV/0] >>593 >>595 まずPCを窓の外に投げ捨てます。それから、
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 18:57:20 ID:plPjciD00] 服を脱ぎます。それから、
600 名前:593 mailto:sage [2009/09/28(月) 19:40:54 ID:tD6dVglK0] わからないなら答えなくて良いよ
601 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 20:35:45 ID:irclUfzT0] >>596 P2P程度でガタガタ言うな器が知れる
602 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 21:59:58 ID:kvY9Z34d0] >>600 今日はここ見るの初めてなので質問気づかなかったですよ 関数抜けるなら EXIT EXIT って書けば終了しますよ quitでも抜けるかも 自分もまだ超初心者なのでわかんないんだけど 後で調べてみるよ 今からお風呂入ってからなので日付変わるかも^^; 詳しい人教えてあげればいいのにね わかるかどうかは自分も自信ないけど 期待しないで待ってて^^; 取りあえず返事はするから。
603 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 22:18:42 ID:tD6dVglK0] CTRLWIN( ID, CLOSE) ここまでわかったけど このIDってのがどうやって調べるのかが疑問
604 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 23:06:05 ID:J6+ufsV/0] まあとりあえず人に物をたずねる態度ではないわな しかもそんな超初級の質問だし
605 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/28(月) 23:15:48 ID:kvY9Z34d0] >>600 お待たせしました^^ 私の環境(WindowsXPpro)で試してみました Firefoxの置いてあるフォルダーの部分は書換えてください idについてなんですが 私もよくわからないんですよ^^; なので先人の方のフォロー待ちしてください 一応、私は下記のようにIDという名前の変数を自作してます^^; ---------------------------------------- //DドライブFirefox 30フォルダーのFirefox起動 id = EXEC("D:\Firefox 30\firefox.exe") //10秒間休憩^^ SLEEP(10.0) //変数idに指定してあるFirefoxを 終了(QUIT) CTRLWIN(id, CLOSE2) ---------------------------------------- >>604 さん みんな仲良くしましょう^^
606 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/29(火) 00:05:20 ID:NdTMXo030] id = GETID("", "MozillaUIWindowClass", -1) CTRLWIN(id, CLOSE) これでいいだろめんどくせえ
607 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/29(火) 00:09:24 ID:G9pasUcy0] >>601 p2pをやっている時点で器が知れる
608 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/29(火) 02:09:09 ID:MkiJ7lnC0] >>595 スクリプトでなくとも、分割ファイルじゃない限りBACTHファイルでも出来そうだ
609 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/29(火) 06:34:07 ID:FQvNwZh30] >>601 程度って言う時点で終わっていることに気が付かない無能 ネタでも質問して答えがもらえなくて逆ギレするのは古い 0点 他人の器を計測出来る技量があるなら自分で作りましょう^^;
610 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/29(火) 07:15:22 ID:i5//2YOSP] ダウンロードしたファイルの展開を自動化して勝手にキンタマに感染してればいいよ
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/29(火) 10:05:41 ID:luOmQHoy0] 展開とファイル実行機能をつけたスクリプトをEXE化してプレゼントしてあげよう
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/29(火) 15:26:34 ID:0xdw+62LP] 4.5cだとselectが仕様変更したせいかこんな関数すると2ループ目で 構文エラーになるぞ。バグ? for z = 0 to 5 print z Test() next procedure Test() dim cb cn = "efg" select cn case "efg" cb = 1 case "hij" cb = 2 selend fend
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/29(火) 20:17:33 ID:RXL7LTN80] >>612 漏れのとこはprocedure Test()がSyntax error吐く procedure Test(a)と呼び出しもTest(0)に書き直すと5まで回る
614 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/09/30(水) 16:39:27 ID:IWwKgH1S0] >>612 エラーになる最小構成 Uスクリプト: SyntaxError:PROCEDURE TEST()2行目: TEST() 二回目の呼び出しでエラーになる Test() Test() procedure Test() select 1 case 2 selend fend
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/03(土) 15:10:10 ID:PrU7zT590] >>612 最新の4.5c1で問題ないようですね。
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/03(土) 15:17:35 ID:PrU7zT590] あ、修正内容記載忘れ >SELECT-SELEND構文のCASE部の演算にて、正しく処理できないパターンがあるエンバグ修正
617 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/04(日) 19:21:28 ID:nTBPfdcN0] 他のアプリのフォーム上のテキストを取得するにはどうしたらいいんでしょうか。 手順だけでも教えてください。
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/05(月) 00:07:31 ID:CH7gUdqSP] まずヘルプを見ます
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/05(月) 00:08:51 ID:PJFhomP10] それから服を脱ぎます
620 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/05(月) 03:49:26 ID:NhTXeCvfP] >>617 ttp://scripts.web.fc2.com/scriptsup/GetItem.uws
621 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/06(火) 08:32:17 ID:c/PWe0slP] HSPは皆さん名前くらいはご存知だと思います。 簡単にGUIを利用できるスクリプトです。 GUIを利用するには操作可能なウィンドウのハンドルが必要になりますが、 hsp3imp.dll と .ax 形式のスクリプトファイルがあればHSPの基本的なスクリプトが実行できます。 ハンドルにNULLを渡すしかないのでデスクトップ画面の左上になにやら表示されるだけですが、 同一プロセスで実行するので、UWSCのTHREAD関数と同じで、UWSCのメインが終了すれば自動的にHSPスクリプトも終了します。 実用的なコードではありませんが、UWSCと連携できる方法が分かったので、メモ代わりに置いておきます。 ---------------------------------------------------------------- def_dll _hspini@16( Long, Long, Long, Long):long:hsp3imp.dll def_dll _hspbye@16( Long, Long, Long, Long):long:hsp3imp.dll def_dll _hspexec@16( Long, Long, Long, Long):long:hsp3imp.dll def_dll _hspprm@16( Long, Long, Long, var string):long:hsp3imp.dll _hspprm@16( 0, 0, 0, NULL ) _hspprm@16( $102, 0, 0, "test.ax" ) _hspini@16( $100, 300, 200, 0 ) _hspexec@16( 0,0,0,0 ) _hspbye@16( 0,0,0,0 )
622 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/06(火) 12:07:27 ID:MmWu6XUb0] いえ、結構です
623 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/06(火) 13:51:43 ID:/f+XFp6+0] そういうなよw HSP利用してるひとには、何か役に立つ場面があるんだろう。よくわかんないけど。
624 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/06(火) 14:08:00 ID:iGIKVHSK0] GUIって書いてあるし、インターフェースの作り方が簡単に出来るんじゃね? PRO版でも以外にhtmlで組んで値の取得はめんどいきがするしなぁ。
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/06(火) 14:40:59 ID:aEe1fbMS0] スクリプトが中心のUWSCにGUIは要るのかどうか
626 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/08(木) 18:39:23 ID:POs5weyE0] GUIは要るだろw 処理は分岐させるときに、 マウスでボタン選ばせることはよくある。
627 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/08(木) 19:32:12 ID:qRylH6WX0] 漏れはGETKEYSTATE(と反応いるならFUKIDASI)派
628 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/08(木) 20:16:25 ID:G90OFwF50] そういえば、UWSCをゲームの自動化に使う人が多いけど、 UWSCはドットと一定範囲のキャプチャ、そしてあらかじめ用意した画像との一致ができるけど、 もーちょっと複雑な処理をするとなると普通の開発言語が必要になってくる。 DLLを作れば呼び出しはしやすいけど、DLLを作るのはちょっと大変。 HSPは個人というか同人のゲーム開発によく使われているから、作りやすそうな気がする。 >>621 の呼び出し方法だとデータの受け渡しは出来なさそうだけど・・ 確かHSP独自の管理データのバッファを受け渡すオプションがあるんですよ。 メモリアロケートしなきゃいけないからUWSCで用意するのはきついか・・・ そもそもそのバッファをどう使うのかも分かんないし。 直呼びするんじゃなくて中間にそのデータを処理するライブラリが必要になるよな。 結局DLLは作らなきゃいけないのか。
629 名前:名無しさん@お腹いっぱい。 [2009/10/08(木) 20:54:12 ID:UBSNf1qA0] msgboxでYES or NO を選択させているときに バックグラウンドのログウィンドウのサイズ変更やスクロール操作をさせたいのですけど どーにもウィンドウ自体がロックされてて動かない。 何かいい処理手段はありませんか。
630 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/08(木) 21:08:28 ID:qO5rVH0kP] >>629 ためしに別スレッドで表示してみたけど、スレッド関係なくログ窓はロックされた。 最初にログ窓を表示してsleep()してる間にサイズを変更しておくしかないね。 毎度変更するのが面倒なら、ログ窓の初期サイズはどっかの初期設定で変更できるんじゃないかな。 参考にはならないだろうけど、UWSCの別スレッドで>>621 の方法で呼び出したHSPスクリプトで表示した窓なら確かログ窓をロックしなかった。 モーダルとモードレスの違いかな。
631 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/09(金) 12:31:18 ID:b97IpTpi0] >>630 やっぱりそこは仕様として受け入れるのが妥当みたいですね…
632 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/09(金) 21:26:03 ID:arGnFET40] OPTIONで、SLCTBOXとかMSGBOXのタイトルは指定出来るけど、 Printで出てくるLogのウインドウのタイトルは変更出来ないですよね? やるとしても、指定したタイトル.uwsを勝手に生成させて、 それにPrintしたい文を引数として渡しながら起動させて、そっちのプロセスからLogウインドウ生成させる とか、 もしくはFukidashi使ってPrintまがいの関数作って、常に一番上に同じ文字列を表示させる事で代用する感じですか?
633 名前:名無しさん@お腹いっぱい。 [2009/10/10(土) 19:09:22 ID:x/VCcQim0] ふと思ったんだがUSBケーブルで携帯電話に繋げば携帯電話のキーも自動操作可能?
634 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/10(土) 19:16:07 ID:utpQqVzD0] 無理 携帯電話を接続する場合、モデムとして認識されるだろう。 モデムとしてダイヤルすることは、通信ソフトを使えば可能だが、通話は・・ Windows98には通話に使えるダイヤラーがあったけどな。
635 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/11(日) 00:22:44 ID:35okaGI10] UWSCで初めてプログラムを触ったんですが、基本的なことがわからないので質問します。 for i = 0 to 30 A = ループの終了条件1 B = ループの終了条件2 ifb FLAG = 0 then if A then break else if B then break endif next for i = 0 to 30 ifb FLAG = 0 then A = ループの終了条件1 if A then break else B = ループの終了条件2 if B then break endif next どちらが正しい処理の仕方(処理的に軽い)ですか?
636 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/11(日) 00:36:00 ID:PutYKpoI0] for i = 0 to 30 ifb FLAG = 0 then if ループの終了条件1 then break else if ループの終了条件2 then break endif next これじゃいけない? 後者の方が条件Aにマッチする時は条件Bの評価をしなさそうに見えるけど、 実際はそうでないことも多いからやってみないとわからんな。
637 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/11(日) 02:58:02 ID:VZNQjdxo0] FLAGが0か1なら for i = 0 to 30 if (FLAG XOR ループの終了条件1) OR (FLAG AND ループの終了条件2) then break next とかやっちゃいそうな気がする。 短く書けるけど読みにくいし早くは無さそうだがw ORは確か片方成立で飛ぶんじゃなかったっけかな?
638 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/11(日) 03:08:56 ID:bm9Dl8WM0] そもそもFLAGをforの中で変えてないのだから ifb FLAG=0 then for i = 0 to 30 A = ループの終了条件1 if A then break B = ループの終了条件2 if B then break next endif としてfor〜nextの間を省けばいい FLAG変数への参照を無駄にループ数分行っていたのを省略できるし、forの中で一切FLAGをいじってない 時間の無駄すぎる
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/11(日) 03:21:48 ID:G3PJrjiY0] >>638 いや、マルチスレッドでflagをセットするのかもしれない。 ちょうど昨日くらいにマルチスレッドで同じ変数への演算を試したが、タイムラグはあるものの矛盾は起きなかった。 絶対に起きないというテストじゃなくて、ログに吐いてざっとみた感じだけどな。 データ保持時間が最短のインクリメント(X=X+1)だったから矛盾しなかっただけかもしれないが、 実際マルチスレッドでやり取りするのはその程度の小さいデータだしな。 >>637 UWSCの or はビット演算するんじゃなかったかな。 FLAGにセットするデータとループの終了条件1、2が0または1しかセットしないと決めてあるなら大丈夫だろうけど。
640 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/11(日) 03:38:04 ID:bm9Dl8WM0] >>639 ほい、if文の中のorの動きを見るサンプル マウスの真ん中ボタン押すと次の数字をチェックに動く 動かす限りは、左右どちらかの条件を満たしたときthenの処理を行うっぽい for a=-2 to 2 for b=-2 to 2 ifb a or b then fukidasi(a+"|"+b) while GETKEYSTATE(VK_MBUTTON)=FALSE WEND while GETKEYSTATE(VK_MBUTTON)=TRUE WEND else endif next next
641 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/13(火) 22:27:37 ID:jrmsphI70] z = 1 repeat IESetData(IE,True,"btnG","u-tan",z) z = z + 1 until z > 400 終了条件が400となっていますが、400以下のときがあり そのまま終了せずに止まってしまいます。 400以下の場合はどのような終了条件にすればいいのでしょうか?
642 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/13(火) 22:38:27 ID:xJwyuOU/0] while IESetData(知らない) z=z+1 wend
643 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/13(火) 22:57:01 ID:71hzl6RX0] for z = 1 to 400 IESetData(IE,True,"btnG","u-tan",z) next
644 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/13(火) 23:07:14 ID:jrmsphI70] >>642-643 どちらも駄目でした・・・
645 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/13(火) 23:13:52 ID:Duzrrw3q0] z=1 while z<400 and a=TRUE a= IESetData(知らない) z=z+1 wend
646 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/13(火) 23:51:29 ID:jrmsphI70] >>645 変数aを上に記載してやったら どうにかできました。m(_ _)m
647 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/14(水) 00:48:59 ID:21DOA/fB0] ということはこれだな for z = 1 to 400 if false = IESetData(IE,True,"btnG","u-tan",z) then break next
648 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/15(木) 17:56:31 ID:UljGJ3ay0] ちょっと疑問に思ったんだけど、 「false = 条件」 と、 「条件 = false」 って普通はどっち?
649 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/15(木) 18:55:03 ID:bcXkiyj70] C言語で > if 変数 = 状態 ってやっちゃうと代入になっちゃうから > if 状態 = 変数 って書くべしっていうのはある でもBasicは = で比較だからどっちでも同じ ただ、比較対照が長い関数の場合、どれとどれを比較してるんだかわかんないので > false = 関数 ってしたほうがいい。 > if 関数 = false then と書くと、 > if 関数 then と間違えやすい だから、Basicでは > if false = 関数 then と書くのをお勧めする
650 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/15(木) 23:21:40 ID:a8XdqmYx0] 初歩的な質問だと思いますが、 a = 1 IFB a != 1 print "a != 1" ELSE Print "a = 1" ENDIF で、表示されるのがa != 1というのは、仕様ですか? エラー出ないのに、=を論理否定して≠にしている訳では無いのかな。 上記をC言語的なイメージで解釈したように使うには、 a = !1か、!a = 1か、a<>1にしなければならないようですが、 a<>1が一番解りやすいですかね?
651 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/16(金) 00:12:35 ID:d8MsK2iH0] >>650 それなんで通っちゃうんだろうね 確かに != の表記が間違ってるみたいだけど。
652 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/16(金) 14:55:14 ID:yaBuphLm0] saveimgを使って保存した画像をchkimgで調べるのを組んでるのですが chkimgの座標指定が今一うまくいかないのでアドバイスお願いします CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2, 番号, 色幅] ) X1――X2 | | Y1――Y2 このような解釈でいいのでしょうか? ACW(GetID("ログイン")) LOGIN = GetID("ログイン") MOUSEORG(LOGIN) Repeat log = CHKIMG("log.BMP",-1) in = GetID("ログイン") ifb log then print "認証" print "X"+G_IMG_X+"Y"+G_IMG_Y BTN(LEFT,CLICK,G_IMG_X+20,G_IMG_Y+20,500) endif sleep(0.1) Until in < 0 この様に一度動かしてみて print "X"+G_IMG_X+"Y"+G_IMG_Y で出た座標を log = CHKIMG("log.BMP",-1,)に入れてみるのですが上手く認識してくれません 座標指定しなければちゃんと認識はしてます CHKIMG("log.BMP",-1,0,0,1000,1000)などにすると認識はしますが 実際 print "X"+G_IMG_X+"Y"+G_IMG_Y で出てくる数値は20,400程度なので これに余裕を持たせ CHKIMG("log.BMP",-1,0,0,200,600) にしても認識してくれません 何がいけないのでしょうか?
653 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/16(金) 15:07:01 ID:d5KMyGe80] >>652 (X1,Y1)―― | | ―――(X2,Y2)
654 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/16(金) 15:21:35 ID:d8MsK2iH0] >>652 ┌Y1┐ X1 X2 └Y2┘
655 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/16(金) 15:26:36 ID:d5KMyGe80] >>652 始点Yが400で選択範囲をY600までにした場合 Yの値=画像の横幅、が200pxを超えていると認識しない。
656 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/16(金) 15:49:11 ID:yaBuphLm0] >>653-654 654を見て理解できました >>655 画像自体の幅と高さが関係してくるのを理解してませんでした これで少し前進しました アドバイスくださった皆さんありがとうございました
657 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 16:13:22 ID:GlNkzRYu0] ifb (L > 0 and L < 11) or (L > 40 and L < 51) or (L > 80 and L < 91) then i = 1 ifb (L > 0 and L < 11) then ii = 1 elseif (L > 40 and L < 51) then ii = 2 else ii = 3 endif elseif (L > 10 and L < 21) or (L > 50 and L < 61) or (L > 90 and L < 101) then i = 2 ifb (L > 10 and L < 21) ii = 4 elseif (L > 50 and L < 61) ii = 5 else ii = 6 endif endif 下一桁も取出したいのですがもっと簡単に書く方法はないですか?
658 名前:名無しさん@お腹いっぱい。 [2009/10/17(土) 17:03:23 ID:Xw3XxMCcP] ここまで何をしたいのか全く理解できないレスは初めてだ
659 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 17:32:45 ID:4eI9AiXq0] >>657 select L case 1 to 10 i = 1 ii = 1 case 11 to 20 i = 2 ii = 4 case 41 to 50 i = 1 ii = 2 case 51 to 60 i = 2 ii = 5 case 81 to 90 i = 1 ii = 3 case 91 to 100 i = 2 ii = 6 default selend 「to」って使えたっけ??
660 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 17:58:54 ID:II0xKVE40] 使えないだろ。 下一桁の意味がわからん
661 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 18:30:52 ID:GlNkzRYu0] すいません説明不足で 1〜200までの場所がありまして、まず1〜200は8つのブロックに分かれてます。 1つ目のブロックは、1〜10 41〜50 81〜90 2つ目のブロックは、11〜20 51〜60 91〜100 3つ目のブロックは、21〜30 61〜70 101〜110 4つ目のブロックは、31〜40 71〜80 111〜120 5つ目のブロックは、121〜130 161〜170 6つ目のブロックは、131〜140 171〜180 7つ目のブロックは、141〜150 181〜190 8つ目のブロックは、151〜160 191〜200 1つ目のブロックの1行目は1〜10 2行目は41〜50 3行目は81〜90 4つ目まで同じ 5つ目のブロックからは1行目は121〜130 2行目は161〜170 8つ目まで同じ これを指定した番号の場所に行きたいのですが簡略化して書く方法が思いつかなかったので質問させていただきました。
662 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 19:15:57 ID:2kTk15QU0] すみません質問です 友人から拡張子.uwsのスクリプトをもらいましたがUWSCのお試し期限が切れてしまいました そこでAutoItで使えるようにしたいのですが僕にはこういった知識が全くありません その友人に変換してもらえるか聞いたんですが 「UWSC以外は使ったことないからワカンネ」と言われてしまいました もしここの部分をこうするだけだよ、 ってレベルの話であればどうか教えてください
663 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 19:25:26 ID:ra182OK/0] >>662 UWSCのフリー版使えば期限なんてないよ www.uwsc.info/uwsc45c1.zip
664 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 19:35:41 ID:a5Xst/mw0] >>661 IFB L <= 120 hoge = (L-1) MOD 40 i = INT(hoge / 10) + 1 ii = INT((L-1) / 40) + 1 iii = L MOD 10 ELSEIF L <= 200 hoge = ((L- 120) -1) MOD 40 i = INT(hoge / 10) + 5 ii = INT((L-1) / 40) + 1 iii = L MOD 10 ENDIF こんな感じじゃない? 適当に書いたからどこか1とかずれてると思うけど、 適当にいじれば使えると思うよ。 MODは割った剰りを求める演算な。
665 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 19:54:20 ID:D58+E+1n0] >>657 の条件だとiiの条件が特殊じゃね? 俺ならこんなの配列イメージで出すようにするわ L = 11 DIM i,ii DIM index[7][2] =_ 0, 4, 8,_ 1, 5, 9,_ 2, 6,10,_ 3, 7,11,_ 12,16,99,_ 13,17,99,_ 14,18,99,_ 15,19,99 DIM value_ii[7][2] =_ 1, 2, 3,_ 4, 5, 6,_ 7, 8, 9,_ 10,11,12,_ 13,14,99,_ 15,16,99,_ 17,18,99,_ 19,20,99 for block = 0 to 7 for column = 0 to 2 ifb int((L-1)/10) = index[block][column] then i = block + 1 ii = value_ii[block][column] MSGBOX( "i=" + i + ", ii=" + ii ) break 2 endif next next
666 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 20:03:08 ID:2kTk15QU0] >>663 ありがとうございます フリー版があったんですね 助かりました
667 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 20:36:20 ID:GlNkzRYu0] L = 入力された数字1〜200 ifb (L > 0 and L < 11) or (L > 40 and L < 51) or (L > 80 and L < 91) then //8つのうちの1つ目のブロック i = 1 // 8/1 iはブロックの場所の変数 ifb (L > 0 and L < 11) then ii = 1 // 1〜10までだから1行目 iiは行数の変数 ifb L = 1 iii=1 // Lは1番目 iiiは何番目かを表す変数 これをズラズラ200通り書いてたのでうまく求める書き方がなのかと思いまして
668 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 21:23:35 ID:pJnpQWGB0] >>667 どうせ200通り書くんなら200通りの配列にしろよ。 そしたらコーディングは次の1行で済むからバグが混入しなくていいだろ。 > 結果 = データ[L] > const ブロック = 0 > const 行 = 1 > const 列 = 2 > dim 結果[2] > 結果 = データ[L] > ブロック番号 = 結果[ブロック] > 行番号 = 結果[行] > 列番号 = 結果[列] データは↓のように1〜200を定義する dim データ[200][2] = _ // ブロック番号、行、列 0, 0, 0, _ // ダミーデータ 1, 1, 1, _ // L = 1 2, 1, 1, _ // L = 11 3, 1, 1, _ // L = 21 ルール化してデータを折りたたむ場合でも、一旦表にしてみれば整理しやすい。
669 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 21:27:50 ID:NwjYpu/W0] 下一桁の意味がわからん 普通に考えてL=164なら4をさすと思う iはブロックらしいが、iiはなになのかわからんってことで DIM minv[20]= 1,11,21,31,41,51,61,71,81, 91,101,111,121,131,141,151,161,171,181,191,-999 DIM maxv[20]=10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,-999 DIM tou[20]= 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,-999 DIM blk[20]= 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 8, 5, 6, 7, 8,-999 L=INPUT("数字を入力してください",1) L=INT(L) ifb L<0 or L>200 then FUKIDASI ("範囲外なので処理できません") SLEEP(500) EXITEXIT endif
670 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 21:28:31 ID:NwjYpu/W0] counter=0 while minv[counter]<>-999 if minv[counter]<=L and L<=maxv[counter] then break counter=counter+1 wend i=blk[counter] ifb minv[counter]<>-999 then FUKIDASI(tou[counter]+"&"+blk[counter]) WHILE GETKEYSTATE(VK_MBUTTON)=FALSE WEND WHILE GETKEYSTATE(VK_MBUTTON)=TRUE WEND endif EXITEXIT
671 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 22:00:44 ID:GlNkzRYu0] 沢山の答えありがとうございます 自分はまだ初心者なので皆さんの答えを今すぐに理解できないので 1つずつ理解していきます。
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 22:30:46 ID:GlNkzRYu0] >>669 95は何ブロック目の何行の何番目かを出したくて661みたいなkとを書いたのですが 簡潔にまとめるために質問しました。 □は縦1列で1ブロック 1〜10 11〜20 21〜30 31〜40 1行 □ □ □ □ 41〜50 51〜60 61〜70 71〜80 2行 □ □ □ □ 81〜90 91〜100 101〜110 111〜120 3行 □ □ □ □ 121〜130 131〜140 141〜150 151〜160 4行 □ □ □ □ 161〜170 171〜180 181〜190 191〜200 5行 □ □ □ □
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 09:11:39 ID:t51s/utc0] 661とは全く違うじゃねーかw 説明が下手糞だから余計な混乱を招いてるんじゃないのかよ。 下手に簡略化しようと考えずに 実際にやってることを書けよw
674 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 11:27:49 ID:0ZmdNhwk0] >>673 最初そう思ったがどうやらLの数値からブロックの番号と行の番号の2種類を求めたいらしい ただ、あとは>>669 のDIM tou[20]=をその行の番号に対応するところを変えて後ろにii=tou[counter] をつければ差し替えるだけで終わるから、後は質問者がLvUPしてこれをするだけ
675 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 13:43:28 ID:fLNvafB60] >>669 はminとmaxを別々の配列にしてるけど、それはミスが出やすいコーディングだから駄目だよ。 ひとつのオブジェクトにminとmaxがあるのはいいんだけどね。 □部分に、 L に9を足して10で割った数字を入れてみる。 さらに4を足して4で割った数字(小数点は切捨て) 【↓】 1〜10 11〜20 21〜30 31〜40 1行 1 2 3 4 1 41〜50 51〜60 61〜70 71〜80 2行 5 6 7 8 2 81〜90 91〜100 101〜110 111〜120 3行 9 10 11 12 3 121〜130 131〜140 141〜150 151〜160 4行 13 14 15 16 4 161〜170 171〜180 181〜190 191〜200 5行 17 18 19 20 5 1 2 3 4 【←】 ((□-1) mod 4) + 1 の計算結果 >>664 が既に書いてくれてるのを分解した図だな。 Excelとかで計算式書いてみたらすぐ作れる表なんだけどなあ。 しかも今どき表計算とか無料で使えるのに知らないのかなあ?
676 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 18:29:56 ID:/4/WenoU0] ヘルプも見たけど分からなかったので質問 batファイルなんかだと「go to ○○」と書くと○○の部分に処理をジャンプさせられるけど 例えば EXEC("C:\Program Files\lolifox\lolifox.exe") loliid = GETID("lolifox", "MozillaUIWindowClass", -1) CTRLWIN(loliid, MIN) loli = STATUS(loliid, ST_ICON) ifb loli = 0 then CTRLWIN(loliid, MIN) EXEC("D:\ソフト\Jane Style\Jane2ch.exe") else EXEC("D:\ソフト\Jane Style\Jane2ch.exe") endif こんな感じで書いたとして(本当はJaneの後も他の起動がズラズラ) lolifoxは最小化したあと何故か勝手に最大化されてしまう場合があるから こういう風にしてるんだけど、それだと同じ処理を両方に書いて長く見づらくなっちゃうため thenの方で最小化した後にelseの方に飛ばす方法ってないのかな?
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 18:48:35 ID:fLNvafB60] >>676 loliの中身を見る必要はない これでおk > STATUS(loliid, ST_ICON) > CTRLWIN(loliid, MIN) > EXEC("D:\ソフト\Jane Style\Jane2ch.exe") もしくは、if分が終わった後に書けばおk > if loli = 0 then CTRLWIN(loliid, MIN) > EXEC("D:\ソフト\Jane Style\Jane2ch.exe")