■ このスレッドは過去ログ倉庫に格納されています
自動化ツールUWSC使いよ集まれ14
- 387 :名無しさん@お腹いっぱい。:2015/04/29(水) 19:41:50.55 ID:O66CU1E70.net
- 最近使い始めて画像認識とか便利だけど
サイトの読み込みまちの調整が難しいな…
十分に時間とると効率悪くなっちゃうし
- 388 :名無しさん@お腹いっぱい。:2015/04/29(水) 19:45:54.78 ID:jCE5jBuY0.net
- IE制限は痛いしなぁ
- 389 :名無しさん@お腹いっぱい。:2015/04/29(水) 21:26:21.49 ID:AmN3CDh6G
- >>387
busywait()
じゃあかんの?噛み合ってなかったらすまん
- 390 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:00:57.03 ID:LQJ9309Q0.net
- >>387
htmlにOnLoad()投げいれて読み込み完了をフックしたら?
- 391 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:07:37.97 ID:glG4jNOE0.net
- BusyIE()でずっと待ちになって進まない時があるんだが、どうやって対処してる?
- 392 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:12:36.16 ID:TX9JzT/s0.net
- タイムアウト処理付ければいいだけだろ
- 393 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:15:36.94 ID:glG4jNOE0.net
- >>392
これがアスペか
- 394 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:23:35.35 ID:NCIxQn750.net
- 普通は
DownloadComplete
NavigateComplete2
DocumentComplete
の順でイベントが発生するんだけど
ナビ先がキャッシュ済みとして扱われると
DownloadComplete
しか発生しないっぽいのでそれを検知してるなぁ
- 395 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:26:16.00 ID:LQJ9309Q0.net
- >387
あとはIEコンポーネントを利用したスキンブラウザなら
IEと同じコントロール方法で行ける上に、タスクバーに読み込み中や完了表示が出るものがあるから
いろいろ試してみたら?
自分の環境ではDonutRAPTがタスクバーにプログレスバーと完了メッセージが出るけど
残念ながらレイアウトがIE9だから最新のブラウザに合わせたサイトだと動かないこともあったり
LunaやFoxとかはどうなんだろうね
- 396 :名無しさん@お腹いっぱい。:2015/04/29(水) 23:15:08.83 ID:hwf+gCEd0.net
- 手詰まりだからちょっと聞きたい
OS再インスコしてからuwscを再インストールしたんだけど画像認識の部分がうまく動いてくれねえ
uwscとかのバージョンは前と変えてないしスクリプトも変えてないから動くはずなんだけどuwscって導入に前提あるんだっけ?
管理者権限と互換性は試した ググってもわからないしお願いします・・・
- 397 :名無しさん@お腹いっぱい。:2015/04/29(水) 23:19:02.36 ID:mbxknYry0.net
- >>396
ディスプレイの設定が少し違うだけで、同じ画像ではなくなる可能性がある
設定をあわせるか、画像を作り直す
- 398 :名無しさん@お腹いっぱい。:2015/04/29(水) 23:20:13.70 ID:NCIxQn750.net
- 厳密にはディスプレイドライバのバージョンが違うだけでも駄目になる可能性がある
- 399 :名無しさん@お腹いっぱい。:2015/04/30(木) 00:24:31.66 ID:Yl6whR7h0.net
- 色々ありがと
一応画像作りなおしたんだけどねえ・・・
前までだとuwscの本体が一瞬消えて画像を認識してたっぽいけど消えることなくループしてるから画像認識自体が行われてない感じもする・・・?
- 400 :名無しさん@お腹いっぱい。:2015/04/30(木) 06:22:42.96 ID:z9KaCBhe0.net
- dekita = faulse
while !dekita
dekita = CHKIMG( a.bmp )
print "chkimg: " + dekita
wend
- 401 :名無しさん@お腹いっぱい。:2015/04/30(木) 06:52:56.67 ID:pDR2lo4N0.net
- >>399
uwscの操作ウインドウはchkimgの時消えなくても
問題ないように仕様変更されたはず
print chkimg("xxx")
のみ書いて動作確認くらいしたら?
- 402 :名無しさん@お腹いっぱい。:2015/05/01(金) 15:45:24.69 ID:Sbcjmgv80.net
- 前スレに似てる画像を判定してくれるってやつ上げてくれた人いたからそれ使えばいいかと
- 403 :名無しさん@お腹いっぱい。:2015/05/02(土) 02:17:10.41 ID:4zU0do9h0.net
- 昨日今日手を出したような本当の初心者のような質問ですみません。
ifb CHKIMG("ファイル名.拡張子")
x=G_IMG_X
y=G_IMG_Y
BTN(LEFT, CLICK, x , y , 100)
endif
これで対象のファイルをクリックどころかカーソルが対象のファイルへ移動もしません。
何が間違っているかご教授願えませんか?
もう一つ
画像からの作業を断念して手動で記録して再生させようとしたのですがそれもうまくいきませんでした。
カーソルは移動するのですが最初のクリックの時点で止まってしまいます。
その最初のクリックすら機能していません。
一応ググってから来たのですが自分では解決できませんでした。
どうかよろしくお願いします。
- 404 :名無しさん@お腹いっぱい。:2015/05/02(土) 02:26:29.55 ID:N14lG4qZ0.net
- >>403
まず、ペイントを全画面にして、クリックしたら点を描けるようにして
BTN(LEFT, CLICK, x , y , 100)
が動作しているか確認
次に、
ifb CHKIMG("ファイル名.拡張子")
print "見つけた"
endif
で、CHKIMG("ファイル名.拡張子")が動作しているか確認
- 405 :名無しさん@お腹いっぱい。:2015/05/02(土) 05:18:48.08 ID:sb1MdTom0.net
- >>403
エスパー的指摘なので間違ってたらすまん
画像はBmp形式しか認識しません
その点は大丈夫ですか?
- 406 :名無しさん@お腹いっぱい。:2015/05/02(土) 06:53:30.42 ID:4FNBTSJm0.net
- >>404
今出先で試せませんが帰ったら試してみます。
2つめも原因がわかるならお願いします。
>>405
そこは問題無いです。
- 407 :名無しさん@お腹いっぱい。:2015/05/02(土) 08:06:44.24 ID:ZnxdJHaC0.net
- 画像認識が正しく動作しているか確認するなら
ELSE つかってどっちに流れているか確認した方がいい
後、クリックは相手次第な所があるから
相手の反応が悪い場合はDOWNして一定時間ウェイトを入れてからUPする必要があるケースもあるし
更に相手に対自動操作が施されている場合は
その座標までマウスを連続的に移動させないといけないケースもある
2つめは高レベルでは記録できないケースなんでしょう
低レベルで記録してみる
標準コントロールを使用していない対自動操作されている可能性・・・ゲームかな
- 408 :名無しさん@お腹いっぱい。:2015/05/02(土) 09:05:43.01 ID:onf4uhRI0.net
- >>406
後半
記録したスクリプトをセーブして、中身のテキストをうp
- 409 :名無しさん@お腹いっぱい。:2015/05/02(土) 10:30:01.10 ID:s0fv0qrW0.net
- どうせ対策されてるゲームとかでしょ
- 410 :名無しさん@お腹いっぱい。:2015/05/03(日) 16:41:08.84 ID:zcejMfJO0.net
- 質問
GetKeyState( VK_0〜VK_9 )がテンキーに反応しない。
テンキーを認識させる方法を教えてください。
- 411 :名無しさん@お腹いっぱい。:2015/05/03(日) 16:45:44.46 ID:JFWRxiYM0.net
- 予約語一覧にある
- 412 :名無しさん@お腹いっぱい。:2015/05/03(日) 17:11:23.49 ID:zcejMfJO0.net
- >>411
テンキュー!VK_NUMPADか。見落としてた。
- 413 :名無しさん@お腹いっぱい。:2015/05/03(日) 21:54:59.51 ID:ldDtFoYp1
- ファイル名を変更するものを作っています
それをもっと楽にしたいです
ファイルマネージャーでjpgファイルが並んでいます
例)
20150100001.jpg
20150100002.jpg
20150100003.jpg
20150100004.jpg
20150100005.jpg
…
それをある番号から番号まで3つ区切りで1つずつリネームします
20150100001.jpg→A00639_1.jpg
20150100002.jpg→A00639_2.jpg
20150100003.jpg→A00639_3.jpg
20150100004.jpg→A00639_1.jpg
20150100005.jpg→A00639_2.jpg
…
リネーム後は最後尾に移動するため再びリネームはしません
- 414 :名無しさん@お腹いっぱい。:2015/05/03(日) 21:55:36.70 ID:ldDtFoYp1
- 例) 作ったもの
sleep(1)
ACW(GETID("D:\","CabinetWClass"),0,0,960,1160,0)
BTN(LEFT,CLICK,262,14,10)
ACW(GETID("D:\","CabinetWClass"),0,0,960,1160,0)
BTN(LEFT,CLICK,119,139,100)
//F2→バックスペース→A
KBD(VK_F2,CLICK,100)
KBD(VK_BACK,CLICK,100)
KBD(VK_SHIFT,DOWN,100)
KBD(VK_A,CLICK,100)
KBD(VK_SHIFT,UP,100)
//リネーム部 639 にリネーム
KBD(VK_NUMPAD0,CLICK,100)
KBD(VK_NUMPAD0,CLICK,100)
KBD(VK_NUMPAD6,CLICK,100)
KBD(VK_NUMPAD3,CLICK,100)
KBD(VK_NUMPAD9,CLICK,100)
//
KBD(VK_RSHIFT,DOWN,100)
KBD(VK_OEM_102,DOWN,100)
KBD(VK_RSHIFT,UP,100)
KBD(VK_OEM_102,UP,100)
//_1
KBD(VK_1,CLICK,100)
//
KBD(VK_RETURN,CLICK,100)
- 415 :名無しさん@お腹いっぱい。:2015/05/03(日) 21:59:19.69 ID:ldDtFoYp1
- 間違えました
よろしくお願いします
それをある番号から番号まで3つ区切りで1つずつリネームします
20150100001.jpg→A00639_1.jpg
20150100002.jpg→A00639_2.jpg
20150100003.jpg→A00639_3.jpg
20150100004.jpg→A00640_1.jpg
20150100005.jpg→A00640_2.jpg
- 416 :名無しさん@お腹いっぱい。:2015/05/03(日) 23:09:05.89 ID:iNx5MiAD0.net
- ソートと配列について教えて下さい。ヘルプで配列を検索しても理解できませんでした。
testフォルダには
「赤-青-20150503_195501.txt」 「薄紅-白桃-20150503_200144.txt」
のようなテキストファイルが大量にあり、
それらのファイル名をいくつかの方法で
list.txtに列挙したいと考えております。
まず試行錯誤して以下のように書いてみました。
- 417 :名無しさん@お腹いっぱい。:2015/05/03(日) 23:09:37.93 ID:iNx5MiAD0.net
- DIR =".\test"
URL ="http://localhost/"
file = "list.txt"
ID = FOPEN(file,F_WRITE8)
NUM = GETDIR(DIR)
for A = 0 to (NUM-1)
ファイル名 = GETDIR_FILES[A]
年 = COPY(ファイル名,POS("-",ファイル名,2)+1,4)//2015の部分
月 = COPY(ファイル名,POS("-",ファイル名,2)+5,2)//05の部分
日 = COPY(ファイル名,POS("-",ファイル名,2)+7,2)//03の部分 同様に時分秒も可
先攻 = COPY(ファイル名,1,POS("-",ファイル名,1)-1)//赤や薄紅の取得
後攻 = COPY(ファイル名,POS("-",ファイル名,1)+1,POS("-",ファイル名,2)-POS("-",ファイル名,1)-1)//青や白桃の取得
年月日 = 年+"/"+月+"/"+日
開始日 = "開始日は"+年月日
ファイル名=URL+GETDIR_FILES[A]
print 開始日
print ファイル名
print 先攻+後攻
//リストへの書き込み
FPUT(ID,開始日 )//
FPUT(ID,ファイル名 )//
NEXT
FCLOSE(ID)
sleep(19)
このスクリプトでとりあえずファイル名のあいうえお順(文字コード順??)で
列挙ができたのですが、列挙する際並び替えしたいのです。
ソート?の方法が理解できないので、教えてください。
色々な条件で並び替えする予定では有りますが、(”後攻”の文字コード順とか、或いはファイルの中身のX行目を参照したり)
まず基本的と思われる、年月日でのソートを教えていただけますでしょうか。
- 418 :名無しさん@お腹いっぱい。:2015/05/03(日) 23:32:19.74 ID:8eRUMEfQJ
- >>415
変なこだわりでプログラミングするより
コマンドプロンプトのRENコマンドでリネームしたほうが早い
Excelとかだと連番操作は簡単なのでリネーム前、リネーム後の文字列作って
それをもとにRENコマンドを流せばいい
- 419 :名無しさん@お腹いっぱい。:2015/05/04(月) 00:20:23.35 ID:WM9pP7Em0.net
- そこまでいくとUWSCでやる処理じゃないと思うけど
宣言時にHASH_SORTを指定した連想配列に、年月日をキーにしてファイル名を代入すればいいかと
年月日かぶりの時の処理は考えてね
- 420 :名無しさん@お腹いっぱい。:2015/05/04(月) 01:23:01.29 ID:CDFIlBMyk
- >>418
ありがとうございます
RENコマンドがくわしくないのもあるのですが
自分の知識ではうまいことできるかわからなかったのです
Excelとかの連携ですがそれなら私の技術的にも可能だと思います
D:\jpegファイルのあるフォルダ>dir > jpg ファイルのリスト.txt
これをExcelに流してやるところがちょっと難しいですが
それと説明不足ですいませんjpgファイルはこんな感じで規則性がありません
例)
20150501_ランダムな数字1.jpg
20150501_ランダムな数字2.jpg
20150501_ランダムな数字3.jpg
20150501_ランダムな数字4.jpg
20150501_ランダムな数字5.jpg
…
- 421 :名無しさん@お腹いっぱい。:2015/05/04(月) 01:21:07.50 ID:POSm0sDu0.net
- よくわからんけどこんでいいの?
Dim DIR = "D:\MyDoc\Desktop\新しいフォルダー"
Dim File = "list.txt"
Dim 年[0]; Dim 月[0]; Dim 日[0]; Dim 時[0]
Dim 分[0]; Dim 秒[0]; Dim 先[0]; Dim 後[0]
NUM = GETDIR(DIR)
ReSize(年, NUM); ReSize(月, NUM); ReSize(日, NUM); ReSize(時, NUM)
ReSize(分, NUM); ReSize(秒, NUM); ReSize(先, NUM); ReSize(後, NUM)
For A = 0 to NUM -1
Dim ファイル = GETDIR_FILES[A]
年[A] = COPY(ファイル, POS("-",ファイル,2)+1, 4)
月[A] = COPY(ファイル, POS("-",ファイル,2)+5, 2)
日[A] = COPY(ファイル, POS("-",ファイル,2)+7, 2)
時[A] = COPY(ファイル, POS("_",ファイル,1)+1, 2)
分[A] = COPY(ファイル, POS("_",ファイル,1)+3, 2)
秒[A] = COPY(ファイル, POS("_",ファイル,1)+5, 2)
先[A] = COPY(ファイル, 1, POS("-",ファイル,1) -1)
後[A] = COPY(ファイル, POS("-",ファイル,1)+1, POS("-",ファイル,2)-POS("-",ファイル,1)-1)
Next
//続く
- 422 :名無しさん@お腹いっぱい。:2015/05/04(月) 01:21:38.10 ID:POSm0sDu0.net
- //続いた
Fukidasi("ソート順 [N]年 [G]月 [H]日 [J]時 [F]分 [B]秒 [P]先 [S]後 [ESC]終了")
Repeat
Ifb GetKeyState(VK_N)
QSORT(年, QSRT_A, 月,日,時,分,秒,先,後); Break
ElseIf GetKeyState(VK_G)
QSORT(月, QSRT_A, 年,日,時,分,秒,先,後); Break
ElseIf GetKeyState(VK_H)
QSORT(日, QSRT_A, 年,月,時,分,秒,先,後); Break
ElseIf GetKeyState(VK_J)
QSORT(時, QSRT_A, 年,月,日,分,秒,先,後); Break
ElseIf GetKeyState(VK_F)
QSORT(分, QSRT_A, 年,月,日,時,秒,先,後); Break
ElseIf GetKeyState(VK_B)
QSORT(秒, QSRT_A, 年,月,日,時,分,先,後); Break
ElseIf GetKeyState(VK_P)
QSORT(先, QSRT_A, 年,月,日,時,分,秒,後); Break
ElseIf GetKeyState(VK_S)
QSORT(後, QSRT_A, 年,月,日,時,分,秒,先); Break
EndIf
Sleep(0.1)
Until GetKeyState(VK_ESC)
FID = FOpen(File, F_WRITE8)
For A = 0 to NUM -1
FPut(FID, 先[A]+"-"+後[A]+"-"+年[A]+月[A]+日[A]+"_"+時[A]+分[A]+秒[A]+".txt")
Next
FClose(FID)
- 423 :名無しさん@お腹いっぱい。:2015/05/04(月) 12:30:24.94 ID:fl9/B3+b/
- >>420
詳しく知らなければネットで調べて実際に試してみればいい
ren aaa.jpg bbb.jpg
とすればaaa.jpgというファイルをbbb.jpgにリネームする
という事は
ExcelのA列に
20150501_ランダムな数字1.jpg
20150501_ランダムな数字2.jpg
20150501_ランダムな数字3.jpg
20150501_ランダムな数字4.jpg
20150501_ランダムな数字5.jpg
を入れる(ファイルのリストとやらを貼り付ける)
B列に
A00639_1.jpg
A00639_2.jpg
A00639_3.jpg
A00640_1.jpg
A00640_2.jpg
となるような数式を作る
C1に
="ren " & A1 & " " & B1
とすれば
ren 20150501_ランダムな数字1.jpg A00639_1.jpg
出来たコマンドをコマンドプロンプトに貼り付けるだけ
- 424 :名無しさん@お腹いっぱい。:2015/05/04(月) 16:59:29.42 ID:1tvpD3kK0.net
- バッチファイルでファイル名一覧をテキストで取得して、Excelで並び替えた方が汎用的なような…
- 425 :名無しさん@お腹いっぱい。:2015/05/04(月) 17:09:45.24 ID:NHByfOcj0.net
- 次の処理に使う為にテキストファイルの方が都合がいいケースも有るだろうし
その辺は本人次第による
- 426 :名無しさん@お腹いっぱい。:2015/05/04(月) 19:04:39.82 ID:f8nhMwc80.net
- あたしならバッチのFor文のヘルプをじっくり読むね
- 427 :名無しさん@お腹いっぱい。:2015/05/04(月) 22:16:59.97 ID:n2ZrU9UHx
- //他の方法でやってみたのですが、
//もう少しでできそうですがSendStrの使い方が難しいです
//これだとA030_1.jpgというファイルになってしまいます。
//A00630_1.jpgにしたいのですが
FOR A = 630 TO 630
//マウスでアクティブにする
BTN(LEFT,CLICK,1100,20,1000)
//HOME で先頭に持ってくる
KBD(VK_END,CLICK,1000)
KBD(VK_HOME,CLICK,1000)
//ファイル名を変更する
KBD(VK_F2,CLICK,1000)
//ファイル名を消す
//
KBD(VK_BACK,CLICK,1000)
- 428 :名無しさん@お腹いっぱい。:2015/05/04(月) 22:17:25.10 ID:n2ZrU9UHx
- //キー入力を開始する
KBD(VK_SHIFT,DOWN,100)
KBD(VK_A,CLICK,100)
KBD(VK_SHIFT,UP,100)
KBD(VK_NUMPAD0,CLICK,1000)
KBD(VK_NUMPAD0,CLICK,1000)
//変数の入力
SendStr(GetId(GET_ACTIVE_WIN),Copy("0"+A,Length(A),2))
//_1 の入力
KBD(VK_RSHIFT,DOWN,1000)
KBD(VK_OEM_102,DOWN,1000)
KBD(VK_RSHIFT,UP,1000)
KBD(VK_OEM_102,UP,1000)
KBD(VK_1,CLICK,1000)
NEXT
- 429 :名無しさん@お腹いっぱい。:2015/05/04(月) 22:40:53.33 ID:fl9/B3+b/
- ヒント
a=1
replace(format(a,3)," ","0")
msgbox(replace(format(a,3)," ","0"))
a=10
msgbox(replace(format(a,3)," ","0"))
a=100
msgbox(replace(format(a,3)," ","0"))
何がやりたいか知らないけど
もう少し整理して考えたほうがいい
KBD関数を多用しているけど本当にそれ以外方法がないの?
- 430 :名無しさん@お腹いっぱい。:2015/05/04(月) 23:20:33.72 ID:nY4sIpEz0.net
- 質問です。
001.bmpか002.bmpが一致した場合クリックとしたいのですが、以下の処理にした場合、
002.bmpが一致した場合は正常にクリックされる(正常に座標が取得できる)のですが、
001.bmpが一致した場合は座標が
X座標:-999999
Y座標:-999999(print出力のログファイルより)
となってしまいます。
また、001.bmpと002.bmpを逆で書いた場合は、002.bmpの座標がそれぞれ-999999となってしまいます。
*****
IF CHKIMG("001.bmp") OR CHKIMG("002.bmp") THEN //画像一致で実行
print G_IMG_X
print G_IMG_Y
BTN(LEFT)
ELSE
print "no"
ENDIF
*****
- 431 :名無しさん@お腹いっぱい。:2015/05/04(月) 23:21:12.27 ID:nY4sIpEz0.net
- (続き)
or条件の前半に書いたCHKIMGの座標が取得できないようですが、
うまく座標を取得する方法はあるでしょうか。
↓のようにELSEIFで処理を分ければ動くのですが、出来れば1行で書きたいと思った次第です。
使用バージョンは Ver5.1.1 Pro です。
*****
IFB (CHKIMG("choose_001.bmp")=TRUE) THEN //画像一致で実行
BTN(LEFT)
ELSEIF (CHKIMG("choose_002.bmp")=TRUE) THEN //画像一致で実行
BTN(LEFT)
ELSE
print "no"
ENDIF
*****
- 432 :名無しさん@お腹いっぱい。:2015/05/04(月) 23:50:40.80 ID:NHByfOcj0.net
- 特殊変数を共有しているので無理
素直に分けなさい
- 433 :名無しさん@お腹いっぱい。:2015/05/05(火) 00:22:59.32 ID:VvVhJAr50.net
- option shortcircuit
これいれてないだけじゃないの?
- 434 :名無しさん@お腹いっぱい。:2015/05/05(火) 00:49:12.39 ID:4fpjdasx0.net
- >>432-433
レスありがとうございます。
短縮評価というのがあるのですね、勉強になりました。
おかげさまで実現することができました、どうもありがとうございます!
- 435 :名無しさん@お腹いっぱい。:2015/05/05(火) 09:48:03.69 ID:t379n4Zi0.net
- >>433
いいこと教えてもらった
言語仕様かと思って諦めてたわ
むしろ短縮評価をデフォにして欲しいくらいだな
- 436 :名無しさん@お腹いっぱい。:2015/05/05(火) 12:15:50.95 ID:qn/kIA8j0.net
- そんな紛らわしいコードは書かないほうがいいと思うのだが・・・
- 437 :名無しさん@お腹いっぱい。:2015/05/05(火) 16:56:57.37 ID:d+/e+6EX0.net
- じゃぁどんなのが紛らわしくないってんだYO(・3・)
その辺優しく教えろYO
- 438 :名無しさん@お腹いっぱい。:2015/05/05(火) 19:40:24.06 ID:iRlC9s5c0.net
- resObj = chkimg("a.bmp")
if resObj.exists()
x = resObj.getX()
y = resObj.getY()
こんな感じで使えれば余計なこと考えなくて自然なんだけどな
- 439 :383:2015/05/05(火) 22:54:10.53 ID:TCyoWXwj0.net
- 383と384で質問したものです。皆様レスありがとうございます。
>>419
UWSCでなければPHPとかRUBYとか?
あとの方もレスくれましたが、バッチ処理を途中かますのがスマートなのでしょうか。
どちらにせよ配列の概念をしっかり理解できないとだめですね。
>>421
ありがとうございます。
後ほど試してみて、弄くりまわしてみます!ForNext文でファイル名の構成をすべて配列に代入し…
>>422
RepeatUntil文のところでキー待ち処理でソートしてるのですね…
しかし配列の概念が理解できないからか、なぜこのスクリプトですべての配列(キー配列以外の配列)が同時にソートされるのかわかりません(配列が判る人からすると 何言ってんだこいつ状態…?)
これをヒントに色々やってみます。
>>424
CSVにして、excelのテーブル機能とか使えばいろんなことができますね…。
ファイルのX行目を参照して、なんてのも別途>>421の方法で配列として取得しておけばいいことですし(ファイル名には入れないとしても)。
>>425
おっしゃるとおりテキストファイルでやりたいことがありました。
>>426
バッチ処理も配列も自分にとってはなかなか難しいですね。
今後勉強していきたいと思います。
- 440 :名無しさん@お腹いっぱい。:2015/05/05(火) 23:10:23.24 ID:STTevHR60.net
- 内部的にEXCELな感じでしょうかね
配列A、配列B、配列C、配列D があって、データ部はそれぞれ縦列で
A B C D
11 aa あ rte
12 vb え u5f
13 hd え 4ds
15 ke ん g5d
16 og う ew3
となってて
こんな感じのEXCELでソートをBで行うとまとめてACDも追従しますよね
この場合の関数が QSORT(配列B, QSRT_A, 配列A, 配列C, 配列D) となる訳です
- 441 :名無しさん@お腹いっぱい。:2015/05/06(水) 06:03:33.06 ID:A1LDEOba0.net
- str_n = 2500
gettime()
str = "" + G_TIME_HH + G_TIME_NN
if str >= str_n
print str_n
endif
○○時まで動作させるというものを組みましたが、うまく動作しなかったので上記のようにしてテストをしていました
strは0000~2359の範囲までにしかならないはずなのになぜか上記のまま動作させるとprintされてしまいました
次にstr = "" + G_TIME_HH2 + G_TIME_NN2とすると思ったように動作しました
例えば6時10分を表す場合には610と0610の表し方の違いになりますが、前者だと2500より大きいと判定され後者だと小さいと判定されたようです
これはどういうことなのでしょうか
- 442 :名無しさん@お腹いっぱい。:2015/05/06(水) 08:14:04.52 ID:zFCy2m+P0.net
- >>441
文字列の比較になって先頭から比べて2より6のが大きいから
- 443 :名無しさん@お腹いっぱい。:2015/05/06(水) 08:19:22.33 ID:kulMuT5p0.net
- 変数が文字列型になのか数値型なのか
- 444 :名無しさん@お腹いっぱい。:2015/05/06(水) 08:35:39.31 ID:A1LDEOba0.net
- >>442
なるほどありがとうございます
下一桁から読まれるんじゃないんですね
- 445 :名無しさん@お腹いっぱい。:2015/05/06(水) 08:55:49.69 ID:jQbs1+K90.net
- 数値として大小比較をしたいのならval関数な
if val("2500") > val("610") then
msgbox("2500が大きい") //こっち通る
else
msgbox("610が大きい")
endif
if "2500" > "610" then
msgbox("2500が大きい")
else
msgbox("610が大きい") //こっち通る
endif
- 446 :名無しさん@お腹いっぱい。:2015/05/06(水) 12:25:21.85 ID:I/ZvQy1N0.net
- ファイル名を自在に変更したいなら Flexible Renamer
これ「こんなソフトありませんか」の常連。
正規表現と合わせて使うと真の最強だから困る。
- 447 :名無しさん@お腹いっぱい。:2015/05/06(水) 12:32:43.76 ID:I/ZvQy1N0.net
- >432
特殊変数に触るときは目的に応じた関数名の自作関数でラッピングして使うといいよ
PROCEDURE getImgXY(imgBmpName, VAR X, VAR Y)
画像をクリックしたいなら clickImg を自作するのが定番
関数化すれば、TRYでエラー処理して自動操作中断しないようにしたり、
フォルダ名を関数側に持たせて記述を短くしたり、
便利で読みやすいことが沢山出てくるし
- 448 :名無しさん@お腹いっぱい。:2015/05/06(水) 16:09:53.31 ID:72Vanucp0.net
- chkimgの色幅の指定について質問させてください。
24ビットカラーのbmpで保存した文字の画像を、あらゆる文字色において探索させたいのですが(#000000〜#FFFFFF)、持たせる色幅は「RGB各色に対して8bit」で正しいのでしょうか?
また、その時1pxの透過色を指定していた場合、どうなるんでしょうか?
- 449 :名無しさん@お腹いっぱい。:2015/05/07(木) 02:08:08.49 ID:ybua1Qzf0.net
- >>445
今更だけどありがとう
- 450 :名無しさん@お腹いっぱい。:2015/05/07(木) 18:14:43.24 ID:36ngVs2G0.net
- 前スレで配列サイズ取得にRESIZEとLENGTHどちらを使うべきかという話が出ていた。
俺はLENGTHで配列が取得できるようになる前からUWSC使っていたのでRESIZEでも
いいじゃないかと考えていたが、可読性などとは全く異なる理由で、RESIZEによる
配列サイズ取得を今後辞めることにした。
ついでに関数の戻り値にSAFEARRAYを使うことも辞めた。
その考えに至ったテストコードを載せておく。
- 451 :名無しさん@お腹いっぱい。:2015/05/07(木) 18:17:18.48 ID:36ngVs2G0.net
- testCsv1="100,101,102,104,108"
testCsv2=123; testCsv3=EMPTY; testCsv4=NULL; testCsv4=NOTHING
testCsv5=CreateOLEObj("InternetExplorer.Application")
DIM testCsv6
testCsv7=SAFEARRAY(0, 2)
FOR vidx=1 TO 7; PRINT; PRINT "TEST No."+vidx; testSplit(EVAL("testCsv"+vidx)); NEXT
PROCEDURE testSplit(testCsv)
TRY
PRINT "test data : " + testCSV
EXCEPT
PRINT "test data is not printable."
ENDTRY
TRY
testArray =SPLIT(testCsv, ",")
EXCEPT
PRINT "SPLIT NG"; testArray =SPLIT(testCsv, ","); EXIT
ENDTRY
PRINT "SPLIT o.k. Array length result="+LENGTH(testArray)+" ( RESIZE result="+RESIZE(testArray)+" )"
IFB LENGTH(testArray) < 1 THEN
PRINT "SPLIT result is not array."; EXIT
ELSE
FOR idx=0 TO RESIZE(testArray)
PRINT " array["+idx+"]="+testArray[idx]
NEXT
ENDIF
PRINT "test end."
FEND
- 452 :名無しさん@お腹いっぱい。:2015/05/07(木) 18:40:45.43 ID:0B5tP8ol0.net
- で、何が問題なの?
SAFEARRAYは構造体みたいに使ってポリモーフィズムを実現できる型として重宝してるよ
- 453 :名無しさん@お腹いっぱい。:2015/05/07(木) 19:05:53.09 ID:kOFrsE6M0.net
- SPLITは文字列を配列にする関数だからJOINしろと思う
色々な値が入る可能性のある関数なら最初に引数チェックしろと思う
配列じゃないなら-1なんでそれで判断してJOINしてやれば全て動くしなぁ
- 454 :名無しさん@お腹いっぱい。:2015/05/07(木) 19:06:54.36 ID:kOFrsE6M0.net
- あ、-1なのはRESIZEの戻り値ね
そういう意味ではこういった用途の場合はLENGTHだと文字数になるので使えない
- 455 :名無しさん@お腹いっぱい。:2015/05/07(木) 19:19:19.12 ID:kOFrsE6M0.net
- あー、でも途中のデフォルト参照するケースが駄目になるね
ちゃんとVARTYPEした対処した方がいい
これもコーディング論になってしまうけれど
例外はエラーからの復帰処理で正常系の判断処理には使わない方が良いかなと
- 456 :名無しさん@お腹いっぱい。:2015/05/07(木) 19:44:34.12 ID:oIqnKeh+0.net
- Resizeの何がダメなのかわからん
SafeArray押しなのもまるで分らん
使い勝手というかデータ渡し合いするならSafeArrayだけど
処理速度ならResizeや単純な宣言配列のがうんと早い
Resize > Length だし
Dim Array[] >>>>>>> SafeSrray(0,0) だわ
上にあるようなファイル名取り込んでソートしなおすとかは絶対宣言した方が早い
- 457 :sage:2015/05/07(木) 21:17:42.38 ID:j+BelTnl0.net
- すいません初心者です
While True
KBDA()
KBDB()
Wend
Procedure KBDA()
KBD(VK_A,CLICK)
SLEEP(5)
Fend
Procedure KBDB()
KBD(VK_B,CLICK)
SLEEP(10)
Fend
KBDA()が実行されたあとKBDB()が開始されるのですが
これを、KBDA()とKBDB()を同時にスタートさせるにはどうすればよいのでしょうか?
for-nextを使ってやっていたんですが、ボタンの数が多くなってくると出来ません
- 458 :名無しさん@お腹いっぱい。:2015/05/07(木) 21:30:45.17 ID:kOFrsE6M0.net
- 本当の意味で同時に処理するのはイベント駆動のWindowsでは無理
CLICKでやろうとするから無理が出る
DOWNとUPに分けてABが同時にDOWNになるタイミングを作った後でUPしたら良い
- 459 :名無しさん@お腹いっぱい。:2015/05/07(木) 22:13:39.16 ID:j+BelTnl0.net
- >>458
それでやってみます
アドバイスありがとうございました
- 460 :名無しさん@お腹いっぱい。:2015/05/07(木) 22:36:41.79 ID:f3z72UPoG
- > ボタンの数が多くなってくると出来ません
ボタンを同時に押し下げた状態にできるのは確か3つまでだから
4つ目は先にクリックしたキーのUPが完了するまでDOWNやCLICKはできない。
- 461 :名無しさん@お腹いっぱい。:2015/05/07(木) 23:09:44.89 ID:iddjenAQ0
- >>451
これ実行してみた?
要素数1の時、LENGTHは1,RESIZEの戻り値は0
非配列の時、LENGTHは0になるのに、RESIZEの戻り値は0
要素数1なのか非配列なのかRESIZEの戻り値では判断できないってことでしょ。
あと予期せず文字列を想定した処理にSAFEARRAYが混ざってくると、
TRYでトラップ不可能なSyntaxErrorが出てキモい。
- 462 :名無しさん@お腹いっぱい。:2015/05/08(金) 00:14:41.27 ID:aCA8XdTmI
- ちょっと質問です
<確認用.uws>
call test.uws
Dim A,B
pic("D:\images\","test.jpg",A,B)//画像の縦横を取得(例:300×200→A=300,B=200)
sfh(100,200,A,B)
<test.uws>
Procedure pic(a_path,a_name,Var a_Width,Var a_Height)
Dim Path_Dir = a_path
Dim FileName = a_name
Dim Shell = CreateOleObj("Shell.Application")
Dim NS = Shell.NameSpace(Path_Dir)
Dim NS_Items = NS.Items
Dim NS_Item = NS_Items.Item(FileName)
Dim a_Str = NS.GetDetailsOf(NS_Item, 31)
a_Width = Trim(Token("x", a_Str))
a_Height = Trim(Token("x", a_Str))
Fend
procedure sfh(x,y,i,j)
x = x + random(i)
y = y + random(j)
print x
print y
fend
確認用.uwsを実行すると、
1274:定義が間違っています
test.uws: 19行目: X = X + RANDOM(I)
というエラーが出てしまいます、どうしたらいいですか?
やりたいことは、画像の縦横のピクセル数から乱数をそれぞれ得て、ある値に足すことです。上に書いたサンプルでは、100〜499の値と、200〜499の値です。画像の大きさは一定にできないので変数で扱いたいです。
よろしくお願いします。
- 463 :名無しさん@お腹いっぱい。:2015/05/07(木) 23:59:53.31 ID:gEl3Corv0.net
- >testCsv4=NULL; testCsv4=NOTHING
まぎらわしい書き方をするから、こんな事やっちゃうんだろ
無意味な;は糞
- 464 :名無しさん@お腹いっぱい。:2015/05/08(金) 00:07:33.89 ID:jcQWG3E10.net
- >>456
safearray押しではないけど、uwscに速度を求めるのは間違っていると思う
- 465 :名無しさん@お腹いっぱい。:2015/05/08(金) 00:50:15.30 ID:B65QIiuAJ
- >>462
iやjは普通の文字列じゃなくUNICODE文字列なのが原因
バグか仕様かは知らないがrandom関数は数値かANSI文字列しか受け付けない
val関数はUNICODEでも数値に変換できるので
x = x + random(val(i))
とでもすればいけるだろう
- 466 :名無しさん@お腹いっぱい。:2015/05/08(金) 01:18:30.50 ID:B65QIiuAJ
- あ、ごめん嘘ついた
iの先頭とjの末尾に見えない制御文字的なものがついてる
Dim a_Str = NS.GetDetailsOf(NS_Item, 31)
msgbox(vartype(a_Str, var_astr))
この制御文字はANSIに変換できないので?になって見えるようになる
msgbox(length(a_Str))
length関数でも文字数が合わないので分かるはず
どちらにしろval関数で削られるのでval関数を使えばいい
- 467 :名無しさん@お腹いっぱい。:2015/05/08(金) 05:46:16.80 ID:UKJMttxu0.net
- 求めてなくても、同じ効果で速度の差がはっきりしてるなら早い方選ぶのが普通じゃないの?
- 468 :名無しさん@お腹いっぱい。:2015/05/08(金) 06:09:34.64 ID:Vy8D3J360.net
- 求めてないのなら、安全性とかソースの可読性とかそういうのを優先するよ。
- 469 :名無しさん@お腹いっぱい。:2015/05/08(金) 06:36:18.86 ID:UKJMttxu0.net
- resizeって危険なの?
- 470 :名無しさん@お腹いっぱい。:2015/05/08(金) 07:55:07.35 ID:ZRJ8LIgC0.net
- 質問です
call test.uws
Dim A,B
pic("D:\images\","test.jpg",A,B)//画像の縦横を取得
sfh(100,200,A,B)
<test.uws>
Procedure pic(a_path,a_name,Var a_Width,Var a_Height)
Dim Path_Dir = a_path
Dim FileName = a_name
Dim Width, Height
Dim Shell = CreateOleObj("Shell.Application")
Dim NS = Shell.NameSpace(Path_Dir)
Dim NS_Items = NS.Items
Dim NS_Item = NS_Items.Item(FileName)
Dim a_Str = NS.GetDetailsOf(NS_Item, 31)
a_Width = Trim(Token("x", a_Str))
a_Height = Trim(Token("x", a_Str))
Fend
procedure sfh(x,y,i,j)
x = x + random(i)
y = y + random(j)
print x
print y
fend
これを実行すると
定義が間違っています
test.uws 19行目: X = X + RANDOM(I)
となってしまいます。どうしたらいいですか?
やりたいことは、「画像の縦横のピクセル数」以下の乱数をある値に足すことです。アドレスお願い致します。
- 471 :名無しさん@お腹いっぱい。:2015/05/08(金) 08:14:35.71 ID:9f3Vt5H+0.net
- Varが付いてないから変更出来ないだけじゃないの?
- 472 :名無しさん@お腹いっぱい。:2015/05/08(金) 08:46:00.34 ID:vrTT6NwFM
- >>463;圧縮のためだろ;あれから;なくしたら改行が多すぎて投稿できないぞこのスレだと
- 473 :名無しさん@お腹いっぱい。:2015/05/08(金) 08:48:38.84 ID:vrTT6NwFM
- それより>>454はどうなのかな?;>>461が言う実行結果と異なってるようだがバージョンや環境の違いか?;TRYが利くエラーと効かないエラーの違いも気になる。
- 474 :名無しさん@お腹いっぱい。:2015/05/08(金) 08:54:53.52 ID:vrTT6NwFM
- >>470
19行目の直前でプリントして変数の中身確認してみ?
Iの中身が空っぽだぞ多分>>451の2行目みたいな変な値になってる
- 475 :名無しさん@お腹いっぱい。:2015/05/08(金) 10:12:19.88 ID:kMHlHwI60.net
- msgbox(A)とか入れて見りゃすぐわかる気がするんだが
多分A・Bには文字列が入ってる
- 476 :名無しさん@お腹いっぱい。:2015/05/08(金) 12:28:16.24 ID:uACYXt1H0.net
- >>470
2ch.s cのほうに答え書いてある
制御文字が原因
- 477 :名無しさん@お腹いっぱい。:2015/05/08(金) 12:31:32.67 ID:pk4bmMyb0.net
- >>475
ありがとうございます!!
VAL(A),VAL(B)にしたらできました!!
- 478 :名無しさん@お腹いっぱい。:2015/05/08(金) 12:35:00.28 ID:pk4bmMyb0.net
- >>476
ごめんなさい!!気づきませんでした…
- 479 :名無しさん@お腹いっぱい。:2015/05/08(金) 12:54:57.17 ID:s8RLZ3fW0.net
- 472 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/08(金) 08:46:00.34 ID:vrTT6NwFM
>>463;圧縮のためだろ;あれから;なくしたら改行が多すぎて投稿できないぞこのスレだと
473 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/08(金) 08:48:38.84 ID:vrTT6NwFM
それより>>454はどうなのかな?;>>461が言う実行結果と異なってるようだがバージョンや環境の違いか?;TRYが利くエラーと効かないエラーの違いも気になる。
474 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/08(金) 08:54:53.52 ID:vrTT6NwFM
>>470
19行目の直前でプリントして変数の中身確認してみ?
Iの中身が空っぽだぞ多分>>451の2行目みたいな変な値になってる 👀
Rock54: Caution(BBR-MD5:405b7f1af0f5a85b432d79fa769e9aeb)
- 480 :名無しさん@お腹いっぱい。:2015/05/08(金) 18:51:27.05 ID:CsG9StKG0.net
- 465 :名無しさん@お腹いっぱい。:2015/05/08(金) 00:50:15.30 ID:B65QIiuAJ[1/2]
>>462
iやjは普通の文字列じゃなくUNICODE文字列なのが原因
バグか仕様かは知らないがrandom関数は数値かANSI文字列しか受け付けない
val関数はUNICODEでも数値に変換できるので
x = x + random(val(i))
とでもすればいけるだろう
466 :名無しさん@お腹いっぱい。:2015/05/08(金) 01:18:30.50 ID:B65QIiuAJ[2/2]
あ、ごめん嘘ついた
iの先頭とjの末尾に見えない制御文字的なものがついてる
Dim a_Str = NS.GetDetailsOf(NS_Item, 31)
msgbox(vartype(a_Str, var_astr))
この制御文字はANSIに変換できないので?になって見えるようになる
msgbox(length(a_Str))
length関数でも文字数が合わないので分かるはず
どちらにしろval関数で削られるのでval関数を使えばいい
- 481 :名無しさん@お腹いっぱい。:2015/05/08(金) 19:05:39.45 ID:f8iSJDTU0.net
- わざわざコッチに貼るな
- 482 :名無しさん@お腹いっぱい。:2015/05/09(土) 02:09:13.25 ID:Wj4o5nTl0.net
- dim normalStr="10"
msgbox(normalStr) // 10
msgbox(random(normalStr)) // 10未満の乱数
dim charArray[]=$202a, $31, $30, $202c
dim errorStr=""
for char in charArray
errorStr = errorStr + chr(char)
next
msgbox(errorStr) // 10のように見える
msgbox(random(errorStr)) // エラーになる
知らない人は悩むだろうな
- 483 :名無しさん@お腹いっぱい。:2015/05/09(土) 06:51:53.03 ID:lOeahwwg0.net
- 最近uwscいじり始めました
CHKIMGでALL_IMG_X[]、ALL_IMG_Y[]に格納されるのは最大6個まで?
増やせないのかな?
- 484 :名無しさん@お腹いっぱい。:2015/05/09(土) 09:50:39.26 ID:VKqe5NAJ0.net
- >>483
最大4096個まで
6個しかないってことは6個しか画像が見つからなかったってことだ
- 485 :名無しさん@お腹いっぱい。:2015/05/10(日) 12:17:33.84 ID:V3eUIZ5/0.net
- SCに書くアホなんているんだな…
- 486 :名無しさん@お腹いっぱい。:2015/05/10(日) 14:41:29.85 ID:j+Ly6pmCp
- なんで?なんでも!
- 487 :名無しさん@お腹いっぱい。:2015/05/10(日) 15:04:14.23 ID:6YUb43Cc0.net
- 住み分けている人は問題ないさ
- 488 :名無しさん@お腹いっぱい。:2015/05/10(日) 23:28:25.09 ID:KG0xar9h0.net
- これもscか
461 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/07(木) 23:09:44.89 ID:iddjenAQ0
>>451
これ実行してみた?
要素数1の時、LENGTHは1,RESIZEの戻り値は0
非配列の時、LENGTHは0になるのに、RESIZEの戻り値は0
要素数1なのか非配列なのかRESIZEの戻り値では判断できないってことでしょ。
あと予期せず文字列を想定した処理にSAFEARRAYが混ざってくると、
TRYでトラップ不可能なSyntaxErrorが出てキモい。
俺も同じだった。
- 489 :名無しさん@お腹いっぱい。:2015/05/11(月) 00:33:31.53 ID:jVchxD0Z0.net
- こっちに書かないでお前もあっちに書けよ
- 490 :名無しさん@お腹いっぱい。:2015/05/11(月) 14:12:48.59 ID:FSQG8YaTn
- 質問です
コンボボックスを1行に複数個入れることは可能でしょうか
やり方あれば教えていただきたい
- 491 :名無しさん@お腹いっぱい。:2015/05/11(月) 20:41:08.63 ID:DhQvpn7OJ
- @シェア版のフォームを使う
Auser32.dll経由させてAPIからウインドウを作る
BWin7以降ならパワーシェルから簡易.NETインタプリンタ経由してアプリをコンパイル
好きなの選べ
- 492 :名無しさん@お腹いっぱい。:2015/05/12(火) 08:55:17.84 ID:M6eLyl6Gb
- Bでお願いします
- 493 :名無しさん@お腹いっぱい。:2015/05/12(火) 11:20:49.86 ID:TtfeFMrT2
- メニュー表かよw
- 494 :名無しさん@お腹いっぱい。:2015/05/13(水) 21:24:08.38 ID:9cIxCj9O0.net
- UWSCの範疇じゃないかもしれんがプログラムに疎いんで聞いてくれ。
複数の変数名ごとの処理を順繰りに変えながら使ってるんだが
ifb tabemono = "mikan"
tabemono = "ringo"
elseif tabemono = "ringo"
tabemono = "momo"
elseif tabemono = "ringo"
tabemono = "momo"
//実際にはelseifがまだまだある
else
tabemono = "mikan" //←走り終わったら最初に戻してる
endif
もっとスマートな方法教えてくれ
(1個減らすとその前の行も修正が必要なんで)
- 495 :名無しさん@お腹いっぱい。:2015/05/13(水) 21:26:08.01 ID:7VzdG4CX0.net
- for文と配列使いなさい
- 496 :名無しさん@お腹いっぱい。:2015/05/13(水) 21:42:08.47 ID:+c1y9vIl0.net
- 変数のスライド以外は共通ならコレで1ループ
繰り返すなら FOR IN NEXT を WHILE 等でループさせる
DIM list[] = "mikan","ringo","momo"
FOR item IN list
print item
NEXT
- 497 :名無しさん@お腹いっぱい。:2015/05/13(水) 22:39:45.77 ID:JmtHJeH10.net
- >>494
DIM list[max][2]
list[0][0] = "mikan"
list[0][1] = "ringo"
list[1][0] = "ringo"
list[1][1] = "momo"
.
.
for i=0 to max
ifb tabemono=list[i][0] then
tabemono=list[i][1]
next
配列はcsvファイルにして最初に読み込めば追加修正も楽だと思うよ。
- 498 :名無しさん@お腹いっぱい。:2015/05/14(木) 08:31:27.96 ID:UlftZKXm0.net
- それbreakでも入れないと結果が違ってくるんじゃないか?
質問者が何をやりたいかは分からないけど
- 499 :名無しさん@お腹いっぱい。:2015/05/14(木) 09:24:07.79 ID:yaIK/1e80.net
- ループ回すより連想配列使った方がスマート
- 500 :名無しさん@お腹いっぱい。:2015/05/14(木) 09:43:31.94 ID:4vjcebLp0.net
- 配列は使い道がわからんわ
- 501 :名無しさん@お腹いっぱい。:2015/05/14(木) 09:46:28.32 ID:BoW7Ss/B0.net
- 基礎を学んでないと配列は使わない人が多そう
uwscなんて知識無しの人でも作るもんだから
- 502 :名無しさん@お腹いっぱい。:2015/05/15(金) 15:09:06.18 ID:uEjjwe7w0.net
- ワイも全然分からんから
WHILE TRUE
WEND
でグルグル回してるわ
- 503 :名無しさん@お腹いっぱい。:2015/05/15(金) 18:45:08.69 ID:cO+XlT030.net
- ようは、動けばいいんだよね。
理解しないで適当にコピペでも、動かせてるならそれでいい訳で
- 504 :名無しさん@お腹いっぱい。:2015/05/15(金) 20:48:28.13 ID:BFc4oXXZ0.net
- だめだろ。冗長なコード書いてる奴は
- 505 :名無しさん@お腹いっぱい。:2015/05/15(金) 20:53:49.34 ID:LD79vb4o0.net
- 仕事なら兎も角当人の責任で私的に使っている間はどうでも良い話
- 506 :名無しさん@お腹いっぱい。:2015/05/15(金) 21:04:53.18 ID:/AZ0XoPh0.net
- 冗長なコードが駄目なのはわかるが、冗長なコード書いてる奴が駄目かと言われると一概には言えんわな
コードを書いて走らせるのはあくまで手段だ、目的を見失ってまで磨きをかけるものじゃない
- 507 :名無しさん@お腹いっぱい。:2015/05/15(金) 22:09:35.95 ID:kJkWORh/0.net
- 連想配列もいいけどハードコーディングになりやすい
配列から要素を検索しインデックスを返すsearchArray関数を自作し、
CSV配列から生成した配列から現在の要素を検索して取得した
インデックスをインクリメントすることで希望の動きが実装できる。
が、配列に同じ要素が複数あると希望通りに動かない。(IF連鎖でも同じだが)
要件としてそこをクリアしたい場合、そもそもの実装として、
現在のインデックスを保持する仕様に変更した方がいいだろう。
- 508 :名無しさん@お腹いっぱい。:2015/05/15(金) 23:33:00.52 ID:M6mRhlAE0.net
- もう英文だな
- 509 :名無しさん@お腹いっぱい。:2015/05/15(金) 23:47:19.19 ID:i6wiJ6QU0.net
- 自分よがりなコードやトリッキーなコードよりは冗長なコードのほうがいいわ
- 510 :名無しさん@お腹いっぱい。:2015/05/15(金) 23:58:28.57 ID:cwpOruK/0.net
- キーが一意となる事が確定している状況であれば
通常の配列を使うなんて意味ない
わざわざ配列を検索するためのループをコーディングする必要が出てくる
行数も検索時間も全部無駄
できる大人は積極的に連想配列を使いますね
- 511 :名無しさん@お腹いっぱい。:2015/05/16(土) 01:21:50.65 ID:kYQf2te90.net
- 冗長なコードはバグの原因だしメンテナンス性に欠ける
- 512 :名無しさん@お腹いっぱい。:2015/05/16(土) 01:58:20.22 ID:hI7/eQi30.net
- 自分よがりでトリッキーなコードでも速かったらそっち使うじゃん?
最速のコードってトリッキーなんだよな
- 513 :名無しさん@お腹いっぱい。:2015/05/16(土) 03:35:37.82 ID:5YLxrpDQ0.net
- だからなぜuwscに速度を求めるのか・・・
- 514 :名無しさん@お腹いっぱい。:2015/05/16(土) 04:00:13.96 ID:kYQf2te90.net
- UWSCはプログラミング始めるとっかかりとして悪くないと思うわ
- 515 :名無しさん@お腹いっぱい。:2015/05/16(土) 06:59:43.23 ID:jzBJrgnq0.net
- プログラムで固定長の配列は実際使いにくいよな
連想配列か可変長配列が圧倒的に便利
- 516 :名無しさん@お腹いっぱい。:2015/05/16(土) 08:45:44.45 ID:RgS0dIJ+0.net
- 可読性を重視するか速度を重視するかなんて書く人によるだろ
自分と意見が違うからって無闇に叩く奴はハゲ
- 517 :名無しさん@お腹いっぱい。:2015/05/16(土) 09:55:58.16 ID:PHxUHjwY0.net
- public key[1000]
public value[1000]
key[0]="apple"; value[0]="りんご";
//・・・
key[999]="banana"; value[999]="バナナ";
print searchArray("apple")
print searchArray("banana")
function searchArray(name)
for i=0 to length(key)-1
if name=key[i] then
result = value[i]
exit
endif
next
fend
- 518 :名無しさん@お腹いっぱい。:2015/05/16(土) 09:57:59.40 ID:PHxUHjwY0.net
- hashtbl hash
hash["apple"]="りんご"
//・・・
hash["banana"]="バナナ"
print hash["apple"]
print hash["banana"]
- 519 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:01:39.61 ID:PHxUHjwY0.net
- searchArray?
しねばいいのに^^
- 520 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:05:22.46 ID:QDThgf1Z0.net
- グローバル変数の初期化がうまくいかず悩んでいます。
hogeの値を 1→2→3→1→2・・・としたいのですが、1→2→3→4→5・・・となってしまいます。
DO1関数内で、hogeの値を使ってIF文を動かしたりしています。
考えているような動作にするには、どういった記述をすれば良いでしょうか、
教えて頂けるとうれしいです。よろしくお願いします。
WHILE TRUE
public hoge = 0 //関数で使う変数
loop = 0
WHILE (loop = 3) = FALSE
loop = loop + 1
hoge = hoge + 1
print "hoge" + hoge
print "loop" + loop
DO1()
WEND
WEND
- 521 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:05:59.46 ID:QDThgf1Z0.net
- (続き)こちらがログになります。
** 出力ログ ******
hoge1
loop1
hoge2
loop2
hoge3
loop3
hoge4
loop1
(・・・以下続く)
** 理想のログ ******
hoge1
loop1
hoge2
loop2
hoge3
loop3
hoge1
loop1
(・・・以下続く)
- 522 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:26:28.90 ID:pznJG80O0.net
- public hogeは変数宣言として最初に1度しか通らないので宣言と代入を別に記述する
- 523 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:39:03.28 ID:QDThgf1Z0.net
- >>522
なるほどです、下で無事動作するようになりました。
public hoge = 0 //関数で使う変数
hoge = 0
loop = 0
初歩的な質問になってしまい失礼しました、どうもありがとうございます。
- 524 :名無しさん@お腹いっぱい。:2015/05/16(土) 11:12:12.76 ID:GwNDKgWN0.net
- ハードコーディングくらいググれよ
連想配列でもハードコーディングを避けて
CSVからのデータを格納できるけどな
0から999までハードコーディグしかも1行づつ
などというサンプルコードはもはやギャグだぞ
- 525 :名無しさん@お腹いっぱい。:2015/05/16(土) 12:13:08.13 ID:sM7ax+dX0.net
- リサイズ使えば配列要素なんて無限に変更できるのにそこまでして拒む理由を知りたい
DIM Array[0]
Array[Resize(Array)] = 0
Array[Resize(Array, Resize(Array)+1)] = 1
Array[Resize(Array, Resize(Array)+1)] = 2
これでええやん
[1000]とか馬鹿なの
- 526 :名無しさん@お腹いっぱい。:2015/05/16(土) 20:57:04.02 ID:ADPmpcCJ0.net
- きたねえコードだ
- 527 :名無しさん@お腹いっぱい。:2015/05/16(土) 21:07:10.23 ID:kYQf2te90.net
- ずいぶんとダサいコードを書いてるのね
- 528 :名無しさん@お腹いっぱい。:2015/05/16(土) 22:31:29.69 ID:ADPmpcCJ0.net
- IQ145
- 529 :名無しさん@お腹いっぱい。:2015/05/17(日) 07:17:01.08 ID:v1v0KtpL0.net
- こんなゴミコードを自信満々に晒せる神経を疑う
- 530 :名無しさん@お腹いっぱい。:2015/05/17(日) 09:57:22.76 ID:18wKMXDJ0.net
- もう分かったからご自慢のきれいなこーどでずっとオナニーしてろよ
文句だけなら誰でも言えるっつーの
- 531 :名無しさん@お腹いっぱい。:2015/05/17(日) 09:59:44.04 ID:L/VppOnQ0.net
- プログラムの授業で明日の天気予報を明後日に出しても仕方ないって例えでよく言われたな
昔は知らないけど今の時代数行長いだけで速さなんてそんな変わらないんだよな
- 532 :名無しさん@お腹いっぱい。:2015/05/17(日) 13:49:55.80 ID:8iRscPda0.net
- ちょっとした動作上の設定なんかを配列にハードコーディングして
横着する場合なんかに>>525のような書き方をしてしまう場合がある
俺の場合はC言語の++と同じ作用をする自作関数で…w
エディタ上で順番を入れ替えるのも楽
連想配列派の人は、スピード推しなのに1000要素ハードコーディングという
人間を尊重しない本末転倒なサンプルコードが敗因だな
CSVから連想配列に格納し同要素存在時の例外処理まで入れてたら勝っていたw
- 533 :名無しさん@お腹いっぱい。:2015/05/17(日) 15:08:03.59 ID:eWPQGAiz3
- ttp://sp.e-words.jp/w/%E3%83%8F%E3%83%BC%E3%83%89%E3%82%B3%E3%83%BC%E3%83%89.html
> ソフトウェア開発の際に、特定の動作環境を決め打ちして、その環境を前提とした処理やデータをソースコードの中に直に記述すること。
> ハードコードされたデータなどはプログラムの完成後、実行時などに容易に変更することはできないため、
> 後から利用者などの手で変更する必要が無いか薄いと判断されたデータがハードコードされることが多い。
UWSCみたいなスクリプト言語程度でハードコード云々言うのはアホ
CSVだって禁止文字とかカンマ区切りとかあるからエクセルとか使う必要があるけど
エクセルシートからコピペするんならスクリプトのソースにコピペしようがCSVにコピペしようが大差ない。
- 534 :名無しさん@お腹いっぱい。:2015/05/17(日) 18:14:54.91 ID:vSIeL8RL0.net
- コーディング論とか流用性とか気にせずに目の前の問題をアドホックに解決するってのが
UWSCのようなツールの使い道だと思うんだけどなぁ
- 535 :名無しさん@お腹いっぱい。:2015/05/17(日) 19:43:20.73 ID:oWHdgvyz0.net
- >>525はねぇよ。配列の初期化は普通↓こうだろ
DIM Array[] = _
0, _
1, _
2
CSVにする意味も分からねぇ。実行中に変更する必要ないんだったら↓これでいいだろ
DIM list[][2] = _
_ // key,value
"mikan","ringo", _
"ringo","mono"
- 536 :名無しさん@お腹いっぱい。:2015/05/17(日) 19:44:59.84 ID:oWHdgvyz0.net
- 後半コピペしたらミスった。訂正↓
DIM list[][1] = _
_ // key,value
"mikan","ringo", _
"ringo","mono"
- 537 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:05:01.57 ID:kcSkOwMN0.net
- ヒント:
初期化は自明な話なので、誰も初期化方法の議論はしていません
- 538 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:09:51.55 ID:oWHdgvyz0.net
- じゃあ何の議論してんだよ?
- 539 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:39:41.30 ID:kcSkOwMN0.net
- if-elseifが増えてきて効率性が落ちてきた、と思ったら配列を使えばいい
思わなければ使う必要なんてない
配列はC言語なんかにも標準で持っている極めて基礎的な仕組みで
for文なんかととても相性が良い
ただ配列は限界があって、先頭から順に1つずつ処理していくような
単純な処理しかできない
配列から特定の要素を探すsearchArrayみたいな処理を考えれば分かるけど
効率が悪いので要素数が増えれくるとどうしても遅くなる
それにUWSCの場合は要素数の追加や、不要な要素の削除などが面倒
(これは言語によって違って)
この問題はキーと値が1対1となるデータ形式では単純に回避できる
それが連想配列
そもそもの用途が異なるから配列と連想配列は比べてもあまり意味がない
って単純な話しかしてないんだけど
逆に何が分からないんだ?
- 540 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:44:13.30 ID:v1v0KtpL0.net
- >>536見て思い出したが、
配列の宣言の時、要素数指定の仕様がいらつくよな
何でn個必要な時にn-1を書かないといけねーんだよと毎回思うわ
- 541 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:49:21.29 ID:gmmmlVwD0.net
- >>539
ちと長いがまぁ同意
自分もユニークキーと値がペアの要素じゃなければ無理に連想配列使おうとは思わない
最近のバージョンで自然数ソートも追加されたから
普通の配列の利用頻度は少し上がっている位だ
- 542 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:50:31.81 ID:A/2qR/J80.net
- 質問者不在 乙
- 543 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:55:30.33 ID:oWHdgvyz0.net
- >>539
それも自明だと思うけどな
俺は上でCSVを推してるやつとか変な初期化してるやつに言ったんだよ
- 544 :名無しさん@お腹いっぱい。:2015/05/17(日) 21:04:40.72 ID:vSIeL8RL0.net
- 連想配列だってsearchArrayみたいな処理をなるべく効率のいい方法でやってるだけで
普通の配列に比べればずっと遅い。というか、遅いからこそ普通の配列と別になってる。
- 545 :名無しさん@お腹いっぱい。:2015/05/17(日) 21:08:59.70 ID:dFk4RCMk0.net
- rubyの配列が使いやすすぎてuwscの配列がうんこにしか見えない
- 546 :名無しさん@お腹いっぱい。:2015/05/17(日) 21:19:17.19 ID:gmmmlVwD0.net
- アレはもう配列というより一般的な言語でいうリストの範疇になる
UWSCには勿論リストは無い
LINQ for UWSC とか実装したらいいのにね
- 547 :名無しさん@お腹いっぱい。:2015/05/17(日) 23:13:32.56 ID:kngJrV4f0.net
- >>535
配列要素が固定ならそうだよ
>525は配列がいくつあるかわからない、処理中に増える可能性がある場合
かつ、同じ要素が重複してしまう場合はこれしかないよね
もともと>517の[1000]とか宣言してるのは無駄だろうっていう話なんだろうけど
- 548 :名無しさん@お腹いっぱい。:2015/05/18(月) 00:36:12.92 ID:qDhsU4Za0.net
- たぶんリサイズのたびに別にメモリ確保して全コピーとかやってるだろうから
[1000]の方がずっとマシな気がしないでもない
- 549 :名無しさん@お腹いっぱい。:2015/05/18(月) 00:41:17.78 ID:AZmCHRLz0.net
- 必要に応じて適宜でいいでしょ
ハードコーディングしておしまいでもいいし
変更に簡単に対応するために「ほげ.UWS」と一緒に「ほげ.xlsx」を置いてもいいし
.INIでもいいし.datでもいいし
ところで変数宣言時に要素数を指定した配列をReDimで増減できたっけ?
型だけ指定して要素数は未指定じゃないと出来ないか、
または面倒な事をしなきゃいけなかったような。おやすみ
- 550 :名無しさん@お腹いっぱい。:2015/05/18(月) 01:05:40.84 ID:HjlaxIuh0.net
- >>549
RESIZEはSAFEARRAYも含めてなんでも出来る
>>548
そしてSAFEARRAY以外はメモリ的に連続配置されている保証はないという仕様なので
毎回全コピしているかは不明
でも1件毎に配列を広げ続けるのは流石に勿体無いと思うので
最終件数が予め分かるロジックがあるならそれを優先
無理なら追加処理の最初に+100とか+1000とか案件に応じた一定値で配列を広げる
足りなくなったらまた一定値広げるのを繰り返して最終的な件数で確定させる方が好き
- 551 :名無しさん@お腹いっぱい。:2015/05/18(月) 12:32:13.11 ID:WuOwBSqY0.net
- 今テストプログラム書いて再確認したが、
今でこそ>>550の通り何でもできるようだな。
昔はSafeArrayが絡むと何かとまともに動かなかった。
例えばver.4.7では、関数の引数が配列のときSafeArrayを配列として渡すことが
出来なかった。ほぼSAFEARRAY≠UWSC配列との扱いだったからな。
もちろんRESIZEにSAFEARRAY渡したら Syntax Error
当時のSAFEARRAYは、UWSCにとっては UNSAFE ARRAY だった訳。
その名残りもあって、俺の場合なんかは、
わざわざSAFEARRAYをUWSC配列に転写してから使っていた。
昔からUWSC使い倒してる人は、SAFEARRAY触りたがらない人が多いはず。
- 552 :名無しさん@お腹いっぱい。:2015/05/18(月) 12:38:34.40 ID:WuOwBSqY0.net
- 昔と言っても Ver4.7 は 2011/06/04 にリリースか。
たった4年前。結構驚きだわ。
- 553 :名無しさん@お腹いっぱい。:2015/05/18(月) 12:43:02.20 ID:WuOwBSqY0.net
- 蛇足だけどμItronみたいな組み込みOSだと、
安定性を重視して領域やオブジェクトの動的生成・変更は行わない。
(動的だと、その時に必要なスタック領域が足りるかどうか保証がないから)
上のSafeArray絡みで散々苦労した経験のせいで、
俺の場合は配列は常に想定最大要素数確保して
データ要素値にEOFの役割を持つ定数を使って管理してるな。
今はもう不要なんだろうが、
そのコードで何年も24時間回しっぱなしのコードがあるんで触ってない。
- 554 :名無しさん@お腹いっぱい。:2015/05/18(月) 13:15:44.27 ID:MH6w5v1q0.net
- uwscであまり複雑なことはするなってことだな
そういう用途には作られていないから
- 555 :名無しさん@お腹いっぱい。:2015/05/20(水) 11:12:35.54 ID:FuKGsM4H0.net
- 正直スレ全部読まずに質問して
大変申し訳ないのですが
uwscのホームページからdlできない
バージョンはとこかで入手できますか?
具体的には
uwsc pro48e を探しています。(ライセンスは購入済)
- 556 :名無しさん@お腹いっぱい。:2015/05/20(水) 12:01:57.93 ID:8Gzw0qU50.net
- 古いバージョンをわざわざ使う理由が判らないけど
公式で旧バージョンじゃなきゃダメな理由を伝えたら
対応してくれるんじゃないの?
- 557 :名無しさん@お腹いっぱい。:2015/05/20(水) 13:32:36.09 ID:3AVFyxf40.net
- >555
Wayback Machine で探したり、URL直打ちで探れば、
上に出てた4.7まではまだネット上にある模様。
- 558 :名無しさん@お腹いっぱい。:2015/05/20(水) 13:42:07.05 ID:j6BzMEKe0.net
- そのバージョンではexe化した時に、inputbox selectboxの上に自作アイコンが残ったんだけど、それ以降のは仕様で残らなくなった。
以前作者に無理言ってダウンロード
させてもらったんだけど、勘違いから消去してしまい復活も不能。
流石に二度は気が引けて他の手段は
無いものかと尋ねてみた次第です。
- 559 :502:2015/05/20(水) 13:47:01.56 ID:j6BzMEKe0.net
- >>556
>>557
ありがとうございます
url直打ちで探ってみます
- 560 :名無しさん@お腹いっぱい。:2015/05/20(水) 13:47:45.69 ID:cUcq/gGg0.net
- APIからinputboxの表示エリアに画像上掛けばええやん?
DEF_DLL と BilBlt でググれ
- 561 :名無しさん@お腹いっぱい。:2015/05/20(水) 13:48:43.41 ID:cUcq/gGg0.net
- Bitやったすまんな
- 562 :502:2015/05/20(水) 13:59:09.52 ID:j6BzMEKe0.net
- 連投失礼します
>>561
ありがとうございます
その方法でしのいでたんですが
やり方が悪いのか表示直後アイコンと
タイトル文字が重なってしまいあまり
うまくできませんでした。
アドバイスをもとにもう少し調べてみます。
- 563 :502:2015/05/20(水) 14:34:51.43 ID:j6BzMEKe0.net
- >>557
wayback machineでdl出来ました
貴重な情報に感謝します
皆様のお知恵で解決できました
以上、
お騒がせしました
- 564 :名無しさん@お腹いっぱい。:2015/05/22(金) 06:17:53.29 ID:CcUQ5B9h0.net
- web記録とか、これからはIEではなくEdgeになるのかな?
Edge.NAVIGATEとか?
ED.NAVIGATE?
EG.NAVIGATE?
- 565 :名無しさん@お腹いっぱい。:2015/05/22(金) 06:19:38.95 ID:CcUQ5B9h0.net
- どんな表記の仕方が主流になるのかな…
- 566 :名無しさん@お腹いっぱい。:2015/05/22(金) 07:14:42.17 ID:7TsRGg6k0.net
- オブジェクト名はてめーで決めるんだから関係ないだろ
- 567 :名無しさん@お腹いっぱい。:2015/05/22(金) 07:29:20.44 ID:hhZ70BHz0.net
- プレビュー使ってる人居たらもうわかるんじゃないのかな
- 568 :名無しさん@お腹いっぱい。:2015/05/22(金) 10:47:02.36 ID:6X7mVzHE0.net
- そもそもEdgeはCOM提供しないかもしれないな
今まで通りIE使えばいいんじゃないか
- 569 :名無しさん@お腹いっぱい。:2015/05/22(金) 12:02:13.46 ID:4O6Cz7yUg
- IE使えなくなったら正直死ぬ。
超初歩質問なんだが、明らかに要素が5つしかないってわかってて
Dim array[5]
で済むところで、
Dim array[1000]
ってやったら、メモリをたくさん使う以外に何か問題ってあるの?
ググろうにも何でググっていいかわからんかった。
- 570 :名無しさん@お腹いっぱい。:2015/05/22(金) 12:40:49.40 ID:3w9sE7WQ0.net
- 現時点の情報でEdgeはVBSやActiveX対応しないって話だから
COMオブジェクトも作れないだろう
FirfoxやChromeと同じようなもんと考えていい
でもSeleniumがサポートするだろうから影響はあまりないはず
ブラウザ制御はこちらが主流になると思う
- 571 :名無しさん@お腹いっぱい。:2015/05/22(金) 13:06:39.39 ID:FEqx8oNuY
- >>569
問題なし
程よく忘れた頃、手直しする時になぜこんな値で初期化したのか忘れて悩むくらいのもの
- 572 :名無しさん@お腹いっぱい。:2015/05/22(金) 13:26:16.54 ID:FEqx8oNuY
- 問題あるとしたら、ループで回すとき一手間増えるくらい
サイズが分かっている時
for i = 0 to length(array)-1
print array[i]
next
これで済みものが配列の終わりにnullが代入されているとして
for i = 0 to length(array)-1
if array[i] = null then break
print array[i]
next
データの終わりを検出しないといけなくなる
- 573 :名無しさん@お腹いっぱい。:2015/05/22(金) 13:50:29.28 ID:FEqx8oNuY
- 連投ごめん
データ数があらかじめわかっているのならその数で回せばいいな
for i = 0 to 5
print array[i]
next
あとは意図しないデータにアクセスした時エラーで止まらないとかかな
print array[11]
- 574 :名無しさん@お腹いっぱい。:2015/05/22(金) 14:04:01.09 ID:4O6Cz7yUg
- >>573
そうなのかありがとう。
極論言うと、出てくる配列全てに[10000]と宣言したところで、
傍で見てる人に頭悪そうって思われる以外には無問題ってことだね。
それなら「ちょっと配列が増えそうで、後からサイズ変えるのめんどいやー」
ってときは2,3倍くらいの数で宣言しておくのが一番ってことか。
- 575 :名無しさん@お腹いっぱい。:2015/05/22(金) 14:24:05.12 ID:hu/G2q6J0.net
- 最新からセレクトボックスが画面右寄
せができなくなったので、調べてた
らuwsc掲示版に全く同じ症状の人みつけた。
詳しい環境書いてなかったので
原因は特定出来てないんだけ
みなさんはどう?
ぴたっと右寄せできます?
- 576 :名無しさん@お腹いっぱい。:2015/05/22(金) 16:08:45.19 ID:pgGOi+af0.net
- あんまり関係ない話題だけど、
プログラムの些細な変更を逐一クラウドサービスに保存できて、変更が追えるようにできないかな?
今はいちいちファイル名を別にして保存してるだけなんだけど
そういう手間って無くせないのかな
- 577 :名無しさん@お腹いっぱい。:2015/05/22(金) 16:34:15.93 ID:4O6Cz7yUg
- >>576
Dropboxならやってる。
「変更が追えるように」って同期じゃダメなの?
やりたいことがイマイチ読み取れなかった。
- 578 :名無しさん@お腹いっぱい。:2015/05/22(金) 16:31:51.19 ID:hhZ70BHz0.net
- プログラマブルなエディタなら保存先がクラウドかは兎も角
履歴バックアップを何世代まで保存するとかは標準で装備しているもんですよ
要するにエディタの仕事です
Git使う手もあるかもしれないけれど
なんだかなぁと思う
- 579 :名無しさん@お腹いっぱい。:2015/05/22(金) 17:10:57.23 ID:ewFNmIuf0.net
- git使いづらい
- 580 :名無しさん@お腹いっぱい。:2015/05/22(金) 17:29:26.72 ID:kOLBNfMN0.net
- 以下のスクリプトで関数が見つからないとエラーが出るんですか
sethotkeyからは引数つけた関数は呼べなかったりするんでしょうか
windowid=GETID(GET_ACTIVE_WIN)
while true
flag=0
flag=sethotkey(vk_f1,,"ファンクション入力(windowid)")
if flag then continue
sleep(600)
wend
procedure ファンクション入力(id)
mouseorg(id,2)
KBD(VK_F1,click,500)
fend
- 581 :名無しさん@お腹いっぱい。:2015/05/22(金) 17:49:54.90 ID:hhZ70BHz0.net
- 出来ません
グローバル変数使うとかで回避するのが定石かな
- 582 :名無しさん@お腹いっぱい。:2015/05/22(金) 18:09:32.15 ID:kOLBNfMN0.net
- ありがとうございます
- 583 :名無しさん@お腹いっぱい。:2015/05/22(金) 18:12:37.28 ID:E4xWRY5b0.net
- >>580
この例なら初期値扱いにしちゃえば?
試してないけど
procedure ファンクション入力(id=GETID(GET_ACTIVE_WIN))
- 584 :名無しさん@お腹いっぱい。:2015/05/22(金) 18:45:42.76 ID:YmuGzYfC0.net
- そもそもUWSC仕様だとスレッドも
引数・戻り値共にまともに遣り取りできず
グローバル変数しか手段がない
そのことがHELPの<スレッド生成>に書いてない
sethotkeyも動きを考えると同等の仕様だろうな
重大な仕様制限についてHELPにまともに書いてない点も含めて
- 585 :名無しさん@お腹いっぱい。:2015/05/22(金) 20:43:05.88 ID:pgGOi+af0.net
- >>578
そういう機能があるエディタを探せばいいのか
スレ違いな質問に答えてくれてありがとう
- 586 :名無しさん@お腹いっぱい。:2015/05/23(土) 08:59:55.17 ID:DAB6C+q+0.net
- サクラエディタでいいんでない?
- 587 :名無しさん@お腹いっぱい。:2015/05/23(土) 09:51:07.52 ID:fdz9T9Ew0.net
- eclipseみたいなコード補完やフォーマッターあったら便利だよね
- 588 :名無しさん@お腹いっぱい。:2015/05/23(土) 12:56:19.50 ID:xiFykTZl0.net
- ソースコード管理はDropboxとTortoiseGitを組み合わせて使えば楽なんじゃね?
使ったことないけど
「いま追加途中の処理は消したくないけど、いったんうまく動いてた頃のコードに戻したい」
とかよくあるじゃん
エディタの自動バックアップ機能だけでこれをやろうとすると大変
ファイルを手作業で退避してからタイムスタンプを頼りに欲しいバージョンを探す羽目になる
そこからバグを修正して退避させたコードをマージしたい、となるともう絶望的
Gitだとブランチ切り替えるだけ、マージもほぼ自動でやってくれる
一度試してみるといい
- 589 :名無しさん@お腹いっぱい。:2015/05/23(土) 20:10:26.52 ID:a7xATCjJK
- uwscで作るとかは無理なのか?
1時間ごとにwhile監視して、内容が変わっていたらファイル名+時間とかで
コピー作成。何か難しいとこある?
- 590 :名無しさん@お腹いっぱい。:2015/05/23(土) 23:58:40.33 ID:nZxuV0Lbt
- 無理じゃないけどすでに他で実装されてる機能をわざわざ作るのは無駄かな
プログラム初心者の勉強用ならいいかもね
1. 指定した1つのファイルの監視
2. 指定した複数ファイルの監視
3. 指定した複数フォルダの監視
4. どのフォルダでコード書いても自動でファイルパスを解析して監視
自分の実力に合わせて作ってみるといいよ
- 591 :名無しさん@お腹いっぱい。:2015/05/24(日) 00:19:54.26 ID:M3bR0sl2f
- いや、他で実装されてるものに不満があったり、見つけられないから
ここに書いてると思って見てたんだけど…。
「満足できる機能が欲しいなら作るのが一番確実でない?」という程度の
提案。処理内容もそう難しいものとは思わなかったからな。
あと自作だと応用が無限だから将来性も非常に高い。
一応Dropbox経験者として書いておくと、「自動で同期される」は
なかなか胡散臭いことがあるから気を付けてな。手動更新もついてないし、
更新されたかどうかもその都度チェックしないといけないこともある。
まだ見てるかわからんけど。
- 592 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:27:37.29 ID:fK/MeGnH0.net
- public id1=GETID(GET_ACTIVE_WIN)
print status(id1,ST_PROCESS)
sleep(0.3)
KBD(VK_ALT,DOWN,30)
KBD(VK_TAB,CLICK,300)
KBD(VK_ALT,UP,300)
sleep(0.3)
public id2=GETID(GET_ACTIVE_WIN)
print status(id2,ST_PROCESS)
sleep(0.3)
このスクリプトでid1とid2に同じウィンドウIDが入る理由がわからない
ちなみにpublicを外すとそれぞれ別のウィンドウIDが入る
- 593 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:34:10.18 ID:3fBbOc8N0.net
- それはグローバル変数は無条件に最初に実行されるからだよ
グローバル変数は宣言と初期化は別にした方が感覚的な動作順と一致するよ
- 594 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:45:24.11 ID:fK/MeGnH0.net
- なるほどわかりましたありがとうございます
特にヘルプにはのってないように思うのですが
そういうのってプログラム界隈の常識だったりするんでしょうか・・・
- 595 :名無しさん@お腹いっぱい。:2015/05/24(日) 15:14:23.38 ID:3fBbOc8N0.net
- ヘルプのキーワードで PUBLIC で検索すると・・・
※ PUBLIC変数の初期化はスクリプト実行前に行われます
って書いてあるんだなぁ
因みにグローバル変数って何時でも何処でもアクセス可能な変数という意味だから
そういう意味では常識
余談だけどCALL命令も実行前に予め展開してから動作を開始するのでこれにも注意が必要
CALL先のグローバル変数や動作順が曖昧になるのでバグの温床に成るのだけれど初心者程ハマりやすい
CALL先のスクリプトは関数のみにして最初に1回だけCALLした方が良いってレスがよく付くのはこの為
でもこっちは好き好きかな
- 596 :名無しさん@お腹いっぱい。:2015/05/24(日) 15:26:28.97 ID:3fBbOc8N0.net
- ちょっと補足しておくと
最初の例で話をすると id1 と id2 は何時でも何処からでもアクセスされる可能性を考えて
public id1 = -1
public id2 = -1
と宣言と初期化したら GETID(GET_ACTIVE_WIN) する迄は
他の参照箇所からでも未取得だと判断できるよ
- 597 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:21:21.07 ID:qvDPXZzz0.net
- 初歩的な事で申し訳ないんだが
IFB CHKIMG("test.bmp,-1,x1,y1,x50,y30,,IMG_MSK_BGR4")
MSGBOX("画像認識に成功しました。")
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
endif
こんな感じで画像認識のテストをしてるんだが、画像が映ってる画面をスクロールしたりして位置がずれるだけで認識してくれなくなるんだがどうしたらいいかな
同じ画像が画面に4〜5個あるんだが画像を撮った位置の奴しか認識しないし、位置がずれればそれも駄目になってしまう
Help見て画像の大きさの範囲とか色無視とか色幅に余裕をもたせる?とかいれてやってみたんだが何か間違ってるのかな
背景も単色でどれも同じだし大きさや形も一緒に見えるんだが何で認識してくれないんだろうか
- 598 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:36:41.33 ID:CgfbemLh0.net
- ぶっちゃけCHKIMGの曖昧検索は使えないと思うよ
曖昧じゃなくても見つけられる検索用の画像を用意した方が良い
どうしても曖昧な検索に頼らないと駄目なら
過去スレに類似画像検索用もDLL貼ってた人居たでしょ
アレ使ったら?
- 599 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:45:38.42 ID:BPsSvuAk0.net
- >>597
x1,y1,x50,y30
これサーチ範囲だろ?
サーチ範囲外に画像の位置がずれたら認識しないと思うが
そういうレベルの話ではないのだろうか
- 600 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:46:51.43 ID:tqKcIqpY0.net
- > x1,y1,x50,y30
間違って小さな値が入っててサーチエリア外になってるとかない?
- 601 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:47:47.90 ID:yz8xoD7N0.net
- >>597
サーチ範囲指定がおかしい
「"」での囲い先もおかしい
4~5個の画像が厳密に一致していない
いっきに全部行おうとせずにひとつずつ確認しな
画像は全て一致しているのか、サーチ範囲は機能しているのかetc
- 602 :名無しさん@お腹いっぱい。:2015/05/25(月) 11:45:52.25 ID:zYIN4Xno0.net
- 画像サイズとサーチ範囲を誤解してるだろうな
- 603 :名無しさん@お腹いっぱい。:2015/05/25(月) 11:53:50.32 ID:uBMGP39BD
- わしならこうする
Dim Win[4]
Win[0] = GetID("なんとかかんとかのアプリ")
Win[1] = Status(Win, ST_X)
Win[2] = Status(Win, ST_Y)
Win[4] = Status(Win, ST_Width) - Win[1]
Win[3] = Status(Win, ST_Height) - Win[2]
IFB CHKIMG("test.bmp",-1,Win[1],Win[2],Win[3],Win[4],,IMG_MSK_BGR4)
- 604 :名無しさん@お腹いっぱい。:2015/05/25(月) 11:51:55.44 ID:qvDPXZzz0.net
- おおう、こんな早くレスつくとは思ってなかった、みんなありがとう
IFB CHKIMG("test.bmp")
MSGBOX("画像認識に成功しました。")
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
endif
最初はこれでやってて色々試してあんな感じになったんだけど色々間違っているのか
その間違いは一旦置いておいて、上記ので撮った時の座標と現在の座標がほんの少しでもずれると認識してくれない事がなんでか分からないんだよね
色無視だけ追加してやってみても駄目だしさっぱり分からん、背景無視で画像の文字に反応するように出来ないかな?背景は水色っぽくて文字は白なんだけども
やりたい事は上から下にスクロールしていって画像が出てきたらクリックってのをしたいんだけど、中々難しいねぇ
- 605 :名無しさん@お腹いっぱい。:2015/05/25(月) 12:28:51.61 ID:mrtgo7Ug7
- >>603
mouseorgを使うといいよ
- 606 :名無しさん@お腹いっぱい。:2015/05/25(月) 12:34:01.34 ID:zYIN4Xno0.net
- >>604
とりあえずx1,y1,x50,y30を
0,0,2000,2000くらいにして動かしてみたら?
- 607 :名無しさん@お腹いっぱい。:2015/05/25(月) 12:49:50.53 ID:SvpDjoG90.net
- 間違いのせいでそうなってる可能性が高いのに、間違いを一旦置いといてどうするよ
- 608 :名無しさん@お腹いっぱい。:2015/05/25(月) 13:59:14.70 ID:qvDPXZzz0.net
- いや>>604ので基本チェックしてるのよ
座標とか色無視とか何にも付けない状態で画像とり直して何度もやってるんだが駄目で困ってる
位置によって微妙に色変わってんのかなぁ、画像大量に用意してやるくらいしかないかね?
- 609 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:38:33.43 ID:yz8xoD7N0.net
- >>608
やっていることと言っていることがちんぷんかんぷん
お前さんが整理しきれてないからこちらもちんぷんかんぷん
どこまでが成功してどこから失敗したのか、何をどうしたいのか簡潔にかいたらやさしいお兄さんが教えてくれるかもね
- 610 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:44:38.98 ID:abs8tZNk0.net
- >>608
実際に位置によって色が変わってるか確認してみた?
アウトラインはアンチエイリアスがかかることが多いから、3dotくらい削ると安定することがある
- 611 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:46:48.26 ID:99MSNuhI0.net
- しらんがな
- 612 :名無しさん@お腹いっぱい。:2015/05/25(月) 16:02:39.09 ID:zYIN4Xno0.net
- testが見えるように表示
testの画像を取って保存
print chkimg("test")を実行すると結果がtrue
僅かに画面をスクロールさせる
print chkimg("test")を実行すると結果がfalse
でいいの?
これなら、>>610のように見た目分からないレベルの画像加工処理が入ってるか
サーチ対象の画像が透過してるとかだな
曖昧検索のDDL使うか、
画像を小さくしたり、peekcolorで頑張るという手もなくはない
実際のサイトや類似サイトを示せばもっとイメージできるんだが
- 613 :名無しさん@お腹いっぱい。:2015/05/25(月) 17:18:28.59 ID:wJZicumD0.net
- 背景色の影響が文字だか画像に影響してるんでしょ
画像を加工して透過指定すればいい
画像加工の方法は
ペイントを起動4隅を同じ色にして、透過させたい部分を同じ色で塗るだけ
勘違いしてるであろう座標指定はとりあえずなしで以下で実行
IFB CHKIMG("test.bmp,1,,,,,,IMG_MSK_BGR4")
- 614 :名無しさん@お腹いっぱい。:2015/05/25(月) 18:46:48.48 ID:j/NgR3bi0.net
- 間違いなく画像が異なってるよ。
色幅はあくまで色しか幅を持たせてくれない。
色が全く同じでも、1ピクセルだけ違う場所があればFALSEだからね。
FLASHなんかで画像を表示してると、その処理方法によっては、
1ドット動いただけで、ドットレベルでは異なる形状になる。
特に、画像を原寸大で表示していない場合は確実にそうなる。
CHKIMGは、どの画像のどこを見れば、そういった影響から
逃れられるかを見つけ出せるかが勝負どころ。
少なくとも、不一致判定となった2つの画像を数百倍に拡大して
完全一致していないのかどうか自らの目で確かめることぐらいは必須。
調査の結果、無理という結論に至ることも少なくないぞ。
どうしてもダメなら、ChkImgXを使わせてもらえばいかが。
ところでダブルクォーテーションで囲む範囲や変数の使い方が
初心者レベルで間違えてるのは判ってるのかな?
- 615 :名無しさん@お腹いっぱい。:2015/05/25(月) 21:28:12.99 ID:SvpDjoG90.net
- 「test.bmp,-1,x1,y1,x50,y30,,IMG_MSK_BGR4」 というファイル名なのかも?
- 616 :名無しさん@お腹いっぱい。:2015/05/25(月) 21:55:47.39 ID:NyMNGZNA0.net
- その発想はなかったw
慣れてると2chに貼られたコードでも違和感ですぐ気付くけど
慣れないうちは文法ごとに色分けできるテキストエディタとか使えば
こういう単純ミスはかなり防げるんだけどな
初期設定のままUWSCが色分けできるMeryいいよ
- 617 :名無しさん@お腹いっぱい。:2015/05/25(月) 22:06:21.56 ID:99MSNuhI0.net
- ID:qvDPXZzz0みたいなのは、延々とアホみたいな質問するだろうから無視が一番
- 618 :名無しさん@お腹いっぱい。:2015/05/26(火) 12:57:02.60 ID:oJaZjdVLu
- CREATEFORMで読み込んだhtmlのフォームのtext areaに、SETFORMDATAで複数行のテキストを入力させています。
テキストは全部入るのですが、その表示がおかしいです。
1行目だけが表示されて、最初の改行以降2行目からは白く隠れてしまいます。
見えませんが選択することは出来ますし、1文字でも編集したら瞬間に全部がちゃんと表示されます。
改行を<#CR>にしてもCHR(10)にしてもCHR(13)にしても変わりません。
UWSC Pro 4.9c、Wix XP SP3、IE8です。
同じ症状の経験ある人いませんか?
- 619 :名無しさん@お腹いっぱい。:2015/05/26(火) 13:19:38.70 ID:WrGTn/9gZ
- それはソースないとわからんわ。
無料でプログラムもらっておいて礼すら言わないカスって結構いる?
ネット上での話だが。思ったよりイラつくなこれ。
- 620 :名無しさん@お腹いっぱい。:2015/05/26(火) 19:24:32.38 ID:Dm8v7lsf0.net
- chkimgの色幅なんだけど
指定なし→true
IMG_MSK_BGR1〜4→false
ってなっちゃうんだけど、おんなじ状況の人いる?
wind() //座標をウインドウ基準に
public wid
wid = status(id, ST_WIDTH)
public hit
hit = status(id, ST_HEIGHT)
path =(画像フォルダ)
num =getdir(path)
for A = 0 to LENGTH(GETDIR_FILES)-1
ifb chkimg(path +"\"+ GETDIR_FILES[A],,1,1,wid,hit)//ここのオプションを変える
print GETDIR_FILES[A] +"…OK"
else
print GETDIR_FILES[A] +"…NG"
endif
next
- 621 :名無しさん@お腹いっぱい。:2015/05/26(火) 19:32:37.27 ID:U67im66g0.net
- あ、自己解決しました
y2の後に番号があるの忘れていました。
- 622 :名無しさん@お腹いっぱい。:2015/05/26(火) 20:58:21.66 ID:uLWAtFpta
- >>618
UWSC Pro 5.1.1.0 Win8.1 IE11の環境だと問題なく改行表示される
<textarea name="Text1" rows=4></textarea>
SETFORMDATA("aaa<#CR>bbb", "Text1")
再現できる環境が無いので気休め程度の事しか書けないのが申し訳ないけど
レンダリングモードを変更してみるとか
<meta http-equiv="X-UA-Compatible" content="IE=8">
\r\nを送ると改行されるとの情報もあるのでCRLFを指定して送ってみるとか
SETFORMDATA("aaa"+chr(13)+chr(10)+"bbb", "Text1")
textareaペーストが一番早い気もする
- 623 :618:2015/05/26(火) 21:14:22.55 ID:ksZNBT0ug
- >>622
レンダリングモード変更で解決しました。
CRLFはダメでした。
ありがとうございます!
- 624 :名無しさん@お腹いっぱい。:2015/05/28(木) 10:26:46.72 ID:8Pc/2x0R0.net
- アンダーバー入れると行の途中で改行できるようになるのか
アンダーバーの後に//入れればコメントもできる
行の途中にコメント入れたいときに便利だなこれ
- 625 :名無しさん@お腹いっぱい。:2015/05/29(金) 01:22:09.81 ID:biwb9Jcst
- exe化したのを販売とか配布したら、
腕のいいプログラマーだったら解析とかできちゃったりするの?
販売するときに「ここは気を付けよう」ってポイント何かあれば
教えて下さい
- 626 :名無しさん@お腹いっぱい。:2015/05/29(金) 10:31:03.87 ID:n3vawDngH
- >・ EXE化ツールが付属しています。(EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます)
販売できますと書いてない
解析すればすぐ内部コアがUWSCって分かる
同人的な位置づけで限定的な公開方法で有償配布ならまず何か言われることはないと思うが
あとは作者次第
こういうプログラムを有償で組みますならOKなんじゃね
ちなみにスクリプトは絶対に元に戻せない仕様らしい(作者談)が
多少かじったことがある人ならば即どんな処理をしてるのかわかるぞ
これはUWSCに限った事じゃなくてどんな言語でもそうだけど
- 627 :名無しさん@お腹いっぱい。:2015/05/29(金) 16:36:29.96 ID:biwb9Jcst
- そうなの?w
教えてくれてどうもありがとう。
ライセンスフリー=販売可能だと思ってたわ。馬鹿やな俺
もし販売するってなったら皆、C++とかで作ってるの?
ググってもわからんかった。
- 628 :名無しさん@お腹いっぱい。:2015/05/29(金) 17:23:25.91 ID:VWSIePJRk
- ライセンスフリーってのは、UWSCのライセンスがかかってこないって事だろ。
配布に関して有償とか無償とか書かれてないから、販売していいんだよ。
無料配布の開発環境で販売していけない場合、無償での配布のみ可能とか書いてあるよ。
ttps://www.embarcadero.com/jp/products/delphi/starter-faq
> C++Builder Starterは、〜関連する収益が、1,000 USドルを越えないというライセンス規定
> 「Indie」ライセンス
> 「Indie」ライセンスは、特別な商用ライセンスで、フリーウェア、オープンソース、限定的な「収益」を上げる商業用の利用が許諾されます。
> 非商用ライセンス
> 非商用ライセンスは、価格の安い製品の提供を可能にしますが、同時に開発した製品を販売することを許諾しない
- 629 :名無しさん@お腹いっぱい。:2015/05/29(金) 19:28:39.07 ID:MqwgUQQOd
- >>625
販売については公式掲示板過去ログに
〜要点のみ抜粋〜
>自作して、EXE化したスクリプトは、販売も可能なのでしょうか。
>DATE:2007/9/8(Sat) 15:45 No.1080
>OKです。
>DATE:2007/9/8(Sat) 19:12
〜抜粋終わり〜
(UWSC掲示板過去ログ検索boardlog「EXE版の販売について」で検索)
とやりとりがあるので可能だろうけど
販売する前に問い合わせておいた方が確実だろうね
解析については
EXE化したUWSファイルは暗号化されて取り込まれているので
単純にテキストエディタやバイナリエディタで開いても内容はわからない
復元するツールがあると言う話も聞いたことが無いので
一般人が内容を見ることは無理
>腕のいいプログラマーだったら解析とかできちゃったりするの?
解析スキルの高い人がその気になれば復元されてしまう可能性は0ではない
>販売するときに「ここは気を付けよう」ってポイント何かあれば
>教えて下さい
UWSCは環境や操作する側の設定に依存する部分が多いので多くの環境で動かすには
かなりの技術が必要
少なくともこの質問をする技術レベルならトラブルになることが予想されるので
販売は止めておいたほうが良いと思うよ
- 630 :名無しさん@お腹いっぱい。:2015/05/29(金) 19:58:47.26 ID:VWSIePJRk
- EXE版を売るメリットなんかないと思うけどね。
EXEはウィルスの感染対象になる。
遠隔操作事件のように、悪意のコードを埋め込まれて再頒布される可能性がある。
>>629 が解析できないと言ってるのはあくまでもスクリプトの部分であって、
EXEとしてのフォーマットは決まっているので感染するのは簡単。
UWSCを使ったゲームマクロのスレでもこのUWSCスレでも、
何かいいものがあるとすぐに悪意のスクリプトがばら撒かれていることを知っていれば
感染可能性のあるEXEで配布なんてやろうとは思わないでしょ。
ゲームの自動化って需要はあるんだけど
削除されちゃうんだよね。
自分でホームページ作って公開したり、
取り扱ってくれるところがあればいいけど
通報があるとすぐに削除されてしまう。
その場合、悪意のコードを埋め込まれたEXEがどこかで再頒布されると、
オリジナルを頒布した人が逮捕される。
あと、「EXEなら何でもできるでしょ?」って、要求が大きくなるのもデメリット。
- 631 :名無しさん@お腹いっぱい。:2015/05/30(土) 09:00:22.36 ID:sFbRDONtD
- >>628-630
すげー参考になる。めっちゃありがとう。
技術的な質問板はよく見るけど販売系は調べ方がよくわからない。
>>629
>>UWSCは環境や操作する側の設定に依存する部分が多いので多くの環境で動かすにはかなりの技術が必要
逆に多くの環境で間違いなく動く言語教えてもらえるとすげーありがたい。
Javascriptは環境に左右される印象がある。やっぱりC++とかが良いの?
>>630
ゲームマクロはこの前、逮捕者出たよね。
逆にもしプログラムを売るとしたら何(どんな言語かetc)で、
どういう形が良いと思う?
ちょっとスレチになって申し訳ない。
適切な板があれば移動する。
- 632 :名無しさん@お腹いっぱい。:2015/05/30(土) 09:45:55.85 ID:NtbxeqpP0.net
- MOUSEが押下され続けてる状態ってのを取得したいんだけど、
GETKEYSTATEでVK_LBUTTONを時間区切って何回か見る以外に方法ある?
- 633 :名無しさん@お腹いっぱい。:2015/05/30(土) 10:06:44.58 ID:wmeXMlqtX
- >>631
こんなところでそんな話してる奴が商売できるわけがないから考えるだけ無駄。
>>222-226
【JavaScript】スクリプト バトルロワイヤル49【php,py,pl,rb】
ttp://toro.2ch.sc/test/read.cgi/tech/1430308707/
> 608 名前:デフォルトの名無しさん[sage] 投稿日:2015/05/21(木) 21:46:24.25 ID:uDd3DnUr.net
> つまるところ結局はAppleさんとMSさんなんすよね
> Swift,C#
> 909 名前:Office & Gamers ◆G144Hzgh2.0e [アハ♪” uh huh] 投稿日:2015/05/30(土) 03:00:42.71 ID:TKwdVSEz.net
> それと、俺様がJSに手を染めない理由は、ソース丸見えってところw
> もうね、こんな公開処刑みたいなインタープリターだけはやめとけw
C++でも環境はいろいろ。
むしろ、JS は OS の違いを吸収してくれてるはず。
JS でもサーバー必須なら丸見えでも商売になってる。
- 634 :名無しさん@お腹いっぱい。:2015/05/30(土) 10:14:18.87 ID:/5qWzqR+0.net
- それが一番手っ取り早いと思うよ
何回か見る必要があるって理解しているから大丈夫だと思うけれど
判定前に一度空読みしてバッファをクリアしないと瞬間値にならないからね
(厳密にはそれすらも瞬間値ではないが)
- 635 :名無しさん@お腹いっぱい。:2015/05/30(土) 10:20:17.69 ID:NtbxeqpP0.net
- >>634
そういう関数なり引数なりがあるかと期待したけど無いんだね
thx
- 636 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:30:17.70 ID:TZwPvYTO0.net
- 初歩的な質問で申し訳ないんですが
一つのウィンドウ上で作ったスクリプトを
もう一個同じ環境の別ウィンドウで並列処理させたいのですが
THRED SENDTOTEST
ID = EXEC("KASOU1")
call test.uws
PROCEDURE SENDTOTEST()
ID = EXEC("KASOU2")
call test2.uws
FEND
としています。
一応、全く同じスクリプトにはせずに
各スクリプトの頭に
test.uwsの場合
id = GETID("KASOU1")
MOUSEORG(id)
test2.uwsの場合
id = GETID("KASOU2")
MOUSEORG(id)
を追記していますがマウスの取り合いになってしまい、上手く並列処理してくれません。
まだ、UWSC自体触り始めたばかりで間違っている所は多々あるのでしょうが、完全に並列化するのはやはり難しいのでしょうか?
- 637 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:50:58.30 ID:3KFoCyzZ0.net
- >>636
スレッドでだめそうなら
uwsc自体を二つ起動しちゃうかな
execとかで
- 638 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:59:39.17 ID:BGEAI9SQ0.net
- 「マウスの取り合い」が具体的に何を指しているか明確にしないと
そもそも2つのウィンドウを両方アクティブにして
何か処理させるのは原理的に出来ない
だから答えは
「何をやりたいかによって並列化できるかどうかは決まる」
かな
- 639 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:16:56.66 ID:24/7t0QER
- Mousorgの指定してるIDが取り合いになるってことじゃないの?
それなら2つ起動しないとダメよ
現在のマウス移動可能範囲っていうグローバルな値に格納してるわけだし
- 640 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:09:12.74 ID:TZwPvYTO0.net
- CHKIMGを使った画像認識してクリック
ウィンドウ相対座標のクリック等です
>>637
UWSC自体を二つ起動して
それぞれにtest.uwsとtest2.uwsを再生させるという認識で合ってますか?
- 641 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:40:00.80 ID:sFbRDONtD
- >>633
色々ありがと! とりあえずいろいろ調べてみて、試せるところから試すわ。
- 642 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:36:01.89 ID:3KFoCyzZ0.net
- >>640
そう思ったけど
>>638の言うように、クリックして話す前にマウスが移動されたりするとかで挙動がおかしくなるから危険
コントローラ用のuwsを用意して、
二つuwsの処理に実行権限を振り分ける感じがいいかな
・コントローラuws
call a.uws;b.uws
i=0
while true
select i mod 2
case 0;a()
case 1;b()
selend
i=i+1
wend
・a.uws
fuction a()
//中断出来るまでの一処理だけ書く、2週目以降のための状態を変数に保存するのも忘れずに、public変数の競合も注意、classとかで括った方がいいかも
fend
・b.uwsはa.uwsと同じ感じで
- 643 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:36:08.62 ID:xMVR/Xi20.net
- 片方の処理をしてる時はもう片方は待つって処理を入れて
排他処理をさせれば良いだけではなくって?
- 644 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:44:25.07 ID:3KFoCyzZ0.net
- >>643
callで出来るならそっちの方がスマートか…
- 645 :名無しさん@お腹いっぱい。:2015/05/30(土) 18:06:06.45 ID:TZwPvYTO0.net
- >>644
丁寧な回答有難うございます
内容は完璧には理解出来てないのですが要勉強ですね…
>>643
例えば
aを処理してる間にbを待機させる処理を入れて
中断を挟める所にcallでbを処理させて、bが中断挟める所にaの処理をcall
以下ループという感じでスクリプトを組めば大丈夫という事でしょうか?
何か質問ばかりですいません…
- 646 :名無しさん@お腹いっぱい。:2015/05/30(土) 18:47:53.27 ID:3KFoCyzZ0.net
- >>645
>>644のcallで出来るならの部分は忘れて、変なこと言った
>>642をそのままの感じでやるか、
スレッドを使ってpublicな変数に実行する処理の識別子を入れる感じ?
・メインuws
public runNo="a"
//call宣言やスレッド実行処理を書く
・a.uws
procedure a()
while true
//やりたい処理を入れる
waitA()
//やりたい処理を入れる
waitA()
wend
fend
procedure waitA()
//他の処理実行
runNo="b"
//実行権限渡されるまで待つ
while runNo<>"a"
sleep(0.1)
wend
fend
・b.uws
//aとほぼ同じ
procedure waitB()
runNo="a"
while runNo<>"b"
- 647 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:00.81 ID:TZwPvYTO0.net
- >>646
ここまで丁寧でしかもテンプレ的な物まで作ってくれるなんて…
感謝の念でいっぱいです!
教えてもらった方法で色々試行錯誤してみます
本当に有難うございました!
- 648 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:09.37 ID:3KFoCyzZ0.net
- あとcallは処理実行するわけじゃなく、
その場所にソースをコピーしただけだと思った方がいい
- 649 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:11.95 ID:/5qWzqR+0.net
- 同じ事をするソースを2重に管理するのはバージョン管理が一致しないで後々バグの温床になるよ
スレッドを使った似たようなケースでこんなの作って
それぞれのスレッドから呼び出してどっちか区別可能しながら制御したことあるわ
//プロセス番号とスレッド識別子でIDを作成
DEF_DLL GetCurrentProcess(): hwnd: kernel32
DEF_DLL GetCurrentThreadId(): hwnd: kernel32
Function GetCurrentID()
result = GetCurrentProcess() + "." + GetCurrentThreadId()
FEnd
- 650 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:45:45.98 ID:k0Af3UX50.net
- 実際に並列処理ができるわけじゃないんだし、一つにまとめて順番にやった方がいいのでは
- 651 :名無しさん@お腹いっぱい。:2015/05/30(土) 20:09:31.86 ID:FaUG3gh00.net
- マウス操作などのユニークなリソースを
複数のスレッドから奪い合って制御するなんて
悪手の典型じゃんかデッドロックの温床だよ
UWSCはあくまで人間が手動で操作する所を自動化するもの
2人の人間が一つのPCを操作する様を自動化する状況なのか?
1人が対象を頻繁に切り替えて擬似並列する操作を自動化するはずだ
対象を切り替えて処理するのを実現するのは手間の問題で必ず実現可能だが、
手動では再現したことのないデバッグ不能な複数スレッドからの並行自動操作
を実現するのは、そもそもプログラムレベルで正しく書いたとしても、
その成果は、その構想がOSの仕様上そもそも不可能な動作だったことを証明
する結果となるリスクがあるぞ。
料理が盛りつけられたお皿が2つ。これを両手で同時に食べようとしても、
お箸が一膳しかなかったり、お口も一つしか無かったというオチにならんようにな。
- 652 :名無しさん@お腹いっぱい。:2015/05/30(土) 21:50:16.85 ID:5/MuJWZb0
- >>631
まず>>631が理解したほうが良いと思うことはUWSCはWindows操作を自動化するツールのスクリプトだということ
メリットは、手動で操作できることはほぼ比較的簡単に自動化出来ること
つまり新しくウインドウを作成してデータ処理をすることは(無理では無いが)不得意だということ
そこを踏まえて
>逆に多くの環境で間違いなく動く言語教えてもらえるとすげーありがたい。
多言語も変わらない(UWSCのような他プログラムをコントロールするプログラムという意味で)
コントロールされる側の環境、設定に(Windowsの環境、設定も含めて)依存する部分がどうしても出てくるし
たとえそれはC++等の他言語で作っても同じことで
多くの環境で動くようにするには環境間の差異を認識して処理を振り分ける必要があるのだけど
その環境間の差異は違う環境で実際動かしてみないと気づかない事が多々あると言うこと
その差異を認識して組んでるスクリプトを見ると参考になるし、素直に尊敬するよ
一言でいうと、言語の問題ではなく処理の問題 なのでUWSCでも環境の差異を吸収して動くものは作成可能
シェアウェアの販売方法を知りたいと他スレで質問するにしても
もう少し具体的に質問したほうがレスが付きやすいかもしれないね
- 653 :名無しさん@お腹いっぱい。:2015/05/31(日) 06:59:11.72 ID:1XAFtc6rG
- >>652
ありがとう!優しいな。
極端に言うと
msgbox("こんにちは")
って表示させるだけのプログラムであれば、またそれが相手側に表示を
させられていれば、言語は何でもいいし、問題もないってことだよね。
その辺踏まえていろいろ試してみるよ。uwscでもできそうで良かった。
ありがとう。l
- 654 :名無しさん@お腹いっぱい。:2015/05/31(日) 06:56:08.93 ID:hSYLC6Mx0.net
- https://service.gmx.com/registration.html
このページのフォームを埋めて行きたいのですが、
フォームのID?が動的に変わっているようで、指定の仕方がわかりません。
IESetData(IE,FirstName,"id57")
こんな感じだと思うのですが、id57の部分が変わってしまうのか入力されません
わかる方お願いします。
- 655 :名無しさん@お腹いっぱい。:2015/05/31(日) 07:42:54.65 ID:spRZd9M70.net
- >>654
ガチの犯罪報告ワロタwwww
通報しますた
- 656 :名無しさん@お腹いっぱい。:2015/05/31(日) 08:31:18.27 ID:+234HVzm0.net
- >>654
そんなの手でやればいい
大量にアカウント取得したいと思ってる悪人以外はそう考えるだろう
- 657 :名無しさん@お腹いっぱい。:2015/05/31(日) 15:46:00.29 ID:SDSS//Sp0.net
- 全部画像検索で操作したらいい
- 658 :名無しさん@お腹いっぱい。:2015/06/01(月) 07:23:47.81 ID:7eb6mTTQ0.net
- IELINKってフレーム分けされてるページだと文字列を読み込めないんですかね?
menu_fってフレームと、main_fってフレームがあって、menu_f内の「スケジュールの入力」って文字列をクリックさせたいんだけど、うんともすんとも言わん>.<
- 659 :名無しさん@お腹いっぱい。:2015/06/01(月) 14:29:47.45 ID:Axa8otif0.net
- 現在値のIEオブジェクトはフレーム定義のみのパターンかな
であればアクセスしたいフレームのIEオブジェクトを取得しよう
公式 FAQ #n37 に習って
同じドメインで同じプロトコルであればDOM操作するのも手
- 660 :名無しさん@お腹いっぱい。:2015/06/01(月) 20:00:58.86 ID:B4sEGaAv0.net
- 気になってframesetとiframeの両方を試してみたけど
IELinkは正常に動作する
操作を受け付けないframeとかあんのかな?
- 661 :名無しさん@お腹いっぱい。:2015/06/01(月) 20:04:32.22 ID:B4sEGaAv0.net
- IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.ink.or.jp/~bigblock/html/frame/01.html")
BusyWait(ie)
msgbox("frame IELink start")
msgbox(IELink(IE,"自己紹介"))
IE.Navigate("http://masaboo.cside.com/new_html1/ht_44.htm")
BusyWait(ie)
msgbox("iframe IELink start")
msgbox(IELink(IE,"次のページ"))
Procedure BusyWait(ie)
repeat
Sleep(0.2)
until (! ie.busy) and (ie.readyState=4)
Fend
- 662 :名無しさん@お腹いっぱい。:2015/06/02(火) 01:33:31.66 ID:kONnq2Nk0.net
- 変るか?
- 663 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:19:29.49 ID:SCl6mZXT0.net
- 皆さんありがとう
試行錯誤しながら、教えてもらったことを試してみます。
お前ら優しいのな
惚れてまうわ
- 664 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:45:41.51 ID:SCl6mZXT0.net
- 今試してみてページの作りの違いなのかソース表示すると
>>661さんのサンプルページの場合
どこでソース表示しても、メニューとコンテンツの二つのフレームがあると分かるけど、
自分がUWSCを使用したいページの場合
・各フレームのソースのみが表示される
→メニュー部分でソース表示するのと、メイン部分でソース表示するのと内容が違う
mainフレームにもmenuフレームにも、headとbodyがあって
さらに言えば、ページ内にヘッダーがあるんだけど、そのヘッダーにもheadとbodyがある…。
何かすげーややこしい構造の管理ページ。
ちなみに、ヘッド部分・メニュー部分・メイン部分のそれぞれのリンク先を指定してみたけど、どれも読み込めなかった
- 665 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:50:40.17 ID:SCl6mZXT0.net
- あれ、ファイアーフォックスだとちゃんとソース表示される
- 666 :名無しさん@お腹いっぱい。:2015/06/03(水) 14:49:13.90 ID:jzVkSga+0.net
- chkimg用の透過画像を簡単に作れる方法はないかな?
具体的には一番濃い色だけを残して他は透過色として塗りつぶしたいんだけど
色で選択して選択範囲反転、塗りつぶし、とやるのがいいのかな?
使ってるソフトがあったら教えて下さい
ペイントで1ドットずつやってるから目が疲れた
- 667 :名無しさん@お腹いっぱい。:2015/06/03(水) 15:11:46.10 ID:Gp34xgkt0.net
- 自分はフリーのgimpとか使ってたな
- 668 :名無しさん@お腹いっぱい。:2015/06/03(水) 15:39:19.35 ID:9AhfqGY+L
- twitterのプロフィール画像、ヘッダー画像をアップロードしたいんだけど、
プロフィールを編集を押下から先がわからない。
プロフィール画像を変更→画像をアップロードのやり方分かる人いる?
初めて1週間のおれにはソースにid,nameがないぽくてお手上げ状態。。
座標クリックで凌ぐしか今思いつかない。
分かる人助けて
- 669 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:28:14.77 ID:jzVkSga+0.net
- gimpか
ありがとう
- 670 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:48:09.69 ID:W59efDtX0.net
- paint.netもおすすめ
- 671 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:57:08.35 ID:UeOvBRd10.net
- 特徴的なごく狭い範囲を加工するだけだからMSPaintで十分だったわ。
てか、あまりでかい画像を持たせるのはなんかやだった。
- 672 :名無しさん@お腹いっぱい。:2015/06/04(木) 17:25:02.12 ID:CDT2sb0DE
- ここでは初歩的な質問かもしれないけど、どうしても作りたいマクロがあって質問したい。
A「@30分起きに一度再生したいスプリクト」・B「常に再生(ループ)しておきたいスクリプト」を2つ。
基本はBを再生しておきながら、30分おきにAを再生(その間Bは停止)する場合どういうスケジュールにすればいいかな。
- 673 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:03:55.25 ID:8OB69mUNU
- >30分おきにAを再生(その間Bは停止)
処理の内容によるとは思うけどAの再生状況をBが知る必要があるから
iniファイルを使ってAの再生フラグを作成してBの再生を制御するか
もしくはAとBを制御するCという制御用スクリプトを作ってそこから
CALLでAをB呼び出す方法
後者のほうが簡単かな
- 674 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:05:43.29 ID:8OB69mUNU
- ×CALLでAをB呼び出す方法
○CALLでAとBを(Cから)呼び出す方法
- 675 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:33:32.80 ID:KJajLfqNh
- -Main.uws-
Thread FunctionA()
Thread FunctionA()
Exit
Procedure FunctionB()
- 676 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:36:55.08 ID:KJajLfqNh
- 書き込みウインドウで編集しようとしたら途中で書き込んじゃった
>>672
これを起動しておく
--Main.uws--
Thread FunctionA()
Thread FunctionB()
Exit
Procedure FunctionA()
While True
CALL A.uws
Sleep(60 * 30)
WEnd
FEnd
Procedure FunctionB()
While True
CALL B.uws
WEnd
FEnd
- 677 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:44:00.99 ID:2TqM2PJKS
- 実質的に並行処理ではない(時間になったらBは途中であっても止める)から
この場合はスレッドは使うべきじゃないよ
Bで1行処理するごとに時間チェックする処理を呼び出して
時間になったらそのままAをコール、そのままBの処理に戻ると簡単
- 678 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:53:50.80 ID:2TqM2PJKS
- あと「30分おきに」の定義も厳密にしないとダメかな
>>676のような「30分+Aの処理が始まって終わるまでの時間」ごとになのか、
Aの処理時間とは無関係に、0分に最初の処理があれば30分、60分、90分・・・
のタイミングに呼ぶのかでも処理方法は全然違うから注意したほうがいい
- 679 :名無しさん@お腹いっぱい。:2015/06/05(金) 01:38:45.35 ID:Y75hI0BD0.net
- photoshopで「イメージ」→「色調補正」→「二階調化」閾値255
これは真っ白のみ切り抜く方法だが
他の色でやりたいなら「自動選択ツール」許容値1とかでも
それ以外のやり方聞いてるんですよねスミマセン…
- 680 :名無しさん@お腹いっぱい。:2015/06/05(金) 03:28:03.59 ID:ACIe9+Kh0.net
- このスレ的にはスクリプトでイメージを処理すれば良いんだけど
UWSCでイメージ処理は正直面倒くさい
- 681 :名無しさん@お腹いっぱい。:2015/06/05(金) 07:06:50.75 ID:lq3LJr2I0.net
- IrfanView
とかは?
- 682 :名無しさん@お腹いっぱい。:2015/06/05(金) 11:14:16.47 ID:55WfbWby0.net
- chkimgは処理速度が遅いから場所によっては数箇所peekcolorで判定する事もあるわ
- 683 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:33:41.73 ID:10/gL9fe0.net
- ブラウザ操作の質問です
IEがビジー状態の間待つ
というコードをchromeではどう書けばよいですか?
- 684 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:57:29.93 ID:UlD2Vx9U0.net
- 基本的には書けない
セレニウム使うか素直にIEで
- 685 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:58:52.47 ID:2jwoan/j0.net
- 俺なら、読み込み完了が分かる画像が表示されるまでスリープ
表示されたらさらに数秒スリープ
って感じのコードをゴリゴリ書くかな
アバウトだから、異常チェックは念入りに必要だけど
- 686 :名無しさん@お腹いっぱい。:2015/06/06(土) 10:45:55.76 ID:10/gL9fe0.net
- >>684
ありがとうございます
>>685
ありがとうございます。それに挑戦してみます
- 687 :名無しさん@お腹いっぱい。:2015/06/06(土) 22:30:19.68 ID:6ckcFYnr2
- uwscを起動すると通常は横に細長い小さなコントロール用パネルが表示されますが、
あるタブレットで起動すると、uwscのコントロール用パネルが最大化して起動してしまいます。
uwsc.exeの起動だけならウインドウバーをダブルクリックして元のサイズに戻せるのですが、
マクロファイルから起動させると最大化したままでウインドウバーが消えるので、まったく操作不能になります。
(タスクバーにも覆いかぶさるので、ソフトウエアキーボードが使えません)
タブレットはdell venue 8 pro、win8.1 32bit、
参考までに解像度は1280x800で、それ以下のサイズに変更しても同様の現象が起きます。
今落とせる古いバージョンのuwscでも同様の現象が起きます。
どなたか解決方法がわかる方いませんでしょうか。
- 688 :名無しさん@お腹いっぱい。:2015/06/07(日) 02:00:40.39 ID:gOW6AkJ5Y
- >>687
検索するとwin8以降は画面解像度と文字サイズ設定で常にウィンドウが最大化されて開く仕様があるらしい
という事はわかりましたが、質問に解像度の事が書いてあるのでそこは承知している感じを受けました
根本的な原因はわかりませんが、取り敢えずUWSCの改善案として
>uwsc.exeの起動だけ〜
→UWSC右クリック→「タスクトレイに格納」を選択する
これで次回から起動時にタスクトレイに格納されるはず
>マクロファイルから起動〜
スクリプトファイル先頭にUWSCを最小化する命令を追加しておく
CTRLWIN(GETID(GET_THISUWSC_WIN),MIN)
(しかし、関連起動ではメイン画面は表示されなかったと思うのですが…)
関連起動時に表示されるウィンドウがログ表示用ウィンドウだとしたら
スクリプトファイル最初にあるPRINT文の直後にACW命令を追加
ACW(GETID(GET_LOGPRINT_WIN),0,0,200,150)
似たようなスペックのwinタブレットASUS VivoTab Note 8を使っているのですが
該当した症状はないので機種固有の設定等なのかもしれませんね
原因がわかりましたら報告していただけると他の方の参考になると思うので助かります
- 689 :名無しさん@お腹いっぱい。:2015/06/07(日) 03:10:01.83 ID:xD+n8wnog
- >>688
早速有り難うございます。
>検索するとwin8以降は画面解像度と文字サイズ〜
この件はしりませんでした、後ほど調べて見るようにします。
>→UWSC右クリック→「タスクトレイに格納」を選択する
>これで次回から起動時にタスクトレイに格納されるはず
この通りになりました。
>スクリプトファイル先頭にUWSCを最小化する命令を追加しておく
>CTRLWIN(GETID(GET_THISUWSC_WIN),MIN)
>(しかし、関連起動ではメイン画面は表示されなかったと思うのですが…)
いつも使っているvistaでは確かに関連起動ではメイン画面は出ないのですが、同じスクリプトでもこのタブレットでは何故か表示されます。
(uwsc付属のサンプルスクリプトでも表示されます)
さしあたり例示していただいたスクリプトを挿入することでメイン画面の最大化は回避出来ました。
ただログウィンドウを表示するタイプのスクリプトを使っているので、一旦裏に回ったログウィンドウを表に出すと、
メイン画面も一緒に再び表に出てしまいます。
第一段落に書いていただいた、win8以降特有の現象かと思われますので、そちらの方からもう少し根本的な解決法を探ってみます。
ありがとうございました。
- 690 :名無しさん@お腹いっぱい。:2015/06/07(日) 13:14:51.89 ID:JD5ADCZJ0.net
- 非アクティブウィンドウの操作についての質問です。
対象ウィンドウは最小化しておらず、他ウィンドウに隠れた状態です。
uwscにマウス操作を取られずにウィンドウにマウス操作を送りたいのですが、
以下の記述でうまくいきません。
mouseorg(getid("hoge"),2) // hogeはウィンドウ名
ifb chkimg("img.bmp",0) then
print G_IMG_X
print G_IMG_Y
btn(LEFT,0,G_IMG_X,G_IMG_Y,100)
endif
上記を実行したところ、G_IMG_XとG_IMG_Yの値がコンソールに表示されますが、クリック動作が行われません。
mouseorg(getid("hoge"),1)を試してみたところ、目的の画像img.bmpのある位置をクリックできています。
chkimg関数は目的通りに動作しているようですが、どうにもbtn関数がうまく動作せず困っています。
よろしくお願い致します。
- 691 :名無しさん@お腹いっぱい。:2015/06/07(日) 14:15:31.79 ID:6n30q6Ii0.net
- >>690
IDが送りたいオブジェクトのIDじゃないんだろ
- 692 :名無しさん@お腹いっぱい。:2015/06/07(日) 14:52:20.91 ID:qteIWs/R0.net
- 画像裏動作はまともに動作しないから仮想化使うのが無難という結論だったと思われる
- 693 :687,689:2015/06/07(日) 15:50:52.67 ID:xD+n8wnog
- >>688
解像度と文字サイズで、タブレット機のウインドウが常に最大化して開くのはこの現象ですね。
http://answers.microsoft.com/ja-jp/windows/forum/windows8_1-files/%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6/d41d51c0-c785-4697-9224-767ff227d931
uwscのショートカットを作成して、プロパティから実行時の大きさを「通常」→「最小化」とすることでメイン画面が表示されることはなくなりました。
- 694 :名無しさん@お腹いっぱい。:2015/06/07(日) 15:41:29.75 ID:O6vjW+bk0.net
- 「まともに動作しないから」ではなく、
苦労に苦労を重ねて、あるひとつの動作をまともに動作させられたとしても、
そもそも裏のウィンドウを操作したい件の最終目標を達成するには、
そのたった一つの動作だけで済むはずもなく、次から次へと困難が待ち受けており、
いちいち2ちゃんで質問するレベルの人には手に負えないだろうという理由。
またそういった手法は、画像認識と同じで、操作対象や操作環境がホンの少し
変わっただけで同様に動作しなくなることも多かろう。
だめになる
- 695 :名無しさん@お腹いっぱい。:2015/06/07(日) 15:45:43.42 ID:JD5ADCZJ0.net
- >>691
子ウィンドウIDまで取得してこないといけないんですね。
初歩的な質問ですみませんでした。
hogeid = getid("hoge")したあと、getallwin(hogeid)で子ウィンドウを確認して、
目的のウィンドウIDを見つけることができました。
ありがとうございます。
すみません、再度質問させてください。
上記手順で子ウィンドウIDを見つけ出し、mouseorg(hoge_childid,2)としましたが、
未だ他ウィンドウに隠れた状態ではクリック動作を受け付けませんでした。
対象ウィンドウを前面に出すとクリック動作が行われます。
>>690のまま実行していたときには前面に出してもクリック動作が行われず、
>>691でご指摘頂いた通り、ウィンドウIDが間違っていたのだとわかりました。
今回は前面に出すことでクリック動作が正常に動くことから、
対象ウィンドウにクリック操作を送れているとは思うのですが、
他ウィンドウに隠れるとうまく動作しません。
やはり>>692で指摘頂いたように裏動作は諦めるしかないのでしょうか。
よろしくお願い致します。
- 696 :名無しさん@お腹いっぱい。:2015/06/07(日) 16:14:20.96 ID:msybnWxP0.net
- SLEEP(RANDOM30)
とかやっても動くのか……
いままでわざわざ
A=RANDOM(30)
SLEEP(A)
とかやってたぜ
- 697 :名無しさん@お腹いっぱい。:2015/06/07(日) 16:59:39.11 ID:D83vkIKe0.net
- VGAの省電力機能なのか背面のウィンドウは随時描画処理がなされていないようだから
背面で動かしたいなら画像が見つかるまでchkimgをループさせるとかする必要がある
- 698 :名無しさん@お腹いっぱい。:2015/06/07(日) 18:31:14.34 ID:iDR01ZVNS
- 一昨日入れたばっかりなんだけど、ヘルプがタブ以外全部真っ白
タブでなんか検索しても右側真っ白
最初ヘルプ無いのかと思ったけどスレ見る限りだと違うみたいだし・・・
使い方おかしいんだろうか
- 699 :名無しさん@お腹いっぱい。:2015/06/07(日) 18:26:57.74 ID:JD5ADCZJ0.net
- >>697
背面にある状態でG_IMG_X,G_IMG_Yに目的の画像の座標が格納されていても、
画像が見つかっていないんでしょうか。
座標がわかる=画像が見つかったという認識でいます。
クリックすべき座標がわかっている状態でも、
背面にあるとクリック動作が送れないので困っています。
- 700 :名無しさん@お腹いっぱい。:2015/06/07(日) 18:36:30.05 ID:AIilwBQo0.net
- アンチマクロなアプリかは別として
非アクティブだと受け取らないアプリなんでしょう
ならどうしたらいいのかって言うとアクティブにする
仮想化ってのも結局はアクティブにするって意味だからね
そして其処までしないとダメな操作対象って基本ゲームなんですよね
- 701 :名無しさん@お腹いっぱい。:2015/06/07(日) 19:21:21.14 ID:uNXZK6faF
- >>698
公式サイト見た?
http://www.uwsc.info/faq.html#n3
- 702 :名無しさん@お腹いっぱい。:2015/06/07(日) 20:41:41.22 ID:JD5ADCZJ0.net
- >>700
なるほど。
アクティブにしてクリック操作をして非アクティブにする
という切り替えをすればもちろんうまく行きますが・・・。
そういったアプリケーションに対してはバックグラウンド動作させることはできないのでしょうか。
何か別のアプローチが必要で、それをご存知であればご教示下さいませんか。
今回対象にしているアプリケーションはUltraVNCでして、
リモートコンピュータを自動操作したいと思っています。
(リモートコンピュータにUWSCを入れることができない環境です。)
- 703 :名無しさん@お腹いっぱい。:2015/06/07(日) 20:45:24.33 ID:AIilwBQo0.net
- なら仮想化を多重化したらいいじゃない
- 704 :618:2015/06/07(日) 21:36:42.77 ID:8tEtrI0CA
- >>622さんのお陰で、フォームのhtmlを
<meta http-equiv="X-UA-Compatible" content="IE=8”>
にして、表示の問題は解決したのですが、今度は上下のカーソルキーが効かなくなってしまいました。
ほかの指定ならキーボードでスクロール出来るのですが、どうしたものか困っています。
- 705 :名無しさん@お腹いっぱい。:2015/06/07(日) 21:58:52.12 ID:iDR01ZVNS
- >>701
あなたが神か
ありがとう!これでようやく自分で調べられるよ!
- 706 :名無しさん@お腹いっぱい。:2015/06/07(日) 23:51:15.21 ID:gOW6AkJ5Y
- >>693
そのページです
ショートカットで改善できたようで良かったです
>>689
関連付けによる実行でメイン画面が表に出るということは非表示にしてしまうと良いかもしれません
>ログウィンドウを表示するタイプのスクリプトを使っているので、一旦裏に回ったログウィンドウを表に出すと、
>メイン画面も一緒に再び表に出てしまいます。
スクリプトファイル先頭にUWSCメインウィンドウを非表示する
CTRLWIN(GETID(GET_THISUWSC_WIN),HIDE)
もしくはUWSCメインウィンドウのサイズを変更する
ACW(GETID(GET_THISUWSC_WIN),0,0,200,150) //サイズは適当
- 707 :名無しさん@お腹いっぱい。:2015/06/08(月) 00:14:33.14 ID:g3jBGxhA7
- UWSC掲示板にネットゲーム関係の質問はご遠慮くださいってあるから、ここもダメなのかしらどうかしら
- 708 :名無しさん@お腹いっぱい。:2015/06/08(月) 08:13:34.15 ID:NyH9JvbJw
- >>707
もちろんダメ
以前にUWSCスレでゲームの話題が出て荒れたけど
対象ゲームをする人以外には何ら応用もできない内容で埋め尽くされた
http://anago.2ch.net/test/read.cgi/software/1405162342/
- 709 :名無しさん@お腹いっぱい。:2015/06/08(月) 19:27:51.76 ID:M0D6EJoR0.net
- あー
VNCは画像をJPGみたいに圧縮して送ってるから
まったくおなじ画像として認識するのは不可能だわ
PeekColorもしかり、同じ色にならない
UWSC本体を送るんじゃなくてexe化したパッケージを送ることも無理なの?
それも無理なら、
VNCでコントロールしてるってことは、ガチガチ社内ネットとかじゃなくて
ネットワークトラフィックは無視していいってことだろうから
(H)PrintScreen→(H)MSPAINT→(H)PNGで保存→(H→C)WEBDABとかFTPとかOneDrive経由で受け取る
→(C)画像を解析→(C)位置を確定→(C)マウスコマンドを送る
(H:スト側のローカルイベント C:クライアントUWSCマクロ側)
これで解決できると思う
画像のやり取りはあぷろだをかませるとそこでつっかえたりするから
OneDrive保存が最良だけどWin7以前でインスト不可ならコマンド用意しておいてFTPかな
クリップボード共有もOKな環境なら画像保存した状態からファイルの切り取りで奪っちゃってもいい
PrintScreenのクリップ状態はVNC側の環境によっては送れたり送れなかったり
- 710 :名無しさん@お腹いっぱい。:2015/06/08(月) 23:03:24.24 ID:WtapXdWk0.net
- 裏の話で仮想化しろみたいな結論出てる所聞きにくいんだが
火狐ではクリックも画像認識も裏で反応するんだがIEとクロームではクリックも画像認識も全く反応しないのって皆同じなのかな?
連打測定サイトとかフラッシュゲーとかやってみたんだがIEとクロームが反応しないもんで何とかならんもんかと困っている
id = GETID(GET_ACTIVE_WIN)
MOUSEORG(ID,2)
while true
btn(left,down,815,395)
btn(left,up,815,395)
wend
これでひと通り試してた(座標とか画像認識の時は変わるけども)
クロームは43.0.2357.81 m (64-bit)
IEはバージョン11.0.9600.17633 更新バージョン11.0.16 (32bit)
狐は38.0.5
狐よりクロームの方で裏が動いたらいいなぁと思ってる、仮想化は最終手段として
前は確か出来たような気がするんだがはっきり覚えてないんで意見下さい
- 711 :名無しさん@お腹いっぱい。:2015/06/08(月) 23:08:01.34 ID:WtapXdWk0.net
- ちょっと書き方悪かったので補足
裏マクロが反応しないっていうのは最前面に出していてもクリックしてくれないって意味で画面が隠れている状態でって意味ではないです
とりあえずマウスが取られなければいいからって事で
- 712 :名無しさん@お腹いっぱい。:2015/06/09(火) 01:42:53.34 ID:ilrPY7660.net
- どうせゲームの話なんだろ?
それなら、マクロ用にもう一台パソコン買うのが一番早い
パソコンは消耗品だが、1ゲームに課金することを思えば長持ちするし、
ゲームを選べば課金額以上の働きをする
- 713 :名無しさん@お腹いっぱい。:2015/06/09(火) 01:52:59.82 ID:6N+Eeckc0.net
- ゲームもあるけど毎日やってる事を自動化したら楽だなーと思ってやってみたんだよね
それでクロームが一番読み込みとかの速さ的にもいいかなーって思ったんだが、まぁ狐使うなり仮想使うなり裏諦めるなりするしかないか
もう1台用意するのが一番良いよね、何するにしてもサブあると便利だし
CPUの大幅な性能向上来たら買ってサブ組むかって考えてるからそれ待ちなんだが一向に進展せんな
- 714 :名無しさん@お腹いっぱい。:2015/06/09(火) 02:07:07.25 ID:SXM4fw8U0.net
- 自分も普段使いのFireFoxで何とかって思い
AACを駆使して指定範囲付近のエレメントを検索する関数とか
巡回をサポートする関数をクラス化してやりくりしてたけれど
IEにしたら直接エレメント操作をCOMで出来るからバカバカしくなったぞ
別に無理に普段使いのブラウザを使う必要って実は無いのよ
仮に起点となるアドレスが可変だとしても
其処だけFirefoxから貰えば良い話だしね
- 715 :名無しさん@お腹いっぱい。:2015/06/09(火) 06:57:30.63 ID:EvVw9qfR5
- うまく画像認識されなくて困ってるんですが、何かパソコンの設定的に原因が生じたりすることってありますか?他に何か考えられる原因があったら是非教えてください。
ブラウザは火狐、クロム、IE、Comodo Dragon、Coowon Browserを試しました結果全滅でした
認識させる画像の取り込み方も調べたとおりやったみたので間違ってはないと思います。
- 716 :名無しさん@お腹いっぱい。:2015/06/09(火) 07:57:11.38 ID:iqRZvXPr0.net
- CheckColorScope関数の事で教えて下さい。
↓にもある通り、UWSCでサポートしてる関数であるはずなのに、エラーが出ます。
ttp://anago.2ch.net/test/read.cgi/software/1425741537/
エラー内容:
関数 CheckColorScopeがありません
xxx行目:if CheckColorScope( 830, 523,"R", 181,5)
オプションも誤字も無いはずなのに。。。
ヘルプ見てみたところヒットする関数がないのでサポートしてないのかな・・・。
UWSCバージョンは5.1.1.0 フリー版です。
原因がお分かりの方、ご教示ください。
おねがいします。
- 717 :名無しさん@お腹いっぱい。:2015/06/09(火) 08:22:27.65 ID:OK+7I8vA8
- >>715
まず問題の切り分けを行って下さい
何を見て調べたか?
(ネット情報?どのページ?その情報が本当に正しいと証明できますか?)
画像認識されない、というのはどうやって判断しているのか?
(認識できていないつもりでも、認識されているのでは?)
Windows標準のペイントで画像を開き、それを認識させられるか?
(ウェブブラウザ固有のものなのか?どんなソフトでも発生するのか?)
あなたのソースコードが見られればもう少し具体的にアドバイスできるかもしれませんが
これだけの情報ではパソコンの設定が原因とは判断できません
- 718 :名無しさん@お腹いっぱい。:2015/06/09(火) 08:43:21.04 ID:c2dyIL9N0.net
- 誰かの自作関数なのでぐぐって拾ってきて下さい。
- 719 :名無しさん@お腹いっぱい。:2015/06/09(火) 10:13:45.35 ID:iqRZvXPr0.net
- >>718
まじかーあのFunctionはそういうことだったんだ。
ありがとうございます。探してきます
- 720 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:17:44.12 ID:QPOSPQ3s0.net
- >>711
そのページのソースのjs見たり
開発者ツール的なものを使って、クリックイベントの動作確認とかしたら?
クリックされたら、現在のマウス座標の場所にある要素に対して何か処理するのがあると
かなり難しいと思う
そもそもマウス移動せずや、アクティブにせずクリックとかするなんて
アプリ側は想定外のはずだから、
手段が用意されてないかもしれないよ
- 721 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:24:12.41 ID:yBfMnKXf0.net
- スキャンした文字をデジタル化するOCR的処理って
UWSCでも頑張れば理論上できるかな?
それとももっと適した言語があれば教えて下さい。
- 722 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:29:10.79 ID:7oF2vMx30.net
- GoogleにOCRあるからそれ使え
それでも満足できないなら頑張ってください
- 723 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:53:55.92 ID:HA8tJfl+0.net
- >>721
完全2色まで減色
↓
文字として機能する規定点のパターンマッチ
↓
文字判別
とすれば理論上可能だろうけど、ぱ(PA)とば(BA)の違いだって目視でも判断できないこともあるし
更に単語処理が必要だろう
文字判別→前後単語の洗い出し→辞書から単語検索→単語確定
それでもパンダとハンダの違いを認識するには文節処理も必要になる
普通にOCRの操作を自動化した方がはやげ
全文字・漢字分の規定点の作成とか絶対やりたくない
- 724 :618:2015/06/09(火) 13:18:40.23 ID:Duqu01jJs
- やはりどうしても、矢印キーでスクロール出来ません。
content="IE=8”を指定した場合だけ、矢印キーが効かなくなってしまいます。
困っています。
- 725 :名無しさん@お腹いっぱい。:2015/06/09(火) 13:53:54.65 ID:vRMQfWig0.net
- 有能な辞書があれば、理論上は、indexを引くだけ
- 726 :名無しさん@お腹いっぱい。:2015/06/09(火) 14:41:56.89 ID:SXM4fw8U0.net
- 少し前に調べた事だから今は違うかもしれないが
COMアクセス出来るフリーのOCRライブラリってのは多分無いからUWSC向きじゃない
後、フリーのOCRライブラリって日本語にはまともに対応していない
って感じだったかな
- 727 :名無しさん@お腹いっぱい。:2015/06/09(火) 16:32:28.45 ID:bTBbx7taC
- >>724
もう少し状況を具体的に書いたほうがレスが付きやすいかもしれません
>ほかの指定ならキーボードでスクロール出来るのですが
ほかの指定とは何なのか
>矢印キーでスクロール出来ません。
textarea内のキャレットなのかフォームのスクロールなのか
変更した時は動作していたのか
UWSCのVerを変えてみるとどうなるか
フォームのHTMLファイルの設定状況
ソースが出せるなら出してみる
などなど
- 728 :名無しさん@お腹いっぱい。:2015/06/09(火) 20:41:59.38 ID:gDDxKsKq0.net
- ifb chkimg("1.bmp")
num = 1
elseif chkimg("2.bmp")
num = 2
elseif chkimg("3.bmp")
num = 3
......
elseif chkimg("9.bmp")
num = 9
else
num = 0
endif
という具合のものを組みたいのですが、こういったことを表現する場合にはdimを使うと簡略できると見ました
しかしこのスレで前述されていることを見たり検索したりしてもどのようにすればいいのかわからなかったので、教えていただけないでしょうか
よろしくお願いします
- 729 :名無しさん@お腹いっぱい。:2015/06/09(火) 20:46:01.35 ID:aNsp9elz0.net
- 繰り返し文の間違えだろう
dimなんて必要ない
- 730 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:01:21.35 ID:/H/r4kw50.net
- num = 0
for inum = 1 to 9
ifb chkimg(inum + ".bmp") then
num = inum
break
endif
next
- 731 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:01:37.67 ID:gDDxKsKq0.net
- 申し訳ありません繰り返しと間違えていました
となりますと、>>728を簡略化するための何か別の方法はありませんでしょうか
- 732 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:03:36.87 ID:gDDxKsKq0.net
- >>730
ありがとうございます
dimやら繰り返しやらでごっちゃになっていました
- 733 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:04:16.20 ID:/H/r4kw50.net
- dim iname[] = "a", "bb", "ccc", "d", "ee", "fff", "g", "hh", "iii"
num = 0
for inum = 1 to 9
ifb chkimg(iname[inum-1] + ".bmp") then
num = inum
break
endif
next
- 734 :618:2015/06/09(火) 21:12:02.15 ID:aC4ZMC4d2
- >>727
ありがとうございます。
矢印キーでスクロール出来ないのはフォーム全体です。
スクロースバーのボックス(ノブ)をマウスで操作すれば動きますが、矢印キーは効きません。
ほかの指定とは、
http-equiv="content-type"
や
content="text/html”
や
content="IE=edge”
または全く記述無し、等です。
これらの場合には、矢印キーでのスクロールが可能です。
しかし
<meta http-equiv="X-UA-Compatible" content="IE=8”>
にしないと、やはりtextarea内の2行目以降が正しく表示されません。
これを指定した場合のみ、矢印キーでのスクロールが出来なくなってしまいます。
UWSCのバージョンは5.1.1、5.0.0、4.9cともに同様でした。
フォームのHTMLは、外部ファイルとしてUWCファイルと同じディレクトリに置いています。
obj = CREATEFORM("entry.html", “申込”, TRUE, FOM_MINIMIZE + FOM_MAXIMIZE)
で呼び出しています。
Windows XP SP3、IE8です。
この環境で正常に動作させる必要があり、試行錯誤しています。
よろしくお願いします。
- 735 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:10:34.26 ID:SXM4fw8U0.net
- 組み合わせと対象数にある程度柔軟性が欲しいならこんな感じかな
IF文をchkimgにしていないのは
DIM testArray[] = "1.bmp<#TAB>1", "2.bmp<#TAB>2", "3.bmp<#TAB>3"
num = getNumber(testArray)
Print num
function getNumber(checkArray[])
result = 0
For checkItem In checkArray
check = Split(checkItem, "<#TAB>")
If chkimg(check[0]) Then
result = Val(check[1])
Exit
EndIf
Next
fend
- 736 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:16:19.70 ID:xBvHKv3T0.net
- そういうのは連想配列でやらね?
- 737 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:38:22.54 ID:OK+7I8vA8
- >>734
○○が効かないとか??が正しく表示できないとか全部抽象的すぎるので
具体的にIE=edgeやらIE=8で作成したうまくいかない各パターンのentry.htmlと
それを動かすUWSCソースコードを提示したほうが早いと思う
他人に見せられないソースコードだとしたら
他人に見せられるレベルにまで整理して単純化しないことには
問題点を洗い出すのは難しいしね
- 738 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:39:27.72 ID:G2ywoPsEr
- for i=0 to Opendir(GET_CUR_DIR, "*.bmp")-1 でいいんじゃないの?
- 739 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:23:06.54 ID:SXM4fw8U0.net
- 完全否定はしないけれどその辺は此処のポリシーだよ
連想配列はメモリ配置的に勝手に助長化するから
連想配列のメインであるインデックス的なアクセスしないケースでなければ
個人的には採用しないなぁ
でも連想配列で実装しているコードを見ても兎や角言う気はない
- 740 :618:2015/06/10(水) 00:06:56.62 ID:YnIB6PNOa
- >>737
ありがとうございます。
ソースコードを整理しました。
// test.UWSここから //
obj = CREATEFORM("entry.html", "申込", TRUE, FOM_MINIMIZE + FOM_MAXIMIZE)
TIME_OUT = 10
tm = Gettime()
repeat
sleep(1)
ifb Gettime() - tm > TIME_OUT
break
endif
until (! obj.busy) and (obj.readyState=4)
Sleep(0.5)
- 741 :618:2015/06/10(水) 00:07:40.27 ID:YnIB6PNOa
- SETFORMDATA("あいうえお","test01")
SETFORMDATA("あいうえお","test02")
SETFORMDATA("あいうえお","test03")
SETFORMDATA("あいうえお","test04")
SETFORMDATA("あいうえお","test05")
SETFORMDATA("あいうえお","test06")
SETFORMDATA("あいうえお","test07")
SETFORMDATA("あいうえお","test08")
SETFORMDATA("あいうえお","test09")
SETFORMDATA("あいうえお","test10")
SETFORMDATA("あいうえお","test11")
SETFORMDATA("あいうえお","test12")
SETFORMDATA("あいうえお","test13")
SETFORMDATA("あいうえお","test14")
SETFORMDATA("あいうえお","test15")
SETFORMDATA("あいうえお","test16")
SETFORMDATA("あいうえお","test17")
SETFORMDATA("あいうえお","test18")
SETFORMDATA("あいうえお","test19")
SETFORMDATA("あいうえお","test20")
SETFORMDATA("あいうえお","test21")
SETFORMDATA("あいうえお","test22")
SETFORMDATA("あいうえお","test23")
SETFORMDATA("あいうえお","test24")
SETFORMDATA("あいうえお","test25")
SETFORMDATA("あいうえお","test26")
SETFORMDATA("あいうえお","test27")
SETFORMDATA("あいうえお","test28")
SETFORMDATA("あいうえお","test29")
SETFORMDATA("あいうえお<#CR>かきくけこ<#CR>さしすせそ","test30")
- 742 :618:2015/06/10(水) 00:08:01.51 ID:YnIB6PNOa
- while obj.Visible
sleep(0.2)
ifb GETFORMDATA("OK")
msgbox("テスト完了")
endif
wend
// test.UWSここまで //
- 743 :618:2015/06/10(水) 00:14:23.93 ID:SONjjThlq
- // entry.htmlここから //
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset=Shift_JIS">
<meta http-equiv="X-UA-Compatible" content="IE=8">
<title>申込</title>
</head>
<body>
<form name="test" method="POST">
<INPUT TYPE=text NAME="test01" VALUE=""><br>
<INPUT TYPE=text NAME="test02" VALUE=""><br>
<INPUT TYPE=text NAME="test03" VALUE=""><br>
<INPUT TYPE=text NAME="test04" VALUE=""><br>
<INPUT TYPE=text NAME="test05" VALUE=""><br>
<INPUT TYPE=text NAME="test06" VALUE=""><br>
<INPUT TYPE=text NAME="test07" VALUE=""><br>
<INPUT TYPE=text NAME="test08" VALUE=""><br>
<INPUT TYPE=text NAME="test09" VALUE=""><br>
<INPUT TYPE=text NAME="test10" VALUE=""><br>
<INPUT TYPE=text NAME="test11" VALUE=""><br>
<INPUT TYPE=text NAME="test12" VALUE=""><br>
<INPUT TYPE=text NAME="test13" VALUE=""><br>
<INPUT TYPE=text NAME="test14" VALUE=""><br>
<INPUT TYPE=text NAME="test15" VALUE=""><br>
- 744 :618:2015/06/10(水) 00:14:46.94 ID:SONjjThlq
- <INPUT TYPE=text NAME="test16" VALUE=""><br>
<INPUT TYPE=text NAME="test17" VALUE=""><br>
<INPUT TYPE=text NAME="test18" VALUE=""><br>
<INPUT TYPE=text NAME="test19" VALUE=""><br>
<INPUT TYPE=text NAME="test20" VALUE=""><br>
<INPUT TYPE=text NAME="test21" VALUE=""><br>
<INPUT TYPE=text NAME="test22" VALUE=""><br>
<INPUT TYPE=text NAME="test23" VALUE=""><br>
<INPUT TYPE=text NAME="test24" VALUE=""><br>
<INPUT TYPE=text NAME="test25" VALUE=""><br>
<INPUT TYPE=text NAME="test26" VALUE=""><br>
<INPUT TYPE=text NAME="test27" VALUE=""><br>
<INPUT TYPE=text NAME="test28" VALUE=""><br>
<INPUT TYPE=text NAME="test29" VALUE=""><br>
<Textarea NAME="test30" COLS=30 ROWS=10 style="width:100%;"></Textarea><br>
<input type="submit" name="OK" value="OK">
</form>
</body>
</html>
// entry.htmlここまで //
以上です。
フォームが全部読み込まれた後、矢印キーでフォーム全体をスクロールさせることが出来ません。
entry.htmlの5行目にある「content="IE=8"」を削除するか「IE=edge」等に変えると、矢印キーでスクロールが可能です。
- 745 :名無しさん@お腹いっぱい。:2015/06/10(水) 01:04:13.00 ID:U1uWjUCL0.net
- 普通に多次元配列か連想配列でやる
- 746 :名無しさん@お腹いっぱい。:2015/06/10(水) 01:51:25.09 ID:7fQ2CVcl0.net
- 配列とか言われてもわかんねーから
- 747 :名無しさん@お腹いっぱい。:2015/06/10(水) 16:43:00.12 ID:+oPKIUUi0.net
- 久しぶりにアップデートしたらfukidasiのフォントがやたらと汚くなっていた
5.0.2のBALLOON関数にて アンチエイリアスを無効にした
これのせいだと思うんですけど無効にするのを無効に出来たりします?
- 748 :名無しさん@お腹いっぱい。:2015/06/10(水) 18:30:43.10 ID:TCANs/4Rq
- >>734
UWSC Pro 5.1.1.0 Win8.1 IE11の環境でもフォームの上下キーによるスクロールは出来ませんでした
公式掲示板の検索ツールも上下キーによるスクロールが出来ないので
上下キーによるスクロールが出来ない方がデフォルトなのかもしれません
提示していただいたソースを見ると気になった点が2つ
1.HTMLファイルでDOCTYPE宣言<!DOCTYPE html>の有無で表示モード変わるということ
DOCTYPE宣言<!DOCTYPE html>有→標準モード、無し→互換モード
2.IE8でのtextareaタグ使用はバグがあり、その一つに横幅指定style="width:100%に%を
指定するとバグる事があるとのこと
http://i-njoy.net/blog/index.php?e=553
こちらのページのコメント欄に同症状の情報がありました
これでIE8でtextareaの2行目以降が表示されない症状が改善するかもしれません
あとはIE11でも上下キーによるスクロールができないか試してみました
↑↓キーをホットキー設定してフォームがアクティブであればスクロール量を増減する
スクリプトですが同時使用1つまでという困った仕様です
- 749 :名無しさん@お腹いっぱい。:2015/06/10(水) 18:35:54.73 ID:TCANs/4Rq
- 以下の3行を
>>740 test.UWS先頭に追加
PUBLIC obj
SETHOTKEY(VK_UP, , "フォームスクロール")
SETHOTKEY(VK_DOWN, , "フォームスクロール")
- 750 :名無しさん@お腹いっぱい。:2015/06/10(水) 18:36:27.19 ID:TCANs/4Rq
- 以下の関数を>>742test.UWS末尾に追加(entry.htmlは変更無し)
procedure フォームスクロール()
CONST スクロール量 = 15 //(px単位)
DIM textarea_name[] = "test30" //textareaのname
ifb ! obj.document.hasFocus() //フォーム画面ウィンドウがアクティブでない場合スキップ
KBD(HOTKEY_VK); EXIT
endif
COM_ERR_IGN //textareaにフォーカスがある場合入力フィールド内を移動
fname = obj.document.activeElement.name
COM_ERR_RET
for i = 0 to LENGTH(textarea_name)-1
ifb fname = textarea_name[i]
KBD(HOTKEY_VK); EXIT
endif
next
mode = obj.document.compatMode //標準モード"CSS1Compat" 互換モード"BackCompat"判定
ifb HOTKEY_VK=VK_UP
ifb mode = "CSS1Compat"
obj.document.documentElement.scrollTop = obj.document.documentElement.scrollTop - スクロール量
else
obj.document.body.scrollTop = obj.document.body.scrollTop - スクロール量
endif
else //if HOTKEY_VK=VK_DOWN
ifb mode = "CSS1Compat"
obj.document.documentElement.scrollTop = obj.document.documentElement.scrollTop + スクロール量
else
obj.document.body.scrollTop = obj.document.body.scrollTop + スクロール量
endif
endif
fend
- 751 :名無しさん@お腹いっぱい。:2015/06/10(水) 22:51:56.47 ID:/MzX+sCy0.net
- 連想配列だとノーマル配列みたいにサクッと初期値を設定できないので手軽じゃない
>>733みたいにコードに埋め込んじゃえる規模なら一番手間がかからない
CSVとかから読み込むならどちらでもいいけど、その規模になると今度は、
キーが人間に判り易いというメリットは薄くなる
多次元配列はC言語みたいに初期値与えられんし可読性が著しく下がるので、
1次元配列の名前を判りやすくして並べたほうが見やすい
典型的なのがXY座標テーブルでposition[1][10]とやって0がXの1がYとやるより
// 1 2 …
posX[10] = n1, n2, …
posY[10] = n1, n2, …
とやったほうが手軽に書ける
と
- 752 :名無しさん@お腹いっぱい。:2015/06/10(水) 23:20:49.21 ID:OeKm7REC0.net
- >>751
>>536は可読性が著しく低いのか。十分だと思うが
- 753 :618:2015/06/11(木) 14:41:18.47 ID:dqrkJ9bL2
- >>748
検証して下さり、コードまで書いていただいてありがとうございます!
私が提示した簡略化したUWSで動かすと、完璧に動作しました!
しかし、実際のUWSで試すと、
ifb ! obj.document.hasFocus() //フォーム画面ウィンドウがアクティブでない場合スキップ
の行や
mode = obj.document.compatMode //標準モード"CSS1Compat" 互換モード"BackCompat"判定
の行で、
「OLE Object1への型変換が出来ません」のCOM_Errorが発生してしまいます。
原因を究明中です。
- 754 :名無しさん@お腹いっぱい。:2015/06/11(木) 23:06:09.22 ID:Q9K0BUu70.net
- 画像認識やらで騙し騙し使ってたけど本格的にIEを自動化したい
まず学ぶべきはHTML?
最低限これはやっとけってのある?
- 755 :名無しさん@お腹いっぱい。:2015/06/11(木) 23:18:50.32 ID:sjoLEexy0.net
- >>754
IEは道具であって目的ではない
IEで何をしたいのかを書かなければ何も答えようがない
- 756 :名無しさん@お腹いっぱい。:2015/06/11(木) 23:25:06.04 ID:Naihmo/b0.net
- それこそいじりたいサイトによって、もっと言えば
同じサイトでも仕様が変わればやること変わるしな
- 757 :名無しさん@お腹いっぱい。:2015/06/11(木) 23:27:04.74 ID:C9VpTbp70.net
- ウェブスクレイピング的な操作が目的なら
HTMLはマークアップ言語なのか程度の認識でも良い
で、そのマークアップされた構造に対して
アクセス・操作する為のDOM(Document Object Model)の方が重要
構造化されたドキメント全体からあるノードを取得し
その配下このノードは○○、このノードは××と言った感じにデータ化
それらを整理して一括操作とかできたりする
- 758 :618:2015/06/12(金) 12:36:41.13 ID:Xflk4lPje
- >>748
解決しました。
お騒がせしました。
ありがとうございました。
- 759 :名無しさん@お腹いっぱい。:2015/06/12(金) 15:38:07.91 ID:nK+jRR0p0.net
- DOM理解を試みる
ノードやらタグ、要素の理解で躓く
HTMLに手をを付けるか迷う←今ここ
とりあえず目下の目標はweb記事のスクラップ
- 760 :名無しさん@お腹いっぱい。:2015/06/12(金) 16:16:39.16 ID:44TZAm890.net
- スクラップ目的の場合は対象記事の構造を把握する事が重要で
それぞれのタグの意味はそれほど重要じゃないよ
記事のヘッダ、本文、日時、URL等スクラップしたい情報の位置を把握して
それらをピックアップしてXML等で保存する感じかな
いきなり表示可能なHTMLで保存しようとすると果てしなく面倒臭い
慣れてきたらDOM構造を処理する内部言語っぽいのを作ってそれで処理するとかすると楽しい
- 761 :名無しさん@お腹いっぱい。:2015/06/13(土) 23:47:47.34 ID:lLPEpWaJ0.net
- >>1の使い方・基礎解説学習サイトみてもチンプンなんだけど、もっとプログラミング初心者向けのサイトない?
- 762 :名無しさん@お腹いっぱい。:2015/06/13(土) 23:58:32.51 ID:7DVsBavJ0.net
- >>761
自分で調べればいいんだよ
何をしたいか考えて、「uwsc ○○」でググって出たページを見ればいい
プログラミングってもはやグーグル検索をどれだけ使いこなせるかで習熟度が違うからな
- 763 :名無しさん@お腹いっぱい。:2015/06/14(日) 01:18:23.28 ID:xcIcJdqM0.net
- 昔は調べるには分厚い本を何冊も高い金払ってようやくって感じだったが
今はネット環境あって検索使いこなせば殆ど不自由ないからなぁ
- 764 :名無しさん@お腹いっぱい。:2015/06/14(日) 01:30:54.13 ID:KxkYlpRA0.net
- >>761
>>1の使い方・基礎解説学習サイトみたがこれ以上分かりやすく書くのってどうやるんだっていうくらい難しい
これくらいなら誰でも知ってて当然っていうレベルなのでまわりの誰かに教えてもらうほうがはやい
- 765 :名無しさん@お腹いっぱい。:2015/06/14(日) 01:44:31.26 ID:nvamwSVV0.net
- 記録機能があるので一見初心者さん歓迎っぽいがデバッグが厳しい
無償版はデバッガが無いのでPrint命令頼りの原始人レベル
有償版のデバッガでやっと一昔レベル
(ただしスレッドを使ったデバッグは結局Print命令だったりする)
ぶっちゃけガチ初心者ならUWSCはお勧めできない
- 766 :名無しさん@お腹いっぱい。:2015/06/14(日) 02:00:27.99 ID:HVOSbBWM0.net
- プログラミングの流儀が分かってないとなあ
C言語の教科書一冊やり通した経験あるとないとでぜんぜん違うと思う
- 767 :名無しさん@お腹いっぱい。:2015/06/14(日) 06:53:08.56 ID:NZB6Vc0bn
- >>758
無事解決できたようで良かったですね
>>748で訂正があります
>公式掲示板の検索ツールも上下キーによるスクロールが出来ないので
>上下キーによるスクロールが出来ない方がデフォルトなのかもしれません
左側に表示される検索用フォームのウィンドウ検索結果の余白をクリックすることで
スクロールすることが出来ました
右側の表示用フォームVer1.2.1(Ver1.1.0は表示用フォームにIE使用なのでスクロール可能)は
どこをクリックしてもスクロール出来ないようです
が、ソースを見ると表示用フォームに<meta http-equiv='X-UA-Compatible' content='IE=9'>を設定してる箇所がありました
該当箇所をコメントアウトして実行するとスクロール可能になりました
改めて>>743さんの検証コード<meta http-equiv="X-UA-Compatible" content="IE=8">を外して実行すると
UWSC Pro 5.1.1.0 Win8.1 IE11の環境でスクロール可能でした
(前回おそらく自作の妙なコードと同時に検証していたせいで動かなかった?ごめんなさい)
>>734さんの指摘通りフォームでレンダリングモード<meta http-equiv="X-UA-Compatible" 〜を指定すると
上下キーによるスクロールが出来ないことが考えられます
- 768 :名無しさん@お腹いっぱい。:2015/06/14(日) 07:43:37.88 ID:DcdHt8gu0.net
- >>761
多分変数って何?式ってなに?くらいのレベルなんだろう
さすがにそこまでは書いてないと思うから
わからないことを一つずつググればいいよ
「プログラミング 変数とは」みたいに
- 769 :名無しさん@お腹いっぱい。:2015/06/15(月) 03:21:05.65 ID:Lx1Th6M00.net
- 今マクロツールって全然なくない?使いやすくてそこそこ色々出来るの何かあれば教えて欲しいわ
- 770 :名無しさん@お腹いっぱい。:2015/06/15(月) 22:48:55.05 ID:aNpw03CF0.net
- フォルダの内容をテキストファイルに。要点のみだと5行。
フリーソフトで好みなのが見つからなかったんだけど、探す時間より
作る時間の方が早かったorz
DOSCMD("dir <#DBL>H:\cap\<#DBL> /s | clip",False,False) //コマンドからdirの出力をクリップボードに
str = GETSTR(0) //クリップボードから取得
fid=FOPEN("d:\cap_list.txt",F_WRITE) //テキストファイルを新規or上書きで開く
FPUT(fid, str) //テキストファイル書き込み
FCLOSE(fid) //テキストファイル閉じる
- 771 :名無しさん@お腹いっぱい。:2015/06/15(月) 23:03:06.77 ID:5eo6IMhx0.net
- DOSCMD("dir <#DBL>H:\cap\<#DBL> /s > d:\cap_list.txt")
じゃダメなの?
- 772 :名無しさん@お腹いっぱい。:2015/06/15(月) 23:36:46.33 ID:HCkXIYKv0.net
- それ、UWSC要るか?
- 773 :名無しさん@お腹いっぱい。:2015/06/15(月) 23:46:16.54 ID:aNpw03CF0.net
- 「要点のみだと」って書いておいたのに。
テキスト整形したりは自由にやってくれ。
- 774 :名無しさん@お腹いっぱい。:2015/06/16(火) 00:18:56.03 ID:JbJJrV+b0.net
- テキストの整形なんてテキストエディタでやるよね普通
- 775 :名無しさん@お腹いっぱい。:2015/06/16(火) 00:38:01.56 ID:fmeiedqk0.net
- 何が「要点」なのか分からないな
フォルダの内容をテキストファイルに保存したいだけのように見えるが
それならDOSコマンド直接叩くか、UWSC経由でやりたいなら>>771みたいに1行で充分だろうし
テキスト整形が目的なら肝心の処理だけを消した>>770には意味がないし
- 776 :名無しさん@お腹いっぱい。:2015/06/16(火) 01:01:11.77 ID:2XF1H6rG0.net
- バッチファイルやWSHで出来るようにしておくと仕事でも役立つよ。
バッチファイルやWSHで普通行うようなことまでUWSCみたいな
マイナーでアンチウィルスにもお許しを乞う必要があるような
ツールでしか出来ないと色々と認めてもらえないw
- 777 :名無しさん@お腹いっぱい。:2015/06/16(火) 01:07:03.52 ID:Aq79miHj0.net
- 「UWSCからの操作」でエクセルの表追加ってどうやったらいいんでしょう?
excel.range("A1")=10
みたいに簡単な操作はマクロ記録を見れば応用できるけれど、グラフ追加だと
VBAマクロ記録で出てきたコードにEXCELを追加しただけだとエラーになります。
わかる人いたら教えて下さい。
※VBAでやれば、という突込みはご尤もだけど状況により、UWSCからの方法が
都合が良いです。
excel=createoleobj("excel.application")
excel.visible=true
excel.workbooks.add()
excel.ActiveSheet.Shapes.AddChart2(240, xlXYScatterLines).Select
//エラー。xlXYScatterLinesが定義されていない
- 778 :名無しさん@お腹いっぱい。:2015/06/16(火) 01:22:07.90 ID:HxIz+CSs1
- 初歩的な質問だったらごめんなさい
画像認識に使用した画像の左上の座標でなく右下の座標の取得って出来ないんでしょうか
- 779 :名無しさん@お腹いっぱい。:2015/06/16(火) 01:43:50.38 ID:XPIoxtSOB
- 画像認識に使用したBMPのピクセル数分だけ変数に足せばいいじゃん
- 780 :名無しさん@お腹いっぱい。:2015/06/16(火) 01:35:13.98 ID:2XF1H6rG0.net
- VBEのイミディエイトウィンドウで
PRINT xlXYScatterLines
とやると定数の74であることがわかるので、
UWSC上で
CONST xlXYScatterLines = 74
- 781 :名無しさん@お腹いっぱい。:2015/06/16(火) 07:55:44.43 ID:eVw9E0jir
- >>780
ありがとうございます。そうやって確認したらいいんですね!
めちゃ参考になりました。
- 782 :名無しさん@お腹いっぱい。:2015/06/16(火) 19:12:22.00 ID:fmeiedqk0.net
- >>777
Excelの定数なら調べる必要すらなくて
http://www.uwsc.info/faq.html#n48
>Excelの使用にて定数がわからない、定数名を使用したい #n48
>Excelの定数名を記述したファイル(ExcelConst.uws) をダウンロードして
>スクリプトの先頭で CALL ExcelConst.uws を入れるとExcelの定数名が使用できます
に書いてあるとおり用意されてる
- 783 :名無しさん@お腹いっぱい。:2015/06/16(火) 23:13:41.85 ID:3VC/w8LIc
- Google Chromeをバックグラウンドで動かす方法(Flash PlayerもOK)
http://anago.open2ch.net/test/read.cgi/software/1395484022/13
>GETALLWIN(GETID(" - Google Chrome","Chrome_WidgetWin_1"))
>MOUSEORG(ALL_WIN_ID[0],MORG_DIRECT,MORG_BACK)
子ウィンドウのIDが取得可能になりバックグラウンドでマウスクリックなどの操作が可能になった模様
chrome64bit版で同じ操作が可能かは不明
- 784 :名無しさん@お腹いっぱい。:2015/06/17(水) 08:41:35.26 ID:O6/Ohey4f
- >>782
ありがとうございます。こんなのあったんですね。
作者さんやっぱりすげー。
- 785 :名無しさん@お腹いっぱい。:2015/06/17(水) 08:53:07.37 ID:bOpYdHH80.net
- VBAやらなくて済むようにUWSCに逃げても
xlXYScatterLinesが定数だというようなVBA知識は要るなど
UWSCはVBAより初心者に厳しいのです
VBEでマクロかけばxlXYScatterLinesはインテリ何とかで自動的に候補が出てくる
- 786 :名無しさん@お腹いっぱい。:2015/06/17(水) 09:32:42.95 ID:RcdlcA/F0.net
- Bluestacks内でテキストを開いて
abcdefghiをabcjklghiみたいに書き換えることってできますか?
まず文字列取得の時点でつまづいてます
- 787 :名無しさん@お腹いっぱい。:2015/06/17(水) 16:34:40.45 ID:z6hXDPOM0.net
- 画像認識で画面全部ではなく指定した範囲の中で認識を行うにはどうすればいいですか?
x1 y1 x2 y2と透過の所がよく分かりません
- 788 :名無しさん@お腹いっぱい。:2015/06/17(水) 16:56:54.03 ID:YAI6QHUw0.net
- ヘルプコピペしたいところだが。
日本語読めないと無理だな。
- 789 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:20:54.78 ID:VUJvu2f1B
- 大抵の画面の座標系は左上が原点(0, 0)になっていて
右下にいくほどX,Yが増えてる感じ。
CHKIMGの X1Y1 X2Y2 の意味は↓で囲った範囲から
サーチって意味だったと思います。
X1,Y1--------------------
| |
| |
| |
| |
|________________________________X2,Y2
- 790 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:23:34.02 ID:VUJvu2f1B
- ごめん、ずれたからやり直し
X1,Y1--------------------
| |
| |
| |
| |
|________________________________X2,Y2
ヘルプ (uwsc.chm)見て分からないって事かと
思ったけどどうなんだ。。
- 791 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:13:10.93 ID:X+76V8o30.net
- そこまでわかってんなら10分説明読めば分かるやろ
- 792 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:19:37.20 ID:z6hXDPOM0.net
- x1 y1 x2 y2がサーチ範囲だってのは分かってるんですけど
x1 y1にx座標とy座標入れたとしたらx2 y2には何を入れればいいんですか?
- 793 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:36:08.77 ID:VUJvu2f1B
- サーチ範囲なんだから、始点と終点がいるでしょ、X2、Y2は終点。
- 794 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:24:30.17 ID:XQ7s6Cqi0.net
- 絶対座標か相対座標の2種類しか考えられないだろ
以前に紛らわしいなって話が出てたから確か相対座標(幅、高さ)だったと思うけれど
普段使わないので自分で確かめろ
- 795 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:25:11.10 ID:Z95Qk9550.net
- >>792
x1 y1 左上の座標
x2 y2 右下の座標
サーチ範囲指定すると言う事は2点の座標を指定しないとダメ
- 796 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:38:34.88 ID:soxPIV+S0.net
- 今日のお前らは優しいな
- 797 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:46:58.83 ID:VRFtRWlX0.net
- 相対じゃなくて絶対
自分でもどっちだかわからなかったからサンプルコード作って確認した
間違いなく絶対座標
アプリのウインドウ領域指定するなら
Status(ウインドウID, ST_X) + Status(ウインドウID, ST_Width)
と
Status(ウインドウID, ST_Y) + Status(ウインドウID, ST_Height)
を指定する
- 798 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:48:41.05 ID:RcdlcA/F0.net
- ワイの質問にも優しい人教えて(`;ω;´)
- 799 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:50:11.39 ID:Ph078XLs0.net
- >>797
マジで?
- 800 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:58:52.63 ID:cT7OPLwz0.net
- 最近始めた者です。
KBD(VK_T,CLICK,1034)
1061が待機秒数(ms)になると思うのですが
毎回異なる秒数にするにはどうすればよいでしょうか?
イメージ的には
1回目 1034
2回目 1093
3回目 1052
4回目 2013
・
・
です。
- 801 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:11:41.70 ID:0MbH0eAWA
- >>798
Bluestacksって軽くググったらAndroidじゃないか
Andで動く自動化ソフトならともかくまず無理だわ
最近のOSはフォントにアンチエイリアスかかってるから表示させるたびに色調が変わるし画像認識でも無理だね
sambaで共有してローカル的に拾いに行く以外の解決策はないんじゃないんじゃないの
- 802 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:04:07.61 ID:RcdlcA/F0.net
- RANDOM(1000)で0から999がランダム
KBD(VK_T,CLICK,1000+RANDOM(1000))
で1000から1999までランダム
- 803 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:05:11.59 ID:VRFtRWlX0.net
- >>799
ソース汚いが
ttp://www.dotup.org/uploda/www.dotup.org372734.zip.html
- 804 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:07:23.94 ID:cT7OPLwz0.net
- >>802
なるほど!ありがとうございます。
- 805 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:07:37.10 ID:l/wOZoEE0.net
- 相対座標か絶対座標かはmouseorgで変更できるだろ
- 806 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:09:29.29 ID:peL4cobc0.net
- とっても不親切なHELPで有名なUWSCでございます。
素人・初心者お断りでございます。
だれでも簡単にWindowsを自動操作できます。
- 807 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:13:49.66 ID:VRFtRWlX0.net
- >>805
あーうん。そういうことじゃなくてね
幅、高さ ではないというはなすぃ
- 808 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:50:54.43 ID:VUJvu2f1B
- あのHELPは、必要最低限に要約されてるメモとしてはとても良くできてるよ。
理解できない部分はどっかで調べればいいと思う。
- 809 :名無しさん@お腹いっぱい。:2015/06/17(水) 20:46:27.66 ID:Ph078XLs0.net
- >>803
サンクス、絶対座標だった
なぜか元画像だとペイントのカラーボックスにヒットしてうまく動かなかったから
画像変えて使わせてもらった
- 810 :名無しさん@お腹いっぱい。:2015/06/17(水) 21:54:52.53 ID:RcdlcA/F0.net
- >>786をだれかよろ
こうなったらクリップボードにコピーして
そこでいじるしかないか・・・
- 811 :名無しさん@お腹いっぱい。:2015/06/17(水) 22:20:59.21 ID:XQ7s6Cqi0.net
- よろじゃねぇ
リモートデスクトップ系なんだからAndroidのコントロールに直接アクセスは出来ないのは確定
であればPC側から期待する動作を行う手順を
そのまま自動化するしか無いだろ
- 812 :名無しさん@お腹いっぱい。:2015/06/17(水) 23:41:49.69 ID:RcdlcA/F0.net
- なるほどそういう感じなのね
サンクス
画像認識で文字を長押ししてコピペとかやってたけど精度が低かったので…
でもそんな感じでやるしかないのね
- 813 :名無しさん@お腹いっぱい。:2015/06/17(水) 23:47:13.29 ID:l/wOZoEE0.net
- Bluestacksなら普通にadbでやりゃいいだろ
なんでuwscなんだ
- 814 :名無しさん@お腹いっぱい。:2015/06/18(木) 00:51:11.98 ID:rTrmvoNTM
- サーチ範囲が分かりにくかったらSAVEIMG使うと視覚的にいいかもしれないね
SAVEIMG("test.bmp", ID, x1, y1, x2, y2, TRUE, 0, IMG_BACK)
保存された画像がサーチ範囲
- 815 :名無しさん@お腹いっぱい。:2015/06/18(木) 04:50:41.66 ID:uQlwCkkT0.net
- IEでCTRLWIN(ID,MIN)の最小化した状態からIEをF11を押したような全画面表示をさせたいです。
CTRLWIN(ID,MAX)だと最大化ですからウインドウが見えてますし、全画面表示の設定は無いようです。
アクティブにした後、KBD(VK_F11)を使う以外にもっとスマートな方法はありませんか?
- 816 :名無しさん@お腹いっぱい。:2015/06/18(木) 05:04:06.21 ID:1UcnZ19Y0.net
- 無いと思う
ーk とURLを付けて起動させたら全画面になるが
これは元に戻せないマジのキオスク向けのモードだからなぁ
- 817 :名無しさん@お腹いっぱい。:2015/06/18(木) 05:35:20.37 ID:rTrmvoNTM
- ああ、なるほど
相対座標、絶対座標と何の話をしてるのかと思ったら
要するに例えばデスクトップ座標x=100,y=100から幅=200,高さ=200の矩形の範囲を指定したければ
CHKIMGなら x1=100, y1=100, x2=300(x+幅), y2=300(y+高さ)を指定しなければならない(指定ウィンドウの絶対座標)
x=100; y=100; 幅=200; 高さ=200
CHKIMG( , , x, y, x+幅, y+高さ)
SAVEIMGだとx2, y2に相当する箇所が幅, 高さで指定する事になっているから(x, yからの相対座標)
x=100; y=100; 幅=200; 高さ=200
SAVEIMG( , , x, y, 幅, 高さ)
という事だね
- 818 :名無しさん@お腹いっぱい。:2015/06/18(木) 06:58:43.23 ID:uQlwCkkT0.net
- >>816
成る程
F11は既に手動で全画面にしちゃってると全画面が解除という逆の動作になるので余り使いたくなかったのですが仕方ないですね
-Kのキオスクオプションは知りませんでした
使える場合はありそうなので記憶に留めておきます
ありがとうございました!
- 819 :名無しさん@お腹いっぱい。:2015/06/18(木) 08:15:48.49 ID:5a3a1sw2E
- IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.yahoo.co.jp/")
while IE.busy or IE.readyState<>4; sleep(0.2); wend
IE.TheaterMode = True
if IE.TheaterMode = True then print "シアターモード(全画面表示)です。5秒後に戻ります。"
sleep(5)
IE.TheaterMode = False
if IE.TheaterMode = False then print "通常画面です。"
//F11で戻せないので緊急時はALT+F4で閉じて
print "5秒後にキオスクモード(全画面表示)にします。"
sleep(5)
IE.FullScreen = True
if IE.FullScreen = True then print "キオスクモード(全画面表示)です。5秒後に戻ります。<#CR>緊急時はALT+F4"
sleep(5)
IE.FullScreen = False
if IE.FullScreen = False then print "通常画面もどきです。"
- 820 :名無しさん@お腹いっぱい。:2015/06/18(木) 23:31:35.83 ID:7jhVt5eP0.net
- 画像処理について質問です
画像が少し変わったくらいでは反応させずに大幅に変わったときに反応させるやり方はありますか?
例えば指定画像にマウスポインタが重なったくらいではなく指定画像の一部分が消えるという感じです
- 821 :名無しさん@お腹いっぱい。:2015/06/19(金) 00:03:00.80 ID:Zt2MQ/yZ0.net
- >>820
ポインタが重なってる時と重なってない時の両方の画像がない場合に反応させる
- 822 :名無しさん@お腹いっぱい。:2015/06/19(金) 00:30:40.14 ID:rV3INbCi0.net
- >>821
その手がありましたか
この場合はIFB ELSEIF を使えばいいんでしょうか?
2つの画像がない場合に反応させるにはどのようなスクリプトになりますか?
IFb CHKIMG("A.bmp""B.bmp"だとおかしいですよね?
- 823 :名無しさん@お腹いっぱい。:2015/06/19(金) 01:20:58.80 ID:Zt2MQ/yZ0.net
- >>822
IFb !CHKIMG("A.bmp") AND !CHKIMG("B.bmp")
完全に構文だけの問題だから、自分でヘルプ見て解決できるほうが良い
- 824 :名無しさん@お腹いっぱい。:2015/06/19(金) 01:50:13.60 ID:rV3INbCi0.net
- 以前から気になってたのですが !CHKIMG CHKIMG の2パターンがありますが「!」はどんな違いなのですか?
- 825 :名無しさん@お腹いっぱい。:2015/06/19(金) 01:51:13.87 ID:QJOVJbEc0.net
- じゃないほう
- 826 :名無しさん@お腹いっぱい。:2015/06/19(金) 02:52:23.67 ID:i8J6qQEG7
- ! はプログラム言語で not を表す
よく見かける 「A != B」 は、「A =B じゃないとき」 と読む
でもUWSCではこの表記できない
欠陥
- 827 :名無しさん@お腹いっぱい。:2015/06/19(金) 05:51:58.87 ID:/beYdrrW0.net
- >>824
自分も今その!の表記見てなにこれって思った
「!」ありでも動作するの?
- 828 :名無しさん@お腹いっぱい。:2015/06/19(金) 06:42:28.40 ID:zXB4M29n0.net
- 否定演算子
- 829 :名無しさん@お腹いっぱい。:2015/06/19(金) 07:43:22.53 ID:/beYdrrW0.net
- !CHKIMG("A.bmp")
(CHKIMG("A.bmp")=FALSE)
つまり上記2つは同じ動作をするって認識であってます?
- 830 :名無しさん@お腹いっぱい。:2015/06/19(金) 07:55:49.87 ID:fw3hNLlq0.net
- はい
- 831 :名無しさん@お腹いっぱい。:2015/06/19(金) 10:00:01.32 ID:9MxUM04p0.net
- >>822 698
Ifb文中の !CHKIMG() は関数の戻り値 TRUE か FALSE を ! で反転してるという事で
OR とか AND とか !(NOT) の論理演算子の使い方は
条件文書く時に必要なんでしっかりおさえましょうね。
- 832 :名無しさん@お腹いっぱい。:2015/06/19(金) 16:19:49.43 ID:2U3B+b8c0.net
- IF文について教えて下さい
IFとIFBは結局同じと考えて良いのでしょうか?
IFBはIFと違って複数行の処理が書ける・入れ子構造も可
と書かれてるサイトもありますが
別にIFでも出来ますよね?
ヘルプもIFB-ENDIFはIF-ENDIF同じ説明文にリンクされてますし。
- 833 :名無しさん@お腹いっぱい。:2015/06/19(金) 16:33:58.31 ID:/beYdrrW0.net
- >>832
実装時期の違い
当初はIF文は一行でしか使えなかった
複数行にするにはIFBにする必要があった
いつかのアプデからIFでもIFBでも複数行で使える仕様に変更された
結論は同じって事ですね
- 834 :名無しさん@お腹いっぱい。:2015/06/19(金) 16:53:03.92 ID:nYYnOjUy0.net
- >>833
> いつかのアプデからIFでもIFBでも複数行で使える仕様に変更された
し、知らなかった…
いったいいつからだw
ifで複数行なんてやったことなかったから…
- 835 :名無しさん@お腹いっぱい。:2015/06/19(金) 16:59:34.66 ID:QJOVJbEc0.net
- なんも考えずにIFB使えばいいよ
- 836 :名無しさん@お腹いっぱい。:2015/06/19(金) 20:14:39.34 ID:hKqu5SPe0.net
- IFBなんて勧めんなよ
おまえ性格悪すぎw
- 837 :名無しさん@お腹いっぱい。:2015/06/19(金) 21:16:59.56 ID:hITZPnpq0.net
- >>834
4.7cから
- 838 :名無しさん@お腹いっぱい。:2015/06/19(金) 21:25:44.48 ID:qFWhSFir0.net
- 複数行の時はIFでThenは絶対に使わない
一行の時はIFB ; xxx ; EndIFってするひねくれ者です
- 839 :名無しさん@お腹いっぱい。:2015/06/19(金) 22:12:32.64 ID:i8J6qQEG7
- それよりいつになったら一行IFのコロン可になるんだ
- 840 :名無しさん@お腹いっぱい。:2015/06/19(金) 23:51:46.41 ID:fw3hNLlq0.net
- ifとifbを使い分けてると
thenの入れ忘れとかでわかりにくいバグを生むことがある
ifbオンリーにするのも割とあり
javaでもifの{}を省略しないよう統一するコーディング規約もあったりするし
- 841 :名無しさん@お腹いっぱい。:2015/06/20(土) 00:05:56.81 ID:1lHsuodt0.net
- for A = 0 to 10
hoge = random(10)
print hoge
next
これを後からも参照できるように変数に入れたい
hoge0〜hoge10にループ毎の結果を代入することはできる?
- 842 :名無しさん@お腹いっぱい。:2015/06/20(土) 00:17:07.80 ID:UvvdAStd0.net
- EVAL関数使えば出来るが普通は配列使うぞ
EVAL("hoge" + A + " := RANDOM(10)")
hoge[A] = RANDOM(10)
- 843 :名無しさん@お腹いっぱい。:2015/06/20(土) 00:19:18.87 ID:ITsosRO70.net
- まあ普通に配列だろうな
dim hoge[10]
for A=0 to 10
hoge[A] = random(10)
next
print hoge[0]
print hoge[10]
- 844 :名無しさん@お腹いっぱい。:2015/06/20(土) 01:29:24.47 ID:ufTlMsJo0.net
- >>840
thenを省けば良いだけじゃないの?
- 845 :名無しさん@お腹いっぱい。:2015/06/20(土) 01:30:49.04 ID:1lHsuodt0.net
- >>842
これだわありがとう
例が端折り過ぎであれだったけど実際は配列が使えない感じで困ってたのよね
- 846 :名無しさん@お腹いっぱい。:2015/06/20(土) 02:43:34.36 ID:eI4beo1D0.net
- >>841
hogeとかつかってんじゃあねーぞ!
今時、hogeなんて知らねー奴が多いからな
- 847 :名無しさん@お腹いっぱい。:2015/06/20(土) 03:21:26.67 ID:51sOvEFg0.net
- 知ってる知らないよりもuwsc使いふぜいがhogeとか使ってたら笑いもんだよな
- 848 :名無しさん@お腹いっぱい。:2015/06/20(土) 03:24:30.46 ID:HwBxArjA0.net
- _____
||// 彡 ⌒ミ|彡⌒ ミ
||/ (n´・ω・)n ) hagehage聞こえる・・・
|| (ソ 丿|ヽ )
 ̄ ̄ ̄ ̄ ̄ u―u'
- 849 :名無しさん@お腹いっぱい。:2015/06/20(土) 06:19:41.76 ID:m+PpqLZV0.net
- UWSCでは普通hageを使うからな
- 850 :名無しさん@お腹いっぱい。:2015/06/20(土) 13:15:00.03 ID:5559LWCM0.net
- 今あるカーソルの場所を取得してマクロ操作が終わったあとに元の場所に戻す、というのは作れるでしょうか?
- 851 :名無しさん@お腹いっぱい。:2015/06/20(土) 13:26:20.43 ID:ZXJbc2NX0.net
- 作れます。
- 852 :名無しさん@お腹いっぱい。:2015/06/20(土) 13:26:40.82 ID:qFVUre4p0.net
- それもミジンコレベルの自分でも簡単に
- 853 :名無しさん@お腹いっぱい。:2015/06/20(土) 13:28:18.83 ID:3x+xv6Kw0.net
- 簡単だよ
@今あるカーソルの場所を取得
Aマクロ操作
Bカーソルを元の場所に戻す
- 854 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:00:53.30 ID:5559LWCM0.net
- >>853
@を作る場合、どんな方法がありますか?
画像で検出する以外の方法が思いつきません
しかし、マウスカーソルはウィンドウによって形が変わってくるので難しいです
他の方法はありませんか?
- 855 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:04:47.21 ID:qFVUre4p0.net
- > // 特殊変数
>
> G_MOUSE_X // マウス位置Xを返す特殊変数
> G_MOUSE_Y // マウス位置Yを返す特殊変数
ヘルプより引用
- 856 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:12:14.34 ID:5559LWCM0.net
- >>855
ありがとうございました
- 857 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:25:59.94 ID:aElcOAwi0.net
- 初質問です。
よろしくお願いします。
あるサイトの更新ボタンを連続で押し続けて、
購入ボタンが出てきたら、購入ボタンを押す動作をしたいです。
こんなIF文みたいな作業は出来ますか?
このサイトは、ある時間ジャストから購入申し込み出来るという仕様で、私は帰宅していない事が多く、競争も激しいのでソフトにさせたいのです。
ボタンを連打することになりますが、一分くらいの時間なので、それほどサイトにも負担がかからないと思います。
よろしくお願いします。
- 858 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:37:40.01 ID:8nbgbwZ80.net
- >>857
出来ます
- 859 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:54:51.00 ID:L4a8KGrv0.net
- IFB CHKIMG
購入ボタンあった時の処理
ELSE
購入ボタンなかった時の処理
ENDIF
これだけでいけるんじゃね
- 860 :名無しさん@お腹いっぱい。:2015/06/20(土) 15:44:52.04 ID:aElcOAwi0.net
- >>858
>>859
ありがとうございます。
出来るみたいなので、ググって勉強して作成してみます。
こういう需要(例えば小売サイトのタイムセールとか)はありますよね。
- 861 :名無しさん@お腹いっぱい。:2015/06/20(土) 16:16:08.85 ID:99v8LLFE0.net
- 更新して購入可能なら購入するってスクリプト自体は簡単だけどページの読み込み処理上手くやらんと目的に合うように機能しなさげ
軽けりゃ何の問題もないが競争激しいってことはその数分に大量のアクセスがあるだろうし
律儀にページ表示完了待ちしてたら時間かかるし適当な時間で更新してたら購入ボタン見つける前にまた更新押すことにもなりかねないしな
その前に重過ぎてまともにページが開けないとかもある
- 862 :名無しさん@お腹いっぱい。:2015/06/20(土) 16:36:20.31 ID:aElcOAwi0.net
- >>861
ありがとうございます。
何度も手動クリック連打で参加していますが、今のところ読み込みは早いです。(一秒くらい)
別のサイトの早取りセールに参加したことがありますが、そのサイトは途中で画面が固まりました。笑
- 863 :名無しさん@お腹いっぱい。:2015/06/20(土) 16:42:34.28 ID:UvvdAStd0.net
- 商用サイトへの自動化ツールの需要を気にしてたけれど公開するつもり?
だとしたらそれはやめといたほうがいいよ
面倒事に成るかねないから個人的にひっそりとやっとけ
- 864 :名無しさん@お腹いっぱい。:2015/06/20(土) 17:17:09.95 ID:aElcOAwi0.net
- >>863
ごめんごめん。
そういうつもりで書いたんじゃないんだよ。
このスレで作ってる人(ヒントを教えてくれる人)がたくさんいないかな〜という意味です。
わたし的にはむしろ隠して独り占めしたいです。笑
- 865 :名無しさん@お腹いっぱい。:2015/06/20(土) 17:29:16.81 ID:qPkI5+Ta0.net
- おいらには怖すぎる
やみくもにクリックして、めくらで購入ボタンを押すなんて
なにかを疑ってしまったら出来ない
- 866 :名無しさん@お腹いっぱい。:2015/06/20(土) 18:36:34.47 ID:3x+xv6Kw0.net
- 事前に何度も調査できるんだったら
別プロトコルでサーバーからデータ取得して
在庫あると判断時にリクエストをサーバーへ直投げするのが最速
ブラウザ不要だから競争に絶対勝てるんだがこの手法が出回るとヤバイ
- 867 :名無しさん@お腹いっぱい。:2015/06/20(土) 18:41:11.49 ID:3x+xv6Kw0.net
- >>865
想定外の挙動への対策はいくらでもやりようあるよ
想定以外の返り値だったら終了してもう一度新しく試すとか
商品タイトルに目的物の文字列がなければやめさせるとか
- 868 :名無しさん@お腹いっぱい。:2015/06/20(土) 18:47:23.22 ID:qFVUre4p0.net
- まあ色々とやりようはあるんだろうけど、そういう具体的な金額の利害を伴う上に大っぴらに出来ない手口を
ネット上の不特定多数と共有する、それどころか一方的に教えてもらおうってのは流石に虫が良すぎるな
あんまりしつこくクレクレすると、善意を装って悪意に満ちたツールを掴まされかねんぞ・・・
- 869 :名無しさん@お腹いっぱい。:2015/06/20(土) 19:03:10.00 ID:LYvdRJKd0.net
- >>868
よく読め。
「ググって自分で勉強して作る」って言ってるやろ。
クレクレしてないやん。
- 870 :名無しさん@お腹いっぱい。:2015/06/20(土) 19:08:22.46 ID:qFVUre4p0.net
- そうだな、「(ヒントを教えてくれる人)がたくさんいないかな〜」という一文をもって
クレクレと断ずるのは飛躍しすぎだったのかもな、忘れてくれ
- 871 :名無しさん@お腹いっぱい。:2015/06/20(土) 19:24:58.06 ID:SRlIAXLx0.net
- >>869
どこにでも批判だけして悦に入る勘違い野郎はいるんだから無視無視。
- 872 :名無しさん@お腹いっぱい。:2015/06/20(土) 19:53:32.66 ID:HlENJY9S0.net
- UWSC風情がそんな高クオリティなもの作れねーだろが
- 873 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:28:19.22 ID:m+PpqLZV0.net
- >>867
こういうの、デバッグの機会が少なすぎるのが一番問題
- 874 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:28:59.31 ID:MZD0bYkA0.net
- UWSCで作ったexe解体できませんか?飛んでしまった
- 875 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:43:59.78 ID:44wtvm5L0.net
- 家に帰ってみたら同じものを500個ほど買ってしまっていました。
請求金額が1000万程来て途方に暮れています。
こうなるw
- 876 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:48:14.26 ID:UvvdAStd0.net
- >>873
無理
もっとメジャーなら誰かが逆ツール造るかもしれんけれどね
- 877 :名無しさん@お腹いっぱい。:2015/06/20(土) 23:01:34.79 ID:orU3EJ/x3
- アイデア次第でいろいろ使えるよな・・
思いつきはこりかたまったプログラマーより
普通の人のが意外といろいろ思いつく
- 878 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:57:35.78 ID:g6dchMV60.net
- >>875
怖いよな
俺も購入系で自動化組んでるけど、あくまでも通知するのみで実際の購入はクリックが必要な感じにしてるわ
いくら対策しても万一想定外の微妙な変更があった場合、全てに対処するのに限界があると思うし
- 879 :名無しさん@お腹いっぱい。:2015/06/20(土) 23:39:15.44 ID:oWCPOmlB0.net
- >>874
吹っ飛んだんならHDDからファイル復元するソフト使うのが一番早い
- 880 :名無しさん@お腹いっぱい。:2015/06/21(日) 00:17:39.78 ID:wQr+K1BP0.net
- バックアップ取らない人っているんだなぁって思う
- 881 :名無しさん@お腹いっぱい。:2015/06/21(日) 01:15:04.71 ID:ma8OCHbo0.net
- UWSCってtry〜catchみたいな例外処理ある?
- 882 :名無しさん@お腹いっぱい。:2015/06/21(日) 01:33:34.69 ID:+lSi8wlB0.net
- try
except
endtry
そこまで具体的な疑問がなぜ調べられないのか
- 883 :名無しさん@お腹いっぱい。:2015/06/21(日) 01:52:38.64 ID:MJrWw5p10.net
- ifb else文について質問です
A.bmpが見つかればbreakで抜けて次のifb文にいくようにしたいのですが
A.bmpが見つからない場合、else以下動作でA.bmpを見つけるまでループして
見つけ次第breakで抜けて次のifb文に行くようにするにはどうすればよいのでしょうか?
- 884 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:05:14.09 ID:JABvX0Qf0.net
- それはifbじゃなきゃダメなの?
repeat
スリープでも入れとく
until chkimg("A.bmp")
見つかった後の処理
とか
- 885 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:06:55.94 ID:MJrWw5p10.net
- もう1つ質問なのですがwhile true wend文1つでifb文を複数詰め込むのと
ifb文1つに付きwhile true wend文を1つ使うのではどちらが処理は早くなりますか?
- 886 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:22:23.36 ID:JABvX0Qf0.net
- repeatよりも while !chkimg("A.bmp") の方がいいか。
どっちが速いかなんて中身次第だと思うけど
whileやrepeat自体に条件で抜けるって機能があるんだから
ifbなんて使わなければその分は速くなるんじゃない?
- 887 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:26:30.52 ID:MJrWw5p10.net
- ありがとうございます!
1度試しにやってみます
- 888 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:29:03.36 ID:QhUDhWzG0.net
- 気になるなら試せば良い
1000回繰り返して時間差を見るとかやり方は沢山ある
- 889 :名無しさん@お腹いっぱい。:2015/06/21(日) 03:21:25.31 ID:MJrWw5p10.net
- A.bmp
B.bmp
C.bmp
の順に認識させようとしててA.bmpが見つかっていないのにB.bmpが見つかると動いてしまうのですが
改善法はありますか?
A.bmpが見つかるまでは動作させたくないです
- 890 :名無しさん@お腹いっぱい。:2015/06/21(日) 03:31:38.86 ID:QhUDhWzG0.net
- A.bmpが見つけるまでループさせて
B.bmpが見つけるまでループと順番に探す
B.bmpを見つけた時に追加条件としてA.bmpが探す方がシンプルになる事もある
特に正解は無いので前後にやりたい事次第じゃないかな
- 891 :名無しさん@お腹いっぱい。:2015/06/21(日) 04:16:33.57 ID:ZzQRKg6e0.net
- >>889
while !chkimg("a")
wend
//aが見つかった
while !chkimg("b")
wend
//bが見つかった
- 892 :名無しさん@お腹いっぱい。:2015/06/21(日) 15:49:11.10 ID:S+hxlfX40.net
- 例えばyahooのトップページの検索ボタンを押す場合、
毎回ボタンを押す位置をランダムに変えるにはどうすれば良いでしょうか?
- 893 :名無しさん@お腹いっぱい。:2015/06/21(日) 17:27:25.69 ID:Vr+4AoeE0.net
- なんでこんなにぐぐったりヘルプみたらすぐにわかる質問ばかりされるようになったの?
質問が全てゲームのマクロに使うようなものだし一人が頑張ってるのか
- 894 :名無しさん@お腹いっぱい。:2015/06/21(日) 17:32:47.29 ID:Vr+4AoeE0.net
- 愚痴るだけもあれなんでぐぐった結果の一番上をリンク先としてはっておく
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13120203578
知恵袋だけど
- 895 :名無しさん@お腹いっぱい。:2015/06/21(日) 17:39:19.13 ID:bdWj3ZUa0.net
- >>879
そか
- 896 :名無しさん@お腹いっぱい。:2015/06/21(日) 19:24:10.57 ID:ilRQGwwo0.net
- UWSC1ヶ月目ぐらいの雑魚だけどさすがにここまでの質問は俺はできない
気になるといえばGETTIMEの分がMMじゃなくてNNなのはなんでだろうってぐらい
- 897 :名無しさん@お腹いっぱい。:2015/06/21(日) 19:49:34.28 ID:shEWlA/IE
- >>896
Month の M とかぶる
- 898 :名無しさん@お腹いっぱい。:2015/06/21(日) 19:53:33.71 ID:QhUDhWzG0.net
- 質問者の一部はネタだよ
多分暇なんじゃないかな
- 899 :名無しさん@お腹いっぱい。:2015/06/21(日) 19:58:01.76 ID:lpX24SXC0.net
- >>896
UWSCはVB系の文法を真似てるからNNが分になった
VBは大した理由はない(Mは「月」で使用済みだからMの次、miNuteのN)
文法なんて人間の決めたものだから結構適当なものが多い
- 900 :名無しさん@お腹いっぱい。:2015/06/21(日) 20:24:48.14 ID:n4zd1VjMk
- 変数の命名の話だけど
何かのプログラムの記事で、略語にしないほうがコーディングはめんどくさくても
結果、良いコードになるってかいてあったな。
- 901 :名無しさん@お腹いっぱい。:2015/06/21(日) 21:06:46.87 ID:vIV+P+Mj0.net
- MMVとかもちょっとしっくりこない気がするw
普通にMOVEで良かったんじゃ、とか
- 902 :名無しさん@お腹いっぱい。:2015/06/22(月) 18:53:15.27 ID:Xo6NmJ950.net
- UWSC初心者なのですが、質問させて下さい
1つのスクリプトで処理中に待機時間が出来た場合、別のウィンドウで似たような動作をさせたい場合はどのような記述をすれば良いのでしょうか?
例えば、A処理→待機時間→別ウィンドウでA処理→待機時間→元のウィンドウでB処理→待機時間→別ウィンドウでB処理
という感じです
ググっても今一ピンと来るものが無くて途方に暮れてる雑魚ですが解答宜しくお願いします!
- 903 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:02:40.03 ID:cKoyihzE0.net
- >>902
そのまま書けばいいだけだと思うけどその処理のどの部分が判らない?
- 904 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:18:54.40 ID:qBo/qH0y0.net
- BTN(xxxx,click,0)
SLEEP(1)
とした場合、実際に実行するとキー入力があるので1秒で終わらないですよね
実行完了までの大体の時間が知りたい場合どうしたらいいでしょうか?
- 905 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:23:57.83 ID:Xo6NmJ950.net
- >>903
上の方にある>>646がイメージ的には近いんですけど、試しに試行してみた所、実行権限が上手く移行出来ていないのかずっとSLEEPで止まったままになってしまうのです
- 906 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:50:57.68 ID:nnr3IjCE0.net
- 並列処理っていうのは基本的に上級者向けだから
ピンと来ないなら諦めたほうがいいよ
>>646絡みでレスついてるけど
それ読んでもヒントにならないなら無理(あなたには)
- 907 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:55:06.99 ID:nnr3IjCE0.net
- 並列処理しなくても>>903の言うとおり「そのまま書けばいい」が正解。
その代わり、元のウィンドウが待機時間に入ったとみなして
別のウィンドウの処理に入っている最中、元のウィンドウの待機時間が
終わって処理Bが可能となったとしても、別のウィンドウの処理Aが終わ
るまで元のウィンドウの処理Bは保留状態となる。
しかしそれでも全く問題ないだろ?
自分で手動操作する場合は結局そうするのだから。
- 908 :名無しさん@お腹いっぱい。:2015/06/22(月) 20:47:58.06 ID:DelgEmlV0.net
- UWSCって非同期できる?
- 909 :名無しさん@お腹いっぱい。:2015/06/22(月) 20:52:07.07 ID:SgLm1iVs0.net
- 非同期って一言で言われても色々あるぞ?
スレッド使えば基本的な非同期はできるぞとしか
- 910 :名無しさん@お腹いっぱい。:2015/06/22(月) 21:43:56.78 ID:A846/Vfm0.net
- >>904
実際に試して時間測れよ
- 911 :名無しさん@お腹いっぱい。:2015/06/22(月) 22:23:15.33 ID:My8ZQvWB0.net
- >>902
ウインドウの待機状態を感知して
ウインドウIDを保存、新たに同じ処理スレッドを作成
処理スレッド中にウインドウの待機状態と待機終了を感知して
さらに処理を開始、もしくは処理したいスレッドに戻ってくる
という方針で考えてみた
コンセプトはこんな感じでいいんじゃないかな
以下コード、分割する
Public HASHTBL BackupWindowID //ウインドウIDを格納する配列
Public CurrentWinID //操作したいIDを入れる器
MainThread(0) //メインの関数、引数はスレッド識別用
Procedure MainThread(ThreadNum)
CurrentWinID = GetID("なんか処理したいウインドウ")
// (なんか処理)
//処理中所々に以下に行を咬ませる
If (なんかあったら) Buzy = 1 Then Lock(ThreadNum) //忙しいなら現在のウインドウを冷凍
UnLock(ThreadNum) //取り敢えず全ウインドウの解凍を試みる
// (なんか処理続き)
FEnd
- 912 :名無しさん@お腹いっぱい。:2015/06/22(月) 22:23:43.27 ID:My8ZQvWB0.net
- (続き)
Procedure Lock(Num, UnLock = 0)
BackupWindowID[Num] = CurrentWinID //冷凍容器に操作中のウインドウを冷凍保存
If UnLock = 1 Then Exit // ウインドウ解凍時に呼ばれたのならこれにて失敬
MainThread(Random(9999) + 10000) //識別用にランダムな値を生成し、新スレッドを作成
FEnd
Procedure UnLock(Num)
For i = 0 to Length(BackupWindowID) -1 //全ウインドウの解凍を試みる
ThreadCash = BackupWindowID[i, HASH_KEY] //冷凍容器から識別IDを取り出し
WinID = WindowID[ThreadCash] //識別IDからウインドウIDを取り出し
Ifb (WinIDの処理が待機中から外れていたら)
Lock(Num, 1) // さっきまで処理していたウインドウを冷凍
CurrentWinID = WinID //待機処理が終了したウインドウを実行中タスクへ戻す
BackupWindowID[ThreadCash, HASH_REMOVE] //冷凍庫を掃除
EndIf
Next
FEnd
- 913 :名無しさん@お腹いっぱい。:2015/06/22(月) 22:43:23.52 ID:T4WVL5xj8
- あ、しまった。これだと元の処理に戻ってないじゃないか
ははは!
- 914 :名無しさん@お腹いっぱい。:2015/06/23(火) 02:48:15.57 ID:5lMefh0T0.net
- checking関数ってどんな技術使って実装されてるの?
- 915 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:49:10.66 ID:XeeDdpBx0.net
- >>904
処理の開始と終了にgettimeを入れて
その差を見ればいい
- 916 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:51:32.50 ID:y2P1rAvh0.net
- >>911-912
そういうやり方もあるかも知れないが、
実用化するには結構膨大な例外処理が必要そうだな。
第1にスレッドが子スレッドを無限に生成しかねない。
UWSCとしてスレッド数を制限する隠し上限値があってエラーで止まるが、
処理内容によってはメモリリーク様症状を起こしたり大量のスレッドで
CPU時間を占有しかねないので、その辺の統制が必要だろう。
第2に、UWSCが自動操作対象とする資源は非常にデッドロックが起きやすい。
> RE:cpuの高いときは休む umiumi
> UWSCの場合、他アプリとの関係が発生したりするので
> 他アプリのハンドルをつかんで何かする瞬間にサスペンドされ
> その後に画面構成が変わった後に再開したら、どうなるのかとか。
> また、一部の関数は内部的に排他制御しているので、排他制御中にサスペンド
> されるとデッドロックの可能性があります。
> それらを考えると、使用は全く勧められません。
> DATE:2007/3/17(Sat) 20:56
デッドロックを避けるために、スリーパーになるタイミングは慎重でなくてはならず、
複数のスレッドが同じ資源を掴まないように管理する処理を自力で実装したり、
デッドロックが発生して止まったスレッドを識別したり、そのゾンビスレッドが
いつの間にか勝手にロックから抜けだした時に勝手なことをしないように自殺させたり、
色々と必要なことは多い。
それらスレッドとの通信はすべてUWSCではグローバル変数を介さないと行うことが出来ない。
- 917 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:52:39.30 ID:XeeDdpBx0.net
- >>905
スレッド使わないと無限ループになるよ
あと机上で適当に考えたやつだから
もともと動かない欠陥があったらスマン
- 918 :名無しさん@お腹いっぱい。:2015/06/23(火) 11:07:41.67 ID:7mhVk4To0.net
- IDA=GETID ←1 WC
IDB=GETID ←2 WC
WC=1
while t
CTRLWIN(WC,ACTIVATE)
A処理
if 待機条件
if wc=1
wc=2
continue
elseif wc=2
wc=1
break
endif
endif
wend
while
CTRLWIN(WC,ACTIVATE)
B処理
wend
こんなんでいいんじゃないの?
- 919 :名無しさん@お腹いっぱい。:2015/06/23(火) 16:57:05.34 ID:l7BNyIR/0.net
- chkimgで検索する画像って
小さければ小さいほど処理は軽くて済むと思いますが、
例えば16x1pxと8x2pxと4x4pxと1x16pxだとどれが一番速いとか
構造上あり得るんでしょうか?
画面や画像にもよるとは思いますが。
検索方式によっては極力複数行にしないで
縦1dotの画像にした方が良いのでしょうか。
www.alg.cei.uec.ac.jp/itohiro/e-science/files/e-sci110904-5.pdf
ここのp.16の計算式とか見るとそんな感じぽいですが。
- 920 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:11:51.58 ID:OTChzhaD0.net
- 自分でマウスを動かしてるときに自動マクロが実行された場合競合してしまうのですが、
独立してマクロを動かすにはどうすればよいでしょうか?
- 921 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:20:34.89 ID:enpumEg80.net
- >>920
仮想環境入れるかもう一台PCを用意してそこで動かす
- 922 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:23:22.53 ID:1zVYU7i40.net
- デュアルマウスtoolとかあるけど、あれ入れた状態でマウスマクロはどんな反応するんだろ?
- 923 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:25:50.35 ID:/m2trk+h0.net
- LOCKHARDでロックする手もあるぞ
- 924 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:31:43.18 ID:wPOi6Obb0.net
- ロックハードでループ入ってデータ吹っ飛んだことある
- 925 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:37:28.27 ID:enpumEg80.net
- ロックハードだとキー押してる間やドラッグ中にされると
挙動おかしくならね?
ロックハード後に、キーアップしてみたがうまくいかなかったからやめたわ
- 926 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:48:15.34 ID:/m2trk+h0.net
- >>925
あーなるかも
俺は吹き出しで3秒前に予告させるという何の解決にもならない方法を取ってるけども
- 927 :名無しさん@お腹いっぱい。:2015/06/23(火) 19:18:42.72 ID:OTChzhaD0.net
- 仮想デスクトップというソフトですかね?
いろんな種類があるみたいですけどオススメありますか?
- 928 :名無しさん@お腹いっぱい。:2015/06/23(火) 20:37:20.75 ID:yQA0bOaw0.net
- >>927
有名どころを上から順に試してみろや
- 929 :名無しさん@お腹いっぱい。:2015/06/23(火) 20:52:57.90 ID:uh0kyjqX0.net
- 仮想デスクトップじゃなくて仮想PCだよ
- 930 :名無しさん@お腹いっぱい。:2015/06/23(火) 22:27:38.05 ID:wPOi6Obb0.net
- EXECで起動できますが、終了はどうしたらいいですか?
- 931 :名無しさん@お腹いっぱい。:2015/06/23(火) 22:45:30.24 ID:ZIbaErIb0.net
- ソフトの終了操作を自動化したら良いんじゃないのけ
- 932 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:34:57.57 ID:i+Ijn81p0.net
- EXCEL.quit
- 933 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:38:40.94 ID:dLQWe0cz0.net
- 仮想PCってどの仮想PCソフト使えばいいの?
- 934 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:49:27.96 ID:YFUQBjtZ0.net
- vmwareが主流と思われ
- 935 :名無しさん@お腹いっぱい。:2015/06/24(水) 07:05:50.59 ID:0UW+sVlw0.net
- >>930
doscmd("taskkill /f /im xxx.exe")
- 936 :名無しさん@お腹いっぱい。:2015/06/24(水) 11:25:34.62 ID:0UW+sVlw0.net
- >>919
実際に試して見るのが早いけどほぼ変わらないと思うよ
処理速度を上げるためだったら、他の視点を持った方がいい
サーチ範囲を狭めるとか、
画像サイズをギリギリまで小さくするとか、
peekcolorで頑張るとか、
ファイルじゃなくメモリアクセスにするとか…
- 937 :名無しさん@お腹いっぱい。:2015/06/24(水) 12:04:40.42 ID:Hspgd6GT0.net
- IDがわかってるならCtrlWin(ID,Close)で殺せるんでないの?
- 938 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:06:11.96 ID:l1R57tJH0.net
- //A
BTN(LEFT,CLICK,955,163,10000)
//B
SLEEP(10)
BTN(LEFT,CLICK,955,163,0)
すいません、AとBは全く同じでしょうか?
違いやメリットデメリットがあれば教えて欲しいです?
- 939 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:13:07.26 ID:hWL3irCZ0.net
- なんも考えずにSLEEP使うといいよ
- 940 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:22:51.00 ID:u1SFGEEE0.net
- 多分違う
時間計測を挟んでみるとわかるけれど引数の値の近似値にはならないのよね
なんとなくのイメージ論になっちゃうけれど
引数の方は最大待機時間っぽい感じがする
- 941 :名無しさん@お腹いっぱい。:2015/06/25(木) 18:22:16.80 ID:oPZ+haqw0.net
- ひょっとして自動クリックが誤動作で連射になるときある・・?
プログラム動作中に他の作業でマウス使ってたら競合して連射とか予期せぬ動作とかしない?
- 942 :名無しさん@お腹いっぱい。:2015/06/25(木) 18:29:50.15 ID:wqp1X+za0.net
- >>941
そりゃ、ちょうどマウスのボタンを押そうと思ったときに、マクロ側も押そうとしたら2連射になるよね
- 943 :名無しさん@お腹いっぱい。:2015/06/25(木) 20:13:48.47 ID:cDTqbBy20.net
- マウス無効化すればいいw
- 944 :名無しさん@お腹いっぱい。:2015/06/25(木) 20:20:52.39 ID:FY/KLTGZ0.net
- 仮想がさいつよ
はっきりわかんだね
- 945 :名無しさん@お腹いっぱい。:2015/06/26(金) 01:49:25.66 ID:gz7aLMMI0.net
- 仮想か別PCで動かさないとやばいな
クレイジーな挙動になるときがある
- 946 :名無しさん@お腹いっぱい。:2015/06/26(金) 01:54:37.32 ID:sdP5f9pC0.net
- それはフォーカスに過度に依存しているスクリプトなんだよ
色々と事前チェックが足りない
- 947 :名無しさん@お腹いっぱい。:2015/06/26(金) 04:48:07.06 ID:hH8a5ejS0.net
- IEで、ひとつのウィンドウで開いている2つのタブを、
二つのウィンドウに分けたい場合はどのように処理したら良いでしょうか?
二つ起動するのではなく、既に開いているタブ二つを分割したいのです
マウス操作以外で方法があったら教えて下さい。
- 948 :名無しさん@お腹いっぱい。:2015/06/26(金) 06:27:30.46 ID:5tv/9hgA0.net
- ブラゲーマクロなんかはマウスに依存せざるをえないんじゃないかなあ
flash解体して操作なんてできないでしょ
- 949 :名無しさん@お腹いっぱい。:2015/06/26(金) 08:56:03.95 ID:uOfWxV270.net
- 仮想化以外で現実的なのは
マウスクリックのひとつ前の処理に座標取得とマウス無効化入れて、
処理が終わったら無効化解除してもとあった座標に戻す、ぐらいかな
- 950 :名無しさん@お腹いっぱい。:2015/06/26(金) 10:15:39.35 ID:/WN731vj0.net
- もしくはmouseorgで
- 951 :名無しさん@お腹いっぱい。:2015/06/26(金) 13:49:41.53 ID:gz7aLMMI0.net
- 時刻を参照して
・・:00
・・:10
・・:20
・・:30
のときだけ動作(一回のみ)させるにはどう記述すればよいでしょうか?
- 952 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:17:51.76 ID:9QDhhXNK0.net
- スケジュールで式による設定
NN=(00 or 10 or 20 or 30)
- 953 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:32:32.73 ID:OscSNhMp0.net
- >>951
スクリプト上なら
dim exeminute[] = 0,10,20,30
beforeminute=-1
while true
for i=0 to resize(exeminute)
gettime()
if g_time_nn=exeminute[i] and beforeminute<>g_time_nn
beforeminute=g_time_nn
//やりたい処理
break
endif
next
wend
- 954 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:44:52.03 ID:NVjv4qWL0.net
- >>947
IEオプションのタブ項目弄った方が楽
- 955 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:51:40.89 ID:8b6cWaM60.net
- >>951 >>953
自分なら
While !GetKeyState(VK_ESC)
GetTime()
If !(G_TIME_SS MOD 10) Then やりたい処理()
Sleep(1)
WEnd
- 956 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:52:32.82 ID:8b6cWaM60.net
- あ、分か
SSじゃなくNNだったな
- 957 :名無しさん@お腹いっぱい。:2015/06/26(金) 16:04:42.66 ID:OscSNhMp0.net
- >>955
sleep(60)にして一分ごとにチェックすると思うけど、それだと飛びが発生する可能性があるよ
例えば、9分59秒99のタイミングでチェックした後、
sleep(60)したら11分0秒00で次のチェックが走った場合
- 958 :名無しさん@お腹いっぱい。:2015/06/26(金) 17:27:14.95 ID:9RWcGcCt0.net
- そんな誤差を許容するなら、NN mod 10 の結果が減った時を検出するのがいいかな
- 959 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:35:38.53 ID:tMFd7SQN0.net
- 60にする必要まったくなくね
っとおもったらsleep(1)じゃん
別にこれでいいと思うよ
- 960 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:36:09.55 ID:7mDgY6gd0.net
- 等号(=)での比較がきらいなので
GetTimeして
次の予定は(00秒、10秒、20、30)のどれになるかを計算して
----ループ開始
GetTimeして、次の予定を過ぎていたら(>=)
まず、その次の予定を計算して代入してから「やりたい処理」をする
----ループの先頭へ
もしも「やりたい処理」が10秒以内で終わらないかもしれないなら
そのためのエラー処理ルーチンを入れるか
「やりたい処理」を別スレッドにして並列で幾つも幾つも実行させる
- 961 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:51:18.78 ID:YwwzOsxf0.net
- タスクスケジューラを利用
- 962 :名無しさん@お腹いっぱい。:2015/06/27(土) 00:43:47.94 ID:4DjkU5u70.net
- CHKBTNやCLKITEMでラジオボタンを対象にする場合で質問
キャプションの文字列が存在しない場合はどう指定すればいい?
- 963 :名無しさん@お腹いっぱい。:2015/06/27(土) 00:47:56.11 ID:kmOp9RrE0.net
- SPY++でコントロールIDを直接調べる
- 964 :名無しさん@お腹いっぱい。:2015/06/27(土) 07:26:49.45 ID:AXu8qFQR0.net
- >>959
それだと10分に何十回も実行してしまう
- 965 :名無しさん@お腹いっぱい。:2015/06/27(土) 09:24:31.94 ID:i0mwW7lv0.net
- >>964
やりたい処理の最後にSleep(60)でええやん
- 966 :名無しさん@お腹いっぱい。:2015/06/27(土) 15:37:47.24 ID:wCNQu5qC0.net
- 最後に実行した時のNNを変数に保存して比較すればいいよ
自動操作という性質上そういう重複操作を統制する手法は常識
- 967 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:23:30.15 ID:YBWE773w0.net
- 初回だけ検出したらその後は sleep(600) だけでいいのでは
- 968 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:38:09.35 ID:kmOp9RrE0.net
- 求める精度は用途によって様々
人それぞれなんで答えは一つじゃないさ
- 969 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:51:46.71 ID:Cp3CV12G0.net
- >>967
処理にかかった時間の分だけずれていく
- 970 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:56:41.75 ID:92XqVBFW0.net
- ダブルマウスダブルキーボードの人いる?チャレンジしてみようかな
- 971 :名無しさん@お腹いっぱい。:2015/06/27(土) 19:42:01.53 ID:yUPbOYud0.net
- >>969
じゃあ時間で判断したらええやん
- 972 :名無しさん@お腹いっぱい。:2015/06/27(土) 21:11:52.43 ID:YPLPZoo+0.net
- それがsleep(1)だろ…
- 973 :名無しさん@お腹いっぱい。:2015/06/28(日) 00:23:09.01 ID:yZ8ohOQ90.net
- >>970
翻訳頼む
- 974 :名無しさん@お腹いっぱい。:2015/06/29(月) 01:19:56.72 ID:0u/Dye8K0.net
- 時間で判断というのはGETTIMEを元にリアルタイムを判定するってことだね
判定サイクルに挟み込むwaitがSLEEP(1)なら誤差は何回ループしても
1秒+処理時間までに収まる
- 975 :名無しさん@お腹いっぱい。:2015/06/29(月) 04:29:46.10 ID:9eIZINV/0.net
- >>974
現在の時刻と実行したい時刻までの時間の差を図って、それだけ待ってから実行したらどうか
- 976 :名無しさん@お腹いっぱい。:2015/06/29(月) 09:35:36.32 ID:r9CE5fkI0.net
- peekcolorで明らかに座標位置とは違う色が取れる時があるんだけど何故だ?
赤いエリアでやってるのに時々黒に近いデータが返ってきたり。
- 977 :名無しさん@お腹いっぱい。:2015/06/29(月) 10:11:16.49 ID:ka0ucbGy0.net
- >>976
プログラムは思ったとおりには動かない
書いたとおりに動くからだよ
- 978 :名無しさん@お腹いっぱい。:2015/06/29(月) 10:43:14.50 ID:0I5Issh10.net
- Mouseorg()でID指定してるのに
G_MOUSE_X/YでPeekcolor()してるとか?
- 979 :名無しさん@お腹いっぱい。:2015/06/30(火) 00:10:13.02 ID:BJA2Xrw00.net
- 連想配列の中身をcsvに書き込むのってどうやればいい?
- 980 :名無しさん@お腹いっぱい。:2015/06/30(火) 00:17:49.37 ID:eWBCRJq80.net
- 初心者なのですがここで質問していいのか分かりませんが、お答えしてもらえると嬉しいです
同じ画面でウィンドウの名前が「ひとつめ」「ふたつめ」というものがあるとして
ID1 = GETID("ひとつめ")
ID2 = GETID("ふたつめ")
dim id[] = ID1,ID2
for d = 0 to 1
CTRLWIN(id[d],ACTIVATE)
MOUSEORG(id[d],1)
next
という文だと
ひとつめのウィンドウをアクティブ化
↓
ひとつめのウィンドウを相対座標にする
↓
ふたつめのウィンドウをアクティブ化
↓
ふたつめのウィンドウを相対座標にする
ということになるのでしょうか?
手元にパソコンがないので試すこともできないので教えていただけると嬉しいです
- 981 :名無しさん@お腹いっぱい。:2015/06/30(火) 01:28:47.06 ID:Ond76hrU0.net
- ※ 有効範囲はスレッド単位
- 982 :名無しさん@お腹いっぱい。:2015/06/30(火) 01:38:14.53 ID:/I1DQEUO0.net
- テキストボックスの数字を変える場合は、
「ダブルクリック→数字キー」が良いですかね?
オススメありますか?
念のためバックスペースかましたり、あるいはコントロールA使ったりいろいろありそうですけど。
- 983 :名無しさん@お腹いっぱい。:2015/06/30(火) 12:52:55.95 ID:3s3VXGwt0.net
- 画面ロックして外出して帰ってきたんだけど、プログラム動いてなかった。なにこれ?どういうこと?
- 984 :名無しさん@お腹いっぱい。:2015/06/30(火) 12:56:27.49 ID:fj872/AM0.net
- そーゆうこと
- 985 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:07:51.12 ID:3s3VXGwt0.net
- まじっすか
ロック中でも動かす方法ある?
どうすればいいの?
- 986 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:39:09.23 ID:XitTC9f90.net
- FUKIDASIなんですが、一度表示してずっと表示されてる時と
表示した直後にすぐ消えてしまう時があります
どこで変わるのでしょうか?
表示時間みたいなパラメータ指定は無いですよね?
- 987 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:48:52.36 ID:Ond76hrU0.net
- スクリプトが終了したら消えるのでそれじゃないかな?
結果を視認しないとダメなケースはSleep入れるのも手
- 988 :名無しさん@お腹いっぱい。:2015/06/30(火) 14:30:27.22 ID:3s3VXGwt0.net
- ロック中でも他のアプリは動くけど、UWSCだけ動かないぞダメじゃん。
- 989 :名無しさん@お腹いっぱい。:2015/06/30(火) 15:22:56.20 ID:HJpJ9xnX0.net
- スクリーンセイバーは?
- 990 :名無しさん@お腹いっぱい。:2015/06/30(火) 19:38:25.50 ID:Ond76hrU0.net
- 端的にいうとマウス、キーボードに依存していないスクリプトならロック中でも動く
だって内部的には切断されるからね
- 991 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:13:13.58 ID:MQiSjpZ/0.net
- CHIKING関数で画像認識のスクリプトを練習してるのですが手詰まってましてヒントだけでもいいので教えてほしいです
例えばある二つのフォトビューワーを起動していてどちらもクリックするごとにA,B,C,Dの画像をランダムに表示するとします。
「両方にB画像が出るまでクリックを両方に繰り返す」
というものを作成したいのですが
While (CHIKING("B画像.bmp")=FALSE)
クリック作業
WEND
となると片方にBが表示されると止まってしまいますよね?
「両方にBが表示された時に」という条件はどう書けばいいのでしょうか?><
- 992 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:28:10.65 ID:RZWrQIbZ0.net
- Dim ID1 = GetID("フォトビュアー1")
Dim ID2 = GetID("フォトビュアー2")
Dim ST1[4] = Status(ID1, ST_X), Status(ID1, ST_Y), Status(ID1, ST_X) +_
Status(ID1, ST_Width), Status(ID1, ST_Y) + Status(ID1, ST_Height)
Dim ST2[4] = Status(ID2, ST_X), Status(ID2, ST_Y), Status(ID2, ST_X) +_
Status(ID2, ST_Width), Status(ID2, ST_Y) + Status(ID1, ST_Height)
While true
If !(ChkImg("B画像.bmp", 0, ST1[0], ST1[1], ST1[2], ST1[3]) Then 1のクリック
If !(ChkImg("B画像.bmp", 0, ST2[0], ST2[1], ST2[2], ST2[3]) Then 2のクリック
WEND
- 993 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:48:21.50 ID:eWBCRJq80.net
- >>992
ありがとうございます!!
- 994 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:51:56.38 ID:3s3VXGwt0.net
- スクリーンセーバーもダメだったw
しかしこれは盲点だったorz
パソコンから離れられないんだけど
皆さんはなんか工夫してんの?
- 995 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:56:36.38 ID:GbIhkVsn0.net
- chkimgの対象ウィンドウをmouseorgで切り換えたほうがいいと思う
mouseorgはchkimg以外でも使用するのが常套手段だが、使用すればchkimgにも作用してしまう。
そのため複数ウインドウ処理時は、現在の対象ウィンドウが不確かになるのを防ぐため、
常にchkimgの直前にmouseorgすると良く、記述の煩雑化を避けるためにchkimgをラッピングする
自作関数を定義し、引数にウィンドウIDを指定できるようにすると良い。
- 996 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:57:39.55 ID:RZWrQIbZ0.net
- >>994
馬鹿かお前は
UWSCはバックグランドアプリでもサービスアプリでもないアクティブアプリだ
最小化しかり、ウインドウが作成されない環境で操作できると思ってる方がおかしいわ
どうしてもやりたきゃ仮想化一択 結論出てんだろ
- 997 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:02:08.33 ID:bE8J7fSf0.net
- マウスやキーボードや画面表示に依存しないスクリプトなら動くかも?
- 998 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:03:20.74 ID:FoC7tnPp0.net
- ファイル操作くらいか。
- 999 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:04:25.60 ID:b0cRK8490.net
- >>995
STATESの勉強しに行くつもりでしたが、そちらの方が後の事を考えると手間がすくないんでしょうか?
ありがとうございます!
- 1000 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:13:22.54 ID:RZWrQIbZ0.net
- >>999
Mousorgが上級者向き
やらかすと混迷するから注意しとき
STATUSで理解した方が内部的に何やってるか理解が進むよ
- 1001 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:19:06.98 ID:b0cRK8490.net
- >>1000
なるほど....
ご丁寧にありがとうございます!
ひとまずはSTATESから勉強してみようと思います!
ていうかなんでIDがコロコロかわってるんだろう...
- 1002 :名無しさん@お腹いっぱい。:2015/07/01(水) 00:01:16.25 ID:We4qjDRi0.net
- >>994
仮想化すればロックしてても関係ない
親相手ならhardlock(true)くらい入れときゃいじられんだろ
- 1003 :名無しさん@お腹いっぱい。:2015/07/01(水) 01:09:57.39 ID:j4P+NWwq0.net
- ディスプレイの電源切るじゃダメなんですかね。
- 1004 :名無しさん@お腹いっぱい。:2015/07/01(水) 09:00:13.61 ID:ZnimBi9e0.net
- CHECKINGとかSTATESとかわざとやってんのか?
- 1005 :名無しさん@お腹いっぱい。:2015/07/01(水) 09:57:37.69 ID:SnVS9ErY0.net
- >>1004
関数は基本的にコピペで書いてたからスペルミスだ!
自分で書けるようにしといたほうがやっぱりいいよね
- 1006 :名無しさん@お腹いっぱい。:2015/07/01(水) 22:27:47.77 ID:Go3e87CM0.net
- Fnキーって押せないん?
- 1007 :名無しさん@お腹いっぱい。:2015/07/01(水) 23:20:00.93 ID:riwfsP/T0.net
- >>1006
記録でFnキーと何かのキーを一緒に押した時のキーを見れば良い
- 1008 :名無しさん@お腹いっぱい。:2015/07/02(木) 00:39:57.16 ID:ksL2h/C30.net
- Fn+win+PrtSc
とかだと綺麗にFnだけ抜けちゃうんだよね
- 1009 :名無しさん@お腹いっぱい。:2015/07/02(木) 00:47:57.80 ID:qBOipjVt0.net
- Fnキーって物理的なキーが少ない場合の補完用だから
元々押したいキーを直接押せばいいじゃないか
- 1010 :名無しさん@お腹いっぱい。:2015/07/02(木) 01:31:19.61 ID:4U6lFIXy0.net
- そもそもFnキーってWindows上で物理認識しないよね
- 1011 :名無しさん@お腹いっぱい。:2015/07/02(木) 02:41:51.97 ID:Sqf75Xur0.net
- FnはノートPCとかフルキーボードでないキーボードで不足分のキーを押せるようにしてるだけだしな
普通にPrtScを押すように指定すればいい
- 1012 :名無しさん@お腹いっぱい。:2015/07/02(木) 03:15:08.70 ID:ksL2h/C30.net
- なんと盛大に勘違いしてた
無知晒し恥ずかしい…
教えてくれた人ありがとう
- 1013 :名無しさん@お腹いっぱい。:2015/07/02(木) 10:51:10.91 ID:JLKFit2r0.net
- いいってことよ
- 1014 :名無しさん@お腹いっぱい。:2015/07/02(木) 15:09:42.42 ID:q3WzHL190.net
- <INPUT type="checkbox" value="1" name="cancelCorrectKbn" id="cancelCorrectKbn_1"><LABEL for="cancelCorrectKbn_1">取消</LABEL>
このcheckboxにチェックを入れる方法を教えて。
IESetData(oIE1,True,"cancelCorrectKbn","1")
で良いのかな?
- 1015 :名無しさん@お腹いっぱい。:2015/07/02(木) 16:50:13.35 ID:ypikNNL20.net
- つい、今しがた知ったんだけど前スレにchkimgxとかいう便利なものを作ってくれた人がいるんじゃん
これ次のテンプレ入れてもいいんじゃないの?
まぁ画像認識なんてゲームでチョメチョメするような人用だとは思うが・・・
- 1016 :名無しさん@お腹いっぱい。:2015/07/02(木) 17:39:40.15 ID:H6W3xfcg0.net
- >>1015
そうやって優しくするとそれ目的の奴らがどんどん湧くからいらんいらん
- 1017 :名無しさん@お腹いっぱい。:2015/07/02(木) 18:19:35.92 ID:rxbY/3wi0.net
- スレタイ読もう
- 1018 :名無しさん@お腹いっぱい。:2015/07/02(木) 18:45:15.60 ID:m+yQFFM10.net
- ?
- 1019 :名無しさん@お腹いっぱい。:2015/07/02(木) 18:52:27.01 ID:9y1f9FD60.net
- 「集まれ」→オフ会しようってこと?
- 1020 :名無しさん@お腹いっぱい。:2015/07/02(木) 18:56:10.78 ID:lWS9wrlo0.net
- >>8
Unityアプリは知らんけど
CTRLWINでアクティブにすればいかがだろうか?
- 1021 :名無しさん@お腹いっぱい。:2015/07/02(木) 21:30:37.16 ID:4U6lFIXy0.net
- アプリのソースがあればなんでマウスクリックが実位置になってるかわかると思うよ
ゲームのマクロなら死ね
- 1022 :名無しさん@お腹いっぱい。:2015/07/02(木) 22:42:53.89 ID:0Ew3lqg50.net
- 十中八九ゲームだろ
DLLインジェクションでマウス位置取得関数を偽装するか仮想化するしか方法ないね
- 1023 :名無しさん@お腹いっぱい。:2015/07/03(金) 02:59:40.89 ID:nWUz25pS0.net
- >>1015
テンプレ入れて欲しい。
これのおかげで、RocketMouse使わなくなったし、便利。
私はゲームじゃなくて、フラッシュによる画像をクリックさせてる。
- 1024 :名無しさん@お腹いっぱい。:2015/07/03(金) 11:59:30.04 ID:EstE0F/p0.net
- 一定時間おきに動かしてたんだけど、ちとPC1台だとやりにくくなってきたから
UWSC専用のサブPCを用意しようかなと思ったんだけど、あまり場所をとられるのは困る
こういうのでUWSC動かしている人居る?
http://www.amazon.co.jp/dp/B00U7CKDXU/
- 1025 :名無しさん@お腹いっぱい。:2015/07/03(金) 12:03:50.09 ID:vxiFtFvD0.net
- 仮想化も動かせないほどショボイPC使ってるのか
- 1026 :名無しさん@お腹いっぱい。:2015/07/03(金) 12:32:45.25 ID:EstE0F/p0.net
- >>1025
別にショボくはないけどスケジュールタスクで動かしているからメインPCがUWSCの影響を受けないようにしたい
- 1027 :名無しさん@お腹いっぱい。:2015/07/03(金) 12:38:24.18 ID:a3Chrt190.net
- 持っていないから
有効なアドバイスは出来ないが煽りに反応してもつまらんよ
スルーしとけ
- 1028 :名無しさん@お腹いっぱい。:2015/07/03(金) 13:01:22.60 ID:UXmwghDW0.net
- >1025
VMPlayer無料だしXPなら転がってるし
CPU負荷もバックグラウンドなら大してかからんし
スリムにインストールして運用したほうが
メモリ足すくらいでコストはかからんよ
同じマウスモニタモニタキーボードで操作できるほうが効率もいい
ゲーム?知らん
- 1029 :名無しさん@お腹いっぱい。:2015/07/03(金) 15:03:04.98 ID:N5TzzQmH0.net
- 新しくPC自作してマクロを並列で動かしてたんだけどchkimgかかってる場面がすごく重い
これはデスクトップコンポジションをオフにできないから?
win7のパソコンだとヌルヌル動いてくれるんだけど
- 1030 :名無しさん@お腹いっぱい。:2015/07/03(金) 15:48:25.86 ID:+iExLTGh0.net
- VRAMたりない
- 1031 :名無しさん@お腹いっぱい。:2015/07/03(金) 17:13:27.09 ID:7RoLMcdV0.net
- >>1016
どんどん湧くってのならそれなりに歓迎したいところだけど
使い方わからん奴がバンバン湧いて質問の嵐とかなる懸念がなくはないな
画像のパターン認識なんてやっぱゲーム、それも3Dの奴に使うのが大半だろうしね
流行りのスマホゲーならビット認識のchkimgだけでも充分だし
うだうだ言ったが便利なら別に別にテンプレ入れてもいいんじゃね
- 1032 :名無しさん@お腹いっぱい。:2015/07/03(金) 17:35:55.33 ID:gZLuGeEo0.net
- >>1031
ソーシャルゲーとかの板見ればわかるけど、変数が何かすら知らずに質問してる奴らと、スクリプトクレクレくんで溢れてる
便利なものをテンプレにってのは同意
けど推奨は控えるべきかと思われ
- 1033 :名無しさん@お腹いっぱい。:2015/07/03(金) 23:42:58.95 ID:N5TzzQmH0.net
- >>1030
gpu-z入れて画像をチェックしたら終了するマクロを15個ぐらい並列起動させてもVRAMにはかなり余裕があった
CPU、メモリの使用率にも余裕があるのになぜかすごく重い
他に考えられる原因ってありますか?
今の環境は
win8 pro 64bit
5960x
32gb
gtx970
- 1034 :名無しさん@お腹いっぱい。:2015/07/04(土) 00:55:35.79 ID:HgftupiM0.net
- >>1033
画面の解像度
リフレッシュレートがあってない
グラボによるオーバースキャン
エアロ・デスクトップコンポジション
二画面、マルチモニタ
モニタをまたがるウインドウの配置
マルチVGAでどっちかがフルスクリーン
DirectXアプリ
ActivX・Flash起動中
- 1035 :名無しさん@お腹いっぱい。:2015/07/04(土) 06:54:46.64 ID:Oft+aTik0.net
- >>1034
解像度、リフレッシュレート、DirectX,、ActiveXはwin7機と同じ環境、設定
二画面解除しても同じ結果になった
エアロ・デスクトップコンポジション、グラボによるオーバースキャン
このあたりが怪しいと思うんですがオーバースキャンを抑制するような設定ありますか?
- 1036 :名無しさん@お腹いっぱい。:2015/07/04(土) 10:59:56.29 ID:kljfyEkx0.net
- オーバースキャンはドライバーの設定
モニタにあわない解像度で出力してもドライバ側で
引き伸ばしたり縮小してくれる機能だから
コンパネに無ければドライバインストールフォルダにある設定ソフトがあるはず
特に恩恵を受けていないのならエアロは切ろう
コンポジションはUWSC本体右クリックでプロパティの中に
起動中のコンポジションを無効にするとかの設定がある
- 1037 :名無しさん@お腹いっぱい。:2015/07/04(土) 11:09:32.60 ID:45RPHOrf0.net
- 後、何を自動化しているかしらないけれど
環境変えたら素材イメージも更新しないとね
BMPで保存するイメージはドライバの影響を受けているので
厳密には同じ絵じゃなくなっている可能性がある
その結果ヒット率が変わっているのかもよ
- 1038 :名無しさん@お腹いっぱい。:2015/07/04(土) 14:05:09.45 ID:km5dbSUi0.net
- ワイもメモリ増量しようかな
ブルスタとこれで作業してるときつい
- 1039 :名無しさん@お腹いっぱい。:2015/07/04(土) 14:33:42.72 ID:xlKNHZD+0.net
- 空きスロットあるならメモリ増設してデメリット無いからな。
俺はノートパソコンだけどBTOで買ったから良いグラボ乗っけてる。
メモリは32GBだからAndroidエミュ10個立ち上げてもサクサク。
- 1040 :名無しさん@お腹いっぱい。:2015/07/04(土) 18:48:35.18 ID:Oft+aTik0.net
- >>1036
>>1037
genymotionでアプリのリセマラ自動化してます
例えば
REPEAT
UNTIL CHKIMG("サンプル.bmp",0)
このテストマクロをサンプルを画面に表示させない状態で15個並列起動させた場合
windows8.1の新しいパソコンだと画面全体の挙動がwindows7機に比べてすごくもっさりするんです
windows8.1だとAERO、デスクトップコンポジション切れないからこのせいかなと
windows8.1 windows7
5960x. 860
32gb 8gb
gtx960 gtx970
- 1041 :名無しさん@お腹いっぱい。:2015/07/04(土) 20:01:04.91 ID:epgCJDqf0.net
- そ、だから8.1なんか使わんよ。7であと何年もやる。
つか俺の場合は仮想マシン内はXPだがw
軽い軽い
- 1042 :名無しさん@お腹いっぱい。:2015/07/04(土) 20:49:13.06 ID:HgftupiM0.net
- >>1040
いや、切れよw
何もOSで殺す必要はないんよ
UWSC起動中だけ着るように設定しろよ
- 1043 :名無しさん@お腹いっぱい。:2015/07/04(土) 21:30:01.65 ID:Oft+aTik0.net
- windows8からはデスクトップコンポジション切れない仕様になったはずだが切れんの?
- 1044 :名無しさん@お腹いっぱい。:2015/07/04(土) 23:07:20.42 ID:HgftupiM0.net
- 切れるけど大変なんだな
知らんかったWin7の感覚だった
切り方
ttp://blog.livedoor.jp/lynnfield750/archives/27088631.html
ここの記事と、さらにコメント藍
- 1045 :名無しさん@お腹いっぱい。:2015/07/05(日) 01:07:16.51 ID:JgDg//8F0.net
- 自作関数で引数を複数渡す場合途中を省略ってできない?
A(a, ,c)
procedure A(a,b = 0,c = 0)
処理
fend
ってやるとsyntaxerror吐いてしまう
- 1046 :名無しさん@お腹いっぱい。:2015/07/05(日) 01:13:27.74 ID:rs9gq+GO0.net
- firefoxで表示しているページのhtmlを取得したいのですが、
下記よりももっとシンプルな方法は無いでしょうか?
できればCTRL+Uで新しい窓を開かずに取得したいです
id = GETID("Mozilla Firefox", "MozillaWindowClass")
SCKEY(id,VK_CTRL,U)
id_html = GETID(GET_ACTIVE_WIN)
SCKEY(id_html,VK_CTRL,A,C)
SCKEY(id_html,VK_ALT,VK_F4)
- 1047 :名無しさん@お腹いっぱい。:2015/07/05(日) 01:36:10.77 ID:zwXzQ8GA0.net
- >>1045
省略した後の引数を非省略にできない仕様だったと思う
(a, b, )→OK
(a, , )→OK
( , , )→OK
(a, , c)→NG
( , b, c)→NG
一部の引数を用意できない状況なら
一旦配列にして配列渡しをしたほうが良いんじゃないかな
引数が無い個所が出るパターンが固定なら並び方を考えるのも大事
- 1048 :名無しさん@お腹いっぱい。:2015/07/05(日) 02:04:05.01 ID:erQt0OMk0.net
- UWSCは名前付き引数渡しが出来ないからなぁ
どうしてもそれっぽくしたいならEMPTY使う手もある
こうするとスマートさは減るけれど syntaxerror にはならない
test(0)
test(1, 2)
test(2, 3, 4)
test(3, EMPTY, 5)
Procedure test(a, b=2, c=3)
if b = EMPTY then b=2
print "a=" + a + " b=" + b + " c=" + c
Fend
- 1049 :名無しさん@お腹いっぱい。:2015/07/05(日) 06:12:25.24 ID:g3mbyt+90.net
- >>1044
わざわざ調べてくれてありがとう
これ試してみる
だめだったらおとなしくwin7入れなおすわ
- 1050 :名無しさん@お腹いっぱい。:2015/07/05(日) 10:24:51.27 ID:JgDg//8F0.net
- >>1047-1048
なるほどありがとう
引数必要な場所が割と頻繁に変わるから配列にしようかな
- 1051 :名無しさん@お腹いっぱい。:2015/07/05(日) 17:36:04.87 ID:Ks2rVhpn0.net
- >>1015
こんなのあったんだな
ちょっと勉強しよう
- 1052 :名無しさん@お腹いっぱい。:2015/07/05(日) 21:38:55.42 ID:aXkkWswb0.net
- callをやっと使い始めた 便利すぎて今までの苦労がなんだったんだろうって気分
- 1053 :名無しさん@お腹いっぱい。:2015/07/05(日) 22:35:49.98 ID:Ks2rVhpn0.net
- 画像A,B,Cのいずれか一つが出て、それが出るまで待機し出たらクリックというのは
REPEAT
SLEEP(0.01)
UNTIL CHKIMG("A")=TRUE or CHKIMG("B")=TRUE or CHKIMG("C")=TRUE
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
でいいんですか?
- 1054 :名無しさん@お腹いっぱい。:2015/07/05(日) 22:55:15.19 ID:HZRtTKNa0.net
- それがあってるかどうかぐらい自分でいくらでも試せるでしょ
>>1051の勉強しようとうい言葉は何だったんだよ
ゲーム乙
- 1055 :名無しさん@お腹いっぱい。:2015/07/05(日) 23:08:29.14 ID:zwXzQ8GA0.net
- 何だゲームか
もう回答せん
- 1056 :名無しさん@お腹いっぱい。:2015/07/05(日) 23:51:22.52 ID:/3QT2bJA0.net
- >>1053
短縮評価のオプション付けてるなら動きそう
- 1057 :名無しさん@お腹いっぱい。:2015/07/06(月) 00:14:30.10 ID:1kyROCmy0.net
- このソフトをゲーム以外の何に使うんだよ?
アフィまとめとかか?
- 1058 :名無しさん@お腹いっぱい。:2015/07/06(月) 09:04:30.50 ID:zB1ir7s90.net
- OSの再起動に使うよw
- 1059 :名無しさん@お腹いっぱい。:2015/07/06(月) 12:55:06.63 ID:4H3WEyTx0.net
- PCをゲーム機としてしか使ってない人がそういう発想になってしまうのは仕方がない
- 1060 :名無しさん@お腹いっぱい。:2015/07/06(月) 16:04:28.18 ID:1kyROCmy0.net
- MSXは完全なゲーム機だったなぁ…
- 1061 :名無しさん@お腹いっぱい。:2015/07/06(月) 16:09:42.23 ID:t6BjxtuQ0.net
- 使う人次第だよ
(別にMSXでも色々出来る)
- 1062 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:16:38.45 ID:1kyROCmy0.net
- そんなの当たり前だろ
- 1063 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:30:13.12 ID:7OhpLyu70.net
- 証拠もなくゲーム乙と決め付け
証拠もなくもう回答せんと宣言するとかどんなもんよ・・・
まぁ今回は実際そうだったみたいだけど
- 1064 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:35:18.96 ID:YTCflh3t0.net
- 8〜9割はゲームだろうな
- 1065 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:36:17.52 ID:YOsw2UAz0.net
- おれはほぼアプリ操作補助だな
- 1066 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:40:57.79 ID:+gL5gVPD0.net
- おれはデバッグの仕事で使うな
ゲームのデバッグだけど
- 1067 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:54:01.18 ID:LxmhFbD40.net
- 金が儲かることってない?
やっぱ今あるかしらんけどげん玉とかだよね?
1日1万ぐらい入るやつないかな〜結構UWSC使いこなせるようになってきた
- 1068 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:57:47.34 ID:9J0wHipU0.net
- >>1067
初心者向けUWSC解説サイトでも作れば?
既存のものは本当に何の知識もない人からするとちょっと難しいと思うの
- 1069 :名無しさん@お腹いっぱい。:2015/07/06(月) 23:07:27.99 ID:7OhpLyu70.net
- >>1068
変数とはなにか?
関数とはなにか?
ってレベルからかな?
本当に金稼ごうと思うならやっぱゲームの自動化について
具体的にタイトル毎に解説とかするのがいいのかもね
艦これとかスマホゲーなら小銭稼ぎは出来そうだけど
1日1万なんてRMT業者でもやらんとどうやっても無理やろね
- 1070 :名無しさん@お腹いっぱい。:2015/07/06(月) 23:09:45.23 ID:zlB2CDHd0.net
- 有名どころはやっぱここか
PC自動化して稼いでいるアラサー(独女)ですが何か?
http://unmeino-rashinban.com/
地味にノウハウやロジックのテクニックも載ってる
- 1071 :名無しさん@お腹いっぱい。:2015/07/06(月) 23:26:13.08 ID:1kyROCmy0.net
- 俺もがんばって稼ぐわ
- 1072 :名無しさん@お腹いっぱい。:2015/07/06(月) 23:31:11.22 ID:iOXs3cIF0.net
- 獲得金額を盛りすぎだろw
現実は100分の1ってところだろうからぶっちゃけ電気代のほうが上だろう
アクセス数稼いでアフィリエイト収入が目的なんだろうけど
- 1073 :名無しさん@お腹いっぱい。:2015/07/07(火) 01:20:56.45 ID:qIahE/xQ0.net
- >>1069
変数とは何か を説明してるサイトはいくらでもあるけど
それをどのように使うのか、どう組み合わせるのか
ってのをわかりやすく解説してるサイトは少ないと思うよ
- 1074 :名無しさん@お腹いっぱい。:2015/07/07(火) 01:31:37.13 ID:flROpUbP0.net
- プログラミング出来る人なんで日本だけで何百万人もいるわけだからね
それだけで遊んで暮らせるわけはない
アフィとかRMTでよっぽど必死にならないといけない
趣味程度と考えれば、よいお小遣い稼ぎにはなるかもしれないね
俺がRMTで必死だった4〜5年前は年間600万くらい稼げた
- 1075 :名無しさん@お腹いっぱい。:2015/07/07(火) 03:53:06.03 ID:MfZoFTtg0.net
- RMTなんてROのイメージしかない
- 1076 :名無しさん@お腹いっぱい。:2015/07/07(火) 07:05:40.24 ID:CMCGAugX0.net
- 最終的に株の自動売買にいきつくんだろ
- 1077 :名無しさん@お腹いっぱい。:2015/07/07(火) 08:02:58.79 ID:HrNPEZvN5
- 株の自動売買をUWSCなんかでやってたら死ぬ
- 1078 :名無しさん@お腹いっぱい。:2015/07/07(火) 08:27:04.99 ID:pfL/ypDU0.net
- >>1068
他言語でプログラミング経験があれば簡単だけど全くの初心者にはちょっと難しいよな。
- 1079 :名無しさん@お腹いっぱい。:2015/07/07(火) 08:29:32.90 ID:UsiNOAsQ0.net
- Cの基本書一冊読んどくだけでぜんぜん違うよね
- 1080 :名無しさん@お腹いっぱい。:2015/07/07(火) 09:04:15.30 ID:a3bauCvE0.net
- マンガで覚えるvisualbasicとかそんな感じのでもいいと思う
- 1081 :名無しさん@お腹いっぱい。:2015/07/07(火) 13:57:56.56 ID:qIahE/xQ0.net
- >>1078
俺も他人が作ったどういう風に動くか分かってるスクリプトと照らし合わせながら解説サイト読んでようやく変数と関数の使い方がなんとなく分かった程度だし
予備知識や参考資料がないと入門のハードルが高いよね
- 1082 :名無しさん@お腹いっぱい。:2015/07/07(火) 16:14:31.17 ID:N6mTh2E10.net
- お知恵をお貸し下さい m(_ _)m
for u=0 to 5
sleep(0.5)
doscmd(command[u],true,true)
next
上で開いたDos窓のウインドIDをひとつずつ取得して、その後
Dos窓を制御したいんですが、何か良いアイデアはありませんか。
今 doscmd(command[u],true,true) のあとに、
ID_dos[u]=getid("system32") としているんですが、上で開いた
Dos窓のタイトルは全て同じになるので、必ず直近で開いた
Dos窓のIDを取得するとは限らないんではと思いまして・・・・
EXECのように実行時の戻り値がIDなら便利なんですが。
ちなみにgetid(get_active_win)は、uwsc自身のIDを取得してしまい
失敗でした。
- 1083 :名無しさん@お腹いっぱい。:2015/07/07(火) 16:36:03.63 ID:s0vlvKCy0.net
- >>1082
getallwinした後、system32でマッチングして
増えたものだけを抽出したらどう?
増えたものかは、取得済みID配列に格納&比較する感じで。
あんまスマートじゃないけどね
- 1084 :名無しさん@お腹いっぱい。:2015/07/07(火) 16:48:22.01 ID:s0vlvKCy0.net
- >>1082
後はstartコマンドで起動すればプロンプトのタイトルをつけられたはず
- 1085 :945:2015/07/07(火) 16:56:52.84 ID:N6mTh2E10.net
- >1083
なるほど、それは確実な方法ですね。
根がなまけものなので、面倒な方法は避けてましたが、
目が覚めました。
すばやい回答ありがとうございます。
>1084
その方法は、初めて知りました。ちょっと調べて
試してみます。
ありがとうございます。
- 1086 :名無しさん@お腹いっぱい。:2015/07/07(火) 19:51:12.80 ID:kFsPt09w0.net
- >>1082
command[u]の内容を一旦テキストに吐き出して
execでcmd.exeを起動して /k オプションでテキストに保存したコマンドラインを実行させれば
起動時からID付きで制御できるんじゃね
- 1087 :名無しさん@お腹いっぱい。:2015/07/07(火) 21:17:20.28 ID:LX6S9ePm0.net
- 初心者ですみません
KBD(VK_I,CLICK,40)
をF〜Zランダムに打つようにしたいのですがどのようにすればいいですか?
- 1088 :名無しさん@お腹いっぱい。:2015/07/07(火) 21:23:53.76 ID:NBLUHzwR0.net
- VK_F + RANDOM(20)
- 1089 :945:2015/07/07(火) 21:30:54.93 ID:N6mTh2E10.net
- >>1086
ありがとうございました。お蔭様で解決できました。
プロセス終了後自動的にウインドウを閉じたかったので
/c オプションを使用しました。
ID_dos[u]=exec("C:\WINDOWS\system32\cmd.exe /c" + command[u])
- 1090 :名無しさん@お腹いっぱい。:2015/07/07(火) 21:33:10.16 ID:LX6S9ePm0.net
- >>1088
+でしたか…
ありがとうございます
- 1091 :名無しさん@お腹いっぱい。:2015/07/08(水) 08:50:05.77 ID:+kbWNFCPY
- かんこれのマクロをUWSCでやるブログをのっけてるけど、そのページだけ一日150View平均あるわ。
アフィで儲けるための記事が大体、一日100View目指すらしいから、やるといいかもね。
- 1092 :名無しさん@お腹いっぱい。:2015/07/09(木) 06:08:30.70 ID:Kmhzy94D0.net
- AとBを交互にアクティブにしようとしてるんだけど
50回ぐらいやってるとたまーにアクティブにならない
何故かAとB両方非アクティブ状態になってるし
最終手段でelseにウィンドウ内クリックで強制的に元のウィンドウをアクティブにしてから
アクティブにしたいウィンドウに再チャレンジでなんとかうまくいってる
しかもウィンドウがタスクバーより前に出てきちゃってる
最前面指定してないのに!
似たような感じのやつはそうならないのに
違うところといえばCallしてるぐらいだ
そのうち確認しよう
- 1093 :名無しさん@お腹いっぱい。:2015/07/09(木) 06:46:59.63 ID:L0L56ZgF0.net
- IEで複数開いているタブを、新しいウィンドウに分離させたいんですが
マウス操作以外のショートカット等で指示する方法はありませんか?
- 1094 :名無しさん@お腹いっぱい。:2015/07/09(木) 08:17:31.83 ID:c4JN4w2N0.net
- >>1092
高速にウィンドウを切り替えると描画処理が正常に行われず
非アクティブの見た目だけど
内部的にはアクティブ状態ってのはある
その状態なら見た目だけの問題だから
気にせず操作させてるけどな
- 1095 :名無しさん@お腹いっぱい。:2015/07/09(木) 09:34:44.71 ID:Q6WelLG70.net
- win8.1でCCleanerがアクティブだとマクロが一切動作しないんだけどどうしたらいい?
uwsc以外のクリックマクロも動作しない
- 1096 :名無しさん@お腹いっぱい。:2015/07/09(木) 10:59:19.82 ID:c4JN4w2N0.net
- >>1095
使わなきゃえーやん
メモリクリーナーなんてあってもなくても大差ない
- 1097 :名無しさん@お腹いっぱい。:2015/07/09(木) 11:03:05.73 ID:Q6WelLG70.net
- >>1096
うーんまあそうなんだけど、ワンクリで各種ブラウザのキャッシュやらクッキー消せて便利だからね…
- 1098 :名無しさん@お腹いっぱい。:2015/07/09(木) 17:14:19.87 ID:Kmhzy94D0.net
- >>1092 の件で
Fukidasiを出したままアクティブチェンジしてたら
ウィンドウがタスクバーより前に来てた
これが原因と勝手に決め付ける!
プロでもないし使い始めてから2ヶ月ぐらいだから今はこれが限界
>>1094
画面サイズが小さくほぼ同じ位置にちょっとだけずれてる感じで表示させてるから
確実にアクティブまたは作業ウィンドウを前面表示状態にしないと操作できない
- 1099 :名無しさん@お腹いっぱい。:2015/07/09(木) 17:40:52.92 ID:TXzWgyFa0.net
- >>21
num=FORM("1",3)
num=VAL(REPLACE(num," ","0"))
とかでいいんじゃないの?
- 1100 :名無しさん@お腹いっぱい。:2015/07/09(木) 20:55:34.91 ID:XYQ7rl7i0.net
- for i=10000 to 19999
num=copy(i,2)
next
- 1101 :名無しさん@お腹いっぱい。:2015/07/09(木) 20:59:13.85 ID:xv5ijWJp0.net
- >>1097
消すべきものだけ消せばいいんじゃ?
不要なものまで毎回再取得するのは無駄どころか
余計な処理かかるから非効率。
- 1102 :名無しさん@お腹いっぱい。:2015/07/09(木) 21:41:06.35 ID:SQcv0mPJ0.net
- ここだけバック・トゥ・ザ・フューチャーかよ
- 1103 :名無しさん@お腹いっぱい。:2015/07/09(木) 22:47:27.44 ID:h60ZaVkw0.net
- CHKIMGXで動作しなくてイラついて禿げてきてたが
G_IMG_XじゃなくてG_IMGX_Xだったのね
- 1104 :名無しさん@お腹いっぱい。:2015/07/09(木) 22:57:24.42 ID:h60ZaVkw0.net
- わ、CHKIMGと感度全然違うし調節しなおさないと…
禿げそう
- 1105 :名無しさん@お腹いっぱい。:2015/07/09(木) 23:51:03.80 ID:h60ZaVkw0.net
- IMG_MSK_BGR5やIMG_MSK_BGR6で引っかかるかどうかのものを
CHKIMGXでどうにかしたかったけど、これだと逆に1%でも誤作動するしちょっと無理やな…
- 1106 :名無しさん@お腹いっぱい。:2015/07/09(木) 23:53:18.16 ID:W9h/Y0CK0.net
- すまん日記帳に頼むすまんな
- 1107 :名無しさん@お腹いっぱい。:2015/07/10(金) 01:04:10.38 ID:hFPvm6wF0.net
- ガキのようにはしゃいで、嬉しくて自慢したかったんだろうな
- 1108 :名無しさん@お腹いっぱい。:2015/07/10(金) 01:10:30.19 ID:wgi7pTXx0.net
- スレ民的にはUWSCで金稼ぐならどれが一番楽だと思う?
リスクがあるやつ(広告自演クリックとか株FXとかは抜きで)
- 1109 :名無しさん@お腹いっぱい。:2015/07/10(金) 01:13:53.86 ID:Thxsyrku0.net
- 日雇いバイト
- 1110 :名無しさん@お腹いっぱい。:2015/07/10(金) 01:50:42.68 ID:nZmHZwzA0.net
- RMT
- 1111 :名無しさん@お腹いっぱい。:2015/07/10(金) 10:04:03.65 ID:jNqBxdWp0.net
- >>1107
自慢に見えるとかガイジかな?
- 1112 :名無しさん@お腹いっぱい。:2015/07/10(金) 22:23:08.28 ID:xKcC/FQa0.net
- 普段firefox使ってます。
HTML情報の取得ってfirefoxでもできますか?
やはりIEのほうがUWSCは動作させやすいですかね?
- 1113 :名無しさん@お腹いっぱい。:2015/07/10(金) 22:52:03.79 ID:kUt+M/TA0.net
- 直接GETしちゃダメなの?
- 1114 :名無しさん@お腹いっぱい。:2015/07/10(金) 22:56:09.61 ID:xKcC/FQa0.net
- 手動で右クリックすればHTML情報をGETできるんですけど、
UWSCを使用して自動でGETしたいです。
そしてGETした情報を元に次の動作を指示させたいと考えてます。
- 1115 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:04:51.87 ID:lfN5c1rL0.net
- UWSCがIEでどうやってHTML情報の取得してるか分かってれば自明
- 1116 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:30:45.57 ID:kUt+M/TA0.net
- >>1114
そうじゃなくてブラウザ起動せずに直接通信してGETコマンド送れよって話だ
- 1117 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:53:00.01 ID:kUt+M/TA0.net
- ちょっと考えればわかることをいちいち聞くな
URL = "http://anago.2ch.net/test/read.cgi/software/1425741537/";
xGet(URL);
Procedure xGet(URI)
Dim xHTTP = CreateOleObj("MSXML2.ServerXMLHTTP");
Dim RespStat;
Dim RespText;
Fukidasi("Connect:サーバーと通信しています");
Try
xHTTP.open("GET", URI, False);
xHTTP.send;
RespStat = xHTTP.status;
RespText = xHTTP.responseText;
Fukidasi();
Except
MsgBox("Error:サーバーに接続できません");
EndTry
If RespStat = 200 Then SendStr(exec("notepad"), RespText, True);
FEnd
- 1118 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:54:01.17 ID:q/PHpgXH0.net
- HTML情報ってなに?
URLのこと?
ページのソースのこと?
- 1119 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:59:48.79 ID:IHmXmD9b0.net
- chkimgxは結構判定甘いんだよなあ
- 1120 :名無しさん@お腹いっぱい。:2015/07/11(土) 00:00:10.01 ID:wQ18/eOa0.net
- MSXML2初めて知ったときは目から鱗だったわ。
速いうえに余計なもの読み込まないから便利。
そっからAPIの便利さを知ったんだっけか。
- 1121 :名無しさん@お腹いっぱい。:2015/07/11(土) 00:39:36.51 ID:INXBCsNt0.net
- >>1119
あまいってか、曖昧な画像を検出するためのものじゃないの?
- 1122 :名無しさん@お腹いっぱい。:2015/07/11(土) 03:05:41.03 ID:GJq4cqnJ0.net
- 1%でダメなら0.5%とか0.1%とかあるじゃん
- 1123 :名無しさん@お腹いっぱい。:2015/07/11(土) 03:18:50.46 ID:iIqz5zZM0.net
- chkimgxのSCOREの閾値って自分で設定できたよな?
だとしたら甘いもクソもないんじゃないの?
- 1124 :名無しさん@お腹いっぱい。:2015/07/11(土) 10:22:12.37 ID:tudBFrUH0.net
- >>1117
これヘルプのどこ見りゃ理解できるの?
- 1125 :名無しさん@お腹いっぱい。:2015/07/11(土) 10:26:45.40 ID:bD9uI26F0.net
- uwscってオープンオフィス カルクと互換性?みたいなものってあるのでしょうか?
A1〜C1みたいに抜いて他の所に貼り付けていく様にしたいのですがオープンオフィスの操作方法を調べてもなかなかわからず・・・
Excelならありましたがオープンオフィスを使用しているもので
ご存知の方教えて頂けると助かります
- 1126 :名無しさん@お腹いっぱい。:2015/07/11(土) 10:59:54.12 ID:er37m32gB
- >>1108
アフィ自動で年間500くらい稼いでる人はいるよ
あと可能性を感じるのはネットビジネスで年数千単位で稼いでる人の
自動化マクロを作ってあげるとか
- 1127 :名無しさん@お腹いっぱい。:2015/07/11(土) 12:02:50.96 ID:PJq2M2iu0.net
- >>1122
小数点以下も行けるんか
試すわ
- 1128 :名無しさん@お腹いっぱい。:2015/07/11(土) 12:11:37.19 ID:sMw5nx/M0.net
- >>1124
UWSCはDLLとOLEObjectに対応してるってヘルプにある
DLLとOLEはWindowsの基本機能だからUWSCのヘルプに乗せる代物ではない
MSDNの所定のページで情報はいっぱいあるから気になる機能を取り込むだけ
とりあえず、OS標準の機能でできること=UWSCでできること をまず理解しろ
- 1129 :名無しさん@お腹いっぱい。:2015/07/11(土) 12:15:00.14 ID:sMw5nx/M0.net
- >>1125
OpenOfficeで公開してるDLLから操作するしかないんじゃない?
アプリ自体に外部パイプを持っていなければそれも無理だけど
そもそもEXCELだって直接介入できるわけじゃなく
EXCELファイルをOfficeを介入せず操作する機能だし
ファイルから抜き出すだけならCALCの保存形式をxcel互換で保存するだけよ
- 1130 :名無しさん@お腹いっぱい。:2015/07/11(土) 13:49:34.89 ID:I3HoroOL0.net
- テキスト文字を認識させたいのですが、
CHKIMGというのを使えばできるのでしょうか?
- 1131 :名無しさん@お腹いっぱい。:2015/07/11(土) 13:58:11.52 ID:I3HoroOL0.net
- 例えばこのスレの私のID I3HoroOL0 をuwscで認識させる場合どのようにすれば
できますか?
- 1132 :名無しさん@お腹いっぱい。:2015/07/11(土) 14:19:31.81 ID:ymiI5i4t0.net
- str="hoge"
- 1133 :名無しさん@お腹いっぱい。:2015/07/11(土) 16:40:37.59 ID:cIdo33S4R
- 画像じゃなく文字を認識するならOCR。
OCRはUWSCサンプルにもあるMODIとかを利用すればできるよ。
- 1134 :名無しさん@お腹いっぱい。:2015/07/11(土) 21:23:06.14 ID:cMx1MoW70.net
- >>1131
OCRソフトがやっていることをそのままやれば出来る。
具体的には全文字のハネや交叉点等の文字の特徴をデータベース化してそれを参照する。
言えば簡単だけど作業量が洒落にならないので
OCRソフトを買った方が速い。
- 1135 :名無しさん@お腹いっぱい。:2015/07/11(土) 21:42:59.79 ID:dd6a9D7n0.net
- >>1129
なるほど
参考になりましたありがとうございます!
- 1136 :名無しさん@お腹いっぱい。:2015/07/11(土) 22:22:42.39 ID:INXBCsNt0.net
- datをfiddlerとかと連携すればHTML変換とかできるだろうし文字列検索できなくもないような。
- 1137 :名無しさん@お腹いっぱい。:2015/07/12(日) 09:37:20.59 ID:u0O7FDyR0.net
- 次スレ建てるよ
- 1138 :名無しさん@お腹いっぱい。:2015/07/12(日) 09:48:14.03 ID:u0O7FDyR0.net
- 自動化ツールUWSC使いよ集まれ15 [転載禁止](c)2ch.net
http://hayabusa3.2ch.net/test/read.cgi/appli/1436661562/
- 1139 :名無しさん@お腹いっぱい。:2015/07/12(日) 10:32:05.06 ID:2PpuZFxXO
- おいおい、携帯電話ゲーム板に立ててるじゃないかw
- 1140 :名無しさん@お腹いっぱい。:2015/07/12(日) 11:05:24.14 ID:C9xk3NvU0.net
- 乙梅
- 1141 :名無しさん@お腹いっぱい。:2015/07/12(日) 11:15:19.32 ID:jJntFMeo0.net
- 梅梅
- 1142 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
- 1143 :名無しさん@お腹いっぱい。:2015/07/12(日) 11:42:07.99 ID:2PpuZFxXO
- >>1
過去ログのリンクが無いと稀に困るので
自動化ツールUWSC使いよ集まれ13
http://anago.2ch.sc/test/read.cgi/software/1413600379/
自動化ツールUWSC使いよ集まれ12
http://anago.2ch.sc/test/read.cgi/software/1405162342/
自動化ツールUWSC使いよ集まれ11
http://anago.2ch.sc/test/read.cgi/software/1389240960/
●前スレ
10 http://anago.2ch.net/test/read.cgi/software/1367340336/
9 http://anago.2ch.net/test/read.cgi/software/1350040751/
8 http://anago.2ch.net/test/read.cgi/software/1333915056/
7 http://anago.2ch.net/test/read.cgi/software/1312390804/
6 http://hibari.2ch.net/test/read.cgi/software/1291347103/
5 http://hibari.2ch.net/test/read.cgi/software/1260304053/
4 http://pc12.2ch.net/test/read.cgi/software/1235990960/
3 http://pc11.2ch.net/test/read.cgi/software/1176677869/
2 http://pc11.2ch.net/test/read.cgi/software/1156416884/
1 http://pc7.2ch.net/test/read.cgi/software/1107738590/
- 1144 :名無しさん@お腹いっぱい。:2015/07/12(日) 12:45:06.34 ID:2PpuZFxXO
- 次スレ
自動化ツールUWSC使いよ集まれ15
http://anago.2ch.sc/test/read.cgi/software/1436671958/
総レス数 1144
361 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200