Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html
●UWSC 掲示板(※作成依頼掲示版ではありません)
質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること
上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&;mode=past
●UWSC - Wikipedia
http://ja.wikipedia.org/wiki/UWSC
●使い方・基礎解説学習サイト
http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
http://www.confrage.com/uwsc/
http://necro.jp/dev/uwsc/
http://park14.wakwak.com/~simizu/uwsc/fruwsc.html
http://canal22.org/
http://big.tm.land.to/handbook/uwsc.htm
http://www.game-rev.com/review/gameut/uwsc.html
●スクリプトテンプレサイト
http://izagne.com/uwsc/
http://scripts.web.fc2.com/
http://www.nagomi-jp.net/~liners/
http://nem.symphonic-net.com/uwsct/0610uwsct.html
http://siromasa.digi2.jp/uwsc/
http://iriyak.adam.ne.jp/uwsc.html
前スレ 自動化ツールUWSC使いよ集まれ18
http://potato.2ch.net/test/read.cgi/software/1469866649/
探検
自動化ツールUWSC使いよ集まれ19 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/12/04(日) 17:04:38.16ID:nLvo1o5D0
2017/02/17(金) 21:53:12.63ID:iAbXlHyw0
2017/02/17(金) 23:00:40.04ID:mxi6j7HJ0
だからそれは自動化ツールの域超えてるだけじゃん
2017/02/17(金) 23:12:44.72ID:iAbXlHyw0
だからもなにも、UWSCにはそういうAPIが用意されてると言ってるんだが?
自分に作る能力がない?自分の用途では不要?だから粋を超えてるとか、お前何様すかw
自分に作る能力がない?自分の用途では不要?だから粋を超えてるとか、お前何様すかw
2017/02/17(金) 23:29:21.56ID:glJ5dClm0
>>454
自分が低能だからって他もそうだなんて考えたらいかん
自分が低能だからって他もそうだなんて考えたらいかん
2017/02/18(土) 00:30:10.80ID:txoGBDrd0
やりたいことできないAPIって
無いのと同じだろ
無いのと同じだろ
2017/02/18(土) 04:31:09.41ID:rAtcmUsD0
どういう意味で行ったか知らんが枠超えてるってのは俺も昔から思ってる。
データベース処理はデータベースアプリケーションを使って処理し、
そのアプリを自動化するならUWSCの範疇だが、
UWSC内に何でもかんでも実装してこなすのは、EXCEL方眼紙と一緒。
公式掲示板でもたまにいるが数万件レベルのデータ処理を
スクリプト内で文字列操作とループ使って遅々とした処理するとか、
趣味ならまだしも仕事でやるの迷惑でしょ。
データベース処理はデータベースアプリケーションを使って処理し、
そのアプリを自動化するならUWSCの範疇だが、
UWSC内に何でもかんでも実装してこなすのは、EXCEL方眼紙と一緒。
公式掲示板でもたまにいるが数万件レベルのデータ処理を
スクリプト内で文字列操作とループ使って遅々とした処理するとか、
趣味ならまだしも仕事でやるの迷惑でしょ。
2017/02/18(土) 04:55:08.41ID:IOLOKq+X0
そうはいってもここにいる連中はUWSC"しか"使えないんだろw
2017/02/18(土) 05:47:46.46ID:XpXWKsL60
だってIEオブジェでウインドウ簡単に作れるからデータ入力楽なんだもの
Submit押したらデータベースにダイレクトに格納したくなるじゃないの
Submit押したらデータベースにダイレクトに格納したくなるじゃないの
2017/02/18(土) 07:06:59.85ID:CKuZCERM0
いきなり数万レコードとかハードルあげてくる馬鹿w
2017/02/18(土) 10:50:03.32ID:esiT40SW0
エクセル方眼紙で1マス1字で文章書いてる役所があったな
活版印刷かよ?
活版印刷かよ?
2017/02/18(土) 13:23:36.20ID:ZYnWBog+0
sqlite取り敢えず動くようなのでペタリ
ttp://pastebin.com/GqEez7mT
調べながら書いたので間違い多いと思うし速度も調べてない
暇つぶしにどうぞ
ttp://pastebin.com/GqEez7mT
調べながら書いたので間違い多いと思うし速度も調べてない
暇つぶしにどうぞ
2017/02/18(土) 13:57:50.07ID:plPkAqUn0
>>463
ほほう
ほほう
2017/02/18(土) 15:47:58.54ID:GaAaEaa20
>>463
山県さん?
山県さん?
2017/02/19(日) 01:17:15.04ID:ZqKd6/Ft0
0から9までの数字をランダムかつ同じものを使わないで1個ずつクリップボードに送りたいんですがどうしたらできるでしょうか?
SLCTBOXでボタンを押すたびに送ろうと思ってます
SLCTBOXでボタンを押すたびに送ろうと思ってます
2017/02/19(日) 01:38:40.77ID:IcttVwTy0
引いた数字を除外しつつランダムで数字選べばいいだけでは?
2017/02/19(日) 01:52:47.26ID:Ko0bngu/0
2017/02/19(日) 02:19:51.22ID:x47RUa6o0
2017/02/19(日) 02:48:52.49ID:PQgx03v30
最初に全要素を配列か何かに格納しておいて
その要素数までの乱数で1個選ぶ
選んだ要素を除いた配列を作る
以後繰り返し
扱うのが1桁の数字なら、配列にしなくても
連結して文字列で扱う方が簡単だな
その要素数までの乱数で1個選ぶ
選んだ要素を除いた配列を作る
以後繰り返し
扱うのが1桁の数字なら、配列にしなくても
連結して文字列で扱う方が簡単だな
2017/02/19(日) 02:55:08.19ID:OLXdmsaT0
>>466
DIM RNDarry[] = 0,1,2,3,4,5,6,7,8,9;//初期化
FOR i=0 TO 9;rnd = random(9);tmp = RNDarry[rnd];RNDarry[rnd] = RNDarry[i];RNDarry[i] = tmp;NEXT //シャッフル
FOR i=0 TO 9;SENDSTR(0,RNDarry[i]);MSGBOX((i+1)+"個目");NEXT;//転送
DIM RNDarry[] = 0,1,2,3,4,5,6,7,8,9;//初期化
FOR i=0 TO 9;rnd = random(9);tmp = RNDarry[rnd];RNDarry[rnd] = RNDarry[i];RNDarry[i] = tmp;NEXT //シャッフル
FOR i=0 TO 9;SENDSTR(0,RNDarry[i]);MSGBOX((i+1)+"個目");NEXT;//転送
2017/02/19(日) 03:12:31.38ID:BGdduGK80
MsgBox( GetRundom() )
Function GetRundom()
Str = "1234567890"
While Length(Str)
Cut = Int(Random(Length(Str) * 10 + 9) / 10)
Tmp = Copy(Str, Cut, 1)
Result = Result + Copy(Str, Cut, 1)
Str = ChgMoj(Str, Tmp, "")
WEnd
FEnd
Function GetRundom()
Str = "1234567890"
While Length(Str)
Cut = Int(Random(Length(Str) * 10 + 9) / 10)
Tmp = Copy(Str, Cut, 1)
Result = Result + Copy(Str, Cut, 1)
Str = ChgMoj(Str, Tmp, "")
WEnd
FEnd
2017/02/19(日) 08:43:09.32ID:+lYjkYs/0
UWSCほぼ関係ないロジックの問題なのに、コードまで提供して甘やかすなあw
>>468
DIM n[9]=0, 1, 2, 3, 4, 5, 6, 7, 8, 9
こういう配列があったときに、どうやったら中身をシャッフルできるか考えてみよう。
シャッフル終われば順に取り出すとその数字はランダム。
>>468
DIM n[9]=0, 1, 2, 3, 4, 5, 6, 7, 8, 9
こういう配列があったときに、どうやったら中身をシャッフルできるか考えてみよう。
シャッフル終われば順に取り出すとその数字はランダム。
2017/02/19(日) 23:20:50.57ID:ad9NqWIq0
シンプルに質問と答えのやりとりならいいが
クイズ形式みたいのは他でやってくれないかなあ
クイズ形式みたいのは他でやってくれないかなあ
2017/02/20(月) 00:05:47.94ID:gBkCslTW0
魚の取り方を教えるよりも魚をくれと言う
2017/02/20(月) 22:11:44.99ID:iDB5u8Y40
本職のプログラマなら答えを見る前にアルゴリズムを自力で考案する試みをすべきかもしれんが…
所詮エンドユーザーなので、アルゴリズムの回答をググって見つけ出す方法を教えたほうが良い。
この場合、シャッフルというキーワードを思いつけばあとは自力でググれる。
所詮エンドユーザーなので、アルゴリズムの回答をググって見つけ出す方法を教えたほうが良い。
この場合、シャッフルというキーワードを思いつけばあとは自力でググれる。
2017/02/21(火) 10:57:35.81ID:NQoR/l/A0
5.2.2や5.2.3にするとsleepが1桁増えたみたいに遅くなって使い物にならない・・・
5.2.1に戻すと大丈夫だから良いけどバージョンアップできないのはなんか気持ち悪いなぁ
5.2.1に戻すと大丈夫だから良いけどバージョンアップできないのはなんか気持ち悪いなぁ
2017/02/21(火) 14:46:38.50ID:TlDvhJdM0
>>477
コードを上下を挟んでモジュール化してオーバーロード
overload.Run()
MODULE overload
PROCEDURE Run()
※自前のコード部分※
FEND
PROCEDURE sleep(sec)
DEF_DLL SleepEx(DWORD,BOOL): void: kernel32
SleepEx(sec*1000,false)
FEND
ENDMODULE
コードを上下を挟んでモジュール化してオーバーロード
overload.Run()
MODULE overload
PROCEDURE Run()
※自前のコード部分※
FEND
PROCEDURE sleep(sec)
DEF_DLL SleepEx(DWORD,BOOL): void: kernel32
SleepEx(sec*1000,false)
FEND
ENDMODULE
2017/02/21(火) 15:07:21.04ID:F1bV94+L0
俺のところではpeekcolorがやたら遅い
2017/02/23(木) 12:49:17.48ID:w/aJQ7aD0
PyAutoGUIなんてあるんだな。
そろそろUWSC卒業したいわ。
そろそろUWSC卒業したいわ。
2017/02/23(木) 19:14:03.97ID:PKaejp+00
IE.document.get~
みたいに、.で次々参照できるオブジェクトみたいなものを
UWSCで自分で作りたいのですがどうすればいいのか教えていただけませんか?
みたいに、.で次々参照できるオブジェクトみたいなものを
UWSCで自分で作りたいのですがどうすればいいのか教えていただけませんか?
2017/02/24(金) 08:06:24.38ID:YA7dESPe0
・moduleを使う(ただしオブジェクトではない)
・「C言語などで」COMを作って、UWSCでcreateoleobjectして使う
・「C言語などで」COMを作って、UWSCでcreateoleobjectして使う
2017/02/24(金) 18:54:26.19ID:TYy6ks8S0
三次元配列はどのように記述するのでしょうか?
2017/02/25(土) 04:10:39.82ID:9aUQw1ep0
UWSCでウインドウのメニューなどを含まない描画領域を取得するにはどうすればよいでしょうか?
APIのGetClientRectの値が欲しいです。よろしくお願いします。
APIのGetClientRectの値が欲しいです。よろしくお願いします。
2017/02/25(土) 11:36:13.83ID:SqL6WI4q0
>>483
どう、って二次元配列と同じように
どう、って二次元配列と同じように
2017/02/25(土) 11:51:08.99ID:SqL6WI4q0
>>484
statusで
statusで
2017/02/25(土) 11:59:21.87ID:OuQnz1ch0
2017/02/25(土) 12:21:58.41ID:Z4H+dPtW0
クライアント領域の座標取得できるが、これとは違うって意味?
2017/02/25(土) 12:22:42.64ID:Z4H+dPtW0
ヘルプ読んでない類なのかな…
2017/02/25(土) 12:58:20.48ID:SqL6WI4q0
2017/02/25(土) 13:04:40.38ID:Z4H+dPtW0
2017/02/25(土) 13:21:01.72ID:smopy31V0
>>485
すみません、三次元配列の要素の書き方が分からないです、括弧などは使えませんよね
すみません、三次元配列の要素の書き方が分からないです、括弧などは使えませんよね
2017/02/25(土) 13:29:18.00ID:J9vwpLVK0
>>484
ヘルプからそのまま
// ウィンドウの各種状態を返す
戻値 = STATUS( ID, 取得したいもの )
ST_CLX // クライアント領域のX座標を返す
ST_CLY // クライアント領域のY座標を返す
ST_CLWIDTH // クライアント領域の幅を返す
ST_CLHEIGHT // クライアント領域の高さを返す
これじゃだめなの?
ヘルプからそのまま
// ウィンドウの各種状態を返す
戻値 = STATUS( ID, 取得したいもの )
ST_CLX // クライアント領域のX座標を返す
ST_CLY // クライアント領域のY座標を返す
ST_CLWIDTH // クライアント領域の幅を返す
ST_CLHEIGHT // クライアント領域の高さを返す
これじゃだめなの?
2017/02/25(土) 13:48:00.81ID:SqL6WI4q0
>>491
GetClientRect 関数
https://msdn.microsoft.com/ja-jp/library/cc364604.aspx
>lpRect
>構造体へのポインタを指定します。この構造体にクライアント領域の座標が格納されます。
>left メンバと top メンバは 0 になります。right メンバと bottom メンバは、クライアント領域の幅と高さになります。
GetClientRect 関数
https://msdn.microsoft.com/ja-jp/library/cc364604.aspx
>lpRect
>構造体へのポインタを指定します。この構造体にクライアント領域の座標が格納されます。
>left メンバと top メンバは 0 になります。right メンバと bottom メンバは、クライアント領域の幅と高さになります。
2017/02/25(土) 13:51:35.47ID:SqL6WI4q0
>>492
たとえば
dim ary[3][4][5]
for i=0 to 2
for j = 0 to 3
for k = 0 to 4
ary[i][j][k] = i + j + k
next
next
next
たとえば
dim ary[3][4][5]
for i=0 to 2
for j = 0 to 3
for k = 0 to 4
ary[i][j][k] = i + j + k
next
next
next
2017/02/25(土) 13:56:41.60ID:SqL6WI4q0
あ、あれUWSCって配列サイズ指定は要素数じゃなくてインデックス上限値だっけ…
うう、よしなに読み替えてください
うう、よしなに読み替えてください
2017/02/25(土) 19:49:59.72ID:PqKfLwsL0
>>495
伝わりづらくてごめんなさい
既に入れる要素が決まってる場合の記述を知りたいです
一次元の場合
dim ary[1] = 1,2
二次元の場合
dim ary[1][1] = 1,2,_
3,4,
三次元の場合
dim ary[1][1][1] = ??
と、言う具合です
伝わりづらくてごめんなさい
既に入れる要素が決まってる場合の記述を知りたいです
一次元の場合
dim ary[1] = 1,2
二次元の場合
dim ary[1][1] = 1,2,_
3,4,
三次元の場合
dim ary[1][1][1] = ??
と、言う具合です
2017/02/25(土) 20:57:15.29ID:SqL6WI4q0
>>497
え、そんな書き方があったのか…
と思ったけど、それ単に "_" で形結合してるだけね
配列初期化は単純に順に埋っていくだけのようなので
三次元だろうが書き連ねていけばいいみたいです
dim ary[1][1] = 1,2,3,4
dim ary[1][1][1] = 1,2,3,4,5,6,7,8
え、そんな書き方があったのか…
と思ったけど、それ単に "_" で形結合してるだけね
配列初期化は単純に順に埋っていくだけのようなので
三次元だろうが書き連ねていけばいいみたいです
dim ary[1][1] = 1,2,3,4
dim ary[1][1][1] = 1,2,3,4,5,6,7,8
2017/02/25(土) 21:31:47.61ID:PqKfLwsL0
2017/02/25(土) 21:51:22.98ID:SqL6WI4q0
2017/02/26(日) 19:07:09.68ID:zJL7+0Sy0
comオブジェクトで開いてないブラウザを特定の位置にスクロールさせたい場合どうしたら良いでしょうか?
2017/02/27(月) 07:04:33.42ID:JlXKCF710
2017/02/27(月) 07:26:52.23ID:JlXKCF710
>>484で教えていただいたのですが
思った通りに出来なったのかでもう一度質問させてください。
IEでhtmlが表示されている描画領域の座標を取得したいのですが
どうすればよいでしょうか?
(メニューやアドレスバー、ツールバーのせいで座標が狂ってしますのです)
思った通りに出来なったのかでもう一度質問させてください。
IEでhtmlが表示されている描画領域の座標を取得したいのですが
どうすればよいでしょうか?
(メニューやアドレスバー、ツールバーのせいで座標が狂ってしますのです)
2017/02/27(月) 08:46:56.65ID:4I3Wp9+J0
>>498
マジで!?裏ワザすぎるw
マジで!?裏ワザすぎるw
2017/02/27(月) 08:57:48.49ID:yGQqNXEz0
>>503
まず
GETID(GET_FROMPOINT_OBJ)
を使ってIEのウェブページが表示される部分にマウスを持っていきIDを取得する
STATUS(id,ST_CLASS)
でウェブページが表示される部分のクライアントIDのクラス名が
Internet Explorer_Server であることがわかるので
id = GETID("Internet Explorer", "IEFrame", -1)
n = GETALLWIN(id)
for i = 0 to n -1
ifb pos("Internet Explorer_Server",STATUS(ALL_WIN_ID[i],ST_CLASS))
id = ALL_WIN_ID[i]
endif
next
MMV(STATUS(id,ST_CLX),STATUS(id,ST_CLY))//動作チェック用
まず
GETID(GET_FROMPOINT_OBJ)
を使ってIEのウェブページが表示される部分にマウスを持っていきIDを取得する
STATUS(id,ST_CLASS)
でウェブページが表示される部分のクライアントIDのクラス名が
Internet Explorer_Server であることがわかるので
id = GETID("Internet Explorer", "IEFrame", -1)
n = GETALLWIN(id)
for i = 0 to n -1
ifb pos("Internet Explorer_Server",STATUS(ALL_WIN_ID[i],ST_CLASS))
id = ALL_WIN_ID[i]
endif
next
MMV(STATUS(id,ST_CLX),STATUS(id,ST_CLY))//動作チェック用
2017/02/27(月) 11:20:36.47ID:rOmeQkZf0
2017/02/27(月) 11:45:31.92ID:ybz5GOST0
他の言語は普通は{ }でくくるけどな
2017/02/27(月) 19:06:15.36ID:wSvhHcaO0
FlashPlayerで動いている数字の取得って無理なんですか?
2017/02/27(月) 19:16:46.26ID:B1yTXikK0
>>508
動いてなくても無理でしょ。
動いてなくても無理でしょ。
2017/02/27(月) 19:39:49.13ID:yGQqNXEz0
>>508
数字のサンプルを画像切り抜いてchkimgで処理するとか
数字のサンプルを画像切り抜いてchkimgで処理するとか
2017/02/27(月) 20:28:35.74ID:AVldueBV0
2017/02/27(月) 22:08:26.29ID:9wX33izA0
>>508
> FlashPlayerで動いている数字の取得って無理なんですか?
あなたの日本語すごく分かりにくいね。
エスパーなしで額面解釈すると、
「動いている数字を、FlashPlayerを使って取得したい」
と読めてしまう。
ただ、このスレでその質問は無いだろうからエスパーするんだが、もはやそういう日本語を使う人の文面は疑ってかかることになるから、「動く」の概念もハッキリさせてくれ。
FlashPlayerでworkされた数字なのか、
FlashPlayerの表示の中でmove(motion)している数字なのか。
> FlashPlayerで動いている数字の取得って無理なんですか?
あなたの日本語すごく分かりにくいね。
エスパーなしで額面解釈すると、
「動いている数字を、FlashPlayerを使って取得したい」
と読めてしまう。
ただ、このスレでその質問は無いだろうからエスパーするんだが、もはやそういう日本語を使う人の文面は疑ってかかることになるから、「動く」の概念もハッキリさせてくれ。
FlashPlayerでworkされた数字なのか、
FlashPlayerの表示の中でmove(motion)している数字なのか。
2017/02/27(月) 22:30:49.28ID:+IBPHnSj0
君コミュ苦手そうやなあ
2017/02/27(月) 23:00:55.30ID:aic1gsmF0
実際俺が作ったやつだと、flash作ったやつがアホか何かで、
数字の配置のX座標が小数点まで設定されていて、
位置によってアンチエイリアスの掛かり方が変わって、同じ画像では認識できず、
全ての位置で違うマッチング用の画像を用意した
数字の配置のX座標が小数点まで設定されていて、
位置によってアンチエイリアスの掛かり方が変わって、同じ画像では認識できず、
全ての位置で違うマッチング用の画像を用意した
2017/02/27(月) 23:44:47.16ID:AVldueBV0
>>512
ネイティブじゃない人がそういうこと言うのはどうかと…
ネイティブじゃない人がそういうこと言うのはどうかと…
2017/02/28(火) 09:19:29.75ID:luielEWi0
2017/02/28(火) 10:55:08.87ID:cwO4OCmh0
「無理でしょ」も合わせて3人だな
UWSCから利用できるOCRライブラリとかあれば出来そう
UWSCから利用できるOCRライブラリとかあれば出来そう
2017/02/28(火) 12:06:31.53ID:oAMcfL5p0
UWSCだけでは無理
UWSC以外も含む全世界のソフト結集したら…多分出来る
UWSC以外も含む全世界のソフト結集したら…多分出来る
2017/02/28(火) 12:07:31.16ID:WHfTMHN10
フラッシュで再生中の数字的な画面表記(画像)を認識
→ アンチエイリアスがかかるから通常の画像認識では無理
グラボやブラウザによっても発色が違うので別機種動作は保証できない
フラッシュ中でカウンタやメモリ的に管理されている数字を取得
→ システム上介入は困難、それなりのAPIを扱える知識が必要
専用アプリや、Flashプレイヤーなどはもはや論外レベル
→ アンチエイリアスがかかるから通常の画像認識では無理
グラボやブラウザによっても発色が違うので別機種動作は保証できない
フラッシュ中でカウンタやメモリ的に管理されている数字を取得
→ システム上介入は困難、それなりのAPIを扱える知識が必要
専用アプリや、Flashプレイヤーなどはもはや論外レベル
2017/02/28(火) 12:20:49.57ID:cwO4OCmh0
>数字的な画面表記(画像)
って正確でもないし分かりにく過ぎるw
「画像で表示された数字」でいいんじゃないの
検索してみるとUWSCからのOCRは
MicrosoftのMODIってのとか
googleのCapture2Textとかってのが利用できるらしい
OCRは普通二階調化するから発色は関係ないと思うよ
回転や歪みがあったり分かりづらい背景だと難しいと思う
って正確でもないし分かりにく過ぎるw
「画像で表示された数字」でいいんじゃないの
検索してみるとUWSCからのOCRは
MicrosoftのMODIってのとか
googleのCapture2Textとかってのが利用できるらしい
OCRは普通二階調化するから発色は関係ないと思うよ
回転や歪みがあったり分かりづらい背景だと難しいと思う
2017/02/28(火) 12:35:44.43ID:luielEWi0
てか>>508はそのサイト貼れば的確な答えかってくるのにな
2017/02/28(火) 14:27:51.76ID:pq3cmI0V0
>>520
http://mgg.wp.xdomain.jp/archives/367
ここ参考にMODI試してみた。
そのサンプルのテキストエディタの画面コピーして
全画面 → エラー
「modidoc.Create( GET_UWSC_DIR+"\ocrtest.bmp" )」ここだけ切り取り → エラー
「Create」ここだけ切り取り → 認識して Createの表示
画像のゆがみもゆらぎもなくてこれでは、なかなか厳しいすね。
なお、CONST miLANG_JAPANESE = 17 を追加して日本語指定も試してみたけど一文字も
認識できなかった。
http://mgg.wp.xdomain.jp/archives/367
ここ参考にMODI試してみた。
そのサンプルのテキストエディタの画面コピーして
全画面 → エラー
「modidoc.Create( GET_UWSC_DIR+"\ocrtest.bmp" )」ここだけ切り取り → エラー
「Create」ここだけ切り取り → 認識して Createの表示
画像のゆがみもゆらぎもなくてこれでは、なかなか厳しいすね。
なお、CONST miLANG_JAPANESE = 17 を追加して日本語指定も試してみたけど一文字も
認識できなかった。
2017/02/28(火) 14:49:16.92ID:cwO4OCmh0
>>522
>テキストエディタの画面コピー
普通のOCRソフトで試したことあるが画面上の通常の大きさのフォントは認識率悪いね
508のがシンプルな数字のみ大映しとかの場合、もしかしたら行ける?てくらいかも
>テキストエディタの画面コピー
普通のOCRソフトで試したことあるが画面上の通常の大きさのフォントは認識率悪いね
508のがシンプルな数字のみ大映しとかの場合、もしかしたら行ける?てくらいかも
2017/02/28(火) 15:11:56.47ID:oAMcfL5p0
>>523
そういうのはwaifuとかで拡大処理したものをOCRに掛けるとかなり認識率高くなると思う
そういうのはwaifuとかで拡大処理したものをOCRに掛けるとかなり認識率高くなると思う
2017/02/28(火) 15:17:07.70ID:cwO4OCmh0
そうだろうね
そこまでUWSCに組み込むのは大変そうだけどw
そこまでUWSCに組み込むのは大変そうだけどw
2017/03/02(木) 14:28:42.64ID:LWBBZM3C0
UWSCで排他制御しようと思ってるんですが
http://d.hatena.ne.jp/junjun777/20110810/uwsc_mutex
ここのソースを実行してみたところ(スレッド数は4にしてます)
以下のようなログが出力されるのですが、同じログが複数出るのと
finやstartが出力されない時があるのが理解不能です。何故なのか教えてくれませんか?
21:10.308 TestThread init 1
21:10.346 TestThread start 1 True
21:10.364 TestThread init 2
21:10.385 TestThread init 3
21:10.406 TestThread init 4
21:10.462 TestThread end 1(154)
21:10.475 TestThread fin 1 True(167)
21:10.475 TestThread start 2 True
21:10.582 TestThread end 2(218)
21:10.610 TestThread fin 2 True(246)
21:10.611 TestThread start 4 True
21:10.719 TestThread end 4(313)
21:10.723 TestThread start 3 True
21:10.723 TestThread start 3 True
21:10.881 TestThread end 3(496)
21:10.885 TestThread fin 3 True(500)
http://d.hatena.ne.jp/junjun777/20110810/uwsc_mutex
ここのソースを実行してみたところ(スレッド数は4にしてます)
以下のようなログが出力されるのですが、同じログが複数出るのと
finやstartが出力されない時があるのが理解不能です。何故なのか教えてくれませんか?
21:10.308 TestThread init 1
21:10.346 TestThread start 1 True
21:10.364 TestThread init 2
21:10.385 TestThread init 3
21:10.406 TestThread init 4
21:10.462 TestThread end 1(154)
21:10.475 TestThread fin 1 True(167)
21:10.475 TestThread start 2 True
21:10.582 TestThread end 2(218)
21:10.610 TestThread fin 2 True(246)
21:10.611 TestThread start 4 True
21:10.719 TestThread end 4(313)
21:10.723 TestThread start 3 True
21:10.723 TestThread start 3 True
21:10.881 TestThread end 3(496)
21:10.885 TestThread fin 3 True(500)
2017/03/02(木) 17:03:01.74ID:SpLAcwuU0
>>526
Log("TestThread fin " + id + " " + Mutex.Unlock(id), s)
log()に渡すパラメータ作る時点でmutexのアンロック行われるから、その後に交錯しちゃって
るんじゃないすかね?PRINTの中身がスレッドセーフかどうかもわからんし。
それこそ、log()自体をmutexで排他制御しないとw
Log("TestThread fin " + id + " " + Mutex.Unlock(id), s)
log()に渡すパラメータ作る時点でmutexのアンロック行われるから、その後に交錯しちゃって
るんじゃないすかね?PRINTの中身がスレッドセーフかどうかもわからんし。
それこそ、log()自体をmutexで排他制御しないとw
2017/03/03(金) 13:33:52.21ID:SixlcSz20
オブジェクト指向をはじめてみた
よくわかんないけど
「主語(クラス) + 動詞(メソッド:クラスの中に置く自作関数) + 目的語(引数)」
って認識でいいんか?
よくわかんないけど
「主語(クラス) + 動詞(メソッド:クラスの中に置く自作関数) + 目的語(引数)」
って認識でいいんか?
2017/03/03(金) 13:47:38.41ID:hlpbi84m0
>>528
最初はそれでもいいかも
同じ指令でも中の人が違えば動きが違うので用途に応じて中の人を変えるとか、
同じ命令でも引数に渡したクラスが違えば動作変えられるとか、
中の人がその人に合ったデータ覚えていて、頼む人が全部用意する必要がないとかは、
後でやってれば覚える
最初はそれでもいいかも
同じ指令でも中の人が違えば動きが違うので用途に応じて中の人を変えるとか、
同じ命令でも引数に渡したクラスが違えば動作変えられるとか、
中の人がその人に合ったデータ覚えていて、頼む人が全部用意する必要がないとかは、
後でやってれば覚える
2017/03/03(金) 14:05:25.76ID:SixlcSz20
2017/03/03(金) 22:32:47.45ID:tQWP9tGB0
以下のような形でchkimgxを使い、目的の画像を見つけたら押すという処理にしたかったのですが。
画像は見つけられてもクリック位置がずれてしまい、うまく押してくれません。
画像を見つけた位置をクリックするようにするにはどうしたら良いのでしょうか?
MID = GETID("ブラウザ名","Chrome_WidgetWin_1")
GID = GETCTLHND(MID,"Chrome_RenderWidgetHostHWND")
id = HNDtoID(GID)
画像は見つけられてもクリック位置がずれてしまい、うまく押してくれません。
画像を見つけた位置をクリックするようにするにはどうしたら良いのでしょうか?
MID = GETID("ブラウザ名","Chrome_WidgetWin_1")
GID = GETCTLHND(MID,"Chrome_RenderWidgetHostHWND")
id = HNDtoID(GID)
2017/03/03(金) 22:33:37.14ID:tQWP9tGB0
MOUSEORG(id)
sleep(1)
if chkimgx("無題.png",0) then
print "見つけた スコア:" + G_IMGX_SCORE
acw(id)
mmv(G_IMGX_X, G_IMGX_Y)
btn(LEFT, CLICK, G_IMGX_X, G_IMGX_X)
endif
sleep(1)
if chkimgx("無題.png",0) then
print "見つけた スコア:" + G_IMGX_SCORE
acw(id)
mmv(G_IMGX_X, G_IMGX_Y)
btn(LEFT, CLICK, G_IMGX_X, G_IMGX_X)
endif
2017/03/03(金) 22:58:19.61ID:Q4N1gAfO0
ずれてるって言ってもランダムとかめちゃめちゃじゃなくて
一定の値でずれてるはずだと思うんだけど
何に使ってるか知らんけど、ずれてる値を自分で調べて補正すればいいだけ
俺もChromeでそういうふうだからラップ関数作って補正して使ってる
一定の値でずれてるはずだと思うんだけど
何に使ってるか知らんけど、ずれてる値を自分で調べて補正すればいいだけ
俺もChromeでそういうふうだからラップ関数作って補正して使ってる
2017/03/03(金) 23:54:23.13ID:tQWP9tGB0
>>533
確かにランダムではなく一定の値でずれてそうですね。ありがとうございます、補正してみます。
確かにランダムではなく一定の値でずれてそうですね。ありがとうございます、補正してみます。
2017/03/04(土) 09:53:42.09ID:1wPNApkh0
>>531
chkimgxのdll欲しいです
chkimgxのdll欲しいです
536名無しさん@お腹いっぱい。
2017/03/04(土) 20:28:51.31ID:Hr2MdkrF0 (環境)
Windows7
Office2007
これで、ExcelをUWSCで操作することを考えているのですが
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.open("C:\Users\pro7\Desktop\1.xls")
SENDSTR(0,"=20160000+VALUE(LEFT(B12,2))*100+IF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10+VALUE(MID(B12,5,1))")
//絶対移動+入力「Excelの日付算出」
EXCEL.Range("N9")
EXCEL.ActiveCell.value = "=20160000+VALUE(LEFT(B12,2))*100+IF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10+VALUE(MID(B12,5,1))"
と言う文で18行目でCOM_Errorが起きるのですが、原因が分かりません
18行目の""で囲ってある数式内のIF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10を消せば動きますが、""で囲っている内部の文字列・数式が影響することはあるんでしょうか?
どうにかしてifの部分も消さずに使いたいで消したくないのです
Windows7
Office2007
これで、ExcelをUWSCで操作することを考えているのですが
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.open("C:\Users\pro7\Desktop\1.xls")
SENDSTR(0,"=20160000+VALUE(LEFT(B12,2))*100+IF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10+VALUE(MID(B12,5,1))")
//絶対移動+入力「Excelの日付算出」
EXCEL.Range("N9")
EXCEL.ActiveCell.value = "=20160000+VALUE(LEFT(B12,2))*100+IF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10+VALUE(MID(B12,5,1))"
と言う文で18行目でCOM_Errorが起きるのですが、原因が分かりません
18行目の""で囲ってある数式内のIF(MID(B12,4,1)=< #DBL> < #DBL>,0,MID(B12,4,1))*10を消せば動きますが、""で囲っている内部の文字列・数式が影響することはあるんでしょうか?
どうにかしてifの部分も消さずに使いたいで消したくないのです
2017/03/04(土) 22:18:52.37ID:3Yt1r+EC0
動作中にトリガーが発生したらUWSC自体を一時停止するように組もうとしています。
そのために
kbd(vk_alt, down, 100)
kbd(vk_F1, down, 100)
としましたが、こうすると一時停止にはなるものの、その間どうもALTキーが押されっぱなしのようでほかの作業に支障をきたしました。
上の2行のあとに
kbd(vk_alt, up, 100)等を付け加えても改善しませんでした。
もし解決策がありましたら教えていただけませんでしょうか。
よろしくお願いいたします。
そのために
kbd(vk_alt, down, 100)
kbd(vk_F1, down, 100)
としましたが、こうすると一時停止にはなるものの、その間どうもALTキーが押されっぱなしのようでほかの作業に支障をきたしました。
上の2行のあとに
kbd(vk_alt, up, 100)等を付け加えても改善しませんでした。
もし解決策がありましたら教えていただけませんでしょうか。
よろしくお願いいたします。
2017/03/04(土) 23:04:52.33ID:DiYUe0mY0
>>537
トリガー発生したら自分自身で一時停止するようにすればいいんじゃないの?
> 上の2行のあとに
> kbd(vk_alt, up, 100)等を付け加えても改善しませんでした。
停止してるんだから意味ないのでは?
トリガー発生したら自分自身で一時停止するようにすればいいんじゃないの?
> 上の2行のあとに
> kbd(vk_alt, up, 100)等を付け加えても改善しませんでした。
停止してるんだから意味ないのでは?
2017/03/04(土) 23:17:41.06ID:6eyytp6z0
slctboxかmsgboxでも出しとけ
2017/03/04(土) 23:23:31.11ID:3Yt1r+EC0
>>538
そうなんです
そうとは知りつつも他に策がなかったのでやってみました
基本的にはUWSCをまわしているパソコンから離れ、放置をしたいです
しかしそのトリガーを目視で確認する必要もあるので、
トリガーが発生 → 一時停止(音鳴らす) → 自身で処理 → 再開
という流れをとっています
いただいた回答からみるに意図していることは無理なんでしょうか
そうなんです
そうとは知りつつも他に策がなかったのでやってみました
基本的にはUWSCをまわしているパソコンから離れ、放置をしたいです
しかしそのトリガーを目視で確認する必要もあるので、
トリガーが発生 → 一時停止(音鳴らす) → 自身で処理 → 再開
という流れをとっています
いただいた回答からみるに意図していることは無理なんでしょうか
2017/03/04(土) 23:40:50.46ID:DiYUe0mY0
>>540
「自分自身」ってのは*お前*のことじゃないんだけどなw
書いたスクリプトそのものを自分自身という意味で書いてる。
音鳴らしたら無限ループに入るなり上に出てるmsgbox()なりで、今度はおまえ自身の手動操作でその
後に抜けるようにコードを書けばいい。
「自分自身」ってのは*お前*のことじゃないんだけどなw
書いたスクリプトそのものを自分自身という意味で書いてる。
音鳴らしたら無限ループに入るなり上に出てるmsgbox()なりで、今度はおまえ自身の手動操作でその
後に抜けるようにコードを書けばいい。
542540
2017/03/04(土) 23:41:50.83ID:3Yt1r+EC0 すみません
時にはまわしているPCで作業も行い、その時にALTキーおしっぱ状態が続くため、不便ということでした。
時にはまわしているPCで作業も行い、その時にALTキーおしっぱ状態が続くため、不便ということでした。
2017/03/04(土) 23:43:22.79ID:3Yt1r+EC0
2017/03/04(土) 23:44:42.99ID:H+pL33DZ0
スクリプトの途中で中断させときたい、ってことだろ?
>>539でいいじゃねえか
>>539でいいじゃねえか
545536
2017/03/05(日) 09:20:41.36ID:Z7G2NImL0 < #DBL>を<#DBL>にしたら動きました
""で囲っていても特殊記号はエラーとして扱われるんですね
""で囲っていても特殊記号はエラーとして扱われるんですね
2017/03/05(日) 22:18:24.60ID:XeE/JI8j0
うん
547名無しさん@お腹いっぱい。
2017/03/07(火) 00:06:33.14ID:zEWUndHC0 初めてこのスレにお邪魔して質問なのですが
使用中のExcelのセルに日付を入れるにはどうしたらいいのでしょうか
xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1:A100").value=xls.VBA.Datavalue("2017/1/2”)
こんな感じにしたのですがエラーがでまして
使用中のExcelのセルに日付を入れるにはどうしたらいいのでしょうか
xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1:A100").value=xls.VBA.Datavalue("2017/1/2”)
こんな感じにしたのですがエラーがでまして
2017/03/07(火) 06:24:23.02ID:7HorZSeY0
日付 × data ○ date
549名無しさん@お腹いっぱい。
2017/03/07(火) 22:23:35.26ID:Jqh/ntwq0 あー dataはJaneにソラで打ったので間違えました
2017/03/07(火) 23:45:21.59ID:fmu/xuz+0
2017/03/09(木) 15:21:01.09ID:6R/WmB2w0
>>547
COMからVBAのDateValueを扱う方法がわからないので
//代案1 ワークシート関数式を入れる
xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1").formula="=DATEVALUE(<#DBL>2017/1/2<#DBL>)"
xls.range("A1").copy
xls.range("A1:A100").PasteSpecial(-4163) //xlPasteValues
//代案2 UWSCのGETTIMEからExcelの日付シリアル値を算出する
xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1:A100").value=INT(GETTIME(0,"2017/01/02")/86400)+36526 //86400=60*60*24, 36526:2000/1/1のExcel側シリアル値
COMからVBAのDateValueを扱う方法がわからないので
//代案1 ワークシート関数式を入れる
xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1").formula="=DATEVALUE(<#DBL>2017/1/2<#DBL>)"
xls.range("A1").copy
xls.range("A1:A100").PasteSpecial(-4163) //xlPasteValues
//代案2 UWSCのGETTIMEからExcelの日付シリアル値を算出する
xls=GETACTIVEOLEOBJ("Excel.Application")
xls.range("A1:A100").value=INT(GETTIME(0,"2017/01/02")/86400)+36526 //86400=60*60*24, 36526:2000/1/1のExcel側シリアル値
2017/03/10(金) 12:05:06.41ID:Q1z203W80
UWSCでキャッチできるエラーはどうやって投げるんですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【プロ野球】巨人 オコエ瑠偉外野手が自由契約 [あずささん★]
- 【滋賀】不良グループのメンバーの「タイマン」で17歳が重体 殺人未遂容疑で岐阜市の19歳を逮捕 頭蓋骨骨折や脳挫傷、急性硬膜下血腫… [ぐれ★]
- 東京で年収1000万世帯は負け組か?地方の「イオンで楽しそうな家族👨‍👧‍👦」がまぶしく見える★2 [パンナ・コッタ★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★2 [ぐれ★]
- 立憲・原口議員がキレキレ「日本にレアアース来なければ中国は精製できない」「“旧敵国条項”明らかなやりすぎ」 [少考さん★]
- 渡邊渚さん アンバサダー就任を報告 [ひかり★]
- 統一教会「日本から搾取した金を北朝鮮に送金してミサイル開発援助しました!」こいつに対してネトウヨがダンマリな理由 [472617201]
- 【高市悲報】経団連会長、政府が話にならないので中国大使と直接会談🥺経済交流の重要性訴える [359965264]
- 【画像】夫に買い物を頼む妻、有能すぎるwwwwwwwwwwwwwwwwww [242521385]
- 【PR】Amazonプライムビデオ、12月の配信ラインナップが豪華すぎると話題に🎅これが全部タダって信じられるか…?😨 [562983582]
- 【速報】オコエ自由契約
- スシローバイト「食べ終わった客は皿の色揃えて重ねろ!!!数えにくいんじゃ!😡」 [637618824]
