1 名前:名無しさん@お腹いっぱい。 [2009/12/09(水) 05:27:33 ID:J1DL1P1U0] Windowsを自動化させるツールUWSC。 www.uwsc.info/ uwsc使いのみなさま、マターリ己のスクリプトを晒しましょ。
513 名前:名無しさん@お腹いっぱい。 [2010/06/13(日) 18:28:57 ID:M6ZVIcE70] UWSCを使っていて、パスが通っていないのが使いにくい。 CALL文や、ライブラリファイルを別フォルダにした場合、等。 ディレクトリ検索と、よく使うファイルのパスを登録したファイルとそれを使うスクリプトを作って、 CALLやいくつかの変数(プログラムファイル名等)はそれを経由するようにするとか 出来ないことはないけど(CALLとか作る)、 シンプルとはいえ、結構素人が作っていいのか本格的な感じになる。 みなさんはどうしているの? ひょっとしてどなたかが作ったのがありますか?
514 名前:513 [2010/06/13(日) 18:31:58 ID:M6ZVIcE70] >>513 すいません。誤記。 × (CALLとか作る) ○ (CALL2とか作る) CALL2みたいな新しいprocedureを作ってそこからCALLを呼ぶ、という意味にしたかった。。。
515 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/13(日) 21:06:35 ID:E/dbXkmj0] >>511 変数strの参照部全部変数うんこだろw
516 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/13(日) 21:48:07 ID:lV2bpcq40] >>515 参照部とは? TOKEN() は第二引数を破壊するので うんこに配慮して、うんこの値をコピーした str を渡しました
517 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/13(日) 21:53:05 ID:E/dbXkmj0] >>516 ああごめん。ちっと勘違いしてたわ。
518 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/14(月) 16:34:31 ID:A4WmwryV0] ifb iegetdata(ie, true, "yes", "はい") > 0 iesetdata(ie, true, "yes", "はい") sleep(0.5) else break endif iesetdata(ie, true, "yes", "確認") これ、もう少し纏まりませんか。主に1.2行目・・・ アンケサイトで「はい/いいえ」で確認ボタン出るまで押すって奴なんですが
519 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/14(月) 17:02:01 ID:A4WmwryV0] While iegetdata(ie, true, "yes", "はい") > 0 iesetdata(ie, true, "yes", "はい") sleep(0.5) wend iesetdata(ie, true, "yes", "確認") あれ、こうか・・・?
520 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/14(月) 17:32:38 ID:jt+/tNC/0] そんなアンケートに価値はない
521 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/14(月) 20:43:35 ID:aNbH09Ww0] ifb CHKIMG(IMG , -1 ) BTN(LEFT,DOWN,102,715,579) BTN(LEFT,UP,180,411,641) else (ifbの所に戻りたい) endif この処理を作りたいのですがelseをどう書けば良いんでしょうか。 イメージ画像が発現するまで待機する様な文が書きたいです。 if以外でも良いのです。
522 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/14(月) 20:51:53 ID:aNbH09Ww0] コンティニュー見つけました。 初心者ですみません。
523 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/15(火) 22:23:39 ID:Y3W88cOuP] 短髪の女の子?がセックスをしながら世界一周を目指すという成人誌を見たことがあるのですが、分かる人いますか? たしか3年ぐらい前の漫画だったと思います
524 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/16(水) 01:11:20 ID:jeyh3hPj0] どんな誤爆だよw
525 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/16(水) 13:04:10 ID:yLa0pynz0] これは大胆な確信犯だな。 面白そうだから探してくるわw
526 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/16(水) 21:29:45 ID:Z1Itnvke0] peekcolorを使ってB値だけを判定する方法を教えてください
527 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/16(水) 22:16:46 ID:nX9kgu9QP] 結果をmsgboxで表示すれば目視で判定できます それとも「どのように」判定したいのか指定があるんですかね
528 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/16(水) 23:16:32 ID:6Hb0U1Mg0] 「記録」を使って、 作業に使うアプリをまとめて立ち上げたり、 新しいフォルダを生成したりする程度のヘタレた使用をしています ヘルプを読んで起動オプションがあるのはわかりましたが スクリプト実行、実行後はUWSC本体を起動したままにする場合 UWSC.exe /K スクリプト名 ↑ この構文をどのように使えばいいのかがわかりません 例えば、こんな感じだと動きません GETTIME() HIDUKE = G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 EXEC("NOTEPAD") SENDSTR(GETID("無題"), HIDUKE + "<#CR>") UWSC.exe /K 日時出力.UWS おそらく単純すぎて目の前に答えがあるのに、答えが近すぎて逆に自分の視界に入ってない状態だと思います ヒントだけでも教えていただければ・・・・orz
529 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 03:11:51 ID:sncjYoBq0] >>526 BってBGRのB? (peekcolor(x,y) and $FF0000)/$10000 とか?
530 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 06:51:29 ID:k9E1g4kJ0] >>528 exec
531 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 08:09:29 ID:RfIdECVBP] >>528 ヘルプにある「その他項目」は文法の話じゃないよ スクランブルのほうには書いてあるけど コマンドプロンプトで起動する場合とかにパラメータを付ける話
532 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 18:34:42 ID:Ff+fGhbK0] ご教授願います。 以下のスクリプトを作ったのですが、再生すると 行目のIFBに対しENDIFが閉じられていないと出ます。 どこがダメなのか教えてください WHILE TRUE ifb GETID(GET_ACTIVE_WIN) = GETID("paper man") then Ifb PeekColor(512,384) = $FFFF00 then BTN(LEFT,CLICK) Endif Endif sleep(0.02) WEND
533 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 18:47:12 ID:+CCij1w00] >>532 見た感じで適当なカキコすると 2行目のGETID条件の相方が変数or定数じゃないのが気に食わないんじゃね?
534 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 18:48:19 ID:k9E1g4kJ0] >>532 それで動いたのでどこが悪いか判りません。 …正直、ゲームチートっぽいのは歓迎したくないなぁ。
535 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 18:50:44 ID:x399c/MH0] チートじゃないだろ カスが!発言に気をつけろ 次はないと思え
536 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 18:56:59 ID:pUIHTkvJ0] まぁ、チートでは無いわな。 ちなみにuwscは、ゲームで使ってこそ価値のある物だと思うw
537 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 19:19:52 ID:qd5QGDw6i] 単純にゲームに対する不正だなw
538 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 19:29:39 ID:sncjYoBq0] ゲームに対する不正のどこがチートじゃないのかkwsk
539 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 19:40:04 ID:ydiblUFW0] チートの定義はクライアント内部からでしょ。 UWSCってローカルな情報で動くし。 よくわからん、やってる事は同じだなw
540 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 20:44:42 ID:sncjYoBq0] 定義も何もチートはcheatでそのまんま「不正行為」って意味だろうに。 内部も外部も関係ないだろ。
541 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 20:47:52 ID:pUIHTkvJ0] 直訳とゲーム用語だと少し違うんだよね。
542 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 20:50:44 ID:k9E1g4kJ0] >>541 チートを「不正」以外の言葉で使っている場面を見たことが無い。 どんな独自の用語なんだよw
543 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 20:54:53 ID:pUIHTkvJ0] めんどくさいなー。 同じ不正でも、"チート"と"操作の自動化"は違うのだ。 後は自分で調べてね。
544 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 20:57:16 ID:l8wchoUV0] 操作の本来実装されている以外の方法での自動化が認められたゲームなんかあるのか? 俺ルールでこんくらいはおkって思ってるだけだろ
545 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 20:57:56 ID:k9E1g4kJ0] >>543 ま、結局不正なのは変わりないからなぁ…
546 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 21:40:09 ID:RfIdECVBP] 不正行為の総称・・・チート 自分を正当化するための魔法の言葉・・・操作の自動化 確かに違うね
547 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 21:58:48 ID:lFzqbv68O] ん? 自動化も不正だぜw 確かに、データ改ざんの事をチートと呼ぶのが一般的かな。
548 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 22:04:40 ID:SzGCTaJq0] そもそも「ズル」のことをチートっていうのであってつまりマクロだろうがパケットいじろうがチートだと思うんだが
549 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 22:28:29 ID:lFzqbv68O] ネットで調べたけど、一応はコンピューター用語として載ってるな。 でも人によって認識のズレがあるみたい。 単純に区別しやすいようにチートとマクロを分けてるとも言えるし。 俺的結論。みんな正しいw
550 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 22:34:10 ID:ydiblUFW0] ゲームで語るか大きな意味で語るかの違いだな
551 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 23:06:27 ID:x399c/MH0] マクロのほうが的確 ゲーム見たらなんでもファミコンっていう親くらい違う
552 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 23:41:31 ID:dSI3F+Sd0] チートって聞いたらドラクエのHP999を思い出した。
553 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/17(木) 23:52:50 ID:jN7punls0] そんなにネトゲの話題がしたければネトゲの板にマクロやスクリプトのスレ立てろよ ここでネトゲの話題に反発してる連中もそこまで行って邪魔はしないだろうよ
554 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/18(金) 10:30:47 ID:RlvK9F450] while true ifb CHKIMG(IMG , -1 ) or CHKIMG(IMG7 , -1 ) ←ここ break endif btn(right,click,800,250) sleep(0.5) mmv(900,333) sleep(0.5) mmv(1050,333) sleep(1.0) ifb CHKIMG(IMG6,-1) mmv(G_IMG_X,G_IMG_Y) btn(left,click,G_IMG_X,G_IMG_Y) sleep(10.0) endif wend 最初のIMGが無いのにこの処理が終わってしまうのですが どこか間違ってますか?
555 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/18(金) 13:17:56 ID:RlvK9F450] 別の文で解決しました 色を無視してるから何か引っかかってたのかも
556 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/20(日) 16:51:16 ID:iYsBGIJR0] MapleStoryというゲームでピラミッドというサバイバルゲームがあり、それは敵がたくさん出てきてそれを倒し、14分で全てが終わる ゲームなんですが、1分50秒ほど早く終わってしまいます。ピラミッドの低レベル版の9分で全てが終わるサバイバルゲームでは、 ほとんどずれずに繰り返しできたのですが、ピラミッドで時間をずれずにUWSCでするにはどうしたらいいでしょうか?
557 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/20(日) 18:29:19 ID:PoKuH6O30] >>556 正確に行動するとか 時間やタイミングを合わせて行動するとかならここでもいいけど、 きっちり14分で敵を倒すやり方はゲームやキャラの詳細が分からないと答えようがないよ。 まずはきっちり14分で倒すやり方をメイポスレで聞いて来い。
558 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/20(日) 19:35:11 ID:l35pdc4w0] ずれるって事は記録機能を使ってるんだろうけど 自分で作れば可能、色々なサイトを見て少し勉強したらすぐできる
559 名前:横レス mailto:sage [2010/06/20(日) 19:42:03 ID:1vSDRlXF0] それも今のスクリプトの適当な場所にSLEEP(150)を挿入するだけっぽい
560 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/20(日) 20:40:13 ID:iYsBGIJR0] >>557 レスありがとうございます! ピラミッド自体は普通にやっても14分で終わるんですね。ステージが5つに分かれていて、 敵が沸いてきたのを倒して、ゲージが0にならなければ次のステージに進めて、14分ちょうどに終わるんです。 詳細は↓ここに書いてあります。 maplesonar.com/wiki/index.php?%E3%83%8D%E3%83%88%E3%81%AE%E3%83%94%E3%83%A9%E3%83%9F%E3%83%83%E3%83%89 マクロで実行すると1分50秒早く実行を完了して停止してしまうんです。残った1分50秒の間にゲージが0になってゲームオーバーに なってしまいます。 >>558 いろいろなサイトを見て勉強してみたいと思います。 >>559 動作を止めているとゲージが0になってしまいます。 みなさんありがとうございます。もっと考えてみようと思います。
561 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/20(日) 21:23:06 ID:PoKuH6O30] >>560 ACTゲージのMAX近くのドットをキャプチャ(PeekColor)して 赤っぽかったら数秒休む(Sleep(5))っていう処理を追加すればいい。 赤っぽいというのはRGB分解してRが128超えてたら赤っぽいということで。 そういう処理を一箇所に入れるだけで済むようにするには、全体の行動を一つのループに集約する方法がある。 もう一つの方法は、たとえばマウス、キーボードクリックをある関数経由にし、 その関数内で、実行しても良いか悪いか判断する。 その判断するフラグを別スレッドでループする監視処理。 そうすれば延々とキークリックを羅列していても1箇所書き換えるだけで済む。 関数名の変更はエディタの痴漢・・・もとい、チカン・・・・あれ?弛緩・・・ 置換だ置換 それでやる。
562 名前:名無しさん@お腹いっぱい。 [2010/06/21(月) 20:42:32 ID:2HQccvy70] >>473 やっぱりUWSCでもできるような単純な処理っぽい。 ttp://librahack.jp/okazaki-library-case/comparativetable.html >朝日新聞「1回ボタンを押すだけで、1秒に1回程度の速度でアクセスを繰り返せるプログラムを作っていたという。」 >ローカル環境(Thinkpad+XAMPP【Webサーバー】)では、Eclipseの実行ボタンを押して、PHPスクリプトを実行していました。 ttp://librahack.jp/okazaki-library-case/comparativetable.html >警察・マスコミ「HTTP500が発生した時刻を「停止日時」と表現。」 HTTP500 = 内部サーバーエラー >朝日新聞:「ホームページの閲覧は21回停止されていた。」 >中日新聞:「計8回機能を停止させ、」 >読売新聞:「閲覧しにくい状態にさせ、」 >日経新聞:「21回にわたりHP閲覧をできないようにした。」 >毎日新聞:「サーバーを21回シャットダウンさせた疑いがある。」 >毎日新聞:「県警が25日に自宅を家宅捜索した際も自動アクセス中だったという。」 >ThinkpadのEclipse環境から、合計64,008回をリクエスト送信。 >家宅捜索のとき Thinkpad電源オフ。リクエストなし。
563 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/22(火) 16:15:11 ID:cUoPGlwu0] >>556 ですがピラミッドマクロできましたw 攻撃する動作を追加していくっていうアナログな方法で作れましたw
564 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/22(火) 20:18:25 ID:FiBTNy8s0] ゲームマクロを作っていると気付く事になる。 あれ?めんどくさい処理を自動化してるんだよな? なんでこんなめんどくさいゲームやってんだオレ
565 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/22(火) 20:23:28 ID:vfPNGvwL0] 自動化って仕事(PC操作)を減らしてくれるはずが、自動化がなければとてもやる気がしないようなことに手をつけてしまい しかもそれがあとから考えて意味あっただろうかと思うような行為だったりもする スクリプトを組み動作を検証し改良する、という行為そのものが娯楽なのだ、と思わなければまさに愚行だたな
566 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/22(火) 20:57:53 ID:C+CRCydp0] uwscを覚えると、やるゲーム全てに対して 「これって自動化できるな」という目線で見てしまう。
567 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/22(火) 21:52:31 ID:q8DnHohU0] 仕事になると、そういう目線は結構重要。 そんな俺は業務的にUWSCを使いまくり。無ければ仕事量的に処理出来ない…
568 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/22(火) 22:49:31 ID:jmCKgS7q0] 業務でスクリプト書くとバグがあってそれに気づかなかった時が怖いんだよな… 発覚した時には遥か昔のデータまで遡って修正とか 楽してた分がカウンターとなって襲ってくる
569 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/22(火) 23:19:31 ID:q8DnHohU0] >>568 正直、気を使うことは確かだね。 過去数回、過去に遡る経験をしたが、新しく発見・修正スクリプトを書いて過去データを直したw テキストエディタとヘルプ程度…+その問題が軽度である事前の注意力と幸運…が有れば、 その場でサクサクとスクリプト自体を直せるのは強み。 …臨機応変とはこの事か、と。 一般的なスクリプト言語と比べて、実行にスクリプト本体とuwsc.exeで可搬性が高いのはいいと思うよ。 WSHとは比べ辛いが、業務としてEXE化できるのはありがたかった。 …EXE化の利点って隠蔽化の外には、単体でスクリプトに対してD&Dが可能になる、って点が大きい。
570 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/25(金) 23:50:53 ID:NEYBETTk0] peekcolorでピクセル単位で場所を指定して監視するのではなく、 画面全体を監視する方法ありませんか? 色で判定を出したいです。
571 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/26(土) 01:07:04 ID:lUJoxFiZ0] >>570 チェックイメージを使うかピークカラーを画面全体行えば良いと思います
572 名前:名無しさん@お腹いっぱい。 [2010/06/26(土) 03:24:32 ID:iR+AoK580] てて
573 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/26(土) 06:44:01 ID:YCZ3L8nQ0] 絶対やっちゃいけないとまではいわないけど、Peekcolorを画面全体でまわすなんて駄目ですよ。 ためしにやったら1回のスキャンで58秒かかりました。 ほかのコンパイラ型言語でDLL関数でも書けばいいと思うけど、 それが無理ならhsp3っていうスクリプトを呼び出して処理するのがいいんじゃないかな。 ttp://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200604/06060040.txt ここでhsp3の性能について語られています。 同じようにUWSCでテストしてみました。 数値の足し算が100万回で11秒 (HSP3の50倍) 文字列の連結が100万回で11秒 (HSP3の10倍未満) peekcolor1280*1024に至っては58秒かかりました。(HSPの140倍) もちろん僕のCPUは時代遅れなPenMですが、記事が書かれたのが僕がパソコンを購入してから1年後なので、 性能があちらが上だとしてもせいぜい2倍どまりでしょう。 画面をキャプチャするpeekcolorと、メモリをスキャンするpeekで比較したのは公平ではないかもしれませんが、 ドットをスキャンする方法がそれぞれ違うのでこれで比較するのが妥当だと思います。 文字列操作を多用するなら一桁しか違わないといえるので、hspを覚えなおすところまでは必要ないと思います。 しかし、計算速度が重要な画像処理をUWSCでやるのはさすがにナンセンスです。 UWSCでゲーム操作をやれるのは組み込みの検索関数があるからですよ。 HSP3を使うとして、言語は覚えなおさないといけませんが、せっかく覚えたUWSCの知識やスクリプトを無駄にすることはありません。 DLLランタイム経由で呼び出すことが可能です。 PC等 [ソフトウェア] “自動化ツールuwsc使いよ集まれ4” ttp://pc12.2ch.net/test/read.cgi/software/1235990960/621 Googleのキャッシュにあります。 ttp://www.google.co.jp/search?hl=ja&source=hp&q=uwsc+_hspexec
574 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/26(土) 08:40:26 ID:XkryZ5iqi] 質問です。 AquesTalkのdllをロードしてwavファイルを出力したいのですが ///構文 unsigned char * AquesTalk_Synthe(const char *koe, int iSpeed, int *size) ///引数 ///koe 音声記号列 ///iSpeed 発話速度[%] 50-300 の間で指定 デフォルト:100 値を大きく設定するほど、速くなる ///size 生成した音声データのサイズが返る[byte](エラーの場合はエラーコードが返る) ///戻り値 WAVフォーマットのデータ(内部で領域確保、解放は呼び出し側でAquesTalk_FreeWave()で ///行う)の先頭アドレスを返す。エラー時は、NULL を返す。このときsize にエラーコードが設定さ ///れる。 DEF_DLL AquesTalk_Synthe(string, int): string: AquesTalk.dll DEF_DLL AquesTalk_FreeWave(string): : AquesTalk.dll sp=50 str="こんにちわ。" fp = fopen("AquesTalk.wav", F_WRITE); wav=AquesTalk_Synthe(str, sp) FPUT(fp, wav) fclose(fp) AquesTalk_FreeWave(wav) 戻り値がデータへの先頭アドレスで帰されるので出力したwavファイルの中身は "RIFF4`" とwavファイルの ヘッダの先頭部分のみになってしまいます。こういうアドレスの先頭・ポインタで戻り値が返された場合、 実体ののデータを取得するにはUWSCではどう記述するのか教えてください。 dllのロード自体がの記述が間違っているかもしれませんが、wavファイルを出力しない↓のコードでは問題なくできました。 DEF_DLL AquesTalkDa_PlaySync(string,int): int: AquesTalkDa.dll sp=50 str="こんにちわ。" AquesTalkDa_PlaySync(str,sp)
575 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/26(土) 09:57:52 ID:YCZ3L8nQ0] >>574 ポインタで受け取ったら、実体をコピーすればいいです。 > VB.net > Declare Function lstrcpy Lib "kernel32.dll" (ByVal lpString1 As String, ByVal lpString2 As Integer) As Integer UWSC DEF_DLL lstrcpyA(string, Long): Long: kernel32.dll DEF_DLL lstrlenA(string): Long: kernel32.dll ここで文字列を格納する場所の確保が必要です。 できればstrlenAで文字列の長さを調べ、その長さのバッファを確保したほうがいいんですけど・・・ とりあえず空白文字列を代入で確保しかないです。 好きな長さにするには文字列連結回数で調整ですね。 wav = AquesTalk_Synthe(str1, sp) str2 = " " //この長さを超えるとメモリが壊れる。 lstrcpyA(str2, wav) FPUT(fp, str2) ところで、.wav ファイルを開いているようですが、UWSCはテキストファイルしか扱えません。 仮に音声データでないとしたら、間違って再生してしまうような拡張子はやめるべきです。 メモリ破壊を防ぐには、lstrcpynA() 関数を使い、コピーする長さを限定します。 n = (str2とwavの短いほうを選択して代入) lstrcpynA(str2, wav, n)
576 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/26(土) 23:49:22 ID:IdkQBLMFi] >>575 返事を忘れてました。申し訳ない。 書かれているように記述して実行してみたのですが、str2の内容が変わらずに出力されてしまいます。 色々試していたのですがどうも思うようにいきません。 >UWSCはテキストファイルしか扱えません これは知りませんでした。 fputで出力するデータがテキスト形式ではなく、バイナリデータなので上手くいかないのかもしれませんが もうちょっと自分の方で試してみます。レスサンクスでした。
577 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/27(日) 07:46:07 ID:iMo1l0nA0] >>576 すいません。 参照渡しが必要でした。 × DEF_DLL lstrcpyA(string, Long): Long: kernel32.dll ○ DEF_DLL lstrcpyA(var string, Long): Long: kernel32.dll コピー元の方はvar なしでもいいんですけど・・・var がないとconst扱いなのかも。 DEF_DLL lstrcpyA(var string, string): Long: kernel32.dll やっぱりバイナリデータですか。 UWSCでもポインタとして受け取ることはできているので、WindowsAPIを使ってファイルに保存することは可能でしょう。 しかし、CreateFileA、WriteFile、CloseHandle などの関数のほか、それぞれの引数も結構あるので大変です。 HSP関連には解説があるようですが・・・ ttp://yokohama.cool.ne.jp/chokuto/urawaza/fileaccess.html やっぱりSaveFileFromURL()みたいに一発で保存できる関数が欲しいところですね。 LightWave3Dとかいうやつだとバッファをファイルに保存するプラグインというのがあるようで・・・ メモ: FileSystemObject はテキストデータのみ。
578 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/27(日) 07:48:07 ID:iMo1l0nA0] >>576 AquesTalk2ならAqTk2Appっていうツールがありますね。 UWSC的にはこのツールを自動操縦するのが趣旨にあってると思います。
579 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/27(日) 08:49:30 ID:ozy0IIj4i] >>577 あーやっぱ結構API関数たくさん使わないと無理ですか。ボチボチやってみます。dd。 >>578 以前にUWSCでSAPI関数使ってsapi5の音声エンジンを使って割と簡単にできたし、他のエンジンもCOMオブジェクトから 簡単にできたから、AquesTalkもできるかなと思ってやってみたんですけど失敗。 現在、半ば意地になってるのと、ついでにちょっとした勉強のつもりでやってるだけで、特にスクリプトを書いてどうこうしよう と考えてるわけじゃないんです。でも情報d。
580 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/29(火) 06:26:49 ID:wrNX1tM50] ファイルに名前をつけて保存の時に、ファイルの種類がHTMLとかになってて、 flvとして保存しようとしても"〜.flv.htm"みたいに二重に拡張子がついてしまう。 ファイルの種類をいじるのもいいけどそれはめんどくさい。 保存するファイル名をダブルクォーテーションで括ってしまえば余分な拡張子はつかなくなる。 それはいいとして、今まで保存したファイルの拡張子を除去するのはめんどくさい。 ファイル名の一部に".flv"を含んだものを探すのもいいけど、 DOSでワイルドカード指定しようとしても.flvはファイル名に含まれてしまう。 UWSCで引数のファイル名を処理するのも考えたけど、実行形式にしないと受け取れないようなことがかかれてたような。 で、バッチファイルで何とかやりました。 割と簡単に記述できるんですね。 :loop rename %1 "%~n1" shift if %1=="" goto end goto loop :end
581 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/29(火) 20:22:17 ID:m65QeqbN0] よかったね^^
582 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/29(火) 21:33:15 ID:fJb2X/gCP] たまにこういう超一方的なレスあるけど何なの? 他人にどういう反応を求めているの? 単純に不快にさせたいんだろうか
583 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/29(火) 21:52:26 ID:Qc35Lc290] 過疎板や専門板だとよくあることだ 相手にするな
584 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/29(火) 22:06:48 ID:usZ+cNtA0] オナニーですから
585 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/29(火) 23:12:57 ID:wrNX1tM50] なんで不快になるのか分からないな。 「名前をつけて保存」に関する質問なんてしょっちゅうされてる。 とりあえずダウンロードしてからまとめてリネームすることもあるんだけど 名前が統一ルールならワイルドカード使ってコマンド1行で済むものを 拡張子を削ることができないためにいちいちバッチファイルでリネームするしかなかったので そういうツールなどないかなあと思ったら拡張子削るだけで金を取るようなソフトしかなくて いろいろ考えた末にいいものができた。 同じ悩みを持つ人はいるだろうし、自分のメモ代わりにもなるし、短くて邪魔にならないし応用も利くし、 何より話題がなくて過疎ってるから書いてるんだけど。 応用といえば有償版を買うメリットにドラッグ&ドロップをあげてる人いたよね。 DOSのバッチファイルで受け取ってスクリプトに渡せば有償版使わなくても済むことになるわけで、 ユーザーにしてみればお得だし・・・ 別件をついでに書いておくけど、他のソフトとの連携がらみでイベントドリブンにできないかなあと考えてる。 >>573 に書いたようにUWSCはなかなか遅いので、イベントドリブンにできればより快適に使えるんじゃないかと。 普通にDLL関数のように呼び出して実行が終わるまでとまっているって言うのもひとつの手だけど、 ・・・いや、それが一番いい手かもしれない。 さっきまではOCX作ってOLEEVENT()で動かすのを考えていたけど、とにかくめんどくさい。 ただでさえIEをOLEEVENT()で動かそうとしてエラーでまくりでどう使えばいいんか分からなかったりするけど、 DLL関数として呼び出すならそういう問題は起きないはずだ。 DLL関数がコールバック関数を作ってメッセージループする・・実行ファイルを同期オプションつけてEXEC()するみたいな動作をすればいい。 取りあえず画面つきDLLを実行してイベント待ち関数を呼び出せばいいかな? 問題はどんなイベントをどんな渡し方するかだが・・ なんかめんどくさ どんなソフトからも連携できるようにしようと思ったらやっぱり実行ファイルの呼び出しだけど、 ・・・ああ、めんどくさい。 やっぱりファイルの存在チェックをループして具体的な処理はファイルの中に書くのが手軽だ。 テキストファイルはコマンドラインでも作れるし連携しやすいし。
586 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/29(火) 23:53:55 ID:mAsbzwiX0] 自己完結している文を省けばすっきりするし読み易い
587 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 00:01:11 ID:FGgZ44ac0] お前さんはペイントで物事が解決したら、 わざわざフォトショスレに報告するのかと。
588 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 00:43:22 ID:cQDwcNUMP] 何を不快と思われているかすら理解できていないのか・・・ そこから説明しよう >なんで不快になるのか分からないな。 >「名前をつけて保存」に関する質問なんてしょっちゅうされてる。 お前のはお前自身が解決しているから既に質問じゃない 単なる日記だ しかもダラダラ長いだけで読む人の事を完全に無視した超超一方的な内容 >>585 をよーく見てみろよ
589 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 02:18:34 ID:E6/1yF7a0] よくわからんけどファイルのリネームくらいならUWSCでもできるんじゃない?
590 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 02:25:37 ID:yk18Gni00] >>589 UWSCでもファイルのリネームくらいならどの道DOS使うのが普通なんだけど、 問題はそのファイル名の受け渡しなんだよ。 Inputで多分ファイルパスの受付はできると思うけど、普通はひとつしか受け取らないもんだ。 >>587 そりゃそうだよ。 フォトショは起動に時間がかかるから、ペイントでちょちょいとできることはペイントにやらせるでしょ。 ペイントでもできるけどこんな大変だったよって場合は「やっぱりフォトショがあってよかったね」って話になるんじゃね? フォトショ使ってる人って結構ペイントのこと知らないよね。 あとね、四則演算するときも俺はエクセルとか使わずにメモ帳と電卓を使うよ。 表計算の欠点は計算式が見えないことだね。 eval使えばいいかもしれないけど。 電卓なら「=」までをメモ帳に書いて電卓にコピペで計算できる。 1024*768*32/8/1024/1024= もーちょっと複雑な計算に対応してくれたら便利なんだけど。 HDDで何ギガの制限とか言うときもこんな感じで電卓にこぴぺ HDD容量は単位が違うからね。 128*1024*1024*1024/1000/1000/1000= まあGoogle電卓がもーちょっと便利だけどね。 *じゃなくてxが使えるし単位とか入ってると分かりやすいし 128x1024^3/(1000^3)= 128x2^(10x3)/1000^3= 230km/17L=
591 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 03:25:13 ID:E6/1yF7a0] よくわからんけどUWSCは電卓ソフトではないと思うの
592 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 07:47:56 ID:w+UAShhg0] chkimgで画像の検索を左上から右下へではなく、右下から左上へ検索をかけていく方法はありますでしょうか?
593 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 08:55:27 ID:WYppQ4gN0] 探査順で言えば、無いと思う。 求めているものとは違うかもしれないが 帰ってきた個数でfor文まわして、ステップを-1で逆順からやるぐらいかなぁ。
594 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 13:14:19 ID:w+UAShhg0] なるほど、探査順では無理なのですか ありがとうございます!
595 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/30(水) 13:55:13 ID:L+4kKGni0] >>585 > なんで不快になるのか 他人のオナニーが快いのは変態以外の何ものでもないですから
596 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/01(木) 20:10:04 ID:OXLrb3Fu0] >>595 おい!お前! 他人(女)のオナニー見て興奮するオレに謝れ! お前だってどうせYouTubeとかですぐ「オナニー」とかって検索するくせに!
597 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/01(木) 21:36:50 ID:JQqovf560] uwsファイル、またはexe化したuwsを起動時に引数を与えてselect case文にそれを適用するという方法はあるでしょうか? そのまま起動したらデフォルト ~.exe -1 でcase1の動作 ~.exe -2 でcase2の動作といった具合です。
598 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/01(木) 22:20:08 ID:qiUbeCCI0] >>597 param_str[]を使う select param_str[0] case -1 print "hoge" sleep(5) case -2 print "fuga" sleep(5) default print "piyo" sleep(5) selend
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/02(金) 06:31:01 ID:c3owuz6h0] これの言語ってなにになるの?
600 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/02(金) 07:30:17 ID:HelCeMPk0] uwsc。
601 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/03(土) 02:18:17 ID:LoG5i7vT0] webページに表示中の画像を全部保存するために Temporary Internet Files内のjpgファイルを消去 指定URLをリロードして再表示 Temporary Internet Files内のjpgファイルを、指定URL名のフォルダをつくってそこにコピー と、やれば表示中の画像は保存できるはずだ、と、ここまで考えたが 同じ目的のフリーソフトはぐぐれば簡単に出てきたので、UWSCで作るのはやめたのであった
602 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/03(土) 20:47:52 ID:I61lA7zx0] >>601 Temporary Internet Filesいじらなくてもどっかのフォルダに名前をつけて保存(完全)する考えが出てこなかったのかと やめたんならいいけどさ
603 名前:名無しさん@お腹いっぱい。 [2010/07/08(木) 09:32:33 ID:VGSbza+G0] 何回やってもうまくいかなかったので質問させていただきます。 検索しても見つけられませんでした。 コードを見てください。 ファイルの中身はcsv形式です。 fid=fopen(... lins = FGet(fid, -1) for i = 0 to lines lin[i] = FGet(fid, i+1, 1) lin[i] = FGet(fid, i+1, 2) lin[i] = FGet(fid, i+1, 3) ... next としているのですが、これを簡略化できないでしょうか? ご存じの方はご教授願います。
604 名前:名無しさん@お腹いっぱい。 [2010/07/08(木) 10:31:01 ID:VGSbza+G0] >>603 です やりたい事を書いてませんでした。 lin[0]=FGet(fid, i+1, 1) lin[1]=FGet(fid, i+1, 2) lin[2]=FGet(fid, i+1, 3) ... これを、例えば dim lin[]=FGet(fid, i+1) とか dim lin[7]=FGet(fid, i+1) などの様にならないかなぁ〜と思っています。 もちろん、試したので上記の例えはNGと分かっています。 FOR の入れ子はちょっと・・・ 同じようなこと試した方はいらっしゃいませんか?
605 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/08(木) 11:43:42 ID:OOcrcd230] >>604 基本機能に無いので、関数化するとかの対応が必要だろう。 forの入れ子はしょうがない。 function str2Array(str, Var array[], splitter=",") //スプリットして、配列サイズ整えて、配列に格納して参照渡し、resultは個数あたりを返す fend あとは、配列のコピー、配列ソート(+反転)、ぐらいを作ると楽です。
606 名前:名無しさん@お腹いっぱい。 [2010/07/08(木) 21:57:01 ID:VGSbza+G0] >>605 ご返答ありがとうございます。 やはり関数化するしかないですね。 基本機能にないものは作っていこうと思います。 ありがとうございました。
607 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/09(金) 16:06:17 ID:hX8OxlDV0] 自分用メモ コマンドラインからのファイル圧縮 ttp://nasunoblog.blogspot.com/2007/07/blog-post.html コマンドラインで操作できるプログラムは、そのアプリにキー入力を送ったりダイアログにファイル名を送ったりするより、コマンドライン操作したほうがスマートにいくね! uwscで表記した場合、たとえばこんな感じ exec("C:\Program Files\WinRAR\WinRAR.exe x C:\tst\ttt.zip *.* C:\tst\") AutoHotKeyだとこうなる(待ちを入れるならrunをrunwait run, C:\Program Files\WinRAR\WinRAR.exe x C:\tst\ttt.zip *.* C:\tst\
608 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/09(金) 17:39:08 ID:dT0oVw9f0] すみません質問させてください もし、aが60の時マウスを左クリックするという命令を作りたいのですがどう組めば良いでしょうか a=0 while sleep(1) a+10 →このあたりにもしa=60の時クリックさせたいんです continue Wend
609 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/09(金) 17:41:01 ID:yIcWbCTj0] >>608 添付のヘルプにif文の書き方が載ってるよ
610 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/09(金) 17:42:19 ID:dT0oVw9f0] >>609 !!! 即レス感謝しますm(_ _)m
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/09(金) 17:58:06 ID:vOMsfoxV0] >>608 a = a + 10 としないと加算されないよ んで、60のときという条件だと1回しか実行しないのにずーっとループしてることになるね。 60になるごとに実行なら、60になったときに初期値に戻すか、 if a mod 60 <> 0 then って、60で割り切れたら実行するような処理にしないと。 >>580 のバッチはファイルが別ドライブだと動かなかった。 そこで、最初に処理するファイルの場所に移動する。 cd /dは、ドライブも移動するオプション。 判定する位置も間違っとったので修正。 cd /d "%~dp1" :loop if %1=="" goto end rename %1 "%~n1" shift goto loop :end
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/09(金) 19:19:11 ID:vOMsfoxV0] ミス バッチファイルは全角スペースを区切り文字として処理してしまうのでファイル名が壊れてしまっていた。 echo %1 >> log.txt で確認。 半角スペースが入るファイル名の場合はダブルクォーテーションで括られているが、 半角スペースがないファイル名はダブルクォーテーションが付かない。 ところが、バッチファイルは全角スペースを区切り文字として見るのでファイル名が分割されて処理されてしまっていた。 UWSCから呼び出す場合は無条件にダブルクォーテーションをつければいいので問題ないが、 バッチファイルを直で呼ぶときにはそういう問題があるようだ。
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/07/09(金) 20:42:22 ID:yIcWbCTj0] >>612 まぁ、ロングファイルネームを扱うときの鉄則だよな。 <#DBL>で挟むだけの関数とか作ってるわ