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/
792 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/29(木) 07:56:16 ID:pwqTC0UdP] 画面の設定で色数が少ない方は減色されてて色は完全一致しなくなる。 また、グラフィックアクセラレーターでいろんな効果をつけたり色味を調整してても同じ。 CHKIMGは基本的に色は完全一致で見るみたいだから、形で見るオプション指定たらいいんじゃないかな。
793 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/29(木) 09:06:11 ID:GVyFpQ2YO] >>792 回答ありがとう 今は形で見る-1で認識させてるんですが うまく行かないんですよ
794 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/29(木) 09:08:38 ID:KyrcyRow0] 16bit と 24bit(32bit) ビットマップの比較をしてしまっているってこと?
795 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/29(木) 09:16:51 ID:GVyFpQ2YO] 仮に16bitと24bitで比較してても形で認識なら問題無いのでわ?
796 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/29(木) 09:31:10 ID:KyrcyRow0] >>795 座標を固定にしてて、タイトルバーの幅とかでズレてるとか
797 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/29(木) 09:56:58 ID:GVyFpQ2YO] >>796 座標も入れてないんです CHKIMG(画像名,-1) このように書いてますが他のPCで認識しません
798 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/04(水) 12:52:41 ID:8Qcx8WSzO] こんにちは初心者です^^ バックグラウンドで動かす方法を教えてください^^
799 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/04(水) 18:34:29 ID:R5YB3x7J0] CLKITEM使えばいいと思うよ これでなーんにも分からないなら死ねばいいと思う
800 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/04(水) 18:47:45 ID:v9XrPJ0LP] どう考えても釣りだから相手にするだけ無駄
801 名前:名無しさん@お腹いっぱい。 [2009/11/04(水) 19:34:50 ID:V7YiZudu0] SystemParametersInfo API を使って、レジストリの更新をWindowsに認識させたいのですけど (壁紙のレジストリを書き換えて、その場で表示が変わるように) WScript.Shellを使ってのレジストリの書き換えは出来ましたが、更新が出来ません。 調べてみると、SystemParametersInfo、を使えとありましたが どうにもDEF_DLLの書き方や、そのあとの呼び出し方がわかりません。 DEF_DLL SystemParametersInfoA(Int, Int, String, Int) :Int :User32 Const SPI_SETDESKWALLPAPER = 20 Const SPIF_SENDWININICHANGE = "&H2" Const SPIF_UPDATEINIFILE = "&H1" SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "c:\01.bmp", SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE) 今のところ上記ではさっぱり動かないです。 UWSCでのサンプル等があればお教え願えるとありがたいです。
802 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/04(水) 20:37:56 ID:0Yk32EP+P] >>801 ぐぐれよ Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long ... int じゃなくてLongな Const SPIF_SENDWININICHANGE = "&H2" これ文字列を定義しちゃってるから 数値ならこっち Const SPIF_SENDWININICHANGE = $2
803 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/05(木) 12:44:49 ID:S5x5Fprv0] >>802 ありがとうございました。動きました。 intの部分、Webで探すと(自分が参考にしたのはこれ、support.microsoft.com/kb/97142/ja DwordやらUINTやらいろいろあったんですけど…longにしました。 数値の定義がUWSCでの16進数指定をするべきってのがわかりました。 …当然ですけどVBAとかのサンプルコードを読むときには、VBAの作法を先に理解すべきでした… 判ったのが嬉しかったです。
804 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/05(木) 18:20:19 ID:pU0U6qNS0 BE:642499373-2BP(215)] ループするごとに+1して その数字を入力したいんですが、 どのような書き方になりますか?
805 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/05(木) 18:29:15 ID:Uto6/TER0] えっ
806 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/05(木) 18:43:52 ID:RpK58qujP] >>804 forで検索
807 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/05(木) 18:57:41 ID:pU0U6qNS0 BE:979047348-2BP(215)] >>806 ありがとうございました。
808 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/06(金) 13:25:11 ID:7O4EUde5P] トリップ検索しながら他の事を自動実行して どれくらいCPU使用率があがっているのか調べようと 「Ctrl」+「Alt」+「Dlete」でタスクマネージャ^をたちあげたら 「Alt」+「F2」でuwscが止まらないです 偶然、自動実行でタスクマネージャーをタスクバーに収納したら治った もしかしてバグ発見でしょうか? ちなみにCPU使用率は65%でした どなたか、うみうみ氏へのバグ報告よろしこ
809 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/06(金) 18:22:43 ID:lSBe5FmK0] 日本語でおk
810 名前:名無しさん@お腹いっぱい。 [2009/11/07(土) 16:08:26 ID:WRnsJZjs0] ところでuwscって何て読むんだ? ユーイック? ユイック? ウニスク? 絶対に読み間違わない方法として ユーダブリューエスシーと読む方法があるんだけど それは味気ないなからいまのところユニックって呼んでるんだけど なんて読むの。
811 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 17:23:48 ID:Sczvtx3b0] なんだよユニックって ユーダブリューエスシーでいいじゃん
812 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 17:35:53 ID:3R7yiorj0] 格闘ゲームを1フレーム単位で動かしたいけど >>563-567 見てるとuwscはCPUコアを使うから向いてないみたいだ 軽い負荷でマクロを組む方法はなにがあるんだろう? CやC++とかがいいのかな
813 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 17:59:27 ID:v0hn5DQqP] それマクロじゃないから
814 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 18:04:04 ID:MRy0rC3KP] >>812 1フレーム単位って・・60フレーム/秒だとして15ms以下でコントロールとかどんな言語使っても無理だって。 23msってのはゲームとUWSCの組み合わせで入力を確実にするための時間であって、 それはもしかしたらゲームの方の制約かもしれないんだ。 たとえばメモ帳にすばやく入力はできるけど、スクロールが必要な場所に書き込むととたんに遅くなる。 入力漏れも出てくる。 ゲーム性のための遊びもあるし、ゲーム側の負荷で受け付けられなかったりするんだよ。 まあ、少なくともUWSCのコントロールはハードウェアレベルのコントロールと比較して再現性が低いのは事実。 だから負荷がかかりすぎたり複雑なすばやい処理が必要なら(いわゆるコマンド入力があるなら)、向いてないかもしれない。 ただ、23ミリ秒っていうのは、DOWNからUPまでの時間なので、 ← DOWN ↓ DOWN / DOWN 23ミリ秒の待ち ← UP ↓ UP / UP てな感じでいける。 DOWN、UPそれぞれにわずかな時間がかかってはいるけど、1ミリ秒とかそんなレベルだと思うよ。 まあC++でやればDOWN3連発でも1ミリ秒もかかったりしないけど。
815 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 18:54:33 ID:RDWRX6dr0] 特定のプログラムだけにUWSCを使うことは可能? 最小化してるゲームにUWSCでキーとかマウスを使わせて なおかつ、普通に他の物も操作したり
816 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 19:14:54 ID:MRy0rC3KP] >>815 ゲームは多分無理。 アプリケーションに直接送信ってオプションがあるからできるものもあるだろうけど、JaneViewですらKBD()コマンドでそのままは動かせなかった。 CLKITEMとか直接コントロールを指定するスクリプトならいいんだけどね。 裏でゲームマクロしたかったら仮想マシンでも作ればいいよ。 VMware Player3.0になってから、無料なのに簡単に仮想マシンが構築できるようになってるから。 つい先日のリリースですよ。 WindowsXPゲストの仮想マシンですらメインメモリ1GBないと実用になりませんが、それはもう問題ない時期でしょう。 あと、仮想マシンにもそれ専用のライセンスが必要です。 MSに問い合わせたらホストのライセンスも取り消されちゃうので注意してくださいね。 僕はホストではちゃんとライセンス守ってるものの、ゲストではAntiWPAで回避してますけど。 XP持ってない人はいないと思うけど、持ってない人はXP-modeのサイトから誰でもダウンロードできます。 もちろん流用するのは違法だし、そのまま流用はできませんが、怪しい場所から入手するのは著作権云々以前に 攻撃ツールが埋め込まれていて知らない間に他人を攻撃してる可能性があるので絶対にやってはダメです。 だいたい仮想マシンとかいろんな構成で何度も入れなおしたりするのにいちいち空くティベー所んとかやってられないですから。
817 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 19:15:42 ID:3R7yiorj0] >>814 どんな言語使っても無理そうですかー C言語でもだめだってならあきらめるしかないな uwscは向いてはいないが、かと言ってこれより最適なものもない。って感じなのかな 格闘ゲームってやりこんでいくと1フレーム猶予の攻防がざらにあるんだけど それを1フレーム単位のボタンON・OFFで検証したくてw もし高い精度で1フレーム単位で動かせたら、組む時に分かりやすい、 安心感がある、何度も検証をやり直さずに済んで最高なんだけどなあ
818 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 19:24:47 ID:MRy0rC3KP] >>817 大雑把な方法でよければ、一定時間繰り返すっていう手があるよ。 単純に繰り返しを早くしたり遅くしたりしてどれくらいの猶予があれば動くかとか 相手のある操作、組み合わせのある操作の場合は、 それぞれの実行間隔をわずかにずらして、何回ごとに違うアクションになるかとか・・ あ、攻撃を受けたらのけぞったりするからダメか。 一応このずらすやり方っていうのは、ノギスとかで、大雑把な目盛りを組み合わせて精度の高い測定をする方法として一般的なんだよ。
819 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 19:31:36 ID:RDWRX6dr0] >>816 なるほど よくわかりませんが 単純作業なので窓で開いたままします ところで KBD(VK_G,CLICK,203) のクリックの後にある数字はなんでしょうか?
820 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 20:00:00 ID:MRy0rC3KP] >>819 確か、その処理をするまでの待ち時間ですね。 それは負荷がかかるので僕は省略してます。 かわりに Sleep(0.203); KBD(VK_G,CLICK) とかにしてますね。 再現性はKBDで時間を指定したほうが高いでしょうが、0.1ミリ秒とかいう長い時間を待つには向いてないと思うんで。 負荷がかかってるけど入力タイミングがシビアなときにはこんな感じ KBD(VK_ctrl, DOWN, 5) // 時間を省略してもいいけど同時入力は処理できない可能性があるので KBD(VK_shift, DOWN, 5) Sleep(0.01) // CtrlとShiftの押し下げ状態を対象に処理させるための待ち。Sleepしてる間UWSCはCPUを開放する。 KBD(VK_X, DOWN, 5) KBD(VK_Z, DOWN, 5) Sleep(0.03) // キーのクリック認識のための待ち。複数のキーだとCLICK2回よりもすばやい。 // 内側のキーはCLICKにしてSleepを外したほうが処理は確実で無駄がないが、Sleepにしたほうがゲーム側の処理に時間を回せる。 KBD(VK_X, UP, 5) // キーは押した順に離すとそれぞれのキーを押し下げている時間を一定に出来、間のSleepを短く出来る。5msの待ちが入ってるから0.02まで減らしても大丈夫だと思う。 KBD(VK_Z, UP, 5) Sleep(0.01) // キーは離すときまで油断しない。確実にUPしないと次のCLICKができない。 KBD(VK_ctrl, UP, 5) KBD(VK_shift, UP, 5)
821 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/07(土) 21:00:20 ID:RDWRX6dr0] >>820 こんな初歩的な質問まで丁寧に答えていただいて 本当に助かります、じっくりと読ませて頂きます。
822 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/08(日) 16:20:11 ID:FS1xEc4g0] 中二病的発想で申し分けないんだが、 画像検索やって、認識したらターゲットにロックオンサイトが表示されたり、カラーメッシュがかかったりするのって可能? マウスカーソルが移動するのは無しな、マウスカーソルを移動させるだけなら習得済みだから。
823 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/08(日) 18:17:31 ID:wKqL8NlR0] >>822 ゲームの描画はDirectXを使っていてリフレッシュレートにあわせてバッファからコピーしている。 DirectXで画面に表示されたものをさらに上書きするのは大変なことだよ。 タスクマネージャの「常に手前に表示」ですら後ろに隠れるんだから。 ゲームハック専用ツールならそういうことも不可能ではないかもしれないが、ちょっと無理だね。 Windows7で窓化して、ゲーム画面と同じ大きさの透明の窓を作ってそこに描画するのが簡単な方法だろう。 透明窓の重ね合わせはWindows7がハードウェアでやってくれるから負荷もかからないし。 一番負荷のかからないのは、ゲームをハックして書き終わったところで表示。 画像認識なんかしないでデータ上の座標を取得して重ね合わせ。 だいたい画像認識なんてのはゲームを動かすより大変な労力がいるんだぜ? もちろん、戦闘機とか防犯カメラには当たり前についているけど、フレームレートが1秒間に10コマとかそんなもんで、 60fpsにあわせて処理なんてCore i7くらいの性能じゃないと無理。 いや、画像処理をGPGPUにやらせるならセレロンでもいけるか。 普通のGPUはあくまでも描画用回路しかないから無理だが。
824 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/08(日) 22:43:22 ID:N1ZfyY/E0] 変数を使いある変数を別の変数へ変化させる方法 n1 = 0 n2 = 0 n3 = 0 n4 = 0 n5 = 0 という変数を定義した後に n = "n" m = 1 nm = n + m と定義して m = m + 2 とmに2を加えてやってmの値を3にしnmをn3の状態に変化させ nm = nm + 3という式を与えると 私としてはn3に3を加えn3=3と したつもりなのですがnmがnm3になります mの数値を変化させnmを使いn1〜n5の変数の値を操作したいのですがどうすればいいでしょうか
825 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/08(日) 22:57:52 ID:wKqL8NlR0] >>824 > n = "n" これはnを文字列として定義したことになります。 文字列に数値を加えるのは、文字列の連結になります。 ”n” + 1 は ”n” & 1 と同じ意味です。 EVALというのを使えば ”n1”という文字列からn1の変数を操作可能ですが。 > mに2を加えてやってmの値を3にし m = 1 m = m + 2 > nmをn3の状態に変化させ nm = n3 > nm = nm + 3という式を与えると > 私としてはn3に3を加えn3=3と n3 + 3 = 3 ・・・よく分からないので表にしてください
826 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 00:15:54 ID:wp6IQbGR0] //>>824 返答ありがとう// //やりたいこと// //変数を使って3行目変数n3の値を3にしたい// //式// //////////////////////////////////////////////////// n1 = 0 n2 = 0 n3 = 0 n4 = 0 n5 = 0 n ="n" m = 1 //コメント1:mを1置く// m = m + 2 //コメント2:mに2を加える。現在mの値は3。現在nm = n3。// nm = n + m //コメント3:現在n = nでm = 3なのでnmはn3となる// nm = nm + 3 //コメント4:左辺のnmはn3なので3行目の左辺と10行目の左辺は同じ値であるということになる為// // nm = nm + 3 ということは n3 = n3 + 3ということになり、// // 3行目のn3の値0に3を加えたこと((n3 + 3 = 3)ではなく(n3 = n3 + 3)ということ)になる// print n3 ///////////////////////////////////////////////////// //期待したプリント結果は 3 // //実際のプリント結果は 0 // //これで少しはわかりやすくなったでしょうか// //変数aを使って変数bの値を変化させる方法の勉強中です//
827 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 00:40:40 ID:wp6IQbGR0] >>825 EVALという機能でいけました。 ありがとう!40時間もかかった><
828 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 00:59:20 ID:BZ9g5EYX0] >print n3 >//実際のプリント結果は 0 // そりゃ、変数nmには文字列 "n3" が代入されてるけど、 変数n3になんにも代入されてないからねえ。 配列つかえばいいんじゃないの。 dim n[5] = 0, 0, 0, 0, 0 m = 3 n[m] = 3 print n[3]
829 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 01:02:55 ID:BZ9g5EYX0] 訂正 なんにも代入されてないから → 0が代入されたままだから
830 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 01:24:03 ID:Wg6Yr+FN0] >>828 今それ書こうと思ったのに! ってか、確認してないだろw配列も6個宣言してるしw
831 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 01:25:34 ID:Wg6Yr+FN0] こんな感じかな? dim n[4]=0,0,0,0,0 m = 3 n[m]=n[m]+3 print n[m]
832 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 01:43:46 ID:BZ9g5EYX0] >>829 あ、ほんとだ。 一応テストしたんだけどなあ。 エラー出なかったから気づかなかった。
833 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 21:29:27 ID:7/pEhhd4O] さっきダウンしてUWSCとかスクリプトとか一切わからんのだが コピペした文章をエクセルで常に特定のセルに張り付ける方法教えくされ 動かすとエクセル側のセルがずれる
834 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 22:20:10 ID:reYUu1vL0] >>833 ダウンしたなら寝てろよ
835 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 02:43:35 ID:Ljbgb4FJ0] >>833 OLEObjectを操作すればおk
836 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 04:18:28 ID:KPKoPGpy0] 配列の中にある変数の1つがその配列の中で何番目に大きな数値なのかを知る方法 dim p[10] =0,12,3,13,5,4,7,8,1,12,3,29 という配列があったとする。 p[7] = 8 なのでp[7]はこの配列の中で5番目に大きい数値であるということはわかるけれども これをuwscで導き出すにはどうしたらいいのでしょうか。
837 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 04:37:07 ID:Ljbgb4FJ0] >>836 まず名前の付け方がダメですね。 pは普通ポインタを意味するので使ってはダメです。 UWSCにポインタはないけど、名前付けの基本ですから。 Nとでもしてください。 dim N[10] は N[0]〜N[10]までの11個の配列ですが、12個指定してるのでエラーです。 最大値の求め方は他の言語のアルゴリズムと同じですから、ぐぐってください。 配列データの処理には、for 〜 next を使うのが基本です。 for i = 0 to 10 print N[i] next 【実行結果】 0 12 3 13 5 4 7 8 1 12
838 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 07:30:19 ID:JLM+3UwS0] URLエンコードされた文字列(例%82%a0%82%a2%82%a4%82%a6%82%a8)を デコードして元の文字列(あいうえお)に戻したいのですが、どうやったら良いのでしょうか。
839 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 08:13:59 ID:Ljbgb4FJ0] >>838 DECODE( "%82%a0%82%a2%82%a4%82%a6%82%a8", CODE_URL )
840 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 09:12:00 ID:JLM+3UwS0] ありゃそんな関数ありましたか。失礼しました。 文字列関連ばかり見てました。
841 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 09:30:12 ID:JLM+3UwS0] 喜んだのは束の間、実際の文字列はEUC-JPだった… さてどうしたものか。
842 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 09:53:06 ID:Ljbgb4FJ0] %82をEUC-JPで書かれてるの?まさかそんなことはないよね。 開いたページの話なら、IEで表示した文字を取得すれば変換されてるよ。 具体的には、IE.Document・・.InnerHTMLはもとのコードかもしれないけど .InnerTEXTは変換されてるかもしれない。 もしくは、上記はどちらももとの文字コードで、IEGetDataなら変換されてるかもしれない。
843 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 10:17:19 ID:JLM+3UwS0] さっきは安易にshift-jisで例を出してしまいましたが実際はeuc-jpで %a4%a2%a4%a4%a4%a6%a4%a8%a4%aa = あいうえお やろうとしてることはwikiからゲットしたページの内部に張ってあるリンクを元の 日本語に変換しようってことなんですが。
844 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 11:29:47 ID:Ljbgb4FJ0] >>843 その文字列をどうやって取得したかですよ。 IEGetDataなら問題ないはずなんですが。 .Valueだったなら、.InnerHTMLとか.InnerTEXTも試してみてください。 ところで、Wikipediaのホームページのソースには charset=utf-8 って書いてあるんですけど。
845 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 11:38:56 ID:JLM+3UwS0] wiki≠Wikipedia 一般のwikiですよ。 uwsc経由でなく、既にローカルに保存したファイルです。 ブラウザで開くこともありません。
846 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 11:56:44 ID:JLM+3UwS0] uwscをテキスト変換に使おうというところから間違っているかもしれないですね。
847 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 12:53:16 ID:O2OEndzR0] >>846 (保存したものを||保存するときに)、UTF8あたりに変換ソフトかませればいいんじゃね? 不恰好かもしれないが、テキストエディタを制御してもいいんだし…UWSCの十八番でしょう。 変換を外部に頼るならnkfのwindows版でも使えるような気がするけどなぁ。
848 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 13:19:54 ID:JLM+3UwS0] そういうファイル全体の文字コードは他のツールで問題ないんですけど… shift-jisで %a4%a2%a4%a4%a4%a6%a4%a8%a4%aa と書いてある部分を あいうえお として取得したいのです。 DECODE("%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa",CODE_URL)だと化けて 『、「、、、ヲ、ィ、ェ』になってしまう。 一旦ファイルに書き出して、他の変換ツールでeuc-jp→shift-jis変換して 再度読み込んで取得というのにしようかと考え中です。 スマートじゃないけど、ちゃんと動作するので。
849 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 13:42:33 ID:O2OEndzR0] >>848 前述したnkfのdllを使うことで、外部ファイル経由じゃなくても変換できたぞ
850 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 15:17:35 ID:JLM+3UwS0] >>848 は失敗、最後の文字が空白になる文字だとちょん切られてしまいましたorz >>849 参考までにその方法を教えて頂ければ。 Dll定義はほとんど使ったこと無いんでよくわからんです。 beep鳴らすくらいにしか使ったことがない。
851 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 16:33:16 ID:O2OEndzR0] >>850 自分もよくわからんまま使ってるけどなぁ 十分な領域を確保? UWSCにそんな定義ないよなぁ・・・・とか nkf は-> www.vector.co.jp/soft/dl/win95/util/se295331.html //----------------------------------------- DEF_DLL GetNkfVersion(var string): :nkf32.dll //型名の宣言があってるかはいまだよく判らん DEF_DLL SetNkfOption(var string):int :nkf32.dll DEF_DLL NkfConvert(var string, var string): :nkf32.dll version = "null" // "" だと受け取ってくれない GetNkfVersion(version) Str = "%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa" StrDECODE = DECODE(Str, CODE_URL) SetNkfOption("s") //S-JISを指定 outStr ="null" NkfConvert(outStr, StrDECODE) msgbox(version +"<#CR>元 : " + Str +"<#CR>後 : "+ outStr) //------------------------------------------- …あと、BEEP鳴らすの面白いw ありがとう。コードの楽譜どこかに無いかな…
852 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 16:56:54 ID:JLM+3UwS0] >>851 いい感じに行けました。ありがとうございます。
853 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 17:38:46 ID:GpcSIMUW0] マウスカーソルをCHKIMGで画像認識することはできないのですか? カーソルの状態を判定したいのです。 ゲームで使いたいく、MUSCURはだめそうなので・・
854 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 18:08:42 ID:uuf5Ec7A0] >>853 imagine?
855 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 18:20:19 ID:GpcSIMUW0] 別のツールならできるということですか?
856 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 18:55:52 ID:Ljbgb4FJ0] >>851-852 領域は文字列をあらかじめ代入して作ります。 UWSCで領域を確保するには工夫がいるようですが、他の言語よりもある意味簡単かも。 >>851 の例では変換後のSJISの方が短くなるので outStr = Str とすれば、十分な領域を確保できます。 この辺きちんとやらないと意味不明なバグに遭遇することになります。 参考: ttp://www.geocities.jp/nrjsmnb/dic/u/UWSC.htm // APIを利用した文字変換 function 文字変換(kind, moji) ret = moji + moji // 半角->全角の為に倍の領域を確保 LCMapStringA(0, kind, moji, -1, ret, Length(ret)) result = ret fend
857 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 20:12:44 ID:Gw0JXs4g0] >>836 遅レスだけど、何回も値見るなら二次元配列にして何番目の値か入れておけばいい。 何回も追加削除するなら、二次元配列にして、大きさの順番に配列に番号,値を格納して、 追加削除の時に配列シフト使えば多少軽くなると思うよ。
858 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/11(水) 07:24:01 ID:k45oh59N0] >>855 いや、 972 名前:名も無き冒険者 [sage] 投稿日:2009/11/10(火) 17:02:41 ID:??? 分解マクロ作りたいのですが、 店員をクリックするのがうまく行きません。 カーソルが矢印から○十字になるのを 画像認識してクリックさせているんですけれど・・・ 店画面になってから買うのと分解するところはうまくいっています レスのタイミングからこれかと思ってさ。
859 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 11:50:38 ID:DGvdxA4EO] UWSCを再生したらSTOPって出ますよね そのSTOPをマクロで押し一度停止したのちに、すぐ再生までをマクロ可能ですか?
860 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 11:58:24 ID:DGvdxA4EO] すいません焦って書き過ぎました。 手動で再生 マクロで停止 マクロ再生 こういう流れを組みたいのですが可能ですか? 可能でしたら組み方をアドバイスお願いします。
861 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 12:27:51 ID:N2QpMoHSP] 機能理解不足、しかも説明が下手なら本当にやりたい事を書いたほうがいい マクロをどう動かしたいかではなく、マクロを使って何をしたいかをね もっと別のいい方法があるはずだから
862 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 12:46:02 ID:DGvdxA4EO] 説明不足で申し訳ないです。 ある画面になると一度停止してマクロを初期化したくて 初期化したいのはウィンドウハンドル 新たにウィンドウハンドルを収得すれば良い話なんですが中々上手くいかなく 手動停止〜手動再生 すれば動くようになるので、この動作もマクロで出来ないかなと思いまして、質問しました。
863 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 22:05:42 ID:I/hgk8z30] KBD(VK_A,CLICK,40) を使ってキーボード入力しているのですが 大文字、小文字を使い分けるときは KBD(VK_SHIFT,DOWN,40) KBD(VK_A,CLICK,40) KBD(VK_SHIFT,UP,40) というようにしないと無理でしょうか? もう少し効率のいい方法があれば教えてアドバイス欲しいのですが
864 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 22:09:24 ID:UpsrNqrXP] >>863 CapsLock・・・とか
865 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/13(金) 00:46:22 ID:PMcSQRlS0] >>864 やっぱそういう方法しかないですよね・・・ 文字コードとか使えればいいんですが地道にスクリプト組むことにします
866 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/13(金) 19:31:59 ID:xGhkIPWz0] 抽出してもよくわからず、単発になってしまい申し訳ないです。 Aがあれば操作X、なければBを探してBがあれば操作Y後Aを探す、なければ操作Z後Bを探しつづける While True IFB CHKINMG -A 操作X Break ENDIF WhileTrue IFB CHKINMG -B 操作Y Break ENDIF 操作Z Wend Wend というような命令をしたいのですがwhile ENDIF(while ENDIF wend)wendというスクリプトは組めないですか? 更に、Repeat whileA ENDIF(whileB ENDIF wend)wend whileC ENDIF(whileD ENDIF wend)wend until としたいです。 質問の仕方も、説明も理解不足だと承知していますがよろしくおねがいします。
867 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/13(金) 20:09:18 ID:wt1FvuqrP] >>866 まずインデント修正 While True IFB CHKINMG -A 操作X Break ENDIF WhileTrue IFB CHKINMG -B 操作Y Break ENDIF 操作Z Wend Wend while ENDIF(while ENDIF wend)wendというスクリプトは組めないですか? while ENDIF while ENDIF wend wendというスクリプト
868 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/13(金) 20:14:54 ID:wt1FvuqrP] 更に、Repeat whileA ENDIF(whileB ENDIF wend)wend whileC ENDIF(whileD ENDIF wend)wend until としたいです。 Repeat whileA ENDIF whileB ENDIF wend wend whileC ENDIF whileD ENDIF wend wend until としたいです。 ENDIFと一緒にIFを使えば問題ない。 ところでENDIFっていうのはこの構造の中で特に意味を持たないよ。 だから構造の説明時には省略して差し支えない。 最初のbreakが入った文は構造に影響するけど、別にたいした影響はない。 break2とかいうのを使ったときは影響してくる。
869 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/13(金) 22:18:38 ID:85p2y6tD0] ルーター経由で接続されてるPC同士でUWSCを連動させたいんですがやっぱり無理ですか? PC1で起動されているUWSCとPC2で起動されているUWSCでやりとり出来るようにしたいんです。 外部ソフトやDLLでもなんでもいいので教えてください。
870 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/13(金) 22:35:39 ID:wt1FvuqrP] >>869 リモートアシスタンスとかで接続するとか。 SoftEtherとか入れればローカルエリアとして通信可能になるし。 でもp2pで通信するには複雑な制御が必要になるからねえ・・・ IEみたいなCOMオブジェクトが通信してくれたらいいけど、p2pだとねえ・・・ IPMessengerみたいなやつ利用して通信かなあ。 送信はメモ帳に貼り付けと変わらん手順だし、 受信のときは待ちループするだけ。
871 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/13(金) 23:09:45 ID:DfpgKErgP] WEBサーバを間接的に利用するのはどう? postされた文字列を表示する掲示板とか使えば 一方が書き込み、一方が読み込みで情報伝達は可能 ルータ越えとか意識せずuwscの標準機能だけでバカチョンで出来るよ
872 名前:名無しさん@お腹いっぱい。 [2009/11/14(土) 11:02:41 ID:4vOxM3zc0] VKでアンダーバー(_)指定するやり方教えてください
873 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/14(土) 11:33:07 ID:OpCJso/X0] >>867-868 ありがとうございます!
874 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/14(土) 11:41:16 ID:npxHArPNP] >>872 WINUSER.H では10進数で226、16進数でE2 VK_OEM_102で定義されてるそうです。 でも@マークと同じで、シフトキーとともに入力しないといけないんじゃないかな。 ttp://pc5.2ch.net/test/read.cgi/tech/1059549320/78+80
875 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/14(土) 12:08:05 ID:/OecLJDJP] >>872 カメラのマークで記録して保存したら中に書いてあるだろ アンダーバーの書き込み KBD(VK_SHIFT,DOWN,40) KBD(VK_OEM_102,CLICK,40) KBD(VK_SHIFT,UP,40)
876 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/14(土) 19:11:31 ID:Ft/ieC5X0] >>871 おいおい大迷惑な手法解説してどうすんだよw せめて自プロバイダ提供のwebサイト構築用空間に自分専用掲示板作れとかにしようよ
877 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/14(土) 20:31:58 ID:4vOxM3zc0] ありがとうございました
878 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/14(土) 21:28:18 ID:knlQgbTsO] recIEってもしかしてメニューバー使えない?
879 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/14(土) 22:56:51 ID:/OecLJDJP] >>878 使えない Alt&Fとかショートカットキーも使えない 自分はそれでも便利だと思ってるけどね
880 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/16(月) 08:01:58 ID:rG+iRQ2cO] 規制中なので携帯からで申し訳ないのですが GETTIMEで指定した時間に処理をしたいのですが どこかおかしく、巧く動いてくれないので、修正お願いします。 6時30分〜10時30分までの間処理をしたくて、下記の様に書いてみました。 GETTIME() HH = G_TIME_HH NN = G_TIME_NN IFB HH +","+ NN > 6+","+ 30 and HH +","+ NN < 11+","+30 THEN 処理 ENDIF
881 名前:名無しさん@お腹いっぱい。 [2009/11/16(月) 08:26:07 ID:MjBoUClvP] 犬と月曜日はどちらが大きいのですか? 教えてください
882 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/16(月) 08:44:19 ID:fyKVQoggP] >>880 HH +","+ NN 6+","+ 30 HH +","+ NN 11+","+30 これらの計算結果がどうなるか確認しました? 文字列の一致、不一致ならできますが、大小比較の結果がどうなるかまでは、僕は知りません。 時間のチェックは難しいけどよく使うので僕も悩みますが、EVALで計算するのが楽じゃないかと思います。 IF EVAL("0630" + "-" + HH2 + NN2) <= 0 then 開始 あと、一日のうちの数時間しか動かさないのなら、開始時刻はランチャーで指定したほうがいいと思います。 そしたらスクリプトでは終了時刻のチェックだけで済みますよ。 ちなみに、ループでやるにしても改善したほうがいいですよ。 ループを分ければ条件をシンプルにできるし、 sleep時間を大きくしたほうがCPU使用率を下げられるので。 while true GetTime() while 0630まで sleep(10) GetTime() wend while 1130まで 処理 GetTime() wend while 日付変更まで sleep(60*60) GetTime() wend wend
883 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/16(月) 09:26:28 ID:rG+iRQ2cO] >>882 さん 今はGETTIMEが巧く使えないので、6時30分〜10時30分迄と指定してますが 行く行くは、10時30分〜14時30分など4時間ずつ幅を持たせ マクロを起動した時間帯に合わせて、処理を組んで行きたいと思ってます。
884 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/16(月) 10:11:52 ID:fyKVQoggP] >>883 その場合時間を配列で持って逐次セットですね。 while true GetTime() START、STOP時間のセット while STOPまで 処理 GetTime() wend while STARTまで sleep(10) GetTime() wend wend
885 名前:名無しさん@お腹いっぱい。 [2009/11/16(月) 21:51:18 ID:MM7BRwTd0] タスクトレイにあるアイコンを終了させるには、 どのように処理すればよいのでしょうか、教えてください。
886 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/16(月) 23:29:28 ID:wYHJYqc+0] >>885 アイコンは終了出来ません><; プロセス名からプロセスID取ってきて終了させればいいんじゃない?
887 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/17(火) 17:52:10 ID:T9e274pv0] 操作したい画面がすでにバックグランドで起動してるときに REPEAT SLEEP(0.1) UNTIL !IE.busy AND IE.readystate = 4 てなくてよいよね??
888 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/19(木) 01:16:33 ID:kjRTN5IV0] 3分おきにJキー、5分おきにUキーを押すってのを繰り返す スプリクトは組めますか?
889 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/19(木) 01:29:17 ID:Yyxyb70w0] 組めます
890 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/19(木) 19:08:29 ID:r9u6rxytO] 質問です IEを使って指定Webサイトを開く→エクセルのリストを元にフォームにID・PW(仮)を入力、ログイン→パスワードの再設定フォームが出るので、 一つ目のフォームにはPW(仮)を入力、二つ目のフォームにはエクセルのリストからPW(正)を入力、設定ボタンをクリック→ブラウザを閉じる。→最初から という作業をエクセルの行の分だけ繰り返しして行うことは可能ですか? フォームにテキストを入力する際にエクセルから必要な情報をコピーします。
891 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/19(木) 20:57:24 ID:IbSwdCL+0] 凄い不正行為っぽい感じがしますね^^ 可能ですか?って自分でやってから来いよ。 こうこうこうしてみたけれどここが上手くいかなかった。 ここをこうする為の何か上手い方法は無いか? とか、せめてそれくらいは。
892 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/19(木) 21:18:45 ID:K5RMM/XMP] やっぱりね 誰かがどういう解答出すのか見てたw こんくらいで不正とか言うのはちょっと神経質じゃないの 自動が売りのソフトなんだからそれくらい出来ないとシェア払う気になんないぞ >>890 できる エクセルの自動操作は「Windowsマクロテクニック」っていう UWSC解説本に詳しく書いてある IEの操作はググレばすぐでてくるよ 俺はエクセルじゃなくテキストエディターでやったことある コピる時に”何行目”とか指定できないので 全部1行に分断してやったw 100行のテキストがあればuwscとエディターで100ファイル別に作ってやったけどねw 多分エクセルの方が楽だよ