1 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 07:57:49 ID:+HI9MOeK0] Windowsを自動化させるツールUWSC。 ttp://www.h7.dion.ne.jp/~umiumi/ uwsc使いのみなさま、マターリ己のスクリプトを晒しましょ。 前スレ 自動化ツールuwsc使いよ集まれ2 pc11.2ch.net/test/read.cgi/software/1156416884/
684 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 01:09:03 ID:yeJt08sV0] >>682 >>661 これでできたよ Y = 0 Y_Size = 1 FileName = "乳首.bmp" WHILE CHKIMG( FileName, 0, 0, Y, 1023, 767) print G_IMG_X + "," + G_IMG_Y Y = G_IMG_Y + 1 WHILE CHKIMG( FileName, 0, G_IMG_X + 1, G_IMG_Y, 1023, G_IMG_Y + Y_Size - 1) print G_IMG_X + "," + G_IMG_Y WEND WEND >>661 なんでわざわざ配列使うの? printを他の処理に変えばいいんじゃない?
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 09:05:43 ID:KoQ4Gi/C0] 結論 乳首の数は2個、位置は乳輪の真ん中
686 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 10:05:27 ID:KoQ4Gi/C0] という冗談はおいて置いて、 >>666 の言う通り、PRIINTは便宜上だろう。 最終的に配列で欲しいんじゃないか? 散布図画像のプロットデータを読み込んで何やら高度な計算、とかだったら99個じゃ足りないだろうな。 1. 数と位置を調べ、ファイルに書き出す。 2. ファイルを一旦閉じる。 3. ファイルを開く。 4. 配列宣言 DIM X_Zahyo[FGET(ID,-1)] DIM Y_Zahyo[FGET(ID,-1)] 5. 配列に値をほうり込む。 これで大丈夫かな? 試してないけど。
687 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:37:52 ID:NIEdi7RU0] おまいらがあんまり楽しそうに語ってるから久々に触ってみようと思ってヘルプ読んでみたけど ChkImgの挙動ちゃんと書いてないんだなw 二箇所引っかかるような画像用意して MsgBox(ChkImg(fname) + "<#CR>" + "x: " + G_IMG_X + "<#CR>" + "y: " + G_IMG_Y) MsgBox(ChkImg(fname) + "<#CR>" + "x: " + G_IMG_X + "<#CR>" + "y: " + G_IMG_Y) ってやったらこの二行目ので二箇所目の座標もちゃんと検出したんだけど While ChkImg(fname)
688 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:40:31 ID:NIEdi7RU0] 途中で送信しちゃった 座標指定も使わず While ChkImg(fname) //G_IMG_XとG_IMG_Yの出力 Wend だけでいいんじゃないのか? って思ったけどどうなんだろ
689 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:50:19 ID:KoQ4Gi/C0] 一番左上の画像が延々と検出されるだけ。
690 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:57:26 ID:NIEdi7RU0] え…俺二箇所ともWhileの方で引っかかるんだけど… 俺も無限ループになるのかなと思って>>687 で試した結果 引数省略した時のデフォの値に前回取得したG_IMG_X,G_IMG_Yの結果を勝手にずらした座標が使われるって解釈して ほんでもって>>688 でちゃんと2箇所無限ループもせずに取得できたんだけど…
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:05:53 ID:KoQ4Gi/C0] 試したけどやはり一つだけを延々と検出するだけなんだが?
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:06:49 ID:NIEdi7RU0] あ、ごめんごめん この手の用途はPC放置してずっと監視させるのが目的だから 前回の値を起点にしたら長時間の画面監視なんてできないよね 忘れてちょうだい
693 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:08:35 ID:KoQ4Gi/C0] >>692 試したらなったってのはどういうミスだったの?
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:08:46 ID:NIEdi7RU0] リロードしてなかった… >>691 なんでなのかな uwscのバージョンとかで挙動が違うんかな
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:11:33 ID:KoQ4Gi/C0] >>694 >>692 を読むと結局無理だったというふうに読めたんだが、あくまで>>688 はOKなの?
696 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:15:24 ID:NIEdi7RU0] すまん久々に触ってるもんだから自分でも把握できないわ 混乱させるだけだからひっこむよ ごめんよ(´・ω・`)
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:38:00 ID:NH/SArFRO] 走査しても人間が数値を読み違える事が在るからな。 MMVとSLEEP入れて、どこを検知したか分かり易くすると良いよ。
698 名前:658 mailto:sage [2009/01/07(水) 20:28:09 ID:SaObSndz0] みなさんどうもありがとうございます。 連想配列という言葉は初めて聞いたので調べてみたいと思います。
699 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 20:43:38 ID:UInQEAud0] ReSize使えよ
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 11:31:39 ID:Ou47XQg10] UWSCを再生させるとPCで他の作業ができなくなり困ってます。 又、窓別に違うUWSCを再生することはできますか? この腐れに教えて下さい・・・
701 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 11:38:17 ID:9uVCk7/U0] >>700 よく意味が分かりません スクリプトを窓別に書けばいいだけじゃないんですか?
702 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:07:03 ID:Ou47XQg10] ALT+F2キー(再生)押した後PCの操作がすべて取られるので他の作業が できないのです・・・
703 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:12:14 ID:p1dhSGKj0] 色々言いたいことはあるがやっかいなことになりそうなので、一言だけ。 諦めてください
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:14:03 ID:oR+RJomT0] 操作を取られないように書けばいいだけ
705 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:16:21 ID:kg5KLxKp0] >>702 IEを操作するのならCOM使うとフォーカス奪われないよ Windowsフォームを操作するのなら諦めて
706 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:31:46 ID:gYr5hc3Z0] やったことはないのが 仮想PC(VMWare等)上でuwscを動かせば 自分は普通に作業できるのでは?
707 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 18:37:21 ID:U0BD8E1t0] >>700 仮想マシンを使うのが簡単。 または、一つ一つの操作を、マウス・キーボードからWindowsAPIだとかを使うように全部変更すれば可能。 だだし、それ調べるのにソートー時間かかる。 WindowsAPIの知識が無いならやめとくべき。
708 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 18:51:10 ID:oR+RJomT0] MOUSEORGすりゃいいだけだろw 何で仮想マシンになるんだwww
709 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:00:58 ID:gYr5hc3Z0] >>708 それってさー 例えば、マウスポインタの位置を操作するスクリプトを動かしている最中で 自分はエクセルとかで同じくマウス使っている時に マウスカーソルの位置がスクリプトによりどこかに飛ばされて作業の邪魔にならないの?
710 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:33:46 ID:kmMJQUqm0] そうならないように指定すればいい。ってのに そうならないの?って逆質問するのは馬鹿に見えるからやめたほうがいい
711 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:39:43 ID:gYr5hc3Z0] >>710 馬鹿か お前はw 「そうならないように」するための 具体的な >>706 や>>707 の意見が出たんだろ? そもそも >>700 の質問自体が「そうならないように」する方法を問う質問だろうがw お前、頭が不自由な子か?w
712 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:44:24 ID:gYr5hc3Z0] >>710 >>700の用件を満たしていない様に思える >>708 に対して 本当に用件を満たしているか問うことが何故馬鹿なんだ?w お前は頭大丈夫か?w
713 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:48:21 ID:LxZPgn7U0] 必死だなww
714 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:48:51 ID:oR+RJomT0] >>709 ならないよ
715 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 21:11:26 ID:/4uiTXok0] 以下頭の悪さをひけらかすID:gYr5hc3Z0はスルーでどうぞ
716 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 21:25:56 ID:5RFVaUTS0] >>714 アプリに直接では送る相手が変わってしまって期待通りの動作しなかったりする。 それだったら直接API使った方がマシという。
717 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 23:38:46 ID:0l2ZHHwf0] 送る相手が変わる??? 送り先指定してんのにどうやったら変わるんだ?
718 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 23:56:02 ID:wtsRJKdD0] 716は昨日のID:gYr5hc3Z0だろw こいつは妄想で適当なことしか書き込まないからスルーしとけ
719 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/12(月) 03:23:39 ID:A1VFSCeY0] >>717 相手が変わるって言うか アプリケーションに送るのとクライアントに送るのとで変わってくるだろ? ちがうのかな。 アプリケーションに直接送るっていうのは、受け側がWM_CHARを処理しないといけないんだろ? ゲームのようなやつはそんなの見てないし。
720 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/12(月) 08:10:08 ID:fTsgyzyK0] >>719 そんな妄想はいいから具体的にスクリプトあげてみてくれよ
721 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:43:09 ID:kqB6nrSU0] // 投稿関数はtest15.uwsのもの。スレ覧取得ループはv1をさらに改造。 // キーワードに合致するものを優先的に検索・投稿し、そのほかは余裕があれば2ゲットする。 // 2008/7/4 // スレ覧はSubject.txtをGetして使うように変更。 // それに伴い304エラーのために間隔を開ける必要がなくなり、鯖への負荷も減らせる。 // 2008/07/14 OpenJaneでnewsplusを開いていてsageチェックがはずされていれば投稿し、待ち状態に入る。 // 2008/11/02 FOXの板を回避 // 2008/11/25 3回目の規制で、「二日までなら見逃し」という依頼者からの発言を受けて、 // 日付変更をチェックして自動終了するように変更。 def_dll GetWindow(hWnd,long):long:user32.dll Public GW_ENABLEDPOPUP = 6 // ポップアップウィンドウ board = "ニュース速報+" //Jane本体のID取得 JBID = GetID("", "TMainWnd") Public ProblemName = "FOX★", "番犬★" ///////// // 定義 STOPFORM(true) メモ帳 = Exec("notepad.exe") 板アドレス="mamono.2ch.net/newsplus/ " TEXTBLOCK text24 正論が通らない狂った日本 ttp://ryotaroneko.ti-da.net/e2186226.html // 2ch規制 ENDTEXTBLOCK Dim TitleWord = "更迭" // text1の投稿対象とするスレッドタイトル text0 = text2 // そのほかのスレッドへの投稿内容 text = text0 // 投稿テキストにセット
722 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:44:13 ID:kqB6nrSU0] Dim oHttp // 通信オブジェクト conturl = "mamono.2ch.net/test/read.cgi/newsplus/ " // スレッド保存場所 url=板アドレス + "subject.txt" // 新着監視ページ PUBLIC errortitles[]="サーバーが見つかりません", _ "ERROR", _ "ERROR", _ "error", _ "" DIM LastThreadNo=0 // スレ番を保存し、2重の書き込み、過去スレへの書き込みを回避する。 ///////// // 処理 // 通信オブジェクト接続 oHttp = CreateOLEObj("MSXML2.XMLHTTP") // 投稿用ブラウザを起動 IE = CreateOLEObj("InternetExplorer.Application") IE.visible = True ID = HNDToID(IE.HWND) SendSTR( メモ帳, TitleWord + "を処理します。<#CR>", 1, false, false ) LastModified = "Thu, 01 Jun 1970 00:00:00 GMT" LastThreadNo = 0 sleeptime = 9 Gettime() StartDay = G_TIME_DD while 1 sleep(sleeptime) Gettime() SendSTR( メモ帳, G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2 + "." + G_TIME_ZZ2 , 1, false, false ) ifb StartDay <> G_TIME_DD then SendSTR( メモ帳, "<#BR>日付変更により終了", 1, false, false ) exit endif
723 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:45:08 ID:kqB6nrSU0] // Webページ読み込み COM_ERR_IGN //COMエラー無視 SendSTR( メモ帳, " ", 1, false, false ) oHttp.Open("GET", url, True ) SendSTR( メモ帳, ".", 1, false, false ) oHttp.setRequestHeader("If-Modified-Since", LastModified); SendSTR( メモ帳, ".", 1, false, false ) oHttp.Send("") SendSTR( メモ帳, ".", 1, false, false ) ifb 200 = oHttp.status Then SendSTR( メモ帳, ";", 1, false, false ) sleeptime = 3 else SendSTR( メモ帳, ":", 1, false, false ) sleeptime = sleeptime + 10 SendSTR( メモ帳, " " + oHttp.status + "<#CR>", 1, false, false ) continue endif SendSTR( メモ帳, ".", 1, false, false ) LastModified = oHttp.getResponseHeader("Last-Modified") SendSTR( メモ帳, ".", 1, false, false ) ifb COM_ERR_FLG SendSTR( メモ帳, ".", 1, false, false ) SendSTR( メモ帳, "COM ERROR<#CR>", 1, false, false ) continue endif SendSTR( メモ帳, ".", 1, false, false ) COM_ERR_RET //エラー処理復帰 SendSTR( メモ帳, " stat:" + oHttp.status + "<#CR>" , 1, false, false ) str = DECODE(oHttp.responseBody, CODE_BYTEARRAY)
724 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:48:23 ID:kqB6nrSU0] // IEが終了された場合は連動して終了 if !IDToHND(ID) Then break // スレッド一覧を処理 ThreadNo = 0 for TCnt = 1 to 50 str1 = token( "<#CR>", str, true, false ) Ifb 1 < Pos("(1)", str1) Then SendSTR( メモ帳, str1 + "<#CR>", 1, false, false ) // スレ番取得 str2 = CopyB( str1, 1, 10 ) ThreadNo = Val(str2, -1) if -1 = ThreadNo Then continue 2 ////////////////////////////////////// // 特定のスレッドにのみAAを投稿する。 Ifb Pos(TitleWord, str1) Then text = text1 break Else // デフォルトテキストをセット text = text0 // 処理しなかったスレ番の保存 //LatestNewList = ThreadNo Endif endif next /////////////////////////////////////////////// // 未処理の新規スレが残っている場合、投稿する。 // ループの外でやる理由は、一番古いスレから処理するため。 Ifb ThreadNo Then
725 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:49:05 ID:kqB6nrSU0] // 投稿処理 ret = Cont( IE, conturl, ThreadNo, text, メモ帳) // text = text0 Gettime() TS = G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2 + "." + G_TIME_ZZ2 ifb ret Then LastThreadNo = ThreadNo SendSTR( メモ帳, "●good " + TS + "<#CR>", 1, false, false ) sleeptime = 130 else SendSTR( メモ帳, "▲err " + TS + "<#CR>", 1, false, false ) sleeptime = 5 endif Else // Janeの書き込み準備ができていれば投稿 Ifb -1 <> JBID Then //JCID = GetID("", "TWriteForm") JCID = GetChldID(JBID) Ifb JCID Then Ifb 0 = ChkBtn(JCID, "sage") Then GetItem( JCID, ITM_ACCCLK, 1) Ifb Pos(board, ALL_ITEM_LIST[10]) Then Ifb SaveJane( JBID, JCID ) Then SendSTR( メモ帳, "〓OpenJaneで投稿" + "<#CR>", 1, false, false ) sleeptime = 130 else SendSTR( メモ帳, "〓投稿失敗" + "<#CR>", 1, false, false ) endif Endif Endif Endif Endif Endif wend
726 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:53:06 ID:kqB6nrSU0] >>721-725 関数化した部分があるけど長すぎたので省略 Function GetChldID( PID, CID = 0 ) // 投稿処理 //////////////////// // 戻り値: TRUE:正常、FALSE:エラー // 引数: // IE :IEオブジェクト // conturl :スレの場所 // TNo :スレ番 // text :投稿テキスト // メモ帳=0 :メモ帳ID // メモ帳IDはデバッグ用 Function Cont( Var IE, conturl, TNo, text, メモ帳=0) ////////////////////////////////////////////////////// // 投稿ページを開く // 引数:IEオブジェクト、アドレス、スレッド番号、投稿テキスト、試行回数、メモ帳ID // 成功すればtrue、不完全なページならfalseを返す。 Function OpenContPage( Var IE, conturl, TNo, text, LTimes=3, メモ帳=0) ////////////////////////////////////////////////////// // OpenJaneの投稿処理をする。 // 開いているスレと投稿先が違うと出る警告画面の処理のため関数化。 // _分で処理できなければFalseを返す // ID:親ウィンドウのID // IDD:Web ページの保存ダイアログID // OpenJaneはウィンドウを閉じても非表示で存在している。 // そして投稿窓もダイアログでなく独自ウィンドウクラス。 // なので、制御がややこしい。 // 投稿窓が非表示になるとき、別の子窓が取得できるので、・・・ // 1000レスついてたり書き込みできない場合延々と繰り返してしまう・・ Function SaveJane( ID, IDD, メモ帳=0 )
727 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 02:41:28 ID:OFjJkjc60] 2getに加担して鯖の負荷を上げるのは嫌だねぇ。 こういうのだったら使い勝手とか言わないでセカンドマシンでぶん回しておけよ。 …何で2get…ブログ先の人も首を傾げてるんだがなぁ。
728 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 15:27:40 ID:xOT5hdBj0] uwscで単純な作業複数を、それぞれひとつずつのキーに割り当てることってできますか? 記録と再生でひとつの動作は行えるのですが、 複数のマクロや○+○じゃなくひとつのキーで実行は出来ないのかなと。
729 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 15:34:16 ID:ENz9kV0Y0] できるよ
730 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 16:11:48 ID:rt4k6YB30] >>728 出来るけど、ショートカットKey絡みならAHKの方が楽だと思う。
731 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 16:16:45 ID:dFd2Qpc10] 私はAHKでuwscファイルを呼び出すけど
732 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 16:21:26 ID:rt4k6YB30] >>731 お、同志w 自分も行数あるスクリプトはすぐに面倒になってUWSCで書いてるわ…
733 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 18:00:21 ID:5VRwikzI0] ある株ソフトにアラーム機能がないので UWSCで出来たらいいなと思いましたが どうしたらいいのか分かりません。 そのソフトはシグナルが出たときに 一番上の行に時間やら銘柄やら株価などが更新されていきます。 上昇のシグナルは緑背景に白文字、 下降のシグナルは赤背景に白文字となっており 上昇の緑の時にだけアラームを鳴らしたくて WHILE TRUE IFB PEEKCOLOR(887 , 241) = $2F6B55 THEN SOUND("C:\WINDOWS\Media\notify.wav") sleep(2) else sleep(1) ENDIF WEND 分からないなりにやってみたけど これじゃあ赤いシグナルから緑に変わったときにしか 役に立たない・・・ ボクにも書けそうな簡単なスクリプトあれば教えてください。
734 名前:733 mailto:sage [2009/01/14(水) 21:00:55 ID:5VRwikzI0] 追記 とにかくソフトになにか変化があったらアラームを 鳴らさせるように出来ないでしょうか?
735 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 22:46:19 ID:INWUQKt00] そこまで聞くならソフト名ぐらい晒せ
736 名前:733 mailto:sage [2009/01/14(水) 22:51:25 ID:5VRwikzI0] >>735 大人買検知機というソフトです。 www.vector.co.jp/soft/winnt/business/se359706.html
737 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 22:55:16 ID:hOB1qOFr0] いっこのループと、いっこの条件分岐が出来てるから… 後は、ほしい数だけ条件分岐を作れば出来るよ。
738 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 22:59:56 ID:rt4k6YB30] >>734 ttp://ochoja.web.fc2.com/uwsct/0610uwsct.html#MakingSupport UWSCコードの断片生成器 を使わせて貰って一番都合のよいもの(status,str,etc)選んでスクリプト書けば良い。
739 名前:733 mailto:sage [2009/01/14(水) 23:34:18 ID:5VRwikzI0] >>737 どういう条件分岐作ればいいのでしょう? peekcolorだけでやるのは無理ですよねえ? >>738 ***** getstr() sendstr() ******************** getstr(id,0,STR_STATIC)="大人買検知機" getstr(id,0,STR_ACC_STATIC)="時刻" getstr(id,1,STR_ACC_STATIC)="時刻" getstr(id,2,STR_ACC_STATIC)="銘柄" getstr(id,3,STR_ACC_STATIC)="約定値" getstr(id,4,STR_ACC_STATIC)="出来高" ちょっとやってみましたが getstrで更新される文字とれるのでしょうか? むずかしい〜
740 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 23:39:21 ID:3rpO1RzOP] >>733 えーと監視する項目の色が緑に変わったときにアラームを鳴らしたいんだよね? ということは、前回チェックした時の色と今回の色を比較しなければダメだよ。 色は何種類あるの? 赤と緑以外に通常の表示色はある? それと気になった点を言うと、何秒おきに監視するの? 1、2秒単位で監視する アルゴリズムになっているようだけど無駄にマシンパワーを食うんじゃない? 30秒おきとか1分おきとか5分おきとかだよね? アルゴリズムを書くけど スクリプトにする時は文法と変数規約に則して変えてね。 ※←は代入の意味ね。 前回の色 ← 通常色 今回の色 ← 通常色 WHILE TRUE 今回の色 ← 今回の色を取得して変数に代入 IFB 前回の色と今回の色が違う AND 今回の色は緑 アラームを鳴らす ENDIF 前回の色 ← 今回の色 次回チェックまでXX秒スリープ WEND
741 名前:733 mailto:sage [2009/01/15(木) 00:55:00 ID:tW7kX9XU0] >>740 緑背景から緑背景の場合もあるから 文字の入る場所も含めて取得する地点を複数にして 判断すればいいのかな 比較ののところがどう記述すればいいのかまったく分かりません。 今のところ1秒でやっても負荷たいしてかからないけど 複数地点にして比較すると相当負荷かかってくるカモですね。 その場合はもうちょっと間隔あけるようにします。
742 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/17(土) 11:18:45 ID:iMN83Hym0] // === 前回の色 = "" WHILE TRUE WHILE TRUE 今回の色 = (PEEKCOLOR(887 , 241) IF !(今回の色 = $白ーい色) THEN BREAK // 白以外ならループ抜ける // !で真偽反転だっけかな; 今回の色 = (PEEKCOLOR(111 , 222) IF !(今回の色 = $白ーい色) THEN BREAK // 白以外・・ 今回の色 = (PEEKCOLOR(333 , 444) IF !(今回の色 = $白ーい色) THEN BREAK // 白以外・・ WEND IFB !(今回の色 = 前回の色) THEN // 同じ色ではない場合の処理 IF 今回の色 = $2F6B55 THEN SOUND("C:\WINDOWS\Media\notify.wav") // グリーンなら IF 今回の色 = $レッドオ THEN SOUND("C:\WINDOWS\Media\レッドオ.wav") // レッドなら ENDIF 前回の色 = 今回の色 sleep(1) WEND // === 泥くせ;;;
743 名前:733 mailto:sage [2009/01/17(土) 20:56:43 ID:3elNHqC+0] 分からないなりに理解しようとしましたが 色を取得するってところが全然分からない。 今回の色とか前回の色oldcolor newcolor?
744 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/17(土) 23:58:47 ID:70fVoJI80] >>743 ひょっとして変数が判ってない? いずれにしろ、UBTrek使ってpeekcolorを検索すれば沢山ヒットすると思う。
745 名前:733 mailto:sage [2009/01/18(日) 00:49:03 ID:V1b5lGQF0] >>744 単純なpeekcolorの記述は何個か出てきましたが 前回の色と今回の色を比較するような例が見つかりませんでした。
746 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 01:13:45 ID:WQ5z9x9T0] >>745 dim color=peekcolor(100,200) while true newcolor=peekcolor(100,200) ifb !color=newcolor msgbox("変わった") color=newcolor endif sleep(0.5) wend 無限ループなので適当にBreak。 Mouseorg(id,2)使ってwindow指定した方がよいかも。 RGBが少しでも変化すれば反応してしまうので、RGBに分解した方がよいかも。
747 名前:733 mailto:sage [2009/01/18(日) 01:13:47 ID:V1b5lGQF0] 緑、赤とか関係なく ある一点の色変化があったときに アラームを鳴らす具体的なスクリプト教えていただけませんか なんとかそこから発展させてやっていきたいと思いますので。
748 名前:733 mailto:sage [2009/01/18(日) 01:18:03 ID:V1b5lGQF0] >>746 ありがとうございます でもまったく反応しないですね。 このままじゃダメなんでしょうか?
749 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 01:21:04 ID:aouJYoBm0] >>748 プログラムの基礎から学び直したほうがいいよ 君にはまだ早い
750 名前:733 mailto:sage [2009/01/18(日) 01:29:38 ID:V1b5lGQF0] あ、反応しましたが なかなか反応しない感じです。
751 名前:名無しさん@お腹いっぱい。 [2009/01/18(日) 03:18:31 ID:lcf3XQYB0] 皆さんのUWSCを使用する用途は大体何ですか? 自分のPC環境の最適化以外にUWSCというのは マスターしたとしても他に例えば何に役立つのでしょうか? 例:仕事面 WEB製作面 etc マジ質問です
752 名前:WTTEkBtZS mailto:xthaterends@yahoo.com [2009/01/18(日) 03:22:58 ID:24LUwixi0] rybeiddery.awardspace.com/dominos-sub.html dominos sub maridoctoge.awardspace.com/ruff-ryders-columbus.html ruff ryders columbus caross.awardspace.com/darren-nadel.html darren nadel maridoctoge.awardspace.com/ruff-ryders-soccer.html ruff ryders soccer rybeiddery.awardspace.com/dominos-pizza-nutrition.html dominos pizza nutrition therybaive.awardspace.com/lenora-jubilee.html lenora jubilee caross.awardspace.com/nadel-jewish.html nadel jewish maridoctoge.awardspace.com/ruff-ryders-layout.html ruff ryders layout therybaive.awardspace.com/jubilee-history.html jubilee history deadingrain.awardspace.com/facbook.html facbook therybaive.awardspace.com/red-cedar-jubilee.html red cedar jubilee caross.awardspace.com/natasha-nadel.html natasha nadel rybeiddery.awardspace.com/pizza-hut-ottawa.html pizza hut ottawa caross.awardspace.com/nadel-sarasota.html nadel sarasota maridoctoge.awardspace.com/bay-ruff-ryders.html bay ruff ryders maridoctoge.awardspace.com/left-ruff-ryders.html left ruff ryders caross.awardspace.com/nadel-artist.html nadel artist maridoctoge.awardspace.com/ruff-ryders-do.html ruff ryders do caross.awardspace.com/bernard-nadel.html bernard nadel caross.awardspace.com/fred-nadel.html fred nadel
753 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 05:43:43 ID:85r780v+0] プログラムの何の知識も無いものがuwsc用のスクリプトを 作れるぐらいにったと仮定した場合に、既存のプログラミング言語では何が一番 とっつき易いでしょうか?
754 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:09:29 ID:7B/GQZFQ0] >>751 仕事面:決まりきった作業、繰り返し作業の効率化 Web製作面:ランダムな操作で想定外行動のチェック漏れ発見(意味あるかは知らない セキュリティ面:泥棒が侵入してきたとき、クイックメニューから一発でメールで連絡できる。 ある程度相手が分かってる時便利。 DOSコマンドでメール送信するのを使ってたけど、コマンドラインにパスワード入れなきゃいけなかったので削除されてしまった。 うpろだのJpeg画像とか、一回ペイントで開いて上書き保存すると、サイズが半分近くになる場合が多い。 だからダウンロードした画像のリストをエクスプローラーで出して、ドラッグとCtrl+Sで更新を繰り返すのとか作った。 あとは、性能は低いけどパスワードクラックとか2Getスクリプトとか たくさんのID作りたいときに自動登録マクロとか。
755 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:10:50 ID:7B/GQZFQ0] STOPFORM(true) ID = Exec("C:\WINDOWS\system32\mspaint.exe") while ID = (-1) // 負荷が高いとID拾えないので sleep(0.1) ID = GetID("無題 - ペイント") wend Repeat; sleep(0.1); Until GetKeyState(VK_CONTROL) StartX = G_MOUSE_X StartY = G_MOUSE_Y sleep(1) While !GetKeyState(VK_CONTROL) CLKITEM( ID, "ファイル\新規", CLK_MENU ) sleep( 0.1 ) // Ctrlキーで中断・再開 ifb GetKeyState(VK_CONTROL) then sleep(5) Repeat; sleep(0.2); Until GetKeyState(VK_CONTROL) sleep(1) endif MMV( StartX, StartY ) BTN( LEFT, DOWN, StartX, StartY ) EndX = Status(ID, ST_X) + 30 EndY = Status(ID, ST_Y) + 10 MMV( EndX, EndY ) BTN( LEFT, UP, EndX, EndY ) If DlgWait(ID, EndX , EndY) Then Continue If Status(ID, ST_TITLE) = "無題 - ペイント" Then break CLKITEM( ID, "ファイル\上書き保存", CLK_MENU ) DlgWait(ID, EndX , EndY) wend CtrlWin(ID, Close) MsgBox("処理が終了しました。")
756 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:12:23 ID:7B/GQZFQ0] // マウス形状が通常の状態が1秒ほどあればタイムアウト。 // その間にダイアログが表示されるかどうかで戻り値が変わる。 // ダイアログが出た場合、OKをクリックする。 // True: 窓出現 False: 窓出ず Function DlgWait(ID, EndX , EndY) Result = False cnt = 0 while cnt < 6 sleep(0.1) MMV( EndX , EndY ) if MUSCUR() = CUR_ARROW Then cnt = cnt + 1 CID = GetChldID(ID) Ifb CID Then sleep(1) ClkItem(CID, "OK") Result = True break endif wend Fend // 子ウィンドウを探す // 戻り値:子ウィンドウのID。見つからなければ0。 // PID:親ウィンドウID // CID:子ウィンドウIDの候補 // GW_ENABLEDPOPUPはWindows2000以降のみでサポート // // GetWindowによる子ウィンドウ取得を、GetChldIDに使ってみたが、 // Zオーダーで手前のウィンドウを全て取得するので選別する必要がある。 // メニュー Class:"#32768" // ダイアログ Class:"#32770" // ツールチップ Class:"tooltips_class32"
757 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:17:23 ID:7B/GQZFQ0] Function GetChldID( PID, CID = 0 ) Ifb CID Then Ifb PID = STATUS( CID, ST_PARENT ) Then result = CID exit endif endif h = GetWindow( IDToHnd(PID), GW_ENABLEDPOPUP ) Ifb h Then S = Status(HndToID(h), ST_CLASS) Select S case "#32768" Result = 0 case "tooltips_class32" Result = 0 default Result = HndToID(h) Selend Else Result = 0 Endif Fend // エクスプローラーとペイントを使った、Jpeg画像ファイルダイエットスクリプト 2008/10/21 // 使用方法:対象ファイルをエクスプローラーで表示し、ペイントが起動したら、エクスプローラーの // ファイル一覧画面の一番下のファイルにマウスカーソルを合わせ、Ctrlキーをクリックする。 // Ctrlキーで中断。 ソースは >>755-757 ※エクスプローラーで、ファイルを詳細表示し、表示中ファイルの一番下のやつをクリックすると勝手に一つスクロールする。 これを使うと簡単に順番に処理することができる。スクロールしない場合は窓の高さを変更する。
758 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 06:25:01 ID:7B/GQZFQ0] >>753 VBSかな。これもスクリプト言語だけど・・・ 次はVB.netかな。 >>750 sleepが0.5秒だから反応は遅いね。
759 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 09:12:15 ID:BRvZ2wPi0] >>733 とりあえず、最低限 ttp://big.tm.land.to/handbook/uwsc.htm の内容くらいは自分で理解してから質問してくれぃ。
760 名前:733 mailto:sage [2009/01/18(日) 11:55:00 ID:V1b5lGQF0] >>759 一応読んでみたのですが 取得した値と新しく取った値を比較 さらに新しく取った値と比較みたいなことは どこにも書いてないのではないでしょうか? >>758 これって最初に取得した色と比較してMSGBOXが出るようになってますよね? ある地点の色を取得して現在の色と比較 さらに取得して新しく取得した色と比較と これを繰り返していきたいんです。
761 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 12:41:56 ID:O40sJXqz0] >>760 あなたは日本語言語でちゃんと処理を記述してるじゃないか。 あなたがセンテンスを分割して2行で書いたとおり uwscで2回比較処理をすればいいじゃないか。 これ以上はちょっと俺は関与することに面白みを見出せないわ 別にアルゴリズム的に難題というワケでもなし。 単なる知識不足のサポートは自助努力で補うといいよ。 …書いたものに駄目だしをされるだけなのは疲れるからね。 自分で書きなさい。想定がつけば駄目だしをしてあげるから。
762 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 12:45:57 ID:Xm1Xcjw/0] 自分でやろうって気が少しも感じられないもんな
763 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 13:15:24 ID:I+l/Qm3w0] >>760 自分のやりたいことがそっくりそのまま1から10まで書いてあるわけ無いだろ。 基本的なことは書いてあるんだからそれを理解したなら自分で作れ
764 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 15:31:11 ID:xwkw1ib70] >>754 真面目にレスありがとうございます UWSCで画像を対象にした条件分岐や色々作成した事はあるのですが (今ではすっかり文法忘れてます) ルーターにアクセスしてある設定を切り替える、等も UWSCで可能でしょうか? PHP等のスクリプトですると難しそうなので・・・
765 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 18:34:11 ID:o9RUmICX0] 可能です
766 名前:733 mailto:sage [2009/01/19(月) 15:25:59 ID:V9clvX4k0] みなさんのヒントを元になんとか完成しました。 またつまづいたらよろしくお願いします。
767 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 20:54:27 ID:qcrdC3FS0] ハハ お断りします (゚ω゚) _(_つ/ ̄ ̄ ̄/_ \/___/
768 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 00:58:10 ID:CMylmmuM0] [Ver4.5]
769 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 01:37:12 ID:0N/gC0gi0] 高レベル記録… なんというお手軽システム。
770 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 10:17:34 ID:Rt1OsezX0] うう、まだcall文で変数が使えんのか・・・
771 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 11:22:31 ID:mivuHGw40] IE_Subってもう入手できないの?
772 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 16:02:13 ID:6xnO4udb0] 一昨日からスクリプト組始めたんですが、どうにも配列変数の使い方(定義を含めて)がわからないので 詳しい方ご教示願います。 例えば変数ABC(x、y)に10*10=100個の変数にX軸Y軸共に1を格納していく場合、 BASICで書くと(うろ覚えですけど。) FOR Y=0 to 9 FOR X=0 to 9 ABC(X,Y)=1 X=X+1 NEXT X Y=Y+1 NEXT Y と、したい所をuwscでは最初にどう定義して配列変数を使っていけばいいですか? ヘルプ見たんですけど、イマイチイメージがつかめません お願いします。
773 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 16:09:22 ID:6xnO4udb0] あ、FOR〜NEXTってX=X+1とかいらないんだっけ?・・・orz
774 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 17:49:05 ID:LpFWL/UM0] どうって、 DIM ABC[10][10]って定義して > ABC(X,Y)=1 ABC[X][Y]=1 っていれてくだけでしょ…
775 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/20(火) 18:03:13 ID:6xnO4udb0] ああ、(x,y)じゃなくて[x,y]じゃないといけないのね・・・helpそういう意味かorz とんだ勘違いしてました。どうもです
776 名前:名無しさん@お腹いっぱい。 [2009/01/23(金) 08:39:26 ID:n0Gk8YsY0] 複数のスクリプトを連続で起動させるにはどうすればよいですか? 1のスクリプトがおわったら自動的に2をのスクリプト起動、2→3、3→4...という感じです。
777 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/23(金) 10:36:35 ID:E4bxtYk+0] >>776 各スクリプトの最後でcall。 もしくは exec("フルパス\uwsc.exe フルパス\hoge.uws") こちらは多重起動禁止だとダメかもしれん。
778 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/23(金) 12:19:14 ID:v1eHViqS0] >>776 1の頭で2,3,4をcallして 1でprocedureやFunctionを順に呼び出してもいいよ
779 名前:名無しさん@お腹いっぱい。 [2009/01/23(金) 12:30:51 ID:n0Gk8YsY0] >>777 >>778 ありがとうございました。とても参考になりました。
780 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/23(金) 14:55:53 ID:uyPNdhnC0] >>705 さんの >IEを操作するのならCOM使うとフォーカス奪われないよ これについて理解を深めたいのですがどのあたりを具具れ場良いのでしょうか?
781 名前:705 mailto:sage [2009/01/23(金) 20:41:40 ID:CkpYM4hA0] >>780 これに関してはググってないからわかんない ヘルプのじゃ難しい? スクリプト > スクリプト関数 > COMオブジェクト, IE操作関連 あとはページソースと睨めっこ
782 名前:780 mailto:sage [2009/01/23(金) 22:39:18 ID:aJMC8HA30] >>781 ありがとうございます。よく読んでみます。
783 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 16:24:29 ID:T53k2DPg0] かなり、基本的なことで恥ずかしいことなのですがどうしても解決できず… HAZU = GETID("www.*** ") ClkItem(HAZU, "事件", CLK_BTN) 上記では、webウィンドウ上のアイテムをくりっくすることができません。 エラーは起きないのですが。。 原因としてはなにが考えられるでしょうか?
784 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 16:35:10 ID:jFu+yqaK0] left clickではないだろうか。