1 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 12:13:49.92 ID:an35jPjo.net] UWSC初心者用スレです わかってる人はこっち 自動化ツールUWSC使いよ集まれ21 egg.5ch.net/test/read.cgi/software/1533818531/ 降臨される神々においては相手を人と思わず猿と思し召されるよう 何卒お願い申し上げます
848 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 22:41:06.95 ID:W0isZ3pe.net] ブラウザの読み込み完了になるまで待つ機能があるかどうかですお。
849 名前:デフォルトの名無しさん [2021/03/04(木) 08:23:11.29 ID:RtzC2UYg.net] そりゃ自動化ツールなんだから クリックした結果を見る前に次の動作するわけなかろうw 艦これの自動化くらいすぐ出来そう
850 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 14:16:32.07 ID:U4nDCxwI.net] //IE以外で読み込み完了まで待機が出来ないとか何とか・・・? DOSCMD("start microsoft-edge:www.google.co.jp/" ) //Edgeを起動してGoogleを表示 ID = GETID("Edge", "", -1) Stand-by(ID,ITM_BTN,"Google 検索") SENDSTR(id,"屋久島", 1, True) // 屋久島と入力してEnter SCKEY(ID, VK_RETURN) Stand-by(ID, ITM_LINK, "地図") CLKITEM(ID, "地図", CLK_LINK) // 地図をクリック //指定アイテムの文字が確認できるまで待機 Procedure Stand-by(ID, kind, ITM) While True Sleep(0.4) for n in GETITEM(ID, kind) if n = ITM then Exit next wend Fend
851 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 11:11:54.09 ID:r1yNd/Vf.net] >>795 の続きが紹介されていた windows10homeの場合は使えない機能があるとのことProを使うのは当たり前なんで気にしたことなかったが。 homeの人はproへグレードアップしてほしい。約1万5000円支払えば可能だから当たり前にやっておこう。 また、ブラウザの自動操作は拡張機能が必要とのことだ。
852 名前:デフォルトの名無しさん [2021/03/08(月) 13:19:35.29 ID:p+9eWZvC.net] やるかボケ
853 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 13:36:33.15 ID:r1yNd/Vf.net] あっそうですか でしたら使えない機能は諦めていただく他はないですね
854 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 13:54:11.38 ID:1eIB7vrT.net] マイクソからも提供されてるのか 試してみるかな
855 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 15:13:37.21 ID:ZRLAvOku.net] printで表示させる文字の位置を設定する方法はありますか? サイズも設定できるとなお良いです
856 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 13:10:54.59 ID:cA/ebhRB.net] //面倒くさいやり方もあるが、無駄な労力なのでLOGPRINTを使うと良い //なぜかx座標が7ピクセルずれるから指定座標から引く事 x = 500;y= 500 FUKIDASI("表示位置テスト1",x,y) LOGPRINT(TRUE,x-7,y,250,100) PRINT "表示位置サイズ変更テスト2" sleep(10)
857 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 19:17:10.26 ID:MdoUOPO+.net] 凄い初心な質問ですんません。 ID = EXEC("C:\Program Files (x86)\cameeze\cameeze.exe") SLEEP(1.5) ACW(
858 名前:GETID("cameeze","TfrmMain.UnicodeClass"),1583,450,460,300,0) ↓ 5回繰り返し(座標だけ違う) こんな感じで作ったのですが、UWSCから設定ファイルを実行すると動くのですが、 設定ファイルから実行すると失敗してしまいます。(アクティブなウィンドウが切り替わらずにパッパッと動いてる) 重複起動していて同名なので、名前の後に(1)みたいな風に付ける方法はありませんでしょうか… [] [ここ壊れてます]
859 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 19:20:27.96 ID:MdoUOPO+.net] あれ、なんでだろ書き込めない・・・
860 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 19:25:57.43 ID:MdoUOPO+.net] くっそ初心者ですんません。 ID = EXEC("あああ") SLEEP(1.5) ACW(GETID("あああ","TfrmMain.UnicodeClass"),1583,450,330,460,0) ↓ 座標変えて5回繰り返し こんな感じで同じソフトを多重起動させて並べようとしたのですが、失敗してしまいます。 ウィンドウタイトルが同じで同じウィンドウを色々な座標に持っていこうとしてるだけみたいな感じなのですが ソフト名の後ろに(1)みたいなのを付けたりする方法はありませんでしょうか… (なぜか書けなかったのであああにしてます)
861 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 20:13:27.68 ID:E6ui2GaX.net] 例えばこれで多重起動できる ID = EXEC("notepad.exe") ACW(ID,1583,450,330,460,0) ID2 = EXEC("notepad.exe") ACW(ID2,1583,450,330,460,0)
862 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 22:20:18.27 ID:BQ6dfRIE.net] >>809 ID = EXEC("あああ") とやってるのに、その後のACWでIDを使わない謎
863 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 22:32:16.30 ID:MdoUOPO+.net] >>811 ありがとう!「SLEEPを挟んじゃうからIDが受け渡せてねぇんだよ」みたいな感じですか? でもそのソフト起動遅いんです・・・。 続けて書いたら最初に立ち上がる時に表示されるロゴみたいなのが指定の位置に移動するだけで 肝心のウィンドウは前回の終了位置にいってしまうんです…
864 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 00:00:30.92 ID:+CyRHPpu.net] //>「SLEEPを挟んじゃうからIDが受け渡せてねぇんだよ」 //変数のIDを使ってないから、渡す以前に渡してねぇだろという・・・ //SLEEPは待ち時間指定だから、好きなだけ挟んで良い //電卓を多重起動して横に並べる EXEC(GET_SYS_DIR+"\calc.exe") SLEEP(2) ID1 = GETID("電卓") ACW(ID1,100,100,500,500,0) EXEC(GET_SYS_DIR+"\calc.exe") SLEEP(2) ID2 = GETID("電卓") ACW(ID2,600,100,500,500,0) EXEC(GET_SYS_DIR+"\calc.exe") SLEEP(2) ID3 = GETID("電卓") ACW(ID3,1100,100,500,500,0)
865 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 00:36:16.10 ID:/ZCKQNsi.net] 複数個起動できないソフトなのでは?
866 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 01:08:44.19 ID:v5Yi3qmH.net] ああ!そういうことか!(´・ω・`)意味が分かったかもしれない!! ID = EXEC("あああ") ←この『ID』=という部分が自分で決めれるんすね!? 例えばaaa = EXEC("あああ")と書いて次の行に ACW(aaa,1583,450,330,460,0)とすると 録画機能みたいなのを利用してたのでIDと書くルールなのかと思ってました… >>814 いえ、複数個起動はできるソフトで、一応動くには動くのですが 設定ファイルから実行するとアクティブなウインドウが切り替わらず一つのウィンドウだけが座標を行ったり来たりする感じでした
867 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 01:09:40.14 ID:v5Yi3qmH.net] わ
868 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 09:32:47.13 ID:+CyRHPpu.net] なるほどなぁ そのレベルからの解説でも需要があるのか UWSCの需要はまだ枯れてないか
869 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 06:59:58.16 ID:TjD9TcDJ.net] >>810 せっかく教えてくれていたのに、専ブラの設定かで見えてませんでした ありがとうございます
870 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 07:01:40.55 ID:TjD9TcDJ.net] >>813 も見えてなかった… ありがとうございます!
871 名前:807 mailto:sage [2021/03/17(水) 16:54:27.51 ID:dsWxXXVG.net] 皆のお陰様でちょとだけ理解ができてきました あわよくばもう一点だけ教えて欲しいのです >>810 さんが教えてくれた方法は何故か上手く動いてくれませんでした 起動の遅れ?とかが関係あるのかとSLEEPを挟んでみたりしたのですがうまくいかず でもそのまんまコピペするとメモ帳はその様に動きました。
872 名前:そこで>>813 さんの教えて貰った様に起動させた後にGETIDってので戻り値?というのをID1〜6に指定 これで思惑通り動きました!でも解せないというか理解できてないんです。 ID1 = GETID("電卓") ってのは「電卓っていうウィンドウIDを返せ」「それをID1と仮名する!」という意味であってますか? だとすると電卓が複数個起動してたらどれのウィンドウIDを戻すのか分からなくなる気がするのは気の所為でしょうか それとも順番に書いてるからアクティブなウィンドウから値を引っ張ってきてるのでしょうか? 1・自動で起動させてアプリを並べる。 2・別の設定ファイルでウィンドウにあるプルダウンメニューから自動で選ぶ をやりたくて、1はできたのですが2を行う場合、GETIDではできませんでした。 初心者のクセに基礎も分からず意味不明なこと言ってるかもしれませんが、最後にしますのでお願いします… [] [ここ壊れてます]
873 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:42:27.72 ID:0BuFiOnf.net] 最初から言ってる設定ファイルがなんなのか分からん どっかて買ったマクロ集かなんか? まあ他の部分は推測と合っている
874 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:56:01.39 ID:+PPxZeIs.net] 省略しないで書くなら、 ID = GETID("電卓", "ApplicationFrameWindow", -1) となるが、めんどいから省略してる //IDはIDの数値を入れる変数なので、変数名は何でも良い //変数は数値や文字を入れておく箱のようなイメージ //UWSCには変数の型は無いので、数字でも文字でも区別なく入れられる //変数の宣言 使いたい所で変数を作れるの必須ではないが、使う変数を決めておく意味で宣言しておいた方が良いとは思う DIM ID1,ID2,ID3 EXEC(GET_SYS_DIR+"\calc.exe") SLEEP(2) ID1 = GETID("電卓") ACW(ID1,100,100,500,500,0) msgbox(ID1) EXEC(GET_SYS_DIR+"\calc.exe") SLEEP(2) ID2 = GETID("電卓") ACW(ID2,600,100,500,500,0) msgbox(ID2) EXEC(GET_SYS_DIR+"\calc.exe") SLEEP(2) ID3 = GETID("電卓") ACW(ID3,1100,100,500,500,0) msgbox(ID3) //こうすると、起動した順にIDが1,2,3と割り振られてる事が分かる //プルダウンメニューから選ぶのはUWSCでも出来るけどめんどい
875 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 20:02:51.61 ID:dsWxXXVG.net] >>821 すんません、設定ファイルじゃなくてuwsファイルでした。 ということは、同名アプリ起動後に別のuwsファイルでIDを取得するには マウスで座標指定してクリック→ウィンドウをアクティブに→ * = GETIDみたいなのを書いてやると良いわけですね ありがとうございます挑戦してみます
876 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 20:12:09.19 ID:dsWxXXVG.net] >>822 勉強なります。そうですかプルダウンはめんどうなんですね プルダウンは諦めて手動にしようかと思います。
877 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 21:35:38.19 ID:oFq5eIyC.net] プルダウンメニューから選ぶというのがよくわからない
878 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 07:40:23.96 ID:8urs7GkO.net] >>825 防犯カメラ複数台登録して視聴ソフトを起動させると すべて1台目のIPが指定されてしまうのです。 なのでプルダウン(ドロップダウン)から機器登録されている IPアドレスを選択してあげないといけないんです
879 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 08:15:40.32 ID:YmFQF9g2.net] 全部を一つでは出来ないよ 所詮はアプリじゃなくてスクリプトだからさ やろうと思えば出来るけど、状態を保持してる何かするのは難しい 今上がってるもので言うと 複数の監視カメラの視聴アプリとやらを一括で起動するのは特に問題ないよね 同時に整列させるのはちょっとハードル高いから考え方変えて、同じアプリを後から整列させるなら多少は簡単にできる (ただ、uwscでやる必要性はあまり感じない) プルダウンから自動で選ぶはまだちょっと意味が分からない リストからカメラ指定して起動したいってこと? それとも起動済みの視聴アプリをリストにして、それを選んで何か操作したいということ? 後者はアプリがタイトルバーに何か色つけてくれてればやりようあるけど、そうじゃないなら難しいよ
880 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 09:52:39.16 ID:JPJY5VhO.net] たとえば一つの例として「Fit Win」というアプリがあって 指定したアプリを整列させるだけならこういうアプリもある プルダウンから選ぶは座標クリックしていく原始的なやり方しかないだろうね 整列して同じ座標へウィンドウを固定させたら比較的簡単にできるし 視聴ソフトはあまり詳しくないので調べてみたら「smart viewer」というフリーのソフトが複数カメラ、複数画面に対応してるようだけど こういうソフトじゃないと駄目なの?機器が対応してないと駄目だろうけどLAN接続するタイプなら割と対応してるっぽいが? このソフトを採用している警備会社があるようだから悪くないと思うけどな
881 名前:デフォルトの名無しさん [2021/03/18(木) 10:40:06.48 ID:Y5jTQtWf.net] ネットワークドライブのuwsファイルを認識しないのですが、みなさんの環境でもそうですか? \\ORE-PC\UWS\hoge.uws をダブルクリックすると問題なく起動しますが、 \\ORE-PCをZドライブに割り当てて、 Z:\UWS\hoge.uwsをダブルクリックするとFILE NOT FOUNDってでる。 右クリ→メモ帳だと問題なく開けるので、UWSCの仕様なんでしょうかね・・
882 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 11:08:31.02 ID:JPJY5VhO.net] ダブルクリックして起動? ランチャーとかUWSCから起動させるのは駄目? ネットワークドライブを割り当てるとかはやってないのでわかりませんね
883 名前:827 mailto:sage [2021/03/18(木) 12:13:19.45 ID:Y5jTQtWf.net] windowsのショートカットでも、ランチャーに登録してもダメですね。 だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ
884 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 12:38:28.87 ID:Sp8r4MHz.net] コマンドプロンプトで実行できるなら、hoge.uwsがあるフォルダにUWSC.exeを入れて BATファイルに UWSC.exe hoge.uws と書いてBATファイルで実行する手もある
885 名前:827 mailto:sage [2021/03/18(木) 13:45:17.72 ID:Y5jTQtWf.net] >>832 やってみたら見事に FILE not found :hoge.uws が返ってきました。目の前にあるんですけどね・・
886 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 14:05:23.77 ID:Y5jTQtWf.net] >だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ 改めてやったら、そもそもUWSC本体→開くでZドライブが見えない。 なんで開けたつもりになったんだろう・・謎 ショートカットは見えるので叩くとやっぱFILE not found
887 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 14:25:56.67 ID:Sp8r4MHz.net] EXEファイルにするか、iexpress.exeでパッケージ化するか https://wikiwiki.jp/gutchie/%E8%87%AA%E5%8B%95%E5%8C%96%E3%83%84%E3%83%BC%E3%83%AB/UWSC#y1bf8470
888 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 22:16:20.39 ID:SjAM6MJ0.net] 子ウィンドウを取得して操作したいのですがなかなか上手くいきません ID=GETID("親ウインドウのタイトル") idLength=GETALLWIN(ID) FOR i = 0 TO idLength-1 PRINT STATUS(ALL_WIN_ID[i],ST_TITLE) NEXT ↑を実行したところ、返ってきたのは子ウィンドウではなく 子ウィンドウ内の要素でした。(ボタン、チェックボックス、ラジオボタン) ID=GETID("親タイトル",,,"子タイトル") PRINT ↑は-1になります やり方間違ってますか
889 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 23:30:49.98 ID:ffF9L6R4.net] //ウィンドウIDを全て取得してみてIDとタイトルを調べる方法もある n = GETALLWIN() FOR i = 0 TO n-1 PRINT ALL_WIN_ID[i] + " " +STATUS(ALL_WIN_ID[i],ST_TITLE) LOGPRINT(TRUE,100,50,800,1100) NEXT msgbox("stop")
890 名前:デフォルトの名無しさん mailto:sage [2021/03/25(木) 00:14:40.63 ID:dnI+vm3S.net] >>837 実行してみると 親ウィンドウのタイトルが、ウインドウの数+1表示されました という事は自分が子ウインドウだと思っていたものは全て親ウインドウという事かな? 今日は遅いのでまた明日やってみます ありがとうございました
891 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 09:20:46.01 ID:vJdMFfhi.net] Windowsのユーザーを切り替えて、各ユーザーごとにマクロを実施していきたいの
892 名前:セけど、ユーザー切り替えはUWSCでは難しいですか? [] [ここ壊れてます]
893 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 09:27:52.43 ID:Aph6z+sk.net] 何したいか分かんないけどユーザー指定して操作対象のアプリ起動するんじゃダメなん?
894 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 11:17:30.70 ID:RfO7RRDz.net] UWSCの範囲を超えるこえど 動かしたいユーザー列挙しといて レジストリに自動ログオンと自動実行の仕掛け作っとけばいけそう 再起動→次のユーザーで自動ログオンして自動実行という流れで
895 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 11:58:31.99 ID:AGu16ZxP.net] ユーザー分の台数を用意すればいい 10ユーザーいるなら10台用意するとかね
896 名前:デフォルトの名無しさん [2021/04/13(火) 14:47:03.51 ID:IqZsL8m5.net] 神様ちょっと助けておくれ・・・ ブラウザのスクロールバーのボタン3回クリックの1セットを、 1セット×回数で10回行いたい(=最後は30回クリック) forでかけ算すればいいんじゃね?とひらめいたが動くわけがなかった。
897 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 15:08:40.06 ID:IqZsL8m5.net] for t=1 to 10 CHKIMG("scroll-down.bmp") c=t*3 repeat BTN(LEFT,CLICK, G_IMG_X,G_IMG_Y ,30) sleep(1) until c >c next untilの書き方にモヤモヤしているが・・・とりあえずエラーは出ない 永久にクリックし続けるだけで。
898 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 15:14:05.98 ID:C7npRUyM.net] ブラウザの右下隅に下向きのボタンがあるが、それをクリックするという事かな?
899 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 15:16:34.28 ID:IqZsL8m5.net] そうです。 ブラウザ上での作業を自動化したくて。 ボタンにかんしてはscroll-down.bmpで判定してます。 forのt使って repeat BTN(LEFT,CLICK, G_IMG_X,G_IMG_Y ,30) sleep(1) until t >t*3 にしてみましたがこれも永遠にクリック(tが1なんだから4で止まって欲しいのに・・・)
900 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 16:03:51.33 ID:M7vT5OZZ.net] c > c ワロタ この不等式がおかしいと思わないってヤバない? プログラムじゃなくて数学、いや算数レベルやん
901 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 16:11:32.97 ID:C7npRUyM.net] //FORの入れ子でOK //1回目 1*3、2回目 2*3・・・10回目 10*3 CHKIMG("scroll-down.bmp") FOR i = 1 TO 10 FOR x = 1 TO i*3 SLEEP(1) BTN(LEFT,CLICK,G_IMG_X+5,G_IMG_Y+5) NEXT NEXT msgbox("クリック完了")
902 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 16:36:03.26 ID:IqZsL8m5.net] いろいろ試してる間にごちゃごちゃしてきたのですみませんね; UWSCではforしか使ったことがないもので >>848 入れ子でいいはずですよね・・・(同じコードだ・・・) もう一回ためしてみます。 ありがとう。
903 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 14:51:43.21 ID:uD9tfUyH.net] プログラムファイルから消した文言が表示されエラーになってしまいます IFB CHKIMG ("C〜.BMP")を("C〜.PNG")に書き換えしたのですが、NOT FOUND 〜BMP となります (appdataなど削除し)ソフトの入れ直しや、違う名前のプログラムファイルを作成などしましたが改善せず。terapadを使用して書いてます ご教示お願いします
904 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 14:53:20.85 ID:hdR99Jx3.net] 違うファイルを読み込んでいる
905 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 15:17:51.55 ID:jul+q2bh.net] 実行してるファイルと編集してるファイルが違ってたとかよくある 何でこのバグ消えねぇんだ?と思ってよく見たら違ってたと
906 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 21:43:26.23 ID:Qutb4gNt.net] CHKIMGはBMPしか使えないからそのエラーになるだけで消した文が影響している訳ではない BMPに戻せ
907 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 21:59:57.64 ID:9Ra8nUSr.net] ちゃんとエラーメッセージ読むタイプと読まないタイプの違いが出たな
908 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 23:08:42.23 ID:mtyX36ii.net] おお!出来ました! 皆様ありがとうございます
909 名前:デフォルトの名無しさん [2021/04/23(金) 04:45:57.46 ID:GWiJhS53.net] for文について困っていることがあります。 下記の処理Aのみ 繰り返す際に処理回数を1増やしたいです。 BTN(LEFT,CLICK,13,167,10) For i = 1 to 100 KBD(VK_RALT,DOWN,50) KBD(VK_RIGHT,CLICK,50) KBD(VK_UP,CLICK,50) //処理A ※ ここの処理だけ 1回目は1回実行 2回目は2回実行 3回目は3回実行… にしたい KBD(VK_RALT,UP,50) NEXT 調べましたがどうしてもわかりませんでした。 for文の中の処理回数を増やす方法をご存じでしたら、教えていただけたら幸いです。 よろしくお願いします。
910 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 05:45:45.21 ID:2JaREPAx.net] For i = 1 to 100 KBD(VK_RALT,DOWN,50) KBD(VK_RIGHT,CLICK,50) For j = 1 to i KBD(VK_UP,CLICK,50) //処理A ※ ここの処理だけ 1回目は1回実行 2回目は2回実行 3回目は3回実行… にしたい Next KBD(VK_RALT,UP,50) Next
911 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 05:56:06.69 ID:kWPc6e52.net] やるじゃん!
912 名前:デフォルトの名無しさん [2021/04/23(金) 06:00:49.79 ID:GWiJhS53.net] >>857 できました! なるほどfor文の中にfor文を入れて他の変数にiを代入すればいいんですね… お忙しいところ教えていただきありがとうございました
913 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 12:41:11.27 ID:Fs/FdOQM.net] いや別に代入はいらんけど…
914 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 13:40:06.30 ID:gAgD293m.net] 動けばいいんだよ 猿相手に説明してもしゃーない
915 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 14:54:53.39 ID:zpT46eZ/.net] キーキー喚いて他人に噛み付くだけの猿は本当にしょうがないよな
916 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 15:13:24.53 ID:gAgD293m.net] >>1 読んでないのかな
917 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 15:35:59.73 ID:Qd1iaOGD.net] 無能な猿はすっこんでろって
918 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 18:49:02.98 ID:k2R/iVu9.net] サルモンキーウッキー
919 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 21:19:57.52 ID:gWvSQQ0Q.net] メモ帳上だと正常に機能するけど、動かしたいソフト上だと特定のキー(十字キーとかシフトキー)だけ受け付けないんだけどなにかわかるかな? 記録は出来て、中身を見るとちゃんとキーも入ってるけど再生時に特定のキーが無視されちゃう
920 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 02:52:48.63 ID:MA8kI4AW.net] まず「動かしたいソフト」の名前を書け
921 名前:デフォルトの名無しさん [2021/05/14(金) 14:13:35.87 ID:2RtqhEo0.net] 画像1と画像2のどちらかを認識した場合、認識した画像の座標を取得して処理Aを行いたいです IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A ENDIF 処理Aは同じですが、いまはこうして分けています 今後、画像3、画像4と増えていく可能性があるので毎回分けて記述しなくても良い方法はないでしょうか IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1) OR CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A このようにORを使って画像1が表示されてる最中に実行してみたところ、画像座標の取得に失敗してしまい処理Aが動作しませんでした (PRINTで座標を確認してみたら-99999とかになってました)
922 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 15:09:08.52 ID:K8K4yQFj.net] getdirでファイル一覧取ってきてfor-in-nextで画像ファイルの分だけループ回せばいいと思う
923 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 16:43:30.17 ID:iQwZsiAA.net] chkimgxを使えばもっと簡単に書けるが、使わないなら //画像1.bmp〜画像2.bmpを検索してどれかを認識したら処理Aを実行しループを抜ける FOR x = 1 TO 2 IFB CHKIMG("画像" + x + ".bmp", , , , , , -1, IMG_MSK_BGR1) //処理A BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) BREAK ENDIF NEXT
924 名前:デフォルトの名無しさん [2021/05/14(金) 17:02:47.72 ID:2RtqhEo0.net] >>869-870 ありがとうございます、ですがすいません 文にしたときにわかりづらかったので変えていたのですが、 実際の画像ファイルはファイル毎に名前を変えていて連番ではなく、画像を認識する場所もそれぞれ異なります
925 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 17:37:15.98 ID:iQwZsiAA.net] //BMPファイルの数を取得する //BMPファイルは同じフォルダに入れておくこと N = GETDIR(GET_CUR_DIR,"*.BMP",TRUE,0) //GETDIR_FILES配列にはGETDIRで取得したBMPファイルのファイル名が全て入る //BMPファイルを検索してどれかを認識したら処理Aを実行しループを抜ける //CHKIMGで座標指定しないなら、パラメータ無指定でもOK FOR x = 0 TO N-1 IFB CHKIMG(GETDIR_FILES[x]) //処理A BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) BREAK ENDIF NEXT
926 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 22:43:48.66 ID:6hlMfvtI.net] >>871 >画像を認識する場所もそれぞれ異なります ってこういうことかな CONST e_bmp=0 CONST e_xOffset=1 CONST e_yOffset=2 // 画像と認識位置のセット DIM aMultidim[][2] = "a.bmp",2,3 _ ,"b.bmp",-1,-1 _ ,"c.bmp",0,1 DIM i DIM iLastSet = length(aMultidim) - 1 FOR i = 0 TO iLastSet IFB TRUE = CHKIMG(aMultidim[i][e_bmp]) THEN // 発見位置にオフセットを加味してクリック BTN(LEFT, CLICK , G_IMG_X,+aMultidim[i][e_xOffset] _ , G_IMG_Y+aMultidim[i][e_yOffsetOffset]) ENDIF NEXT
927 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 02:20:59.88 ID:d0kD+s8i.net] やっぱchkimgxで組んだら? わざわざ配列でチェック座標管理しなくて済むし
928 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 15:01:39.06 ID:M0a+Mlf6.net] 明確に座標が違うなら配列作ってforで回す方がいいと思うがね
929 名前:デフォルトの名無しさん [2021/05/18(火) 01:52:43.80 ID:IPcsF0ko.net] すいません、返事が遅れました >>872-873 の方法でいじりながら様子を見てみます、ありがとうございます しかし元々の記述よりだいぶ複雑になるんですね… CHKIMGXはなぜかウインドウがピカピカ光って煩わしいのでなるべく使わないようにしてます 別件ですがもうひとつ質問です ランダムに表示される画像xを参照して処理を行う001.uwsというもののほかに、同じ画像xを参照するものの001.uwsとは異なる処理を行う002.uwsや003.uwsを作る予定です ・A.uwsの中身 WHILE TRUE CALL B.uws CALL C.uws CALL 001.uws//処理が終わったらA.uwsに戻ってこさせたいので、ループ処理にはしていない WEND いまUWSCにはこのように記述したA.uwsを読み込ませています 説明が難しいのですが001.uwsと002.uwsを使う場面が明確に異なるので、 CHKIMGで画像1を認識したら、画像2や画像3を認識するまで以降002.uwsや003.uwsなど特定のuwsだけを読み込まなくなり、 逆に画像2を認識したら、画像1や画像3を認識するまで以降001.uwsや003.uwsだけを読み込まないようにしたいです IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1) CALL 001.uws ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1) CALL 002.uws ELSEIF CHKIMG( "画像3.bmp", , , , , , -1, IMG_MSK_BGR1) CALL 003.uws ENDIF このように記述すれば良いのでしょうが、001.uws〜003.uwsはループ処理させたくないのと、画像1〜3は常に表示されているわけではないので困ってます なにか良い解決策はないでしょうか
930 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 06:01:50.96 ID:UDGz656x.net] ちょっと話しは逸れるけど そもそもいちいちcallする必要あるのかな 関数化しちゃいかんの?
931 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 10:17:39.32 ID:wQ5og2t5.net] 定期的に出てくるけどCALLを関数代わりにしてる奴は頭おかしいからスルーして大丈夫
932 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 10:19:50.75 ID:qh33yYe/.net] むしろファイルをcallできる言語仕様に驚きを禁じ得ない
933 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 10:31:01.04 ID:4dF+L4dN.net] そこは include とか import と同じじゃないの 単機能を関数的に呼び出すのがおかしいってだけで
934 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 10:37:54.61 ID:qh33yYe/.net] まあ確かにDLLと同じようなもんだと言われたらそれまでだけど 関数ポインタをディスパッチするような手間いらずで初心者でも手軽に使える点は評価したい
935 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 10:42:00.07 ID:t/eWMALd.net] callもスクリプト単体で動くようにすると結構便利だけどな スクリプトは実行時に読み込まれてるみたいだし関数と変わらん気がするが
936 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 11:10:02.73 ID:qh33yYe/.net] 利便性を優先すると使うための手続きが複雑になる このトレードオフは言語開発者の永遠のテーマだろうな
937 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 11:14:19.63 ID:4dF+L4dN.net] たぶん上の人は関数自体使い慣れなくてだいぶ抵抗があるんだろうな 老婆心的にはスマートな使い方教えたいけど 自分でメリット感じられないとなかなか移行は難しそうだ
938 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 11:30:39.35 ID:qh33yYe/.net] DLLを使った方がカッコイイからというくだらん理由で どう見ても静的リンクでいいだろうという場面でやたらDLLを使いたがる人もいる シンプルにEXE一本で動かせるのにランタイムライブラリという必要条件が増えるけど 素人は複雑イコール技術が高度と感じることがあるのでなんとも言えない
939 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 12:16:39.91 ID:AZFZk1uK.net] そもそも、起動した時点でcall先のファイルは一括して読み込まれるってのを分かってないよね だから、読み込まないようにしたいっていう一文が出てくる
940 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 12:24:17.39 ID:4dF+L4dN.net] >>886 それはそうなんだろうけど 874の人は関数的に使ってるから読み込ませたくない=実行させたくない って意図でしょう それはそうと874の実際の質問内容考えてる人俺含めていない件w 後ででもしっかり読んでみようと思ってるけど論理問題のようだから意図や齟齬たどるの面倒よね
941 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 13:30:39.30 ID:9AUeHlwd.net] >>876 CALLの使い方を間違ってる
942 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 13:51:29.74 ID:qh33yYe/.net] CALLの正しい使い方のお手本を出してくれるそうだから よく聞くように
943 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 14:17:24.85 ID:XOsT82We.net] 874です 以前、こちらのスレで長々と書くのではなく、ひとつの処理に対してひとつのファイルにしてCALLで読み込ませろって書いてあったのを読んだ気がしてそうしてました よろしくおねがいします
944 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 16:19:21.98 ID:KFxGhSSQ.net] CALLは意味が沢山あって意外と日本人に馴染みのない言葉だから仕方ないね
945 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 16:53:51.17 ID:9AUeHlwd.net] >ランダムに表示される画像xを参照して処理を行う001.uwsというもののほかに、同じ画像xを参照するものの001.uwsとは異なる処理を行う002.uwsや003.uwsを作る予定です ファイルを分ける必要がない 動けばどう書いても良いけど、難しく考えすぎて面倒くさい書き方をしてるようにしか思えん
946 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 16:58:47.86 ID:0sQ29iV7.net] 関数の使い方を覚えるべきだよね
947 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 20:28:58.68 ID:9AUeHlwd.net] 認識した画像ごとに処理を分ける例 IFBでダラダラ書くより読みやすく書ける WHILE TRUE SELECT TRUE CASE CHKIMG("画像1.bmp") 処理1 CASE CHKIMG("画像2.bmp") 処理2 CASE CHKIMG("画像3.bmp") 処理3 DEFAULT 例外処理 //例外処理 SELEND WEND
948 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 21:40:52.44 ID:pImCnyq0.net] >>894 これは凄い発想 caseに式や関数使えるとか知らなんだ