自動化ツールUWSC使いよ集まれ9

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
http://www.uwsc.info/download.html

●UWSC 掲示板(※作成依頼掲示版ではありません)
 質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること
 上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
http://www3.bigcosmic.com/board/s/board.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

Q.シェアウェア版で「L22が存在しません」とエラーが出て一部機能が動作しない
A.割れシリアルを使った時に出る、ささやかな割れ対策
2名無しさん@お腹いっぱい。:2012/10/12(金) 20:19:54.44 ID:kL+i0JoD0
●Pro版の追加機能
EXE化ツールが付属しています。(EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます)
IE(Web)用記録ツールが付属しています。(Web上の動作をUWSCのスクリプトとして記録する事ができます)
HTMLを利用した画面関数が使えます。
EXCELシート用関数が使えます。(OpenOffice.org/LibreOfficeの表計算(Calc)に対しても可)
デバッガが付属しています。

●質問したい方へ
「○○作れますか?」→ 可能か不可能かを聞いているのなら答えは「作れる」
「○○が作りたい」→ 自分が作れば?並大抵の事ならググれば似たようなスクリプトや知識が見つかる
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。

●スクリプトを晒す上での注意
他人が読みやすいようにインデントを付けるように。解らない人はググレ。
(タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし)
言いたい事に関係無い部分は 〜○○の処理〜 や 処理A 等のようにし、
必要な部分を晒すようにする。

●他人の書いたスクリプトを安易に実行しないように。
ハードディスクをフォーマットされたりしても、自己責任。

●前スレ
08 http://unkar.org/r/software/1333915056
07 http://unkar.org/r/software/1312390804
06 http://unkar.org/r/software/1291347103
05 http://unkar.org/r/software/1260304053
04 http://unkar.org/r/software/1235990960
03 http://unkar.org/r/software/1176677869
02 http://logsoku.com/thread/pc9.2ch.net/software/1156416884
01 http://logsoku.com/thread/pc5.2ch.net/software/1107738590
3名無しさん@お腹いっぱい。:2012/10/12(金) 21:14:42.34 ID:zSFcGjZW0





前スレにunkarやlogsoku貼るとか馬鹿なの?





4名無しさん@お腹いっぱい。:2012/10/12(金) 21:33:31.81 ID:KRNdNRVW0
>>3
お前は何も分かって無いんだなw
沸点の低い無知は消えろw
5名無しさん@お腹いっぱい。:2012/10/13(土) 00:30:54.82 ID:nu6ieIR30
>>4
何も分かって無い、沸点の低い無知乙
6名無しさん@お腹いっぱい。:2012/10/13(土) 06:14:15.04 ID:DgnOt18S0
7名無しさん@お腹いっぱい。:2012/10/20(土) 20:54:03.75 ID:+2iESwXp0
おおざっぱな質問で申し訳ないのですが、
GoogleChromeウィンドウ内の、ある箇所ををクリックしようとした際に
左クリックが正しく押せていない状態が起こります。
(たまにではなく確実です)

マウスポインタは目的の場所まで動いているのですが、
どうもクリックだけがしっかりとできていないみたいです。
手動でクリックを行うとしっかりとできます。

中身を見ても、命令自体も間違っていないし、
別の命令が邪魔しているとも考えられません。
例えばUWSCのクリックのみ無視する、
といったサイトや条件等はあるのでしょうか?

原因が分からないため質問させていただきました。
どなたかご存知でしたら教えて頂けないでしょうか。
よろしくお願いします。
8名無しさん@お腹いっぱい。:2012/10/21(日) 22:42:53.78 ID:zgZZmLUu0
・スクロール量や、ツールバーの有無によって結果が変わるか?
・クリックする直前にChromeがアクティブになっているか否かで変わるか?
・クリック対象が文字、コントロール(ボタン等)、画像、Flash等によって変わるか?
を試してみれ。
9名無しさん@お腹いっぱい。:2012/10/22(月) 19:11:29.02 ID:e+he8mzN0
>>7
おおざっぱな質問にはおおざっぱな回答しかできないが...

ウインドウが非アクティブとかサイト側のチート対策も考えられるけど
手動ではできるしポインタの移動はできてることから可能性は低い
だとすると押下時間の不足じゃないかな
10名無しさん@お腹いっぱい。:2012/10/23(火) 04:03:37.42 ID:+9x+sU100
while True
ifb 画像認証A
 クリック
else
ifb 画像認証B
クリック
else
...

endif
endif
endif
sleep(1)
wend

みたいなのを作りました
画像認証A→B→Cの流れが3回繰り返された時のみ、別の命令を実行したい場合、どのようにすればいいのでしょうか
普段はA→E→B→Dみたいにバラバラに動いています
ご指南どうかお願い致します
11名無しさん@お腹いっぱい。:2012/10/23(火) 12:54:38.47 ID:obNHhbxd0
文字列に認証した画像を追加記録しながら
一致した場合は別処理とかかなー

DIM 認証 = ""
認証 = 文字列追加(認証, "D", 9)
認証 = 文字列追加(認証, "A", 9)
認証 = 文字列追加(認証, "B", 9)
認証 = 文字列追加(認証, "C", 9)
Print 認証
認証 = 文字列追加(認証, "A", 9)
認証 = 文字列追加(認証, "B", 9)
認証 = 文字列追加(認証, "C", 9)
Print 認証
認証 = 文字列追加(認証, "A", 9)
認証 = 文字列追加(認証, "B", 9)
Print 認証
認証 = 文字列追加(認証, "C", 9)
Print 認証
Sleep(2)

Function 文字列追加(文字列, 追加文字, 文字数制限)
 戻り値候補 = 文字列 + 追加文字
 If LENGTH(戻り値候補) > 文字数制限 Then
  戻り値候補 = COPY(戻り値候補, 2)
 EndIf
 Result = 戻り値候補
FEnd
12名無しさん@お腹いっぱい。:2012/10/23(火) 13:09:21.88 ID:obNHhbxd0
あ、追加文字が一文字に依存しちゃってるね
まぁ、文字列に履歴を保存するイメージのサンプルなのでご愛嬌ということで
13名無しさん@お腹いっぱい。:2012/10/23(火) 13:09:36.48 ID:RTgu/9T20
>>1-2(・ω・`)乙  これは乙じゃなくてポニーテールなんだからね!
ようやくまともなテンプレが作られたかw
14名無しさん@お腹いっぱい。:2012/10/23(火) 15:40:56.86 ID:+9x+sU100
>>11
ありがとうございます
参考にさせてもらいます!
15名無しさん@お腹いっぱい。:2012/10/23(火) 20:45:02.64 ID:gOb1znBP0
ある特定の文字列を探して、そこから特定の文字の先頭があるまでコピーしたいんですが、やり方が思いつきません。
例えば、
「13 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2012/10/23(火) 13:09:36.48 ID:RTgu/9T20」がスタートで
「14 名前:名無しさん@お腹いっぱい。」がエンド。
つまり13のコメントだけ取得したい場合はどんな方法がありますか?
16名無しさん@お腹いっぱい。:2012/10/23(火) 20:50:17.90 ID:gOb1znBP0
日本語がおかしかったですすいません。
1.クリップボードに
「あいうえお
12345
かきくけこ」
この文字列があります。
2.「お」の次の文字から「か」の前の文字までコピーしたい。

こういう時はどうすればいいんですか?
結果的に「12345」がコピーされていて欲しいんですが。

17名無しさん@お腹いっぱい。:2012/10/23(火) 21:04:29.61 ID:Y0nUlCDf0
HELP読めば書いてある
18名無しさん@お腹いっぱい。:2012/10/23(火) 21:17:25.58 ID:gOb1znBP0
>>17
そこをどうか・・・
何卒お願いします神様
19名無しさん@お腹いっぱい。:2012/10/24(水) 20:26:12.15 ID:ImpnG5jm0
チェックボックスにチェックを付ける方法を教えて
20名無しさん@お腹いっぱい。:2012/10/24(水) 20:28:16.51 ID:6ga/GquW0
irfanviewで1A、1B、1Cという画像を繋げてパノラマ画像を作り「1」という名前に
以下、2A、2B、2Cを「2」に、という作業を100回繰り返す
下ので一応出来るんですが1回毎に「Error!Can't load "」というメッセージが出て
一々消しているので他の作業が出来ません
エラーメッセージが出ないようにするにはどう書けばいいんでしょう?

For i = 1 to 1//00
s_app = "C:\Program Files\IrfanView\i_view32.exe " //自環境のパス設定
s_file_1 = "C:\" + i +"A.gif"
s_file_2 = "C:\" + i +"B.gif"
s_file_3 = "C:\" + i +"C.gif"
s_cmd = s_app +"/panorama=(2,"+ s_file_1 +","+ s_file_2 +","+ s_file_3 +",)/convert=C:\"+ i +".gif"
exec(s_cmd)

title=getid(get_active_win)
sckey(title,vk_return)   //←これで消してます
Next
21名無しさん@お腹いっぱい。:2012/10/24(水) 23:17:53.26 ID:zl4tu7Hn0
それはirfanview側の問題じゃないの
22名無しさん@お腹いっぱい。:2012/10/25(木) 09:06:57.82 ID:QLT/Kw/40
Windows8でuwscが動いてる人いる?
23名無しさん@お腹いっぱい。:2012/10/25(木) 17:45:41.27 ID:lRE6A82W0
これのexeからソースを取り出す方法ってある?
24名無しさん@お腹いっぱい。:2012/10/25(木) 21:10:48.81 ID:YdixM4uR0
IEで二つの同じタイトルのブラウザを別々に1つずつのUWSCで作業自動化したいんだけど
GetActiveOLEObj使うとどっちのUWSCも片方のブラウザしか認識しない
何か対策ありませんかね?
25名無しさん@お腹いっぱい。:2012/10/25(木) 21:25:34.22 ID:LtzQRBGg0
GetActiveOLEObjの引数を正しく設定する
26名無しさん@お腹いっぱい。:2012/10/26(金) 01:18:01.80 ID:ND1KKRnV0
Operaのアクションコマンドからuwscスクリプトへ引数がどうしても渡せません
今は仕方なくクリップボードを使っていますがどなたか引数がちゃんと使えている人いますか?
27名無しさん@お腹いっぱい。:2012/10/26(金) 12:47:52.31 ID:GZpzutZP0
>>18
POS関数だけで出来る。
POSの所を読んでやり方の筋道が思い浮かばないなら向いてない。

>>20
irfanviewの問題だけどコマンドラインオプションに半角スペースが挟まってないせいかもねirfanviewの仕様次第だけども
28名無しさん@お腹いっぱい。:2012/10/26(金) 13:04:41.80 ID:ND1KKRnV0
>>16

moji="あいうえお<#CR>12345<#CR>かきくけこ"
print betweenstr(moji,"お<#CR>","<#CR>か")
29名無しさん@お腹いっぱい。:2012/10/26(金) 21:13:06.20 ID:GZpzutZP0
見逃してたわ〜
何年も使ってるけど見逃してたわ〜
か〜っ
30名無しさん@お腹いっぱい。:2012/10/26(金) 21:21:01.24 ID:aBLgnml8P
あるあるw
31名無しさん@お腹いっぱい。:2012/10/27(土) 00:04:44.74 ID:+t6NjlUk0
すいません。テキストで
wから始まる8桁の数字を探したいんですが
やり方がわかりません
教えてください
32名無しさん@お腹いっぱい。:2012/10/27(土) 01:21:41.49 ID:I32pGO/EP
正規表現を使う

moji = "w12345678" //文字列例
regex = CREATEOLEOBJ("VBScript.RegExp")
regex.Pattern = "\D" //正規表現のパターン
regex.Global = True //マッチングする文字が見つかったらその時点で終了
regex.IgnoreCase = True //大文字小文字を区別しない
ans = regex.Replace(moji, "") //上記のパターンに一致する文字を消す(""に変換)
print ans //プリント表示
33名無しさん@お腹いっぱい。:2012/10/27(土) 08:14:35.76 ID:6FKqItta0
w[0-9]{8}にマッチ、かつ9文字、ではないかな。
別解として、ループ内でPOSで1文字づつ切り出してチェックかな。
34名無しさん@お腹いっぱい。:2012/10/27(土) 09:28:31.12 ID:tstRrD3Z0
w[0-9]{8}[^0-9]
だろ
35名無しさん@お腹いっぱい。:2012/10/27(土) 13:03:23.70 ID:IUsIYDcg0
それだとw01234567aにマッチしてw01234567にマッチしない
36名無しさん@お腹いっぱい。:2012/10/27(土) 13:03:52.99 ID:+t6NjlUk0
>>32
wも表示したいんですがそれはできませんか
37名無しさん@お腹いっぱい。:2012/10/27(土) 13:23:32.88 ID:tstRrD3Z0
最後に
?
が必要だったか
38名無しさん@お腹いっぱい。:2012/10/27(土) 13:24:05.07 ID:vrYvaQ8h0
>>32は正規表現を使えってアドバイスしただけで
パターンやらなにやら適当だぞ
39名無しさん@お腹いっぱい。:2012/10/27(土) 13:34:43.33 ID:iHSnzYeM0
UWSCスレであって正規表現を細かく教えてあげるスレじゃないしな
40名無しさん@お腹いっぱい。:2012/10/27(土) 13:47:40.74 ID:IUsIYDcg0
正規表現は奥が深すぎるので一文字づつ切り出してチェックする関数のほうがいいかもな
41名無しさん@お腹いっぱい。:2012/10/27(土) 14:06:05.29 ID:I32pGO/EP
>>36 公式サイトのFAQにも載ってるけど>>32 のように CREATEOLEOBJ("VBScript.RegExp")使えばUWSCでも正規表現使えるっていうサンプルだから少し変えないと駄目だよ
正規表現の解説サイトならたくさんあるから探してみたら?
http://www.mnet.ne.jp/~nakama/


無理に使わなくてもPOSでwがある位置を調べてCOPYでその位置から8文字(w入れたら9文字?)を抜きだして数値ならみたいな処理でもいいと思うしやり方はいくらでもあると思う
42名無しさん@お腹いっぱい。:2012/10/27(土) 14:37:32.61 ID:xef2zPet0
おしえて、えろいひと

テンキーの数字は、VK_NUMPADxですが、
NumLock オフ時のテンキーの↑↓←→(2468)って何でしょうか…
カーソルキーの↑↓←→と挙動が違うソフトなもので…orz
43名無しさん@お腹いっぱい。:2012/10/27(土) 15:01:04.36 ID:oCgxUQHc0
>>42
記録モードで実際にキー押して調べるといいんじゃないかい?
44名無しさん@お腹いっぱい。:2012/10/28(日) 01:00:35.73 ID:/596A/XD0
>>42
仮想キーじゃなく実キーの場合はUWSCでは無理じゃ?
MSDNライブラリでDirectInputとか調べてみたら?
45名無しさん@お腹いっぱい。:2012/10/28(日) 02:32:51.23 ID:J3/sY2yj0
>42
UWSCが取り扱うのは「仮想キーコード」だけど、
そのアプリはもっと低レベルの「スキャンコード」検知してそうな悪寒。
46名無しさん@お腹いっぱい。:2012/10/28(日) 11:11:23.68 ID:UzpVsT5t0
>>32
>regex.Global = True //マッチングする文字が見つかったらその時点で終了
このコメント逆じゃね?
4742:2012/10/28(日) 13:29:16.74 ID:m0Snpspy0
>>43-45
えろい方々thx

やはり無理っぽいので別の方法を考えまつ
48名無しさん@お腹いっぱい。:2012/10/29(月) 07:12:58.50 ID:Eoa/UAOw0
質問です。

STATUS関数で、対象のウィンドウが閉じた場合、IDが無効になるんですけども、
その状態だとSTATUS関数のところでUWSCが応答なしになってしまうんですね。
で、通常だとSTATUSチェック直前にGETIDするんでしょうけども、
ウィンドウのビジー終了待ちなんかでループで待ってると、
そのウィンドウが閉じられるだけじゃなく未知のタイトルに変わったり何なりする場合に、
どう対応するのがスマートかなと。

↓の関数は、対象ウィンドウがST_BUSYではない、かつ想定の遷移先タイトルになるまで待つ
というつもりの関数だったんですが、応答なしの原因になっていたことが判明し、
後付けでゴテゴテと色々盛ってる最中のものです。
49名無しさん@お腹いっぱい。:2012/10/29(月) 07:15:19.13 ID:Eoa/UAOw0
FUNCTION waitWindowIsReady(lWID, lStrTitle, lStrClass="", lWaitLoopNum=60, lWaitUnitSeconds=1)
  RESULT = FALSE
  lFlgStatOk = FALSE
  IFB lWID = -1 THEN
    PRINT "waitWindowIsReady:lWID=-1
    SLEEP(5); EXIT
  ENDIF
  lDefWID = lWID
  lDefStrTitle = status(lWID, ST_TITLE)
  FOR lI=0 TO lWaitLoopNum
    lWID = GETID(lDefStrTitle)
    IFB lWID = -1 THEN
      lWID = GETID(lStrTitle)
      IFB lWID = -1 THEN
        PRINT "waitWindowIsReady:lWID=-1(lI=" + lI + ")
        SLEEP(5); EXIT
      ENDIF
    ELSEIF !(lWID = lDefWID) THEN
      PRINT "waitWindowIsReady:lWID≠lDefWID(lI=" + lI + ")
      SLEEP(5); EXIT
    ENDIF
    lFlgStatOk = _
      (status(lDefWID, ST_TITLE) = lStrTitle) AND _
      (status(lDefWID, ST_BUSY) = False)
    IFB !(lStrClass="") THEN
      lFlgStatOk = lFlgStatOk AND (status(lDefWID, ST_CLASS) = lStrClass)
    ENDIF
    IF lFlgStatOk THEN BREAK
    SLEEP(lWaitUnitSeconds)
  NEXT
  RESULT = lFlgStatOk
FEND
50名無しさん@お腹いっぱい。:2012/10/29(月) 20:15:12.33 ID:Eoa/UAOw0
FUNCTION waitWindowIsReady(lWID, lStrTitle, lStrClass="", lWaitLoopNum=60, lWaitUnitSeconds=1)
  RESULT = FALSE
  lFlgStatOk = FALSE
  lHND = IDTOHND(lWID)
  FOR lI=0 TO lWaitLoopNum
    IF !isExistProcess(lHND) THEN EXIT
    lFlgStatOk = (status(lWID, ST_TITLE) = lStrTitle) AND !status(lWID, ST_BUSY)
    IF !(lStrClass = "") THEN lFlgStatOk = lFlgStatOk AND (status(lWID, ST_CLASS) = lStrClass)
    IF lFlgStatOk THEN BREAK
    SLEEP(lWaitUnitSeconds)
  NEXT
  RESULT = lFlgStatOk
FEND

FUNCTION isExistProcess(lHND)
  RESULT = !( HNDTOID(lHND) = -1 )
FEND

すっきりw
51名無しさん@お腹いっぱい。:2012/10/29(月) 21:39:14.40 ID:n98F/FTUP
何がしたかったのかがわからないw
IDの戻り値が-1(存在しない)時にスルーさせたかったの?
52名無しさん@お腹いっぱい。:2012/10/29(月) 22:45:29.64 ID:Eoa/UAOw0
>>51
機能
・対象IDのウィンドウがREADY状態(BUSY状態ではなく、タイトルも指定のものになる)まで待つ。
・READYになって待機が終わったのか、タイムアウトで終わったのかが、戻り値で判る。
・待機はブラウザで特に必要。IEならOLEでチェックできるが、他のブラウザは出来ない。

問題
・待機中、READY判定する前にウィンドウが閉じてしまった場合、
 STATUS関数の所でUWSCが無限に止まります。(タイムアウトしてくれない)
・そのためSTATUS関数の直前にIDの有効をチェックする必要があるが、
 予期しないタイトルに変化する場合などGETIDで再取得できないケースあり。

解決
・プロセスID用の関数で解決できましたとさ。
53名無しさん@お腹いっぱい。:2012/10/29(月) 22:51:54.27 ID:mS4uH//S0
firefoxで待機確認はできなかったっけ?
何個か前のスレであった気がするが
54名無しさん@お腹いっぱい。:2012/10/30(火) 04:42:22.47 ID:t1fOU8UV0
whileやrepeatとかを使った繰り返し処理を、
一定時間だけやって抜け出すスマートな方法って無いですか?

SLEEPとカウンターを絡めたとしても、
中の処理の時間がまちまちだと、
ピッタリ10秒で終えるとか厳しいですよねぇ。
GETTIMEで実時間を測るしかないんでしょうか?

SLCTBOXのタイムアウトみたいなのがあればいいんですが・・・
55名無しさん@お腹いっぱい。:2012/10/30(火) 05:25:21.97 ID:y7Qyc3n90
public flag = true

thread 関数()
sleep(10)
flag = false

procedure 関数()
 while flag
 wend
fend

こんな感じでどうかな
56名無しさん@お腹いっぱい。:2012/10/30(火) 06:40:11.73 ID:6WPQrN5R0
中の処理でっていうのはwhile文の中でさらに条件によってsleep何個も使うとかそういう事?
普通の処理ならforでもwhileでも使ってsleep(1)でカウント分だけ回せばそうそう時間がずれるほどの処理に時間かかることないと思うけど
57名無しさん@お腹いっぱい。:2012/10/30(火) 07:03:33.02 ID:HLYrvy0xP
スレッドわけてexitexitしちゃえば
58名無しさん@お腹いっぱい。:2012/10/30(火) 07:15:50.09 ID:231igMIaP
失礼します
RecIEで記録する時に
IEのアドオンを設定した状態で起動できないでしょうか?
WindowsXPs2
よろしくお願いします
59名無しさん@お腹いっぱい。:2012/10/30(火) 08:58:00.87 ID:t1fOU8UV0
>>55
ありがとうございます。勉強になります。

で、↓試してみたんですけど、
このままだと上のfukidasi(flag〜も表示されず、
5秒経っても10秒経っても全然抜け出せません。

whileの中の、SLEEP(0.01)を有効にすると
抜け出せるんですがmsgboxが機能せず、
SLEEP(0.001)を有効にすると、抜けだし&msgbox両方OK
と訳分からん状態です。なんでなんでしょうかね?
まぁ、動けばいいんですけど、なんか腑に落ちない感じがして・・・

public flag = true

thread 関数()
fukidasi(flag,100,0)
sleep(3)
flag = false
fukidasi(flag,100,0)

procedure 関数()
 cnt=0
 while flag
  fukidasi(cnt)
  cnt=cnt+1
// SLEEP(0.01)
// SLEEP(0.001)
 wend
 msgbox(cnt)
fend
60名無しさん@お腹いっぱい。:2012/10/30(火) 09:29:17.72 ID:6WPQrN5R0
CPUの負荷が高すぎて処理落ちしてるんじゃない?
sleep(0)でも入れておくことで他のスレッドにタイムスライスの残り時間渡すとかumiumiさんも言ってたしウィンドウメッセージの処理が出来なくなってるんだと思うよ
61名無しさん@お腹いっぱい。:2012/10/30(火) 09:30:38.00 ID:6WPQrN5R0
正確には負荷とは違うか
62名無しさん@お腹いっぱい。:2012/10/30(火) 09:56:32.50 ID:H5qTS3qK0
>>54
> 中の処理の時間がマチマチ
その処理を中断してでもピッタリ終えようとすると色々問題では?
中断するまでもなくすぐ終わる処理なら誤差範囲に収まるのでは?

GETTIMEで実時間を判定する関数を使って一行で抜けるように書き、
それを中断可能箇所全てに挟み込むのが結局一番スマートに思えますが…
63名無しさん@お腹いっぱい。:2012/10/30(火) 10:04:58.21 ID:CTPk6h/00
sleepが無いとダメなのはスレッドが処理を占有しすぎるためで
msgboxが出ないのは 関数() でwhileを抜けてmsgboxに行くまでに
スクリプト自体が終わってしまうからだろうね

thread 関数()
fukidasi(flag,100,0)
sleep(3)
flag = false
fukidasi(flag,100,0)

sleep(1) // ←追加
64名無しさん@お腹いっぱい。:2012/10/30(火) 12:57:58.68 ID:dU/tE5XU0
UWSC..exeの名前変えると起動しなくるんだが。
どうすれば変えても起動可能になる?
このふざけた制限を消す方法教えてくれ
65名無しさん@お腹いっぱい。:2012/10/30(火) 13:30:30.45 ID:XY6ca7Ua0
>>64
バイナリエディタで
55 57 53 43 → 適当な4文字
75 77 73 63 → 適当な4文字

こういう話じゃなかったらスマソ
66名無しさん@お腹いっぱい。:2012/10/30(火) 13:55:10.95 ID:HLYrvy0xP
>>64
目的によっては、作成済みのをexe化してそれを起動とか。
67名無しさん@お腹いっぱい。:2012/10/30(火) 18:33:17.73 ID:dU/tE5XU0
>>65
それだとタスクマネージャー上のプロセス名変わらないんだよ
タスクマネージャーの表示プロセスを変えたい

ぼったくりpro版買う以外の方法ねーのか
68名無しさん@お腹いっぱい。:2012/10/30(火) 19:01:48.64 ID:ClLLhcW80
ゲームの不正監視のすり抜けが目的なの?
69名無しさん@お腹いっぱい。:2012/10/30(火) 19:08:38.68 ID:dU/tE5XU0
動かなくするほうが不正だろ
本来あるべき状態に戻すだけ
70名無しさん@お腹いっぱい。:2012/10/30(火) 19:29:23.85 ID:ClLLhcW80
べき論きたー
71名無しさん@お腹いっぱい。:2012/10/30(火) 20:25:59.88 ID:6IZ9AUUp0
>>69
お前に使われるために作られたツールじゃない。
お前の理想など知ったことではない、どうでも良い。

この制限の目的はネットゲームのBOT不正利用に
UWSCが悪用されることを防ぐことだと推測される。

目的が達成されているようで何よりです。


まぁ俺はMyBOTにも使ってるけどね
厳しくないゲームに対してだけど
俺以外でBOT利用できない奴がいるというのは喜ばしいw
7236:2012/10/30(火) 20:26:36.79 ID:HZbQmbU/0
moji = "w12345678" //文字列例
regex = CREATEOLEOBJ("VBScript.RegExp")
regex.Pattern = "w[0-9]{8}" //正規表現のパターン
regex.Global = True //マッチングする文字が見つかったらその時点で終了
regex.IgnoreCase = True //大文字小文字を区別しない
ans = regex.Replace(moji, "") //上記のパターンに一致する文字を消す(""に変換)
print ans //プリント表示
REplaceのせいで条件の文字が全て消えてしまいました。(当然ですが・・・)

REplaceで条件の文字以外""に変換することって出来ますか?やりたいことはマッチした文字だけを抽出することです。
73名無しさん@お腹いっぱい。:2012/10/30(火) 20:53:26.69 ID:6IZ9AUUp0
>>72
VBScript.RegExpの仕様を確認しましたか?
TRUE/FALSEを返すだけの役立たずじゃない気がするが俺は確認してない。
7436:2012/10/30(火) 20:58:25.80 ID:HZbQmbU/0
>>73
よくわかんないです。

moji = "w12345678" //文字列例
regex = CREATEOLEOBJ("VBScript.RegExp")
regex.Pattern = "w[0-9]{8}" //正規表現のパターン

regex.IgnoreCase = True //大文字小文字を区別しない
regex.Global = false //マッチングする文字が見つかったらその時点で終了
print regex //プリント表示

これだと数字は表示されるけど、"w"が表示されない
print "c" + regexだと何故かエラーになる・・・
75名無しさん@お腹いっぱい。:2012/10/30(火) 21:00:45.26 ID:HZbQmbU/0
よく確認したら数値の順番がバラバラです。。。
もうだめだ。。。
76名無しさん@お腹いっぱい。:2012/10/30(火) 21:02:35.31 ID:mdXGhH2u0
>>72
こんなのじゃ駄目なのか?

str = "ABCDEFw564986154GHIJK"
print wns(str)

FUNCTION wns(str)
dim i = 1
REPEAT
  ws = POS("w",str,i)
  if ws > 0
    ws2 = COPY(str,ws+1,8)
    ifb CHKNUM(ws2) = true
      RESULT = "w"+ws2
      EXIT
    endif
  endif
  i=i+1
UNTIL ws = 0
RESULT = 0
fend
77名無しさん@お腹いっぱい。:2012/10/30(火) 21:05:34.00 ID:HZbQmbU/0
>>76
ありがとうございますプログラミングの神様!!
78名無しさん@お腹いっぱい。:2012/10/30(火) 21:09:12.22 ID:mdXGhH2u0
>>74
str = "ABCDEFw564986154GHIJK"
re=CreateOleObj("VBScript.RegExp")
re.pattern = "w\d{8}"
re.Global = True
re.IgnoreCase = True

match = re.Execute(str)
for i = 0 To match.Count-1
print match.Item(i).Value
next
79名無しさん@お腹いっぱい。:2012/10/30(火) 21:09:24.87 ID:6IZ9AUUp0
>>74
本家のリファレンスを自力で何とか読解しようとしない時点で
プログラマとしての腕はそれ以上伸びませんので、
RegExpを使うのは諦めて上の方法でやるのが宜しいかと。
読めればですが。
80名無しさん@お腹いっぱい。:2012/10/30(火) 21:46:05.89 ID:ZjVSyhwh0
CreateOleObjしたものの使い方は、UWSCのマニュアルじゃなくて
各COMコンポーネントごとのマニュアルを見ないといけない事に気付いてないんだろうね
COMなんてプログラム言語が異なっていても使い方は同じなんだから
"VBScript.RegExp"でググればサンプルはいくらでも見つかるのに
81名無しさん@お腹いっぱい。:2012/10/30(火) 21:49:26.83 ID:6WPQrN5R0
UWSCはAPIとかDLLとか外部の物を持ってきて使えるのが強みなんだけど初心者にはどれが外部の機能かわからないから難しい部分はあるが
ただ正規表現とかはどの言語でも使い方はほぼ一緒なんだから適当に検索すれば見つかったはずだが
82名無しさん@お腹いっぱい。:2012/10/30(火) 21:56:49.16 ID:DMxDYr+20
ちっせぇ事だけど、ID:6WPQrN5R0が具体例を一切挙げずに
上から目線なのがちょっと気になる俺w

スクリプト適当に拾ってきて貼り付けるだけのミジンコじゃ無さそうなのは
文面からなんとなく分かるんだけどな
83名無しさん@お腹いっぱい。:2012/10/30(火) 21:57:55.75 ID:DMxDYr+20
あ、すまんID:6IZ9AUUp0だた・・・
84名無しさん@お腹いっぱい。:2012/10/30(火) 23:39:45.64 ID:dU/tE5XU0
>>71
低脳乙
UWSCできるのはマクロ
BOTっていうのはパケ解析して動作せるのもので質が違うんだが
UWSCでBOTとか無知は死んでいいよ
8554:2012/10/30(火) 23:54:44.91 ID:7vDPQomb0
いろいろアドバイス有り難うございました。
精進します。
86名無しさん@お腹いっぱい。:2012/10/31(水) 00:11:45.18 ID:lxygHfiD0
>84
6IZ9AUUp0を擁護するつもりも、貴方の揚げ足取るつもりも無いんだが、
>71のBOTは↓の3つ目の意味だと思う。 (勿論貴方の言うBOTも実在する)
ttp://ja.wikipedia.org/wiki/Bot

まぁオンゲとかやらん人間だったら、知らなくても恥じる必要は無い。
むしろ>71みたいな事を嬉々として語っちゃう6IZ9AUUp0のが痛い。
87名無しさん@お腹いっぱい。:2012/10/31(水) 00:16:05.92 ID:lxygHfiD0
ちなみにUWSCがリネーム制限してるのは、自身を呼び出す為であってBOT云々は関係無いと思われる。
そもそもexeの名前を変えても、他の情報(バージョン情報とか)でバレる。
88名無しさん@お腹いっぱい。:2012/10/31(水) 00:25:48.52 ID:RpqlL13I0
他の情報はバイナリで書き換えて、あとファイル名だけだだから言ってんだろうが。
専スレのくせに使えねえんだなこの糞スレ
低レベルなところで聞いたのが間違いだったわ
相手してやるのも疲れたからじゃあなくず
89名無しさん@お腹いっぱい。:2012/10/31(水) 00:59:08.04 ID:lxygHfiD0
貴方が逝くべき先はEmbarcadero(もしくはBorland)製品のバイナリの弄るようなネタを扱ってるスレだ。
あと確実に答えをくれそうな相手を見定める能力が無いのを、他人のせいにすうのはみっともない。
90名無しさん@お腹いっぱい。:2012/10/31(水) 02:51:37.88 ID:9m2hGbR30
http://i.imgur.com/XhaOH.jpg
頼み方ってものを心得てる奴にならこれ位教えたんだがな。
91名無しさん@お腹いっぱい。:2012/10/31(水) 03:24:18.76 ID:9m2hGbR30
あぁ、exeの名前変えたかったんだったな
タスク上と勘違いしてたわhttp://i.imgur.com/CqWw6.jpg
92名無しさん@お腹いっぱい。:2012/10/31(水) 08:51:05.02 ID:XBs0O2oO0
人に聞く態度を知らない無知で可哀そうな ID:dU/tE5XU0 (4回) ざまぁww
93名無しさん@お腹いっぱい。:2012/10/31(水) 11:25:09.60 ID:kruzi6SM0
>>86
ネトゲのBOTはパケット解析して作られたものを指すもので、UWSCで出来るようなしょぼ動作は全てマクロなんだよ
まぁオンゲとかやらん人間だったら、知らなくても恥じる必要は無い
6IZ9AUUp0自演してんじゃねえよカス
94名無しさん@お腹いっぱい。:2012/10/31(水) 13:32:07.13 ID:9m2hGbR30
最後の3行が無ければID:6IZ9AUUp0もここまで叩かれなかったろうにw
95名無しさん@お腹いっぱい。:2012/10/31(水) 17:40:46.31 ID:yEL/X+E40
まさに薮蛇
96名無しさん@お腹いっぱい。:2012/10/31(水) 22:37:18.45 ID:4Dpj8rIo0
>93

ttp://ja.wikipedia.org/wiki/%E3%83%9C%E3%83%83%E3%83%88_%28%E3%82%B2%E3%83%BC%E3%83%A0%29
>画像やパケットなどによる判定を行わずに、単純にマウス操作やキーボード操作を繰り返すだけのマクロは、ボットではなく寝マクロと呼ばれることが多い。
 ↑ここに注目。

UWSCは一応画像判定できるわけだが。
無論マクロ的に使う事のが多いけど。
97名無しさん@お腹いっぱい。:2012/10/31(水) 22:39:45.59 ID:4Dpj8rIo0
6IZ9AUUp0に突っ込まれないようフォローしたつもりだったが、逆効果だったようだな。すんまそん。
98名無しさん@お腹いっぱい。:2012/10/31(水) 23:23:13.42 ID:CjlVM13F0
BOTかマクロかなんてどうでもよくね?
名前も変えられない程度の奴が騒いでたそれだけのことだ
99名無しさん@お腹いっぱい。:2012/10/31(水) 23:39:35.13 ID:yEL/X+E40
頭のハッキングツールが必要だったってオチ
100名無しさん@お腹いっぱい。:2012/11/01(木) 00:46:52.17 ID:GDLd7dzX0
>>96
6IZ9AUUp0自演しつこすぎ
お前、AIの意味分かってねーだろ
画像認識なんて状況判断できないしパケありきのもの
UWSCはただのマクロ
パケット判定できないから繰り返してるだけだろうが
ネトゲにおいては厳密に区別されてんだよ
素人自演野郎は引っ込んでろ
>>98
変えられない程度?
調子乗った口きくならやりかた書いてから言えや
出来もしねーくせに偉そうな態度取ってんじゃねえよ
俺はROのkoreいじって作ってたこともあるんでね
自演と低脳しかいねーのなマジで
やり方も書かずに、自演とか煽りとか使えなすぎ
黙って聞かれたこと答えてりゃいいのに、まあ出来る奴自体いないんだろうね
1016IZ9AUUp0:2012/11/01(木) 00:52:13.17 ID:1NqoF7dS0
いや〜香ばしいなw
しょせんネトゲ廃人はネトゲ廃人か…
102名無しさん@お腹いっぱい。:2012/11/01(木) 01:11:37.27 ID:qbFiDt/T0
>100
UWSC単品ではパケ判定はできなろうけど、パケ解析アプリ起動しといてそっち監視すればやれん事もない。
103名無しさん@お腹いっぱい。:2012/11/01(木) 03:16:44.11 ID:ynaU+2MIP
厳密な意味はともかくネットゲーマーの間で一般的には、
マクロ=マクロそのもの
bot=自動戦闘してるプレーヤー
って使われ方だけどね。
104名無しさん@お腹いっぱい。:2012/11/01(木) 07:11:08.19 ID:w4h2kJAW0
不正ツーラーの話なんざどうでもいいので巣に帰って好きなだけやれ
105名無しさん@お腹いっぱい。:2012/11/01(木) 08:10:57.15 ID:pJMyzqDC0
>>90-91で名前変えてるじゃんw
煽って答えが出てくるのはチートスレとかvip
一般的なスレで他人を煽ってもメリットなんて一つもないのにw
106名無しさん@お腹いっぱい。:2012/11/01(木) 20:11:07.34 ID:CvC8JJda0
UWSC実行中他のwindowがアクティブにならない方法ってないですか?メッセンジャーとか来ると困るんですが
107名無しさん@お腹いっぱい。:2012/11/01(木) 20:17:43.29 ID:GL3Sn6V7P
ACWかCTRLWINじゃ駄目なの?
108名無しさん@お腹いっぱい。:2012/11/01(木) 20:23:52.82 ID:A9U599jQ0
別スレッドでアクティブウィンドウの変化を監視させるとか
109名無しさん@お腹いっぱい。:2012/11/01(木) 20:28:23.46 ID:yuGS3fAI0
メッセンジャーの方でアクティブにしないようにしろよ
110名無しさん@お腹いっぱい。:2012/11/02(金) 04:00:06.74 ID:YyvMFziPP
もしあれなら直接送れば
111名無しさん@お腹いっぱい。:2012/11/02(金) 21:15:28.74 ID:RTBFr6hI0
アクティブウインドウのID取得→ハンドルに変換→DOSCMD("taskkill /f /im <#DBL>" + HND + "<#DBL>")
112名無しさん@お腹いっぱい。:2012/11/02(金) 21:16:34.00 ID:RTBFr6hI0
まちがえた /im じゃなくて /pid だな
113名無しさん@お腹いっぱい。:2012/11/02(金) 22:30:56.70 ID:rIog9SuL0
ハンドルではなくプロセスIDにすべきでしょ
114名無しさん@お腹いっぱい。:2012/11/03(土) 07:10:17.23 ID:wRFDZ7/80
http://uproda.2ch-library.com/596094EN6/lib596094.bmp
PW1
上記の様なマップの宝箱や階段をクリックするブラウザゲーをIEでやっています
MAP巡回をするプログラムは出来たのですが,宝箱の画像認証に課題があります

上記ゲームで宝箱の画像認証はできたのですが,画像にしてしている様に
・宝箱は光ったり暗くなったりして色が変わります

ですので認証する際の画像は
・宝箱の色の光った時と暗くなった時の色彩の変化の少ない所
・宝箱の色が一様な所
を認証できる範囲で一番大きな6×3位の画像
CHKIMG("A.BMP",0,60,160,729,480,-1,IMG_MSK_BGR5からIMG_MSK_BGR6)
で認証しています

しかしながら色の誤差を大きくしてしまっているため,他のMAPの別の所に反応してしまいます
そこで画像の
・宝箱の色彩の変化の大きい所
を選択して宝箱のみ認識する画像にしようとしましたが今度は画像認証を行ってくれませんでした
115名無しさん@お腹いっぱい。:2012/11/03(土) 07:15:03.00 ID:wRFDZ7/80
皆様にお聞きしたいことは
・この様な場合皆様は画像の認証をする際に気を付ける事はしていますか?
・また画像認識できないときの対処のためのプログラムの改善
・綺麗なプログラムについてもアドバイス頂けたら嬉しいです

ちなみにプログラムを下の様にMAPばかり認証してしまった場合に次の処理へ行く様には書き換えていますが進むのには時間がかかってしまってプログラムと共に画像認識を改善したいと考えています

WHILE TRUE
通った道の記録
if 箱が見つかった and boxcount<10
箱をクリック
boxcount++
elseif 階段が見つかった and kaidancount<10
kaidancount++
elseif 青い人の検索 and bluemancount<10
bluemancount++
else
道の検索とクリック
endif
WEND

プログラム詳細も載せておきます(PW1)
http://uproda.2ch-library.com/596096TxO/lib596096.uws
116名無しさん@お腹いっぱい。:2012/11/03(土) 07:54:12.91 ID:H5OBjkDf0
画面外にあるウィンドウに対して画像認識する方法はあるでしょうか
例としては1920,1080のモニタであるウィンドウを2000,1に移動
そのウィンドウに対して画像認識

mouseorg(GETID(GET_ACTIVE_WIN),2)
ACW(GETID(GET_ACTIVE_WIN),2000,1)
if chkimg("a.bmp",0,0,0,800,600)then fukidasi("成功",0,0)
117名無しさん@お腹いっぱい。:2012/11/03(土) 08:22:19.01 ID:cuEEEzHC0
透過色の設定を-1にして形のチェックじゃいけないの?
118名無しさん@お腹いっぱい。:2012/11/03(土) 09:09:25.64 ID:kjGT+Mpz0
3Dポリゴンの色認識が反応しないんだけどなんで?
119名無しさん@お腹いっぱい。:2012/11/03(土) 10:23:56.41 ID:awp5Bdyd0
>>115
光るアニメーションのうちの任意の1枚で、他と混同がなく、
アニメーションの最も遅い瞬間で、
コントラストのなるべくはっきりしたユニークな一枚、
そのコントラストの部分が左上に来るように切り取った8x8ぐらいのを使う。

そいつをSLEEP(0.1)挟んで数回連続CHKIMGし一度でもヒットしたらループ打ち切り。
120名無しさん@お腹いっぱい。:2012/11/03(土) 10:25:42.23 ID:awp5Bdyd0
>>116
XPだとダメ。他のウィンドウの下もダメ。
一時的に画面内に持ってきて判定してすぐ元の位置に戻すとか、
GETITEMで取れるやつで何とかするとか
121名無しさん@お腹いっぱい。:2012/11/03(土) 10:30:15.19 ID:H5OBjkDf0
>>120
スペックかいてなかったです申し訳ない windows7pro64bitです
XPではだめということは7では方法があるんでしょうか


一時的に画面内・・・その発想はなかったです 画面内には開ききれない量のウィンドウを
同時処理したいので、できる限りこの方法以外があればいいのですが・・・
122名無しさん@お腹いっぱい。:2012/11/03(土) 10:39:07.21 ID:awp5Bdyd0
>>115
対象URLとか隠せよ十中八九規約違反だろw
これ運営が見て対策されたらスクリプト作り直しになるぞw
広めるんじゃない、おまえには後ろめたさが足りないw

・IFBがIFになってるぞ
・所々インデントがいい加減
・大文字か小文字か統一しろよ
・THENつけるかつけないかも統一しろよ
・演算子の前後の空白、代入時は詰めるとかのルールならFORのときも詰めたら
・関数名CLICKは俺ならclickForCheckAvoidanceにするな。
 後々関数が増えてきた時に用途がブレないようにするため。
・今のうちに機能ブロックごとに別ファイルに分割したほうがいいかもね
123名無しさん@お腹いっぱい。:2012/11/03(土) 10:40:43.82 ID:awp5Bdyd0
>>121
XP以降は、実際に表示されない部分の画像はOSが描画処理しないことで
パフォーマンスを上げているしくみ
画像が存在しない
124名無しさん@お腹いっぱい。:2012/11/03(土) 11:22:10.74 ID:cuEEEzHC0
>>122 IFBはVer 4.7からIFでもIFBでもどちらでも使えるようになってるよ

>>115 進むのに時間がかかるの意味がちょっとわからないが短絡評価(複数条件がある場合初めの条件が一致したら後の条件は無視)ならできるよ
スクリプトの初めの方にでも option SHORTCIRCUIT を付け加えておく
125名無しさん@お腹いっぱい。:2012/11/03(土) 11:38:50.36 ID:CGupTffW0
ブラゲー面白そうだったらやってみようと思ったがハンゲかよw

それはさて置き、CheckColorでRGB値サーチって手法もあるっちゃある
有効値を+-20とかにして「○○っぽい色」があれば周辺のXY座標を再サーチして
更に「○○っぽい色」があればクリックとか
126名無しさん@お腹いっぱい。:2012/11/03(土) 11:46:03.74 ID:CGupTffW0
127名無しさん@お腹いっぱい。:2012/11/03(土) 12:22:40.75 ID:kjGT+Mpz0
UWSCって7の64bitだとまともに動かないのかよ、今知ったわ。
ペイントで赤色適当にぬって、$0000FF指定してカーソル移動させようとしたのに無反応とか
何だこの欠陥ソフト
128名無しさん@お腹いっぱい。:2012/11/03(土) 12:27:37.46 ID:awp5Bdyd0
>>127
欠陥ソフトなのでもう使うのは辞めてこのスレにも来ないでね。
このソフトのことはもう忘れてくれ。
129名無しさん@お腹いっぱい。:2012/11/03(土) 12:51:38.02 ID:kjGT+Mpz0
分かったわ。ソフトが糞なら利用者も糞だな
7対応したら起こしてくれ
130名無しさん@お腹いっぱい。:2012/11/03(土) 14:34:20.56 ID:kbMDhJKeP
>>129
文句あるならお前がUWSCより優秀なソフトを自作して使えばいいだけ
キチガイ死ねカス
131115-116:2012/11/04(日) 18:22:16.63 ID:pAPM1NcD0
皆様ありがとうございます!

>>117さん
透過色-1はわかるのですが、形のチェックについて以前ググったときは赤のドラえもんと青のドラえもんが同じ判定をされて、
輪郭とまわりの淵?がはっきりしていなければならないといった認識で,今回の宝箱の周囲の赤色は少し変わるので上手くいかない
のかなといった事を考えていました(私が間違った事を言ってる可能性あります)
詳細な使い方については調べきれずとりあえず使ってみて上手くいかなかったのでほったらかしにしている状況です・・
形のチェックと、透過色との組み合わせについて参考となりそうな検索手段を教えて頂けると幸いです・・・

>>119さん
画像認識のノウハウとても参考になります^^
8*8のユニークな部分を左上に持ってくるとは最初の一点で違うと判断されたら次へ移るということで高速に判定できるのを
狙われているのでしょうか?
132115-116:2012/11/04(日) 18:31:59.22 ID:pAPM1NcD0
皆様ありがとうございます!

>>117さん
透過色-1はわかるのですが、形のチェックについて以前ググったときは赤のドラえもんと青のドラえもんが同じ判定をされて、
輪郭とまわりの淵?がはっきりしていなければならないといった認識で,今回の宝箱の周囲の赤色は少し変わるので上手くいかない
のかなといった事を考えていました(私が間違った事を言ってる可能性あります)
詳細な使い方については調べきれずとりあえず使ってみて上手くいかなかったのでほったらかしにしている状況です・・
形のチェックと、透過色との組み合わせについて参考となりそうな検索手段を教えて頂けると幸いです・・・

>>119さん
画像認識のノウハウとても参考になります^^
8*8のユニークな部分を左上に持ってくるとは最初の一点で違うと判断されたら次へ移るということで高速に判定できるのを
狙われているのでしょうか?
133115-116:2012/11/04(日) 18:56:55.13 ID:pAPM1NcD0


>>122さん
プログラムあまり上手ではないので参考になります!
プログラム検索しているとみなさん見やすくてとても参考になる・・

>>124さん
ありがとうございます!
そんなオプションがあったんですね
画像判定処理に時間がかかるわけではなく、アルゴリズムに問題があるという意味で遅い
のですが仮想化してて重い故今後役に立つ可能性大です!
ご意見から察するに分岐で複数の判定を要する際はは不要な判定も済ませて実行しているのですか

>>125,126さん
プログラム拝見させて頂き思い浮かびました
CHKIMGでは既存の画像を使い、誤認識を防ぐためにpeekcolorを使って周辺のユニークな色1点を検索する事で安定するのではないかと!
最初Peekcolor一点の検索だとMAPの色によっては沢山検索しないといけない気がしましたのでこの方法で試してみたいと思います
134名無しさん@お腹いっぱい。:2012/11/04(日) 23:58:49.47 ID:KbkfVQ2v0
2012/11/5 19:00
↑ここの5の前に0を追加することってできますか?
135名無しさん@お腹いっぱい。:2012/11/05(月) 00:02:05.62 ID:yKEzagQ50
はい
136名無しさん@お腹いっぱい。:2012/11/05(月) 00:45:04.40 ID:ejWB53aA0
>>134
s1 = "2012/11/5 19:00"
tmp = s1
y = Token("/", tmp)
m = Token("/", tmp)
d = Token(" ", tmp)
t = tmp
if Length(m) < 2 then m = "0" + m
if Length(d) < 2 then d = "0" + d
s2 = y + "/" + m + "/" + d + " " + t
MsgBox(s2)
137名無しさん@お腹いっぱい。:2012/11/05(月) 19:24:41.04 ID:akiMXvhL0
strTest = "2012/11/5 19:00"; strSep = "/ :"; DIM strDt[6]
FOR lI=0 TO RESIZE(strDt)
  strDt[lI] = VAL(TOKEN(strSep, strTest))
  IF strDt[lI] = ERR_VALUE THEN strDt[lI] = 0
NEXT
PRINT strDt[0] + "/" + strDt[1] + "/" + strDt[2] + " " + strDt[3] + ":" + strDt[4] + ":" + strDt[5]
PRINT getDateTimeStrByGettimeSeconds(transGettimeSeconds(strDt[0], strDt[1], strDt[2], strDt[3], strDt[4], strDt[5]))


FUNCTION getDateTimeStrByGettimeSeconds(lGettimeSeconds)
  GETTIME(lGettimeSeconds/60/60/24, "2000/01/01 00:00:00")
  RESULT = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2
FEND

FUNCTION transGettimeSeconds(lOffsetYears=2000, lOffsetMonths=1, lOffsetDays=1, lOffsetHours=0, lOffsetMinutes=0, lOffsetSeconds=0)
  RESULT = offsetGettimeSeconds(lOffsetYears-2000, lOffsetMonths-1, lOffsetDays-1, lOffsetHours, lOffsetMinutes, lOffsetSeconds)
FEND

FUNCTION offsetGettimeSeconds(lOffsetYears=0, lOffsetMonths=0, lOffsetDays=0, lOffsetHours=0, lOffsetMinutes=0, lOffsetSeconds=0)
  lStrYear = "" + (2000 + lOffsetYears + INT(lOffsetMonths/12))
  lOffsetMonths = lOffsetMonths MOD 12
  IFB lOffsetMonths < 0 THEN
    lStrYear = lStrYear - 1
    lOffsetMonths = lOffsetMonths + 12
  ENDIF
  lStrMonth = "" + (1 + lOffsetMonths)
  IF LENGTH(lStrMonth)<2 THEN lStrMonth = "0" + lStrMonth
  RESULT = _
    GETTIME(0, lStrYear + "/01/01 00:00:00") + GETTIME(0, "2000/" + lStrMonth + "/01 00:00:00") + ((( (( (lOffsetDays * 24 + lOffsetHours) * 60 + lOffsetMinutes )) * 60 + lOffsetSeconds )))
FEND
138名無しさん@お腹いっぱい。:2012/11/05(月) 21:04:31.17 ID:ejWB53aA0
s1 = "2012/11/5 19:00"
t = s1
s2 = Token("/",t) + "/" + Copy(100+Val(Token("/",t)),2) + "/" + Copy(100+Val(Token(" ",t)),2) + " " + Copy(100+Val(Token(":",t)),2) + ":" + t
MsgBox(s2)
139名無しさん@お腹いっぱい。:2012/11/05(月) 23:53:50.95 ID:EWeqSgMeP
S1 = "2012/11/"+"0"+"5 19:00"
MSGBOX(s1)
140名無しさん@お腹いっぱい。:2012/11/06(火) 05:47:28.18 ID:tq2mwrl50
i = "2012/11/05 19:00"
msgbox(i)
141名無しさん@お腹いっぱい。:2012/11/06(火) 09:59:49.60 ID:ncREa9xG0
msgbox("2012/11/05 19:00")
142名無しさん@お腹いっぱい。:2012/11/06(火) 10:10:25.12 ID:JZkjp+op0
k1 = "2012/11/06"
k2 = replace(trim(k1),trim(k1),"2"+"0"+1"+2"+/"+"/"+"1"+"1"+"/"+"0"+"5"+" "+"1"+"9"+":"+"0"+"0")
if pos(trim(k2),"2012/11/05 19:00") > 0 then msgbox(trim(k2))
143名無しさん@お腹いっぱい。:2012/11/06(火) 21:57:36.11 ID:qBMVUonl0
CHKIMGを使った際に返される座標値が-999999,-999999ってかえってくるのですが
この原因が分かる方いませんか?
144名無しさん@お腹いっぱい。:2012/11/06(火) 22:02:17.59 ID:bsmq6tG/0
>>143
chkimg()の返値がFalseなんじゃないの?
145名無しさん@お腹いっぱい。:2012/11/06(火) 23:17:46.43 ID:ncREa9xG0
>>143
ERR_VALUE = -999999
146名無しさん@お腹いっぱい。:2012/11/06(火) 23:23:16.06 ID:qBMVUonl0
ERRなのですか・・・
プログラム中でその様な値となるので、画像の検索用のプログラムで複数回調べるときちんと値は入っていました
ERR_VALUEとFALSEは一緒の事ですよね?
147名無しさん@お腹いっぱい。:2012/11/07(水) 01:14:16.44 ID:LH3dgIzB0
chkimg()の返値がFalse
だから、座標に-99999が格納される仕様なんじゃないの?
148名無しさん@お腹いっぱい。:2012/11/07(水) 01:22:00.92 ID:yDDBvlpr0
>>146
検索用とやらで座標取得できてるなら本スクリプトに何か問題があるんでしょ
情報が少なすぎるし晒してみなよ
149名無しさん@お腹いっぱい。:2012/11/07(水) 11:24:00.24 ID:geuBrNDN0
関数内でchkimgして呼び出し元でG_IMG_X/Y使おうとしてるとか
150名無しさん@お腹いっぱい。:2012/11/07(水) 12:32:38.75 ID:HPKwSu8nP
原始的だけど、カーソル移動やクリックの動作の直前に
fukidasiやprintで座標出してみるといいかも。
どこで躓いてるかすぐわかる。
151名無しさん@お腹いっぱい。:2012/11/10(土) 13:38:19.95 ID:yR0gLTmO0
マウスのカーソル位置を監視し、タスクトレイのメーラーアイコンの見た目の変化を検出するとクリックしてメーラー画面を開くスクリプトを組んだのですが
思い通り動作しないです・・・・ おかしいところがないか見てください。初UWSCです。鶴亀というのはメーラーのソフト名です

While True
WHILE TRUE
ifb GETID(GET_ACTIVE_WIN) = GETID("turukame.exe") then
IFB CHKIMG("a/turukame") = G_MOUSE_X y1 = G_MOUSE_Y
BTN(LEFT,CLICK)
Open(FileName :="C:\turukame\turukame.exe")
Endif
Endif
152名無しさん@お腹いっぱい。:2012/11/10(土) 14:14:57.93 ID:U37qm/mfP
どこから突っ込んでいいのかわからない・・・

とりあえずIFB ○○ = ○ = ○なんて判定の仕方はない
IFB ○○ = ○ and ○○ = ○ なら使える

判定が鶴亀とかいうツールがアクティブの時のみだけどそれ以外の時に変化があるのでは?

WHILE TRUEに対してのWENDがないけどスクリプトの一部?というか無限ループの中に無限ループ?

BTN(LEFT,CLICK) ってどこクリックさせてるの?

G_MOUSE_X y1 いきなり知らない変数出てきてるけどこれ何w

Open(FileName :="C:\turukame\turukame.exe")ってすでにアクティブウィンドウの時の判定なんだから開いてるんじゃないの?
153名無しさん@お腹いっぱい。:2012/11/10(土) 15:18:06.98 ID:sJ45IC2r0
>>151
・CHKIMGの戻り値は true または false なので、マウスカーソルの座標と比較しても無意味。
  画像に一致した座標は G_IMG_X と G_IMG_Y に返る。比較するならこっちと。

・Openは標準関数にはないし、:=使ってるってことは、COMのメソッド呼び出しなんだろうけども
  hoge.Open(FileName :="C:\turukame\turukame.exe") の様にCOMオブジェクト変数が必要
  turukame.exeを実行したいだけならexec関数でいいのでは?

・タイトルに turukame.exe が含まれたウィンドウがアクティブになるのかが、そもそも怪しい。
 常識的に考えて .exe まで入れるものかな?
 ウインドウIDからEXEのフルパスを得て、turukame.exe なのかを判断すべきなんじゃ・・・
154名無しさん@お腹いっぱい。:2012/11/10(土) 15:29:11.11 ID:U37qm/mfP
そもそもマウスカーソルの位置を監視する意味っていうのがわからないなぁ
画像のチェックで変化を監視するなら画像のチェック>変化があったらその場所をクリック(ツールを開く?)だけでいいと思うし
155名無しさん@お腹いっぱい。:2012/11/10(土) 15:37:26.78 ID:3rzXavYu0
while true
 IFb CHKIMG("turukame_icon.bmp",,0,0,1920,1080) then 
   BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
  //BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
  //msgbox("メールを読み終えたらOKを押してね")
 endif
 SLEEP(0.1)
wend

・CHKIMGの画像検索範囲を狭めれば高速化
・メーラーアクティブにダブルクリックが必要なら2つめのBTNも有効に
・メール未読状態継続でiconに変化がない場合はmsgboxを有効に
・お好みに合わせてSLEEP()で調整

反応させたいときのアイコンをPrintScreenボタンでキャプチャし、
画像ソフトに貼り付け、切り出してスクリプトと同じ場所にbmpで保存
156名無しさん@お腹いっぱい。:2012/11/10(土) 17:00:59.72 ID:4gaPkaDwP
>>151
試しに同じ動作のものを書いてみようとしたが、意外にいい線いってるかもしれん。
常駐時の通常アイコンが画面内になく、なおかつアクティブウインドウが秀丸でなければ
秀丸メールを実行したいんだよね?

その考え方を生かすなら、ヒントとしては
>GETID("turukame.exe")

そこはプログラムの実行ファイル名じゃなくて、ウインドウのタイトル(一部でもOK)。
ちゃんとバージョンアップしてるなら GETID("秀丸メール")

あと、秀丸は確かに、既に起動していて常駐の状態でも実行ファイルを再度実行することアクティブになる。
exeファイルの実行はこちらの関数。
EXEC("C:\turukame\turukame.exe")

あと、ifbじゃなくてIF

while trueじゃなくて、while chkimg〜ですっきりするかも

whileの中にIFを使って、IFの条件に合う場合はまたwhileのループに戻る方法はこちら
ttp://canal22.org/tag/while/

IFの処理内容にCONTINUE。
157名無しさん@お腹いっぱい。:2012/11/10(土) 19:48:54.06 ID:sJ45IC2r0
>>156
while chkimg〜 だとsleep入らないからマズイよ
それと、ifbは旧バージョンからのなごり。(ブロック形式のIF文) 現在ではifでもよい
158名無しさん@お腹いっぱい。:2012/11/10(土) 21:02:21.69 ID:U37qm/mfP
ブロックIF文の時のENDIF忘れの防止にもなるからいまだにIFB使ってるわ
159名無しさん@お腹いっぱい。:2012/11/10(土) 23:12:16.03 ID:e71uMGpA0
ifb=ifになったんだっけ
既存のものの書き換えで済むものしかいじってないから未だにifb使ってるけど
160名無しさん@お腹いっぱい。:2012/11/11(日) 00:16:42.86 ID:cbDQkjay0
>>157
一行じゃなくブロックの場合はIFBって認識だったけど
いつの間にか変わったんだねw

質問主がやろうとしたのは恐らく
while chkimg〜
sleep(1)
IF アクティブういんどーID = 秀丸エディタID こんてぃにゅー
wend
EXEC 秀丸メール

的な。
このままじゃ一度新着メールが来てループを抜けると終わってしまうから
さらにこれを囲って、何らかの条件でループさせる必要があるけど。
161名無しさん@お腹いっぱい。:2012/11/11(日) 01:13:09.68 ID:PeXm1Xpu0
一行の時はif、複数行の時はifbって使い分けてる
162名無しさん@お腹いっぱい。:2012/11/11(日) 12:27:22.49 ID:EIVMwjIa0
call文で戻り値を取得したり、引数を参照渡しにしたりすることはできますかね
関数に収めるにはずいぶんと長くなってきたのでcallで呼び出そうと思ったら関数と同じようにはいかなかったよ・・・orz
値をいったんcsvとかに保存する案を思いついたんですが、もっとスマートにいかないでしょうか

あと上記について調べていると、
「関数はFUNCTIONS.UWSにまとめ、Call関数で呼び出すとスッキリ」
というのを某サイトで見たんですが、どういう使い方をすれば関数をまとめれるんでしょうか
PARAM_STRに数字を入れて、select文ぐらいしか思いつかなかった・・・
163名無しさん@お腹いっぱい。:2012/11/11(日) 12:39:21.73 ID:W2O3Etlh0
functions.uwsに関数定義しておいて
callしたあとに呼び出すだけでおk
164名無しさん@お腹いっぱい。:2012/11/11(日) 12:47:21.71 ID:EIVMwjIa0
こ、こいつはすげえ
スマートでスッキリしました 早い返答ありがとうございました
165名無しさん@お腹いっぱい。:2012/11/11(日) 12:49:23.73 ID:W2O3Etlh0
言葉が不足
callしたあとに通常の関数と同じように呼び出せばいい

で、今試したら関数呼び出すところより後ろでcallしても問題なかった
個人的には気分的に関数集は頭で呼び出すけど
166名無しさん@お腹いっぱい。:2012/11/11(日) 14:49:39.77 ID:yiBbj4pQ0
俺の場合、関数も多くなりすぎたので、
C言語に倣って、ヘッダファイル的なものを導入した。
・メイン.uwsがヘッダ.uwsをcall
・ヘッダ.wsが複数のライブラリ.uwsをcall
これで、メインからライブラリの関数を使用出来る。
167名無しさん@お腹いっぱい。:2012/11/11(日) 21:15:28.00 ID:EIVMwjIa0
またまた質問ですorz とあるファイルを初期化する処理を、
ID=FOPEN("a.csv",F_WRITE)
FCLOSE(ID)
ID=FOPEN("a.csv",F_READ or F_WRITE)
と行っていたんですが、何度も行うと開けるファイルの最大数エラーで落ちてしまいます

代替策としてFPUT(ID,"")を考えたのですが、処理が違うのか、同じように動いてくれません
別の方法や上記二つの違いなどがわかる方がいればお願いします
168名無しさん@お腹いっぱい。:2012/11/11(日) 21:47:09.88 ID:pqupsn940
>>167
>ID=FOPEN("a.csv",F_READ or F_WRITE)
に対する fclose() が無いだけとか?
169名無しさん@お腹いっぱい。:2012/11/11(日) 21:47:25.87 ID:nEYrXvAJ0
FPUT(ID,"",F_ALLTEXT)
170名無しさん@お腹いっぱい。:2012/11/11(日) 22:23:30.37 ID:EIVMwjIa0
>>168
そういえばそうだ・・・ 最初の2行で閉じる処理含めてると思ってた
が、全然そんなことはなかった よくよく考えるとただの凡ミスでしたorz
>>169
こんな便利なものもあるんですね お手軽そうなのでこちらと入れ替えてみます

お二人とも助言ありがとうございました
171名無しさん@お腹いっぱい。:2012/11/11(日) 22:31:23.36 ID:ZZM82fps0
FPUT(ID,"")だと、文字列""をファイルの最後に追記
FPUT(ID,"",F_ALLTEXT)だと、ファイル内容全体を文字列""に置き換え
172名無しさん@お腹いっぱい。:2012/11/12(月) 02:54:41.06 ID:OlDOm8Fh0
2012/11/12 UWSC Ver4.8c、 Pro版と Free版をリリースしました。
173名無しさん@お腹いっぱい。:2012/11/12(月) 06:39:25.63 ID:wpgyrI0S0
DOSCMD関数にてマルチ行の実行を出来るようにした
他はバグの修正っぽい感じだがこれかなり使いやすくなるな
174名無しさん@お腹いっぱい。:2012/11/13(火) 09:14:04.79 ID:/2/KNnBu0
新バージョン出たようだな
http://www.uwsc.info/download.html


[Ver4.8c]
  uwsc.exeに引数で UNICODE文字を渡せなかったのを修正
  ループの中で DIM宣言の配列サイズを増やした時にエラーになるのを修正
  SENDSTR関数の追加モードにてサイズが大きいと遅いのを修正
  FUKIDASI関数にて ちらつくパターンがあるのを修正
  LockHard(True)実行中にコンテキストメニュのクリックが出来なかったのを修正
  IESETDATA関数にてSELECTの変更でダイアログが出た時にスレッドでの処理が出来なかったのを修正
  CLKITEM関数にて種別を省略したデフォルト処理で ClK_ACCも処理するようにした
  DOSCMD関数にて出力が ANSIだったのを UNICODEでの出力も出来るようにした
  DOSCMD関数にてマルチ行の実行を出来るようにした
  Pro版:
  CREATEFORM関数を使用すると桁数の大きい小数点演算で値が変になるパターンがあるのを修正
  Debugger: フォントのサイズ変更後にペースト処理にて表示が崩れる事があるのを修正
  Uws2Exe: バージョン情報の書き込みを出来るようにした
175名無しさん@お腹いっぱい。:2012/11/17(土) 09:31:48.50 ID:02OswU310
すいません
gettimeで出力する時間を
35分とか40分みたいに現在から一番近い時間に設定することは可能ですか?
今から31分だから35分 みたいな感じで出来ると便利ですが
176名無しさん@お腹いっぱい。:2012/11/17(土) 09:57:30.32 ID:02OswU310
5分毎の時間って意味です 
177名無しさん@お腹いっぱい。:2012/11/17(土) 10:08:33.80 ID:DD725hiA0
算数の知識を試してるのか
178名無しさん@お腹いっぱい。:2012/11/17(土) 10:18:44.44 ID:yBBowb8E0
取得した分を5で割って余りが0以外ならその値に1プラスして5をかける
179名無しさん@お腹いっぱい。:2012/11/17(土) 10:21:48.88 ID:yBBowb8E0
なんか分かりにくい日本語になってしまった気がしないでもないけど気にしない
180名無しさん@お腹いっぱい。:2012/11/17(土) 10:37:18.66 ID:fccdun/F0
>>175-176
何がやりたいのか自分でもわかってない
やりたいことをきちんとした文章で表現できてない。
要求仕様を日本語で正しく表現できれば、
後はそれをプログラミングするだけの簡単な内容だよ。
算数も小学校レベルでOK
181名無しさん@お腹いっぱい。:2012/11/17(土) 10:46:01.36 ID:03ErtcdC0
要するに、5分刻みで切り上げたいだけ?
182名無しさん@お腹いっぱい。:2012/11/17(土) 10:58:41.85 ID:os6AsipL0
>>176
GetTime(5 / (60 * 24)) //5分後の時刻を得る
nn = Int(G_TIME_NN / 5) * 5 //分を5の倍数にする
if nn < 10 then nn = "0" + nn //分を2桁にする
GetTime(0, G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + G_TIME_HH2 + nn + "00") //時刻変数に時間を設定する
MsgBox(G_TIME_YY4 + "年" + G_TIME_MM2 + "月" + G_TIME_DD2 + "日 " + G_TIME_HH2 + "時" + G_TIME_NN2 + "分" + G_TIME_SS2 + "秒")

>>178
その方法だと、年・月・日・時も補正する必要あるから面倒だよ。閏年とかも
183名無しさん@お腹いっぱい。:2012/11/17(土) 11:03:48.95 ID:02OswU310
>>182
ありがとう
184名無しさん@お腹いっぱい。:2012/11/17(土) 11:30:27.01 ID:os6AsipL0
>>183
ごめん凡ミス。きっちり5分後だとまずいんだった。最初の行は…
GetTime((60 * 5 - 0.01) / (60 * 60 * 24)) //約5分後の時刻を得る
185名無しさん@お腹いっぱい。:2012/11/17(土) 11:58:49.54 ID:4ErzmqGgP
一番近い時間とか計算で出すよりも実行フラグ作ってフラグが立ってる時のみG_TIME_NN MOD 5 なら実行とかした方が楽じゃね?
186名無しさん@お腹いっぱい。:2012/11/18(日) 18:43:07.61 ID:Va2B+ONc0
画像を開くにはどうすればいいですか?
187名無しさん@お腹いっぱい。:2012/11/18(日) 19:27:49.49 ID:8nNtiaQY0
>>186
てきとうな画像ソフトを起動する
188名無しさん@お腹いっぱい。:2012/11/18(日) 19:55:07.93 ID:qwRbtULH0
doscmdでパスを指定する
189名無しさん@お腹いっぱい。:2012/11/19(月) 06:17:38.17 ID:hznf50XT0
もしかしてUWSCってINIファイルにコメント書き込めないの?
190名無しさん@お腹いっぱい。:2012/11/19(月) 07:29:52.25 ID:hznf50XT0
キーの後には書き込めないみたいだな
最初に書くか・・・
191名無しさん@お腹いっぱい。:2012/11/20(火) 01:55:21.76 ID:xP5gB3g+0
左クリックを押しっぱなしにしている間だけ、左クリック連打したいです。
どうすればいいのでしょうか?
192名無しさん@お腹いっぱい。:2012/11/20(火) 03:01:19.69 ID:iIVHdBd7P
キー判定+BTN
193名無しさん@お腹いっぱい。:2012/11/20(火) 07:33:24.78 ID:ptqHzCNu0
マウスってキー判定できたっけ

>GetAsyncKeyState 関数は、マウスボタンの状態も取得できます。ただしこの関数は、物理的なボタンのマップ先である論理的なマウスボタンの状態ではなく、
>物理的なマウスボタンの状態を取得します。

aa,
できるのか。
194名無しさん@お腹いっぱい。:2012/11/20(火) 07:43:18.99 ID:JrWtWeQX0
>>192
それだとBTN(LEFT,UP)の時にキー判定がクリアされてしまいませんか?
195名無しさん@お腹いっぱい。:2012/11/20(火) 08:24:36.32 ID:veSpkEXs0
GetAsyncKeyStateで物理的なものを見てそれが押されてる間仮想のキーをアップダウンすればいいんじゃね?
196名無しさん@お腹いっぱい。:2012/11/20(火) 08:27:40.53 ID:JrWtWeQX0
GetAsyncKeyStateは使い方が分かりませんでしたが、mouseorgを使えば解決しました。
ありがとうございました。
197名無しさん@お腹いっぱい。:2012/11/20(火) 08:28:01.58 ID:veSpkEXs0
あ、今のなしで
198名無しさん@お腹いっぱい。:2012/11/20(火) 14:51:26.71 ID:iIVHdBd7P
あぁこれ仕様で無理みたいだな
連打クンとか他のツールと組み合わせるか別のキーで連打するようにすれば?
199名無しさん@お腹いっぱい。:2012/11/20(火) 19:35:01.49 ID:z7EunaLvP
>>186
> 画像を開くにはどうすればいいですか?

いま出先で試せないけどexec(だったかなw)でパス指定すれば関連付けされたソフトで開かないかな。

あと、原始的だけど画像ビューアをそれで起動してから
ファイルを指定されたアプリにドラッグ&ドロップする関数でポイでも、
200名無しさん@お腹いっぱい。:2012/11/22(木) 18:46:29.90 ID:zp2MYIZI0
ブラウザゲームをやっていて
xx1,xx2,xx3と文字列を順番に送信する必要があります。

文字列の送信をしたいのですが、SendStrでは送れません。
ID=GETID("タイトル名 - Windows Internet Explorer","IEFrame")
SendStr(ID,"xxxx",0,FALSE)
3つ目の引数については色々試しましたがうまく送れませんでした。

SCKEYを使ってコピーペーストも考えたのですが、
文字列をどこに保存させておいて、クリップボードへの保存のさせ方がよくわかりません。

皆様ならどのようにされますか?アドバイス宜しくお願いします。
201名無しさん@お腹いっぱい。:2012/11/22(木) 18:54:39.19 ID:KGrlPH73P
ブラウザゲームといってもいろいろあるからそれだけでは何とも
フラッシュプレイヤーで動作しているのかどうかとか
202名無しさん@お腹いっぱい。:2012/11/22(木) 18:55:44.09 ID:zitmXga10
ヘルプ見ればスクリプト関数に「IE操作関連」つーのがあるだろが。
203名無しさん@お腹いっぱい。:2012/11/22(木) 19:02:50.42 ID:KGrlPH73P
ちなみにクリップボード云々はSENDSTRをヘルプで調べればすぐ分かるはず
204名無しさん@お腹いっぱい。:2012/11/22(木) 20:37:35.18 ID:zp2MYIZI0
>>ゲーム上で右クリックしたところ
adobe flash player 11.5.502.110と出てきました。

ちなみにSENDSTRを使ったクリップボードへの保存の用途がURLのインナーテキストを保存等難しい用途に感じてしまい
数文字の文字列を保存させるのに使うようなものじゃない気がしていて他にあるんじゃないかと思ったのですが、
再度ヘルプを読み直して調べたところ
id=GETID("IE","IEflame")
FOR i = 1 to 10
SendStr(0,"xxx"+i)
SCKEY(id,VK_CTRL,VK_V)
NEXT
みたいな感じで出来そうなことに気づけました。
ありがとうございますm(__)m
205名無しさん@お腹いっぱい。:2012/11/22(木) 22:21:14.04 ID:MZzR8Z7r0
フラッシュのゲームじゃごく一部を除いてSendStrじゃ文字送れないと思うぞ
206名無しさん@お腹いっぱい。:2012/11/22(木) 22:35:43.09 ID:BDkSgFsr0
>>205
送るのじゃなくて、SendStrでクリップボードへ書き込みって話だよ
207名無しさん@お腹いっぱい。:2012/11/22(木) 22:40:29.41 ID:MZzR8Z7r0
クリップボードに送るだけなら SENDSTR(0,"文字") だけで十分じゃん
208名無しさん@お腹いっぱい。:2012/11/22(木) 22:42:10.72 ID:/xfNxz+R0
だからそうしてんだろこのスカポンタンが
209名無しさん@お腹いっぱい。:2012/11/22(木) 22:45:07.03 ID:MZzR8Z7r0
そうしてるってfor文で番号回してる上にidでIEに送ろうとしてんだぞ?
どう見てもクリップボードに送りたいんじゃなくどっかの入力欄に送りたいんだろ
210名無しさん@お腹いっぱい。:2012/11/22(木) 22:50:25.64 ID:BDkSgFsr0
>>209
クリップボードに書き込んだ後に、ウインドウid指定でCTRL+Vしてるのよ
211名無しさん@お腹いっぱい。:2012/11/22(木) 22:52:06.29 ID:BDkSgFsr0
まあENTERは必要ないのか?という意味なら、そうだけどw
212名無しさん@お腹いっぱい。:2012/11/23(金) 10:42:13.59 ID:ZPBTOot70
Flash上の文字列取得できたら便利なんだがそういうことできてる人いる?
213名無しさん@お腹いっぱい。:2012/11/23(金) 10:53:57.85 ID:etWQOucA0
そのFlashによるとしか
スタティックやアクセシビリティ経由で文字取得できるのもあれば
できないものもある
214名無しさん@お腹いっぱい。:2012/11/24(土) 05:07:22.31 ID:mq32/tJY0
例えば2つのUWSファイルを同時に実行中、それぞれの中からBTN()などが同時に
呼ばれた場合って動作は保証される?
せめて行単位での排他動作が保証されているといいのだけれど...
215名無しさん@お腹いっぱい。:2012/11/24(土) 05:16:53.37 ID:mq32/tJY0
すまん、exclusion()てのを使えばいいのか。
でもあまり速く動かすことは想定してないっぽいのか...
216名無しさん@お腹いっぱい。:2012/11/24(土) 18:02:19.25 ID:m+oBwUM30
今開いてる特定のwebページの情報をバックグランドでコピーすることって出来ますか?
例えば、IEでこのスレッドを開いてる時(開いてるけど、最小化してる時)、メモ帳に情報を貼り付ける事とかはできますか?
ただし、HTMLの情報じゃなくて、表面のテキスト情報だけを取得したいんですが。
217名無しさん@お腹いっぱい。:2012/11/24(土) 18:07:03.51 ID:m+oBwUM30
すいません。簡単にいうと、やりたいことは、
最小化、もしくはアクティブじゃない状態の今タブにあるIEのページ情報を
クリップボードに送りたいんです。
それだけ出来れば良いんですが、やはりページをいちいち開いて、Ctrl+Alt+Cで
コピーしなきゃいけないのかと思って。
218名無しさん@お腹いっぱい。:2012/11/24(土) 18:11:53.77 ID:2VwmlgzE0
htmlのソースを取得する方法があるでしょ
そんな原始的なやり方じゃなく
219名無しさん@お腹いっぱい。:2012/11/26(月) 09:27:05.36 ID:A+mNIPGT0
マウスのサイドボタンは使えないの?
記録できない
220名無しさん@お腹いっぱい。:2012/11/26(月) 20:26:46.49 ID:VSaHnjAG0
221名無しさん@お腹いっぱい。:2012/11/27(火) 11:39:43.81 ID:/uJhIurO0
スレッド使ってないのにUWSCのプレイヤーウィンドウが2つ表示される(後からのは未再生状態)現象が発生…
配列を多重に参照渡ししてその先でリサイズしているのだが、その辺で何かやらかしてしまっているのだろうか…
222名無しさん@お腹いっぱい。:2012/11/27(火) 12:09:50.66 ID:/uJhIurO0
だめだ、原因がわからないので再現PGが書けない。
宣言だけして定義していない配列をループで参照して中身を確認するブロックを消したら直ったけど、同じように再現PGを書いても再現しないわ。。。
223名無しさん@お腹いっぱい。:2012/11/27(火) 12:55:35.33 ID:u/dxI0nh0
日記ならチラシの裏にでも書いとけよ
224名無しさん@お腹いっぱい。:2012/11/27(火) 13:28:51.70 ID:SNoYa2oB0
禿同
聞きたいならちゃんとまとめて環境も書いて質問するとヨロシ
225名無しさん@お腹いっぱい。:2012/11/28(水) 09:46:45.79 ID:iNPLQKUO0
質問です。
UWSCは外部dllを使わず、プロセスメモリを読み込むことはできますか?
226名無しさん@お腹いっぱい。:2012/11/28(水) 10:08:53.04 ID:SqJFe0N40
プロセスメモリを読めるアプリを操作して、間接的に読むことはできるはず
227名無しさん@お腹いっぱい。:2012/11/28(水) 18:36:28.46 ID:iEofXsVgP
公式のサンプルページにメモリ使用量をソートする奴があるけどDLL使わないとタスクマネージャーとかりソースモニター使うとか間接的にしか読み込めないだろうね
228名無しさん@お腹いっぱい。:2012/11/29(木) 04:48:34.92 ID:cusld9Lm0
>>221
Bつけ忘れの従来エラーだった
IF ... THEN 改行
でなった気がしたがすぐ直してしまったので忘れた
229名無しさん@お腹いっぱい。:2012/11/29(木) 06:54:33.65 ID:gon9dsRt0
>>220
普通にwebページをCtrl+ALT+Cで選択した状態でコピーさえできればいいです
それをしかもバックグランドで
230名無しさん@お腹いっぱい。:2012/11/29(木) 09:42:24.50 ID:QYZu+OII0
>>229
横からすまんが何か釈然としないのは多分俺だけじゃない
最初から「バックグランドでwebページをCtrl+ALT+Cで選択した状態でコピーしたいです」って書けば?
>>220見てお前のやりたいと思われる事は出来たが
231名無しさん@お腹いっぱい。:2012/11/29(木) 10:07:52.17 ID:sG+hGyTz0
UWSCはアプリのメモリやパケットジェネレートできるようになったら最強だと思う
232名無しさん@お腹いっぱい。:2012/11/29(木) 10:13:48.77 ID:ekmRdWzVP
233名無しさん@お腹いっぱい。:2012/11/29(木) 10:34:36.78 ID:aJQnjlOC0
>>229
CreateOLEObj("InternetExplorer.Application")して
DOMからinnerTextを得ればいいだけじゃないの?
234名無しさん@お腹いっぱい。:2012/11/29(木) 12:05:18.89 ID:fRgO3cno0
BTNのクリックの押下時間を短くする方法ってありますか?
画面Aのある場所をクリックすると画面Bに変わるのですが、画面Bはクリックしてはいけません。しかし、クリックの余韻?が残っているのか、画面Bもクリックされてしまいます。
clickでもdown&upでもなります。
手動でクリックした時はなりません。

何か良い方法はないでしょうか?
235名無しさん@お腹いっぱい。:2012/11/29(木) 12:44:39.23 ID:aJQnjlOC0
>>234
MOUSEORG(id, 2)を組み合わせると指定のウィンドウだけに送ることができる
236名無しさん@お腹いっぱい。:2012/11/29(木) 20:15:19.66 ID:gon9dsRt0
>>233
もっと教えて
237名無しさん@お腹いっぱい。:2012/11/29(木) 20:43:07.65 ID:fRgO3cno0
>>235
すみません。画面Aと画面Bは同じウィンドウです。分かりづらくてすみません。
238名無しさん@お腹いっぱい。:2012/11/29(木) 21:05:59.23 ID:D+2wFxTe0
エラー:画面が未定義です
239名無しさん@お腹いっぱい。:2012/11/29(木) 21:16:14.51 ID:CLMNGOAw0
BTNで画面が切り替わるまで押した状態なんてまずなくね?
画面Bでも反応しちゃうような条件で押させてるんだろ
240名無しさん@お腹いっぱい。:2012/11/29(木) 21:41:13.20 ID:5yKJhCm10
>>237
取りあえずスクリプト晒しなよ
241名無しさん@お腹いっぱい。:2012/11/29(木) 22:43:11.80 ID:fRgO3cno0
>>239
そうなんですか。システム設定的な何か環境の問題でしょうかね。。

>>240
PosX=300; PosY=300
while 1
ブラウザに画面AのURLを入力する
表示待ち

btn(left, click, PosX, PosY, 100)
sleep(1)
wend

こんな感じです。。
ウィンドウはブラウザで、リンクの場所をクリックして次の画面Bに変わるのですが、クリックした場所にリンクが有り、それをクリックしてしまいます。
ループで回すと、20回に1回位発生します。
URL入力と表示待ちは自作の関数を使っていますが、他にbtnは無く1回だけです。
242名無しさん@お腹いっぱい。:2012/11/29(木) 23:00:56.58 ID:ekmRdWzVP
画面Aに飛んで表示が切り替わるのを待って画面Bへのリンクがある場所を条件もなしにクリックして1秒待つ
個のれ繰り返しのスクリプトなんだからそりゃ画面Bへ飛ぶでしょ
243名無しさん@お腹いっぱい。:2012/11/29(木) 23:02:10.93 ID:D+2wFxTe0
表示待ちの自作の関数も怪しいけどsleep(1)も表示待ちに変えてみれば?
IEなら位置でクリックするんじゃなくてCOM使うほうが確実
あと画面じゃなくてページって言えよ
244名無しさん@お腹いっぱい。:2012/11/30(金) 08:51:43.73 ID:ghG/lao70
>>241
ページAのリンクをclick

時々、sleep(1)ではページBの読込みが完了しない

ページAのURLを入力するが、まだビジー状態のままなので無視される

ページAの表示待ちしてるつもりが、実際はページBの表示待ちになる

ページBをclick

対処は、ページBの読込み完了を待つか、ESCキーで読込みを中断する
245名無しさん@お腹いっぱい。:2012/11/30(金) 10:01:23.61 ID:khnAfXoZ0
>>50の出番だw
246名無しさん@お腹いっぱい:2012/12/01(土) 01:27:40.77 ID:uU/nGnSv0
技能オリンピック
247名無しさん@お腹いっぱい。:2012/12/06(木) 15:43:32.15 ID:mIIgRs830
While True
Main.uws
├Call test.uws
│ └Thread Timer_kill
└Call test_2.uws
WEND
このような構造のマクロを作りました。
test.uwsからThreadでTimer_killという自作関数を読み出しています。
目的の内容としては15分以内にtest.uwsのマクロが完了しなければ強制的にtest.uwsを終了させMain.uwsに戻り、次のtest_2.uwsを読み出すというものです。
ですが、Thread内でexitを使うとThreadが終了するだけで、test.uwsが終了せず、
exitexitを使うとmainが終了してしまいます。
test.uwsだけを終了させて、main.uwsの通常の流れに持っていくことはできないのでしょうか?
248名無しさん@お腹いっぱい。:2012/12/06(木) 16:23:25.21 ID:pjnxP/TEP
完了しないならっていうのがどういう分気かわからないからエスパーだけどbreakは?
249名無しさん@お腹いっぱい。:2012/12/06(木) 16:24:50.98 ID:pjnxP/TEP
×分気
○分岐
ループさせてるのかとか全く分からないからってことね
250名無しさん@お腹いっぱい。:2012/12/06(木) 16:28:43.75 ID:WyO45Gea0
グローバル変数でフラグ管理
15分経過したらフラグON
test.uwsでちょくちょく変数参照させてフラグ立ってたらexit

こんな感じでなんとかならんかね?
251名無しさん@お腹いっぱい。:2012/12/06(木) 16:36:04.18 ID:Tdw+MaBw0
>>247
test.uwsのメインの処理の方をThreadにしたらいけるんじゃね
252名無しさん@お腹いっぱい。:2012/12/06(木) 16:39:46.00 ID:brybNQe80
>>247
exit したら関数が終了する。すべて処理し終えればスレッドも終了する。
exitexit したらスレッドが終了する。

exit も exitexit も、それを実行した関数やスレッド自身が終了するだけ。
メインスレッドが終了した場合はすべて終了する。

親から子スレッドを強制終了するには Windows API 使ってスレッドのハンドルとか取得しないといけない。
それができないから >>250 のようにするしかない。

あと、ループでスレッドを作り続けているから子スレッドが終了しても新しいのが常に存在する状態になってるね。
普通はスレッドを呼び出してからsleepとかループに入る。
253名無しさん@お腹いっぱい。:2012/12/06(木) 16:52:18.76 ID:Tdw+MaBw0
public flag = true
thread main()

time = 0
while (flag and time < 15)
 sleep(1)
 time = time + 1
wend

procedure main()
 //やりたい処理
 flag = false
fend

test.uwsの中身をこんな流れにしたら多分お望み通りの結果になるんでは
254名無しさん@お腹いっぱい。:2012/12/06(木) 17:05:03.64 ID:mIIgRs830
レスどうもです。
>>250
の案を使って見てうまく行きました。
ちょくちょくみるのは少しスマートでは無い感じですがorz
API叩くほどの知識が無いのでいずれ挑戦してみようと思います。
書いてから気づいたのですが、
Mainの中にWhileでした。
testの中はただの流れが書いてあるだけでループなどは無い物です。
testのメイン処理をThreadにしたものも作って見たのですが、Threadの最大個数が〜みたいな警告が出て怒られてしまいました
255名無しさん@お腹いっぱい。:2012/12/06(木) 23:35:32.22 ID:w1GmjiOk0
画面上にA、B、C、D、E、F、Gの画像のどれかがあればそこをクリックするってことを今やろうとしています
IF文でやろうとしたらELSE多重定義というエラーが出てよくわからない状態になってます

AがあればAを押す
なかったら
BがあればBを押す

こういう感じの命令文はIFじゃダメなんですか?
256名無しさん@お腹いっぱい。:2012/12/07(金) 00:01:13.29 ID:BC3s1E7H0
書いたソース晒すよろし
257名無しさん@お腹いっぱい。:2012/12/07(金) 00:20:19.66 ID:nCddsll0P
ELSEIF 使ってないとかじゃない?
IF
ELSEIF
ELSEIF
ELSE
ENDIF
みたいな形じゃないと駄目だよ
258名無しさん@お腹いっぱい。:2012/12/07(金) 00:30:58.00 ID:eXs1nz/Q0
>>257
それでした

ELSE
ELSE
ELSEみたいになってたのが原因ですね・・・
259名無しさん@お腹いっぱい。:2012/12/07(金) 03:50:24.57 ID:Z3SNwYXP0
ELSェ・・・
260名無しさん@お腹いっぱい。:2012/12/07(金) 05:06:43.38 ID:7bZ6xPGl0
こんにちは。
2点質問があります。
1点目はエラーについて。
CHKIMGを使った際に
CHKIMG :number of hit exceeded maximum value 4096
または
CHKIMG : It is not BMP,or resource cant be acquired(後者の問題によるエラーです)
などのエラーが出てしまいます。
これらのエラーを無視して処理を実行させ続けるにはどうすれば宜しいでしょうか?
IE関連のエラー無視ならありましたけど、UWSC関連はどこをいじれば宜しいのでしょうか。
構成ファイル(.INI)を見てもそれっぽいのは見つかりませんでした。

2点目は
逐次処理の合間合間に予想外の状況になったときの割り込み処理をいれたいのですが、

while お仕事中
割り込み処理:コーヒータイム
wend
while 帰宅後
割り込み処理:コーヒータイム
wend
みたいな感じで対応しているのですが、あまりにもwhileが多くて見づらいのです。
割り込み処理をするタイミングを並列で検知して、
逐次処理をストップして割り込ませるよい方法があれば教えて頂けませんか
261名無しさん@お腹いっぱい。:2012/12/07(金) 06:25:20.01 ID:nCddsll0P
そんなエラー見たこともないけどnot BMPってくらいだからBMPファイルでチェックしてないとか単色1ドットの画像でチェックしててヒット数多すぎて処理しきれないとかそんな感じじゃないのか?
後並列処理させたいならTHREADを使う
262名無しさん@お腹いっぱい。:2012/12/07(金) 10:37:54.74 ID:7bZ6xPGl0
THREADで割り込ませるタイミングはわかりますが、
そこでメインの処理を一旦中断して割り込み処理のみを実行させたいんです

仰る通りヒット数があまりにも多くエラーが出てるのですが、
そのエラーを表示させない方法があれば知りたいです。
ヒット数を減らす以外の解決策を探しています。
263名無しさん@お腹いっぱい。:2012/12/07(金) 11:15:21.71 ID:nCddsll0P
フラグを作ってスレッド処理してる時は他の事をしないようにするとか?

ヒット数多すぎるのに何の意味があるのか分からないがどうしてもというならチェック範囲を狭めて1回のチェックでのヒット数を減らすしかないんじゃない?
たとえば今全体でやってるなら4分割してチェックを4回してそれぞれのヒット数を別に合計して出すとか
264名無しさん@お腹いっぱい。:2012/12/07(金) 11:22:48.37 ID:BC3s1E7H0
大量にヒットしないように作ったほうはいいとは思うけど一旦それは置いといて
chkimg()をtry〜endtryで囲めばいけるんじゃないかな
結果は保証されないだろうけど
265名無しさん@お腹いっぱい。:2012/12/07(金) 23:35:32.08 ID:7bZ6xPGl0
ご意見ありがとうございます

ヒット数が多いのは私の至らない点で、
画面Aの時に検索したいもの(白い小さな○)をCHKIMGで検索しているのですが、
画面AからエラーBに遷移した際には、画面が真っ白になってしまって
遷移を認識せずに大量の画像にヒットしてしまうのです。


遷移を認識する必要のないものは手間をかけずにやってしまっているので。
(エラーまで含めると少し面倒くさくなってしまって。)

とはいえ、初心者が1000行くらいのコード書いたらそれはもうぐちゃぐちゃになってしまって
一旦整理した方がいいのでしょうが、画面遷移を綺麗にかけるようなコードが想像できません。
勉強しなきゃなあ・・

>>263
フラグ使えそうです
コード内がフラグだらけになっちゃいそうで怖いですが一度きちんと検討してみます。
綺麗にコードかけるようになりたいけど、お手本探しからになりそうです

>>264
ありがとうございます!
エラーが出ても期待通りの動作はしてくれている様なので、
try-endtryでコード全体を囲んじゃうのが一番適切なのかな

try 通常処理 except 通常処理時にエラーが発生した場合の処理 endtry
って認識であっていますよね?
266名無しさん@お腹いっぱい。:2012/12/08(土) 00:16:39.72 ID:DOCIRhzQ0
>>265 
CHKIMGの第2引数で白を透過に指定するとかすれば?
余白ないなら透過していように画像を1ドットだけ広げてあげればいいんだし
画面真っ白になっても白を透過にして置けば無視するからエラーは出ないはずだよ
267名無しさん@お腹いっぱい。:2012/12/08(土) 02:25:21.75 ID:Ipc8WK+GP
>画面Aの時に検索したいもの(白い小さな○)をCHKIMGで検索しているのですが、
> 画面AからエラーBに遷移した際には、画面が真っ白になってしまって

あくまで初心者風にchkimgで解決するなら
白い小さな○をchiimgする前のとこに
白い大きな○をchiimgして、それがヒットする間はsleepしちゃえば。

chkimg多用するなら、目的のブツが出てくるまでsleepって関数作って
そこかしこに入れると格段に完成度上がるよ。
268名無しさん@お腹いっぱい。:2012/12/08(土) 08:14:55.47 ID:hyhb47oX0
うう。簡単なエラー探すのに手間取って朝になってしまった。
コードが長くなると管理しきれませんね。
一行一行進めてのデバッグ出来ればいいのですが。

あと別の話ですが
(true and 92)って1じゃなくて0なんですね。
なんかよくわかんなくなってきちゃいました><

>>266さん 
透過ですか。自分の使っている白い画像はまだら模様の白で、光があたったりそうでなかったりで
色が微妙にかわってきます。なので色の範囲を広げてCHKIMGをしています。
ちょっとそれで透過使っても大丈夫か実験してみます。

>>267
なるほどです。
とても参考になります><
269名無しさん@お腹いっぱい。:2012/12/08(土) 08:47:11.16 ID:WC+ob2FD0
VMware上とかでリソースギリギリで長時間Chkimgさせると
同じエラー出るけど、エラーメッセージは日本語だな。
BMPファイルが見つからない、またはリソース不足です。中断しますか?
のようなメッセージだったな。
270名無しさん@お腹いっぱい。:2012/12/08(土) 16:04:16.62 ID:hyhb47oX0
>>269
同じ環境です。メモリクリーナーってツールいれてみたんですけどだめでした。

DIM click_x[5]=0,184,184,184,184
DIM click_y[5]=0,209,283,363,433

for i = 0 to 5
x=click_x[i]
y=click_y[i]
BTN(LEFT,CLICK,x,y,1000)
NEXT

ってコードで :定義が間違っています
とでるのですが、BTNでは変数や配列は指定できないのでしょうか?
CHKIMGで取得した位置座標を使って
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,1000)
は動作していたので動くと思ったのですが。
271名無しさん@お腹いっぱい。:2012/12/08(土) 16:40:53.78 ID:yfSPV30a0
>>270
配列の基本文法が間違ってる。
ほとんどの言語では、ARY[5]と宣言したら、
インデックスの範囲は0〜4だ。
そもそも

DIM click_x[] = {0,184,184,184,184}
DIM click_y[] = {0,209,283,363,433}

for i = 0 to resize(click_x)
  x=click_x[i]
  y=click_y[i]
  BTN(LEFT,CLICK,x,y,1000)
NEXT

とやればマジックナンバー使わずに済む。
272名無しさん@お腹いっぱい。:2012/12/08(土) 16:46:01.40 ID:yfSPV30a0
>>271訂正 { } はいらない
273名無しさん@お腹いっぱい。:2012/12/08(土) 17:31:32.88 ID:9RAafo4S0
uwscはarray[5]だと0〜5なんだよな
forは0〜5まで回してるのに定義は0〜4の分しか無い
なのでclick_x[5]とy[5]がnullになってる

>>271も書いてるようにマジックナンバー使わずに書けばこんな事にはならないね

>(true and 92)って1じゃなくて0なんですね。
trueは1として演算されるから0になる
BOOL値と数値を演算しないほうがいいよ
274名無しさん@お腹いっぱい。:2012/12/08(土) 18:05:30.00 ID:SSL+atOF0
配列はVBもそうだね
275名無しさん@お腹いっぱい。:2012/12/08(土) 21:12:40.56 ID:hyhb47oX0
勉強になります><
ご親切にありがとうございます!

条件分岐等では数値ではなくBOOL値で記述する事がバグを減らしてくれるんですね。。
276名無しさん@お腹いっぱい。:2012/12/08(土) 22:47:35.39 ID:Zo+PfSPV0
(true and 92<>0)
277名無しさん@お腹いっぱい。:2012/12/13(木) 21:08:44.52 ID:8dtAIAPV0
来ねぇなw
278名無しさん@お腹いっぱい。:2012/12/15(土) 04:48:46.93 ID:pWopp+830
IE起動→[ツール]をクリック→[インターネットオプション]をクリック・・からではなく
インターネットオプションでセキュリティを高にするスマートなやり方ってある?
279名無しさん@お腹いっぱい。:2012/12/15(土) 04:58:56.99 ID:EvK+Edat0
グーグルさんが詳しいよ
280名無しさん@お腹いっぱい。:2012/12/15(土) 06:22:47.06 ID:5YBHVUPNP
>>279
それは無い。
探してもないくせにいい加減な事言うなkz
281名無しさん@お腹いっぱい。:2012/12/15(土) 10:49:59.29 ID:2/Rf8KlB0
直接じゃなくてもググればヒントは出てくるな
282名無しさん@お腹いっぱい。:2012/12/15(土) 11:14:31.58 ID:PvW24eha0
278内の単語にキーワードを一つ足すだけで、検索結果の4番目に解答そのもののページがヒットするね
283名無しさん@お腹いっぱい。:2012/12/15(土) 15:59:37.64 ID:GDZrBDGe0
>>280
このスレはkzしかいないので、時間がもったいないからこんなスレ来ないほうがいいよ〜^^
あなたのために、あなたのために、二度と来ないでね〜^^
284名無しさん@お腹いっぱい。:2012/12/15(土) 16:49:25.97 ID:rGB33p5x0
>>281-282
いい加減な事ばっかり言ってんなー
頭の悪さ丸出しw
285名無しさん@お腹いっぱい。:2012/12/15(土) 16:49:56.78 ID:rGB33p5x0
>>283
自覚してんのかw
286名無しさん@お腹いっぱい。:2012/12/15(土) 16:51:23.06 ID:5YBHVUPNP
>>280-283
恥ずかしいやつだなお前ら

幼稚な返ししかできないのって情けないねぇ
287名無しさん@お腹いっぱい。:2012/12/15(土) 20:46:15.21 ID:OHTf8ogH0
そもそもスレチじゃねーのこれ?
288名無しさん@お腹いっぱい。:2012/12/16(日) 22:03:39.48 ID:17YLVjks0
GETKEYSTATE(VK_CTRL)
while True
ifb GETKEYSTATE(VK_CTRL)
id = GETID(GET_ACTIVE_WIN)
titl = STATUS(id, ST_TITLE)
if titl <> "" then SAVEIMG(titl, id) // タイトル名にて保存
endif
Sleep(0.2)
wend

// CTRLキーにてアクティブウィンドウの画像保存  #n9
公式サイトのサンプルなんですが、一行目のGETKEYSTATE(VK_CTRL)を書く意味は何ですか?
一行目をコメントアウトしてもしなくても見た目の動作は変わらないようなのですが…
289名無しさん@お腹いっぱい。:2012/12/16(日) 22:08:41.21 ID:WJPCdnwa0
宣言みたいなもんじゃない?
なくても動くけどな
290名無しさん@お腹いっぱい。:2012/12/16(日) 23:52:22.75 ID:M2SiFarV0
ifb の条件になってるからでしょ
291名無しさん@お腹いっぱい。:2012/12/17(月) 00:57:38.28 ID:zV4MsYxj0
キーバッファのゴミを捨てて起動即保存にならないようにするためかなぁ?
UWSCの起動ホットキーを変更してCTRLが混じってた場合とか?
292名無しさん@お腹いっぱい。:2012/12/17(月) 21:39:35.32 ID:I8yxecw30
SAVEIMGで画像を保存するとき
保存先を指定できますか?
293名無しさん@お腹いっぱい。:2012/12/17(月) 22:01:32.07 ID:TKvSn9CAP
ファイル名の所にファイルパス
294名無しさん@お腹いっぱい。:2012/12/18(火) 20:29:18.33 ID:X9FG7qox0
>>293
できました
ありがとうございます
295名無しさん@お腹いっぱい。:2012/12/19(水) 14:50:37.18 ID:S8yF4Rdm0
ペイントで
DROPFILE(paintID, folder, file) // 1つずつドロップ
を使うと貼り付けではなくて画像ファイルを開いてしまいます

ペイントに画像を貼り付ける方法はありますか?
296名無しさん@お腹いっぱい。:2012/12/19(水) 15:12:25.86 ID:6wnAAheP0
>>295
ペイントのメニュー>編集>ファイルから貼り付け
297名無しさん@お腹いっぱい。:2012/12/19(水) 18:40:42.89 ID:S8yF4Rdm0
>>296
その操作はどうすればできるでしょうか?
298名無しさん@お腹いっぱい。:2012/12/19(水) 19:01:07.86 ID:6wnAAheP0
>>297
FilePath = "D:\pic\hoge.jpg"
id = GetId(" - ペイント", "MSPaintApp")
ClkItem(id, "編集\ファイルから貼り付け", CLK_MENU)
id2 = GetId("ファイルから貼り付け", "#32770")
SendStr(id2, FilePath, 0, true)
ClkItem(id2, "開く", CLK_BTN)
299名無しさん@お腹いっぱい。:2012/12/19(水) 20:11:01.63 ID:S8yF4Rdm0
私の使っているペイントに編集というのはありませんでした
バージョンは6.1です
300名無しさん@お腹いっぱい。:2012/12/19(水) 20:38:11.98 ID:+doc/y7V0
CTRL+Pでも何でも良いじゃん
聞く前にいつもやってる動作を記録してソース見てみるとかすればわかるでしょ
301名無しさん@お腹いっぱい。:2012/12/19(水) 20:50:52.95 ID:S8yF4Rdm0
すみませんでした
ファイルから貼り付けを
マウスを使わずに行いたいのです
302名無しさん@お腹いっぱい。:2012/12/20(木) 18:00:21.52 ID:PgGpS3Ya0
>>301
しつこいな
このソフトは自動操作ツールだぞ
あんたがマウスなり何なりで手動操作した動きそのままを自動操縦するだけのことだろ

あんたが手動操作出来ないことは自動操縦しようがないし、

「アンタがマウスを使って出来ること」を自動操縦したものを、
「マウスを使わずに行う」と言えるならば、
マウス操作を記録すれば済むこと。

ショートカットキーを使えばよりスマートに出来るだろうけど
303名無しさん@お腹いっぱい。:2012/12/20(木) 19:21:46.76 ID:lRqvr4Fp0
どういうものを作りたいのかも分からないし一回自分で作ったものを上げてどこがわからないのかとかがわからないと何も言えないな
物によってはペイントツールだと相当めんどくさい場合もあるし他のツールと組み合わせたりなんてことも考えないと駄目
作成依頼スレじゃないんだし全部丸投げじゃなく最低限フローチャート作ってどこの部分がわからないのかを提示しないと
304名無しさん@お腹いっぱい。:2012/12/21(金) 15:21:54.81 ID:m6kNauor0
呼び出し先のUWSファイルで
PUBLIC xx=INPUT()
PUBLIC time=GETTIME()
と書いているのですが

呼び出し先のUWSファイルで
PUBLIC xx=INPUT("")
を入れておくと
呼び出し元を実行した最初にINPUT()が実行されました

呼び出し先のUWSファイルで
PUBLIC time=GETTIME()
を使うと
呼び出し元のファイルが再生されたタイミングで実行されるのか
INPUTを実行したのちにGETTIME()が実行されるのか
知っている方がいらっしゃいましたら教えて頂けないでしょうか?
305名無しさん@お腹いっぱい。:2012/12/21(金) 15:28:07.03 ID:sdSWfqkq0
いちいちPUBLIC付ける意味って…
INPUTの後に書かれてればINPUTの後だし前に書かれていればINPUTの前に実行される
呼び出し先も後も関係なく最後に実行されたものが残る
CALLで呼んでるファイルは同時に再生されているわけではない
306名無しさん@お腹いっぱい。:2012/12/21(金) 15:45:12.01 ID:sdSWfqkq0
というかPUBLICつけてるからじゃないか?
宣言は初めにするものだからそれで先に実行されてるんだと思うよ
307名無しさん@お腹いっぱい。:2012/12/21(金) 16:48:49.64 ID:Fnh6WRl70
ヘルプにはこうある
> ※ ローカル変数は初期値に変数値を利用できるが、グローバル変数の初期値はリテラル値のみ
> ※ PUBLIC変数の初期化はスクリプト実行前に行われます
言語仕様を守らず、グローバル変数をリテラル値以外で初期化するとキモイ事が起きるわけか…

リテラル値ってのは、ソースコード上に 123 とか "abc" とか true みたいに直接記述する値のこと
変数の値や、関数の戻り値は、ちがう
308名無しさん@お腹いっぱい。:2012/12/21(金) 16:57:08.42 ID:N9k8aitk0
そんなトンデモコードが一応実行できるっていうのがすごい
309名無しさん@お腹いっぱい。:2012/12/21(金) 16:57:55.80 ID:Fnh6WRl70
PUBLIC xx
xx=INPUT()
こんな風に分けて書けばいいだけなんだけどね
310名無しさん@お腹いっぱい。:2012/12/21(金) 17:41:18.80 ID:SdbHgf1Y0
>>302
>>303
すみませんでした
サンプルにある// 指定フォルダにあるjpgファイルをペイントにドロップする  #n55
をファイルから貼り付けで出来ないかなと思って聞きました
でもできなさそうなのでマウスを使うことにします
311名無しさん@お腹いっぱい。:2012/12/21(金) 17:41:26.00 ID:Wq56lsfE0
>>308
普通はエラーになるですよねw


>>309
(subX.UWS)
PUBLIC XX


FUNCTION initialize()
  XX = INPUT()
  …
FEND


(main.UWS)
CALL subX.UWS


initialize()

ってやってる。
312名無しさん@お腹いっぱい。:2012/12/22(土) 11:50:42.82 ID:tjjbo22w0
スクリプトとかわからないのでマウス記録だけで使ってるんですが、たまに再生中にUWSCの
ウィンドウをクリックしたまま止まっちゃうんですが、再生中にUWSCウィンドウを表示しない方法って
無いんでしょうか?
記録中には絶対にその場所を押す事なんて無いんだけど、モニタの切り替えとかすると
ランダムにこういう状況が発生してしまいます。
313名無しさん@お腹いっぱい。:2012/12/22(土) 11:55:25.55 ID:4aAnGUFf0
STOPのウィンドウの事かな?
それならスクリプトのファイルを開いて一番初めの行に
STOPFORM(FALSE)
って追加して上書き保存すれば出ないよ
314名無しさん@お腹いっぱい。:2012/12/22(土) 12:28:57.81 ID:IRYxzFzR0
>>313
おお素晴らしいw
ありがとうございます。

ついでにもうひとつ聞きたいんですが、ブラウザがクラッシュして「原因を確認する〜」みたいな
ウィンドウが出る時に、録画の途中でキャンセル位置を押すようにしてるんですが、クラッシュ時に
その操作で継続する場合と、クラッシュの時点で再生が止まっている場合があります。
手動でクラッシュレポートのウィンドウを消してやればそのまま何事も無かったかのように続きが
始まるんですが、この原因がいまいちよくわかりません。
XPではそういった症例は無かったんですが、7に変えてからの症状です。
315312:2012/12/22(土) 12:32:55.30 ID:IRYxzFzR0
ありゃ、ID変わってる;
失礼しました
316名無しさん@お腹いっぱい。:2012/12/22(土) 13:17:08.82 ID:4aAnGUFf0
どういうスクリプト作っているのかわからないけどクラッシュレポート閉じれば良いなら

戻値 = GETID("クラッシュレポート") //クラッシュレポートの所にタイトル名かクラス名を入れる
IF 戻値 >= 1 then CTRLWIN( 戻値, CLOSE2)


みたいなもので強制的クラッシュレポートのウィンドウを閉じちゃうとか
クラッシュの原因がスクリプトの所為なら危ないと思うけどね
317312:2012/12/22(土) 13:58:00.95 ID:tjjbo22w0
ブラウザ開いてブックマーク押して、ポチポチ押してブラウザを閉じる。
これをIE、chrome、FFで順番にやってくような1セット5分くらいのマウス記憶です。
止まるのはIEの時だけで、マウス記憶のみなのでスクリプトとかは全然いじってません。
クラッシュレポートウィンドウを閉じる時と、クラッシュレポートのキャンセルボタンの位置で
再生が固まってる時の明確な差異が確認出来ないのでずっと疑問に思ってました。
動き続ける時は1週間でも動き続けるんですが、止まる瞬間の現場が押さえられなくて。
元々IE9がクラッシュ多目なのでなんとなく諦めてたんですが、もし解決法があればと思って
質問させていただきました。
ご丁寧にありがとうございました。
318名無しさん@お腹いっぱい。:2012/12/22(土) 21:31:00.11 ID:5Ctnp9NE0
STATUS関数は、ウィンドIDが無効だと固まる>>52から、
それに近いことが起きてると予想。
319名無しさん@お腹いっぱい。:2012/12/22(土) 21:43:01.77 ID:jrGd1u9A0
マウス記録だけで一週間も動き続けるなんてたいしたものですよ
それ以上の安定性を求めるならスクリプトを書けるようになるしかないと思います
それでもサーバーが落ちてたらどうしようもないんだけどね
私はスクリプトが止まったらメールが入るようになってます
様々なタイミングでスクリーンショットを更新し画像のログを保存してます
スマホから遠隔操作できるようにするとか工夫してますよ
320名無しさん@お腹いっぱい。:2012/12/23(日) 16:27:18.37 ID:nmskBTJy0
アプレット内のボタン操作を非アクティブで操作したいんですが
電卓等と違いgetitemでボタン情報を持ってこれません
mouseorg(id,2...btn(click..等もアクティブでしか操作できませんよね
諦めた方がいいでしょうか?
もし可能ならヒントだけお願いします
321名無しさん@お腹いっぱい。:2012/12/23(日) 17:20:18.81 ID:a03GTNOZ0
>>320
仮想PC上でアクティブにさせて操作し
仮想PC自体は最小化にするとか・・・
322名無しさん@お腹いっぱい。:2012/12/23(日) 17:35:10.33 ID:TvHSM78p0
間違い無くそれしか無い

そもそも非アクティブで自動操作できるということが特別であって、
他のプログラムから部品として使われることを前提に
アプリケーションが元々そう作られている必要がある。
OLEオブジェクトとして扱うことができるとか、
コマンドラインで操作できるとか。

非アクティブで自動操作できないのはGUIベースアプリの弱点
そう簡単に克服できたら世話はない。
323名無しさん@お腹いっぱい。:2012/12/23(日) 18:02:20.64 ID:nmskBTJy0
>>321
>>322
ありがとうございます。
仮想マシンのネット環境作りから頑張ってみますm__m
324名無しさん@お腹いっぱい。:2012/12/24(月) 00:41:57.43 ID:9DhqT6ii0
hnd = GETCTLHND(IE.HWnd,"MacromediaFlashPlayerActiveX")
フラッシュのハンドルの取得の仕方を調べると大体これが出てくるんですけど、
この方法だと"MacromediaFlashPlayerActiveX"で動いている一部のフラッシュのハンドルしか取得できません
フラッシュが何で動いているか(≒GETCTLHNDの第二引数に何を書けばよいか)を調べる方法を教えてください
325名無しさん@お腹いっぱい。:2012/12/24(月) 02:12:28.96 ID:Ak7JTuQN0
総戦力Lv5だけ湧きすぎ
326名無しさん@お腹いっぱい。:2012/12/24(月) 17:38:25.05 ID:1Ck51rfPP
エラーウィンドウが出てるアプリを強制的に再起動するスクリプト教えてください。
ググっても探せませんでした。
327名無しさん@お腹いっぱい。:2012/12/24(月) 17:51:16.71 ID:Ak7JTuQN0
エラーの感知>DOSCMDでプログラムの終了(taskkillとか)>EXECでプログラムの起動
エラーを監視する方法はプログラムによって変わるので目的のプログラムに合わせて
328名無しさん@お腹いっぱい。:2012/12/24(月) 18:37:16.48 ID:0bMOP6Bo0
画像認証ってどうやるの?
どこかにサンプルプログラムある?
329名無しさん@お腹いっぱい。:2012/12/24(月) 19:01:03.03 ID:AvGp03Rs0
このクリスマスイブに冗談よせよ。
そうじゃなくても暇な俺は機嫌が悪いんだ。
330名無しさん@お腹いっぱい。:2012/12/24(月) 19:05:57.94 ID:0bMOP6Bo0
初心者なんでおしえてくだせい
331名無しさん@お腹いっぱい。:2012/12/24(月) 20:33:20.28 ID:3OGDGG220
また自称初心者荒らしか
332名無しさん@お腹いっぱい。:2012/12/24(月) 20:36:56.46 ID:cI1uCYWF0
このスレ探し出すよりググってやり方探す方が簡単な気がするw
333名無しさん@お腹いっぱい。:2012/12/25(火) 00:38:29.80 ID:ygS9ga75P
>>327
ありがとう、なんか分かった気がする
334名無しさん@お腹いっぱい。:2012/12/25(火) 06:12:07.10 ID:kjKIb+sI0
2012/12/25 UWSC Ver4.8d、 Pro版と Free版をリリースしました。
335名無しさん@お腹いっぱい。:2012/12/25(火) 23:04:24.70 ID:AHVm7KRW0
h
336名無しさん@お腹いっぱい。:2012/12/25(火) 23:07:39.19 ID:Pg05ZoHO0
b
337名無しさん@お腹いっぱい。:2012/12/26(水) 18:59:39.25 ID:WMIX2LMx0
難しすぎて使えない
338名無しさん@お腹いっぱい。:2012/12/27(木) 20:47:30.98 ID:H4iQaIzy0
最初は記録から入ればよろし
それで手に余ることが具体的に分かったらググレ
339名無しさん@お腹いっぱい。:2012/12/27(木) 21:02:07.00 ID:ruUZt9F0P
>>328
ヘルプよくできてるからヘルプ読めばいいと思う。
参考までに、指定した画像と同じものが画面内のどこかに現れたら反応する関数はCHKIMG。

画像はBMP形式じゃないとだめ。
画像名にファイル名だけ書くなら画像の置き場所はそのuwsファイルと同じフォルダ。
340名無しさん@お腹いっぱい。:2012/12/27(木) 22:18:16.20 ID:4qqyEMO4P
よくできてると言われても、ヘルプって元々おおよその使い方がわかっているものならいいけど、
0から勉強するにはあまりにも不向きだと思うんですが。
解説サイトとかないですかね?
341名無しさん@お腹いっぱい。:2012/12/27(木) 22:26:02.82 ID:ruUZt9F0P
>>340
>>1にいっぱいリンクある。

UWSCはソース書いてコンパイルしてどうのって本格的なプログラミングじゃなくて
メモ帳で文法通りにやりたいこと書いてテキストファイルとして普通に保存したら
なんもしなくてもそのまま動くから。拡張子はuwsに変えるけど。

それだけわかれば、あとはヘルプ見て使いたい機能探してコピペするだけ。
342名無しさん@お腹いっぱい。:2012/12/27(木) 22:45:18.39 ID:NOAiTHJb0
>>339
レス情報ありがとです。ヘルプ良く見てみます。
343名無しさん@お腹いっぱい。:2012/12/28(金) 04:20:34.43 ID:byj4CV410
>>340って某Aviutlスレの>>5みたいだよね〜
344名無しさん@お腹いっぱい。:2012/12/28(金) 07:15:17.69 ID:DELDFQ0K0
1+1=2ってなんですか?
そりゃ1を2つ加算したら2だろって答えに
+ってなんですか?
教科書見ろよって言われて
教科書って0から勉強するにはあまりにも不向きだと思う
とか言われて回答者が唖然とする様だな
345名無しさん@お腹いっぱい。:2012/12/28(金) 12:23:29.22 ID:FwtGe9Ir0
>>344
教科書って0から勉強するにはあまりにも不向きだと思う
346名無しさん@お腹いっぱい。:2012/12/28(金) 13:24:02.95 ID:3u9YJC940
まぁ気持ちはわかる、自分も初めわけわからなくて戸惑ったもの
でもマイクロソフトのヘルプの意味不明さに比べればよほどわかりやすい
347名無しさん@お腹いっぱい。:2012/12/28(金) 13:43:35.82 ID:5msbThqK0
手っ取り早く覚えるには、どこかからソースコードを入手して
そこから改造していく方法がいい

プログラムの構造であるとかを理解できるし、要る機能を付け足して、要らない機能を外していけば
自然とやりたい事も達成できるし、コードを書く事も覚えるから
348名無しさん@お腹いっぱい。:2012/12/28(金) 14:09:28.14 ID:XuXvnrWp0
ヘルプの問題じゃなくてやる気の問題だろ
やる気があれば、わけわからなくても試行錯誤して自分のものにできる
やる気がないなら、すぐ投げ出して他人に丸投げする
349名無しさん@お腹いっぱい。:2012/12/28(金) 14:09:59.07 ID:b4E3fpjF0
そうそうゼロから覚えるなんて非効率も良いとこだ
やりたいことからやってく一点突破のほうが早い
350名無しさん@お腹いっぱい。:2012/12/28(金) 14:12:58.43 ID:Kvp04PE60
せめてHELP見てHELPのどこがわからないのか位書いてれば説明もできるのにな
×HELPがわかりにく
○HELP見るのもめんどくさい
ってだけだろ
351名無しさん@お腹いっぱい。:2012/12/28(金) 14:36:15.17 ID:sw/ahW4l0
UWSCを使う前に最低でもコレだけは知っておけ、って物をテンプレに入れといたら?
基本的な質問も減るだろ
352名無しさん@お腹いっぱい。:2012/12/28(金) 14:58:00.48 ID:cJeZKT3J0
初心者ではないが、未だにHELPは見づらく感じるけどなあ
目的別にジャンル分けされた一覧表も付けて欲しいかも
マウス・キーボード・ウインドウ・画像・クリップボード…… みたいな
353名無しさん@お腹いっぱい。:2012/12/28(金) 15:10:21.50 ID:uL1zESfd0
こんなスレに来る前にググレってのは駄目なのかな。
354名無しさん@お腹いっぱい。:2012/12/28(金) 15:15:04.75 ID:tVhf7/ioP
>>352 今でも十分にジャンル分けされてると思うがキーワードで見てないか?
http://www.dotup.org/uploda/www.dotup.org3782009.jpg
355名無しさん@お腹いっぱい。:2012/12/28(金) 15:19:11.36 ID:5msbThqK0
基本的に割とよく浮かぶやりたい事って骨格の部分はサンプルスクリプトから取ってこれるんじゃないかな
細かい機能は自分で少しずつ改良していかないとダメだろうけど
356名無しさん@お腹いっぱい。:2012/12/28(金) 15:47:31.58 ID:cJeZKT3J0
例えば
 ウインドウID/ハンドル関連  GETID、GETALLWIN、GETCTLHND、IDTOHND、HNDTOID
 キーボード関連  KBD、SCKEY、GETKEYSTATE、SETHOTKEY、LOCKHARD
 マウス関連  MMV、BTN、CLKITEM、MOUSEORG、GETKEYSTATE、LOCKHARD、MUSCUR
みたいな表があると直感的に見つけやすいなあと思ったんだけど
357名無しさん@お腹いっぱい。:2012/12/28(金) 18:38:40.00 ID:LNRKV4RE0
IEで大きなページを開いたときに特定のピクセル位置までスクロールさせるには
どうすればいいでしょうか?
WHEELやキーだと遅いし特定の位置に一発で移動できないですよね...
358名無しさん@お腹いっぱい。:2012/12/28(金) 18:51:28.36 ID:cJeZKT3J0
>>357
IEのDOMから window.scrollTo(x,y)
359名無しさん@お腹いっぱい。:2012/12/28(金) 18:53:48.29 ID:AHpFptnnP
ほんとに何もわからないけどUWSC使いたいっていう人は
ウインドウをクリックして、なんか2つ3つキー押す程度の
簡単な動作を自動で記録して、どこかにテキストで保存して
中身をメモ帳で見たら、あぁなるほどー。ってなって、
そっからはもうリファレンスがわりにヘルプ見て
いろいろいじってく感じになるんじゃないかなー。
360名無しさん@お腹いっぱい。:2012/12/28(金) 19:16:16.72 ID:LNRKV4RE0
>>358
なるほど。
しかし新規にIEを起動してってのはみつかったのですが、既に起動している
IEを動かしたい場合はどうすれば?
マウス位置/アクティブなウィンドウのIEにアクセスしたのです。(正確には
Sleipmir中で起動しているIE)
361名無しさん@お腹いっぱい。:2012/12/28(金) 19:40:30.24 ID:cJeZKT3J0
>>360
Sleipnirはオートメーションサーバ機能あるので、そこからIEのDOMへ
たぶんこんなかんじ

Sleipnir = CreateOleObj("Sleipnir.API")
id = Sleipnir.GetDocumentID(Sleipnir.ActiveIndex)
document = Sleipnir.GetDocumentObject(id)
362名無しさん@お腹いっぱい。:2012/12/29(土) 18:51:12.15 ID:aS9cyDhv0
>>354
それ、ほとんどの関数を使ったことがある今なら、特に問題は感じないが、
最初はどの機能がどの関数なのか、非常に見つけづらかったなぁ。

>>355
関数の説明ページからサンプルページに跳んでも、
サンプルコード中のどこに書いてあるのか探すのが意外と面倒だよなハイライトされないので。
しかも大抵、やりたい使い方とは別だったりするし
(戻り値を使用せずグローバルシステム変数つかってたり)
363名無しさん@お腹いっぱい。:2012/12/29(土) 19:11:17.44 ID:aS9cyDhv0
ってか3年前から既にこんなん出てたのかよ…
http://www.moongift.jp/2010/01/project-sikuli/

UWSCを卒業すべき日が来てしまったのか…
364名無しさん@お腹いっぱい。:2012/12/29(土) 19:14:49.47 ID:uU7Ut7qj0
キーワードで検索してもずっとスクロールできるからどこまでがそれの説明か分かりずらいときはあったな
今はすぐ分かるけど
365名無しさん@お腹いっぱい。:2012/12/29(土) 19:28:02.21 ID:OnF94ECmP
>>363
chkimgできることが一番の売りみたいに書いてあるように見えるんだが
なんか他にあんの?
366名無しさん@お腹いっぱい。:2012/12/29(土) 19:32:35.23 ID:iBAXOjKbP
画面上の画像切り取ってって言うマクロツールならわかりにくい外国産じゃなくても国産でいくつかあるよな
そういうの使っていてもやりたいこと増えた時にできなくて結局UWSCに行きつくことが多いんだけど
UWSCの弱点はUIが作りにくいことくらい
367名無しさん@お腹いっぱい。:2012/12/29(土) 19:35:25.39 ID:aS9cyDhv0
>>365
日本語情報少なくて断念w

キーストローク送信とか普通にできる模様。
javaなんで、javaで出来ることは出来るはず…クラスプログラミングもOLEも出来るっしょ。
ということはIEのオブジェクトを生成して非アクティブでも操作というのはUWSCと同じくらいできるはず。
しかもWindowsでもlinuxでも使える。

画像判定はopenCVで行われており類似度検索できる。
画像ベースで書く場合、スクショから登録までの手間のかからなさに大きなアドバンテージがある。

でも日本語情報少な過ぎて不安すぎるので様子見だなw
368名無しさん@お腹いっぱい。:2012/12/29(土) 19:38:04.20 ID:OnF94ECmP
そこまでするならjavaでよくねw
369名無しさん@お腹いっぱい。:2012/12/29(土) 19:40:08.13 ID:3X8Cq1zb0
if MOOD=1
xmax=1;ymax=5
elseif MOOD=2
xmax=9;ymax=1
endif

if MOOD=1
DIM t[xmax][ymax]=_
elseif MOOD=2
DIM t[xmax][ymax]=_
endif

みたいなことをしたいのですが多重宣言になって出来ませんし,
370名無しさん@お腹いっぱい。:2012/12/29(土) 19:44:24.29 ID:3X8Cq1zb0
DIM t[xmax][ymax]を間に挟んで
t[xmax][ymax]=・・・としても上手くいきません.

仕方がないので配列のサイズ変更でなんとかしようとしても
2次元配列は一番上(つまり@一行目のみですかね)のサイズ変更しかやってないようで
resize(t,(xmax+1)*(ymax+1))
t[][]=・・・ではうまくいきませんでした

C++の#define;if defみたいなことはできないのでしょうか
371名無しさん@お腹いっぱい。:2012/12/29(土) 19:46:56.70 ID:dCT+ijGm0
>>369 初めに宣言しておいて後から条件により変数に値入れるのじゃだめなの?
UWSCの仕様で先に宣言の動作するはずだからIFで分けてるように見えて2回宣言してるよ
372名無しさん@お腹いっぱい。:2012/12/29(土) 20:06:43.24 ID:3X8Cq1zb0
つまり,
DIM t[][]だとサイズの問題があるようなので

配列は宣言時にリテラル値で明確にサイズを指定しないといけません
今回は実行時にサイズの指定をしているのでどうしようもない
ということなんでしょうか・・

初めに適当に宣言しておいて,その後MOODの値によってresizeでサイズを変えられればいいかな
と思いましたが2次元配列のサイズの変更は無理そうなので質問してみました
373名無しさん@お腹いっぱい。:2012/12/29(土) 20:18:36.47 ID:aS9cyDhv0
>>372
どの言語でも、先に宣言するのが常道だよ。
宣言の時点でメモリの確保が行われる訳だし。

UWSCで2次元配列は言語仕様上、
想定される最大を予め宣言しておくしかないね。

UWSCの言語仕様はぶっちゃけプアーなんで、
俺も、他言語で開発してUWSCのほうを部品として使いたいんだけど、
そう出来るようにするとUWSCで商売してる人が困るのかもしれない。
その分割と安定している、ということで我慢するしかないのかなぁ
374名無しさん@お腹いっぱい。:2012/12/29(土) 20:29:22.05 ID:3X8Cq1zb0
>>373
ありがとうございます

DIM t[9][5]
if MOOD=1;t[][]=・・・
if MOOD=2;t[][]=・・・
で解決しそうです
いつもぴったりサイズ確保することしかやってなかったので
大きくとる事は考えていませんでした

空文字の条件を考えるのは少し頭がいたいですが一度試してみます!
ありがとうございました
375名無しさん@お腹いっぱい。:2012/12/29(土) 21:19:02.93 ID:dCT+ijGm0
空白じゃないときだけ処理するか空白が見つかったら処理を終了みたいな作りにすれば?
if 変数 <> "" then 空白じゃないときの処理
376名無しさん@お腹いっぱい。:2012/12/29(土) 21:45:02.91 ID:3X8Cq1zb0
すいません <> って=と同意だと思っても宜しいですか?
空文字が大変というのは,if内の3つの条件として3つのand orを考えるのが苦手なもので・・・

もう一つ質問です
2次元配列を書き直す場合,書き直したい配列を用意して
for ループで逐次書き換える以外に良い方法はありませんか?

setclearを試してみたのですが,あれは全部同じ文字で埋めちゃうんですね.
DIM a[0][1]="1","2"
DIM b[0][1]="4","4"
setclear (a,b)
でaの配列が4,4になってくれたらよかったのに.
関数作ればいいだけですね.すいません.
377名無しさん@お腹いっぱい。:2012/12/29(土) 21:54:12.88 ID:dCT+ijGm0
>>376 =の逆、!(○○=○○)と同じ意味

DIM a[] = 0,1,2,3,4,5,,,,,
for i = 0 to 10
if a[i] <> ""
print (a[i])
else
print (i+"個目で空白発見、終了します")
exitexit
endif
next
378名無しさん@お腹いっぱい。:2012/12/29(土) 22:10:57.87 ID:3X8Cq1zb0
はーい.ありがとうございます!
ちなみに自分は!(条件)を使っていたのですが <>の方がわざわざ括弧でくくらなくていいので好まれる
のでしょうか?
379名無しさん@お腹いっぱい。:2012/12/29(土) 22:31:43.76 ID:dCT+ijGm0
どっちが好まれてるかは分からないけど動作的には同じだし好きな方で良いと思うよ
自分は!だとぱっと見で見分けがつきにくいから<>をよく使うけど
380名無しさん@お腹いっぱい。:2012/12/29(土) 23:07:16.32 ID:aS9cyDhv0
FUNCTION copyArray(lSrcArray[], VAR lDistArray[], lCopyType=0)
  
  //lCopyType
  //  0 : ミラー,サイズも完全に合わせる
  //  1 : 上書き,必要に応じ拡張
  
  RESULT = FALSE
  
  lSrcMaxIdx = RESIZE(lSrcArray)
  IF lSrcMaxIdx<0 THEN EXIT
  
  TRY
    lDistArray[0] = lSrcArray[0]
  EXCEPT
    EXIT
  ENDTRY
  
  IFB lCopyType = 0 OR RESIZE(lDistArray)<lSrcMaxIdx THEN
    RESIZE(lDistArray, lSrcMaxIdx)
  ENDIF
  
  FOR lI=1 TO lSrcMaxIdx
    TRY
      lDistArray[lI] = lSrcArray[lI]
    EXCEPT
      EXIT
    ENDTRY
  NEXT
  
  RESULT = FALSE
FEND
381名無しさん@お腹いっぱい。:2012/12/30(日) 00:58:06.17 ID:3VfU94dF0
>>380
プログラムありがとうございます.所々意図がつかめませんがとても参考になります
これを二次元配列に変えればいいんですね.Resizeできないので全く同じ配列を用意してコピーする所に限定します.
VARは今まで使っていませんが,使ってみようと思います.ポインタみたいなものですよね

一つ目のTryExceptをいれた理由がちょっとわからないです.良かったら教えてください

一人で書いてても上達しないしUWSCの誘惑などのサイトを見ても何が何やらさっぱりで
自分の書きたいプログラムのお手本とか,中間くらいで何かよい教材があればいいですね
382名無しさん@お腹いっぱい。:2012/12/30(日) 08:38:44.03 ID:3VfU94dF0
下記で関数呼び出しのシンタクスエラーになります.どこがダメなのでしょうか?
a[][]=・・・
b[][]=・・・
copyArray(a[][],Var b[][])

FUNCTION copyArray(lSrcArray[][],VAR lDestArray[][],lCopyType=0)
RESULT=FALSE
j=0
lSrcMaxIdx=Resize(lSrcArray)//xの配列数
for i= 0 to lsrcMaxIdx
Repeat
TRY
IDestArray[i][j]=ISrcArray[i][j]
j=j+1
EXCEPT
j=0
flag=1
ENDTRY
UNTIL flag=1
flag=0
NEXT
Result FALSE
FEND
383名無しさん@お腹いっぱい。:2012/12/30(日) 09:52:18.74 ID:LIy+VBaG0
最初のRESULT=FALSEと最後のResult FALSEがどーゆー意図でやろうとしてるかわからないけどだめじゃね
文法的には最後のほうが
384名無しさん@お腹いっぱい。:2012/12/30(日) 11:33:19.79 ID:yOG/3soo0
>>382
copyArray(a[][],b[][])
385名無しさん@お腹いっぱい。:2012/12/30(日) 11:35:23.48 ID:yOG/3soo0
copyArray(a,b)
386名無しさん@お腹いっぱい。:2012/12/30(日) 12:09:27.92 ID:3VfU94dF0
ありがとうございます.解決しました
配列を関数に渡す際の引数は,配列の変数名だけにしなければならないんですね.
ちなみにcopyArray(a[][],b[][])やcopyArray(a[][],b)でもシンタクスエラーになりました

a[][]とaの使い分けが良くわかりません.
関数に渡す時は引数が配列だろうが参照(var)だろうが,配列のアドレスを渡しなさいということでしょうか.

どこかで配列渡すときはa[][]でもよかった風に書いてあったのですが見間違えだったんですね
387名無しさん@お腹いっぱい。:2012/12/30(日) 12:53:04.84 ID:YLAp24uT0
>>383
しまった一番最後のRESULTはTRUEの間違いでしたw

>>386
C言語の配列知ってると判りやすいんだけどね。
ちょっとやってみるんで待っててください
388名無しさん@お腹いっぱい。:2012/12/30(日) 13:20:38.22 ID:YLAp24uT0
FUNCTION copyArray(lSrcArray[], VAR lDistArray[], lCopyType=0)
  
  //lCopyType
  //  0 : ミラー,サイズも完全に合わせる
  //  1 : 上書き,必要に応じ拡張
  //  2 : サイズは変更せず、足りなければ中断
  
  RESULT = FALSE
  
  lSrcMaxIdx = RESIZE(lSrcArray)
  IF lSrcMaxIdx<0 THEN EXIT
  
  IFB lCopyType = 2 AND RESIZE(lDistArray)<lSrcMaxIdx THEN
    EXIT
  ELSEIF lCopyType = 0 OR RESIZE(lDistArray)<lSrcMaxIdx THEN
    RESIZE(lDistArray, lSrcMaxIdx)
  ENDIF
  
  FOR lI=0 TO lSrcMaxIdx
    TRY
      lDistArray[lI] = lSrcArray[lI]
    EXCEPT
      EXIT
    ENDTRY
  NEXT
  
  RESULT = TRUE
FEND
389名無しさん@お腹いっぱい。:2012/12/30(日) 13:20:56.80 ID:YLAp24uT0
FUNCTION copyArray2d(lSrcArray[][], VAR lDistArray[][])
  
  RESULT = FALSE
  
  lSrcMaxIdxX = RESIZE(lSrcArray)
  lSrcMaxIdxY = RESIZE(lSrcArray[])
  IF lSrcMaxIdxX<0 OR lSrcMaxIdxY<0 THEN EXIT
  
  FOR lX=0 TO lSrcMaxIdxX
    TRY
      IF !copyArray(lSrcArray[lX], lDistArray[lX], 2) THEN EXIT
    EXCEPT
      EXIT
    ENDTRY
  NEXT
  
  RESULT = TRUE
FEND
390名無しさん@お腹いっぱい。:2012/12/30(日) 13:22:17.82 ID:YLAp24uT0
DIM testArrayS[8][8]
DIM testArrayD[8][8]

FOR lX=0 TO 7
  FOR lY=0 TO 7
    testArrayS[lX][lY] = INT(RANDOM(1000))
  NEXT
NEXT

copyArray2D(testArrayS, testArrayD)

FOR lX=0 TO 7
  FOR lY=0 TO 7
    PRINT "S:" + testArrayS[lX][lY] + ", D:" + testArrayD[lX][lY] + ", CHECK=" + (testArrayS[lX][lY]=testArrayD[lX][lY])
  NEXT
NEXT


※全角空白2個をタブ文字か半角空白4個に置き換えて使ってください
391名無しさん@お腹いっぱい。:2012/12/30(日) 13:35:17.79 ID:YLAp24uT0
>>382
× 最後から2行目がresultへの代入子抜け
× 配列変数名の頭文字が変わっている(lとI)
間違えないよう、私はテキストエディタに「ゆたぽん(コーディング)」というフォントを入れて使っています。

あとTRYでエラートラップしている意味は、
コピー元とコピー先で異なる型の変数だった場合の対策です。
(srcが文字列でdistが数値型変数だった時など)

配列インデックスをオーバーさせエラーが起こるまで回す、というやり方は異常で、
エラーの発生を通常処理の判定に使うべきではないかと思います。
392名無しさん@お腹いっぱい。:2012/12/30(日) 13:52:04.99 ID:3VfU94dF0
ご丁寧にありがとうございます.
自分もエラー発生を通常処理に使うのはまずいなと感じていたのですが,
2次元配列の列側の配列数の把握の仕方はその様にすればいいのですね

TRY EXCEPT 初めて使ったので,配列の型の違いのための対策までは想像できませんでした.勉強になります

a[][]とaの違いは Cでは配列自信かポインタかの違いと認識していますが
UWSCではVar 引数はポインタかなと思いcopyArray(a[][],b)が使えるのかと考えてしまいました
393名無しさん@お腹いっぱい。:2012/12/30(日) 13:54:58.19 ID:3VfU94dF0
色々とお伺いさせて頂きたい事はあるのですが
やはりきちんとCを勉強してというのが早道なのでしょうか.
優しい本なら二通りほどやりこんだのですが.
ネットでぐぐっても二次元の配列操作は見つけられませんでしたし,一つのプログラムの常識を活かせるほどの知識が不足していると感じます.
記述方法を探すのに手間がかかるのは少ししんどいです


学びたい事は
他言語のすらすら読んで違和感なく言語規則を理解できるだけの基礎知識と
今回TRY,EXCEPTや,最初にResult=FALSE 最後にTRUEで関数がきちんと終了したことを示したり
なんでicopyTypeを引き数の中で定義しているかなどの作法です
394名無しさん@お腹いっぱい。:2012/12/30(日) 14:10:11.98 ID:YLAp24uT0
>>393
経験則であってコレがベストではないんですが、
プログラミング関係の本の中でも、
エラー処理を熱く語っている系の本や、
プログラムの(オブジェクト指向以前の)基本的な構造化を語っている本を
…と、ここで思い出したのが、
http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html#mokuji10
ですな。
中断して関数をEXITするとRESULT=FALSEになるという書き方は、ここの影響です。

引数の中でデフォルト値を定義しているのは、最初はその引数が無い関数を使っていて、
あとから機能拡張する時の常套手段ですね。多用すると非常に使い辛い関数に生長してしまうので
分割がお勧めですが。
395名無しさん@お腹いっぱい。:2012/12/30(日) 18:37:31.09 ID:3VfU94dF0
はい.
色々とありがとうございました.
そちらの本を探すと共にURLを一通り見てみたいと思います.
実際に会社の方がどの様な所で苦労しているかまとまっているのでとても良い参考資料になりそうです^^
396名無しさん@お腹いっぱい。:2013/01/03(木) 15:21:47.96 ID:qKGUkVqX0
急に、第二水曜日の日付がスクリプト中で知りたくなった。
UWSCだと面倒くさい。
397名無しさん@お腹いっぱい。:2013/01/03(木) 17:19:29.91 ID:F9hR3ISo0
だからなんなんだよ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
398名無しさん@お腹いっぱい。:2013/01/03(木) 17:21:47.01 ID:O91uzAmj0
面倒くさい(から誰か作ってくれ)。
399名無しさん@お腹いっぱい。:2013/01/03(木) 17:28:22.93 ID:Z1i92MA90
簡単だろそんなの
400名無しさん@お腹いっぱい。:2013/01/03(木) 18:15:16.60 ID:lvxUVeIv0
カレンダー見て配列にぶちこんでしまえ
どうせ一年もつかわないんだろ
401名無しさん@お腹いっぱい。:2013/01/03(木) 18:55:28.22 ID:qKGUkVqX0
ごめんなさい面倒くさかったけど自分で作りました

FUNCTION nThDayOfTheWeek(lYear, lMonth, lNumOfDayOfTheWeek, lNTh)
  // 指定年月でのn番目の曜日の日付を返す。
  // 曜日 (0:日曜....6:土曜)
  GETTIME(0, getDateTimeStrByGettimeSeconds(transGettimeSeconds(lYear, lMonth)))
  lDaysOffset = lNumOfDayOfTheWeek - G_TIME_WW
  IF lDaysOffset < 0 THEN lDaysOffset = lDaysOffset + 7
  RESULT = 1 + lDaysOffset + 7 * (lNTh - 1)
FEND
402名無しさん@お腹いっぱい。:2013/01/03(木) 21:15:23.09 ID:nsp79vTN0
text = ""
for y=2013 to 2020
 for m=1 to 12
  d = Get2ndWednesday(y, m)
  text = text + y + "/" + m + "/" + d + "<#CR>"
 next
next
SENDSTR(EXEC("notepad"), text, 1, true)
exitexit

function Get2ndWednesday( year, month )
 cnt = 0
 for i=1 to 31
  GETTIME(0, year + COPY(100+month,2) + COPY(100+i,2))
  if G_TIME_WW=3 then
   cnt = cnt + 1
   if cnt=2 then
    break
   endif
  endif
 next
 RESULT = i
fend
403名無しさん@お腹いっぱい。:2013/01/03(木) 21:48:11.44 ID:DGu10OoS0
一点お聞きしたいのですがb.UWS内で

a.UWS内の変数a=0を初期値として一度だけ実行する
a.UWS内の繰り返し実行し,一回実行すぐ毎に変数aを1ずつ増やして呼び出す

二つの事をやりたい時は
b.UWSを作る際に毎回a.uwsをのぞいてb.UWS内で変数a=0で初期化しなければならない事を確認して作るしかないのでしょうか?
a.UWS内でPUBLIC a=0と宣言しておくのは前回だめだと言われたので.
初回実行時のみa=0で実行する事が出来ないかと思い訪ねてみました

この様な場合はb.UWS内に関数化しておいておくしかないのかな
404名無しさん@お腹いっぱい。:2013/01/03(木) 21:53:19.59 ID:UNG2MZ1u0
メインのスクリプトの初めにPUBLICで宣言
CALLで呼びだすファイルでの宣言はしない(読み込む度に宣言で多重宣言エラーの元もなる)
別にCALLで呼びこむときの最初に初期化するのは何の問題もない(PUBLICとか余計なものをつけない)
405名無しさん@お腹いっぱい。:2013/01/03(木) 22:55:31.33 ID:qKGUkVqX0
>>403
3行目がちょっと文法がおかしいので推測になるけど、
a.UWSの初回実行時のみa=0として実行し、
2回目以降はa=1,2,3,...として実行する、という意味だと仮定。

俺だったらまず、
main()に相当する関数ではない実行部分をもつスクリプトは常に1つとし、
それ以外は全て関数のみのファイル(それ単体で実行しても何も起きない)とする。
そうすると、b.UWSからは、a.UWSを実行したい都度にCALLで呼び出すのではなく、
冒頭で1回だけ呼び出しておいて(何も起きない)、都度a.UWS内の関数を呼び出す形になる。

そして変数aは常にb=main側にて管理し、
a.UWSを呼び出す度に引数に含める。
そうするとリエントラントな関数となるので
仮に複数のスレッドから呼び出したとしても、それぞれに独立した動きとなる。
もちろん、前のスレッドの呼び出しでaが+1させ、
後のスレッドの呼び出しに影響させたいという用途なら、この方法は使えない。

別解として、
他の言語だと>>403の変数aはstatic宣言すればいいんだけど、できないので、
a.UWSに属する大域変数とする。
その際、不用意に同名の変数が使われないよう、長くて意味のある変数名にする。

そしてさらに厳密に構造化するなら、
その大域変数をa.UWS以外から直接変更・参照するのをコード規約で禁止とし、
a.UWS内のget/set関数によってのみ参照・変更するようにすると、
疑似カプセル化となりオブジェクト指向っぽくなる。
俺はそこまでやってないけどw
406名無しさん@お腹いっぱい。:2013/01/03(木) 23:00:12.56 ID:Z1i92MA90
ゲッタやセッタ作ればオブジェクト指向という風潮
一理ない
407名無しさん@お腹いっぱい。:2013/01/03(木) 23:04:23.71 ID:53/E5S4A0
IEで1つの処理をやらせてるんだが
複数タブ開いて複数並列でやろうとするとスレッド処理が必要なのは分かるが
テンプレってある?なきゃないでいいし作ろうと思えば作れるが。
408名無しさん@お腹いっぱい。:2013/01/04(金) 17:02:45.87 ID:dUTUQDfW0
>>404,405
ありがとうございます。
関数にして最初に呼び出してしまえば今後使えるようなのでその方向で言ってみようと思います
オブジェクト指向もコード書きながら学べるようでしたらぜひそちらのほうで少しずつ進めて生きたいと思います。
409名無しさん@お腹いっぱい。:2013/01/04(金) 19:26:50.09 ID:JPzIFlzz0
「ITM_BACK UWSC」でぐぐると出てくるけど、
アクセシビリティ経由でのGETITEMがよくフリーズしてくれて辛い。
スレッドにしてみても、スレッドを強制終了する方法が無い。
もっとも、大抵の場合、GETITEMの対象のウィンドウを強制終了させれば
フリーズも解けるから、フリーズからの脱出は可能かもしれない。
でもそもそもフリーズしてくれちゃ困るんだよね。
410やっとでけたorz >>409:2013/01/05(土) 18:38:45.20 ID:z4PIjdXO0
FUNCTION getItemFreezeResistant(VAR lAllItemList[], lWID, lItemTypeConstants, lItemsNum=-1, lTimeoutSeconds=30, lListViewColumnsNum=1, lFlgRejectDisableItems=FALSE)
  RESULT = FALSE; lHND = IDTOHND(lWID); lCurSeconds = GETTIME()
  IF !isExistProcess(lHND) THEN EXIT
  FOR lJ=0 TO lTimeoutSeconds
    FOR lI=0 TO 5
      IF staticSemaphoreGetItemByThread_inSubCommon <= 0 THEN BREAK 2
      SLEEP(0.2)
      IF lTimeoutSeconds <= GETTIME() - lCurSeconds THEN EXIT
    NEXT
  NEXT
  IF staticSemaphoreGetItemByThread_inSubCommon > 0 THEN EXIT
  IF lTimeoutSeconds <= GETTIME() - lCurSeconds THEN EXIT
  THREAD getItemByThread(lWID, lItemTypeConstants, lItemsNum, lListViewColumnsNum, lFlgRejectDisableItems)
  FOR lJ=0 TO lTimeoutSeconds
    FOR lI=0 TO 5
      IFB staticSemaphoreGetItemByThread_inSubCommon <= 0 THEN
        RESULT = TRUE; copyArray(staticAllItemList_inSubCommon, lAllItemList); EXIT
      ENDIF
      SLEEP(0.2)
      IF lTimeoutSeconds <= GETTIME() - lCurSeconds THEN EXIT
    NEXT
  NEXT
FEND

PUBLIC staticSemaphoreGetItemByThread_inSubCommon = 0
PUBLIC staticAllItemList_inSubCommon[0]
PROCEDURE getItemByThread(lWID, lItemTypeConstants, lItemsNum=1, lListViewColumnsNum=1, lFlgRejectDisableItems=FALSE)
  staticSemaphoreGetItemByThread_inSubCommon = staticSemaphoreGetItemByThread_inSubCommon + 1
  GETITEM(lWID, lItemTypeConstants, lItemsNum, lListViewColumnsNum, lFlgRejectDisableItems)
  copyArray(ALL_ITEM_LIST, staticAllItemList_inSubCommon)
  staticSemaphoreGetItemByThread_inSubCommon = staticSemaphoreGetItemByThread_inSubCommon - 1
FEND
411名無しさん@お腹いっぱい。:2013/01/05(土) 18:46:24.51 ID:z4PIjdXO0
HELPで思ったこと:

・MSGBOXやGETITEMなどの複数指定可能種別定数(ITM_ACCTXT OR ITM_BACK とかやるやつ)
 の複数指定方法、初心者には壁だよなぁ。
 VBSとかのMSGBOXで使用経験があれば問題なく理解できるだろうけど。

・GETITEMのITM_BACKみたいな、ほとんど何の説明もないオプションは、
 HELPがわかりづらいという印象を与える一因。
 ってかITM_BACK指定してもダメなときはダメだったが…

・THREADで参照渡し出来ないのは他言語でのスレッドプログラミング経験者には常識かも知れないが、
 HELPにも書かれていなければエラーも吐かないのはどうかと思う。

ここに書くなって?
ごめん俺ヘタレなもんでw
412名無しさん@お腹いっぱい。:2013/01/06(日) 07:08:56.33 ID:vXMhJ8KsP
ググっていくつかサンプル見てなるほどーと思った関数は多いけど
そういうもんだと思って気にしなかったなぁ。
413名無しさん@お腹いっぱい。:2013/01/06(日) 09:01:40.39 ID:EKApAOWsP
基本的にスクリプト組んで作る人はそれくらいの知識はあるのが前提でそういう知識がない初心者でも使える録画機能が付いてるんだと思ってるが
スクリプト組んで作ろうという意識があるなら多少なりとも自分で調べたり例を少し変えてみて試したりとかするだろうし
初心者を言い訳に調べもしない奴が多すぎるのが問題
414名無しさん@お腹いっぱい。:2013/01/06(日) 12:54:36.01 ID:zRVxLEuBP
そうやって門戸を閉じてユーザビリティ向上を図らないのが
日本のソフトウェア開発が世界最低水準である原因
415名無しさん@お腹いっぱい。:2013/01/06(日) 13:47:57.82 ID:gPAg8utt0
>>414
開発者自体が広がる事を嫌ってるんじゃないか?w
416名無しさん@お腹いっぱい。:2013/01/06(日) 17:10:41.73 ID:NE78cwdN0
ユーザビリティってかもともとかける人のためにスクリプト組めるようになってるじゃん
出来なくても調べればごろごろ情報出てくるし
417名無しさん@お腹いっぱい。:2013/01/06(日) 17:11:47.71 ID:vXMhJ8KsP
実際に最低水準なのかは知らないけど、もし本当にそうだとしたら
英語弱くて読めるドキュメントの数が限られるのが原因だと思うけどな。
基本は自分で調べるもんだよ。
418名無しさん@お腹いっぱい。:2013/01/06(日) 17:27:29.52 ID:lc2T8BvS0
日本人が英語苦手で英語のマニュアルとかフォーラムとか見ないのが一番の原因だろ
419名無しさん@お腹いっぱい。:2013/01/06(日) 17:30:06.86 ID:lc2T8BvS0
ちなみに俺も英語なんて読む気がしません
420名無しさん@お腹いっぱい。:2013/01/06(日) 17:33:17.72 ID:4HPDnym20
英語のリファレンスしかないなら頑張って読めよ
大して難しいこと書いてないぞ
421名無しさん@お腹いっぱい。:2013/01/06(日) 18:58:49.63 ID:IIi32ESi0
>>420
書いてるほうも文学やってきたわけじゃないしな
ややこしい言い回しなんかたぶん知らない
422名無しさん@お腹いっぱい。:2013/01/06(日) 19:09:24.81 ID:zRVxLEuBP
アホ
iphoneにはマニュアルなんてついてないぞ。マニュアルなくても操作できるからな
電話帳並のマニュアルを付けていたガラケーが負けた理由がまだ理解できないのか日本のエンジニアは
俺もその端くれだが、このソフトはマウスとキーボード記録以上のことを勉強する気になれない
タスクマネージャよりはこちらの方が多少便利なので使っているだけ

必要になれば勉強するけど、たいていのことは他のソフトの方が楽だし
423名無しさん@お腹いっぱい。:2013/01/06(日) 22:21:24.10 ID:P0X3GDP80

馬鹿でも触れるようにしたのがiPhoneで
馬鹿じゃ触れないのがUWSC

住み分けできてんじゃねw
文句あんなら馬鹿でも触れるUWSC組めば
424名無しさん@お腹いっぱい。:2013/01/06(日) 22:48:12.92 ID:L7GF0TDyP
スクリプトの勉強しようと知人に相談したら
UWSCのマクロやるよりプログラミング言語を基本からきちんとやったほうがいいって言われたんだけど
UWSCってプログラミング言語には何の役にもたちませんか?
425名無しさん@お腹いっぱい。:2013/01/06(日) 22:54:44.63 ID:tWshQVaI0
>>424
やる気がないと挫折するぞ
作りたいもんをリファレンス引きながら作る
ある程度できるようになったり詰ったら基本に戻ればよい
なんでもいいから最後まで作るのが大事
426名無しさん@お腹いっぱい。:2013/01/06(日) 23:13:02.30 ID:P0X3GDP80
んだんだ
コレをやりたい一点突破なら、苦労しながら尋ねながらでも最後までできるだろうし覚えも早い

UWSCつかマクロでやりたいことできるなら、UWSCから入ったほうが早い
ただUWSCProでEXE化汎用化(配布)を考えてるなら知人の言うとおり
427名無しさん@お腹いっぱい。:2013/01/06(日) 23:18:19.71 ID:ofiIy4N40
>>424
正直、言語なんてのはアプリを表現する為の方言みたいなもんでしかない
有利不利は当然あるけど、基本的な事であれば大体どんな言語でもできる
428名無しさん@お腹いっぱい。:2013/01/06(日) 23:24:26.50 ID:auw3jqte0
基礎をやるとレベルアップの成長速度にプラスになる
基礎をやり遂げられるならやったほうが良いに決まってるが、
挫折する=0ぐらいなら、モチベーションの続く方をやるほうがプラスになる
429名無しさん@お腹いっぱい。:2013/01/06(日) 23:51:20.95 ID:NMnnZuYI0
>>424 プログラミング言語覚えたいならマクロツールで覚える必要ない
だが覚えれば自作のDLL作ったり出来ることの幅が広がる(UWSCは自作DLLも読み込んで使えるので)
だがそこまでやるなら別にUWSCである必要はない
どのレベルの物を作りたいかによる

ゲームのマクロとかサイト巡回、簡単な作業効率化程度のマクロ作成ならプログラミング言語の基礎なんて覚えなくても適当に調べる力があれば作れる
430名無しさん@お腹いっぱい。:2013/01/06(日) 23:53:31.11 ID:7c5Rkkbe0
最後まで作るのが大事なのは同意だけど

何かを作る時は
自分の中で確認済みの所と
そうでない所を見極めて課題とし
それを最小単位でとりあえず作ってみるのも大事だよ

そして全て確認出来たらそれらを組み合わせて完成させる
431名無しさん@お腹いっぱい。:2013/01/07(月) 08:36:08.15 ID:yAUKF3SuP
>>424
条件分岐や変数といった基本はどんな言語でも共通なんで
役に立たないということはない。

ただし、C言語やJavaやBasicといったメジャーなプログラム言語は
初心者向けの書籍やドキュメントが充実してるのに対して
UWSCやアプリケーション付属のスクリプトはたいていが
「操作を記録・再生できます。プログラミングできる人ならソースを見てカスタマイズも可」
ってスタンスだから、何も触ったことの無い人がUWSCから入ろうとすると
ID:zRVxLEuBPのようにドキュメント不足で発狂することになるw
432名無しさん@お腹いっぱい。:2013/01/07(月) 12:15:27.91 ID:HYHsnpj20
入門レベルで作れるプログラムはCやJAVAでは検索すればフリーソフトがごろごろ出てくる
UWSCは入門レベルで自分だけの超ニッチで超便利なツールを作れる
それによってモチベーションに格段の差が生じる
433名無しさん@お腹いっぱい。:2013/01/07(月) 13:41:50.78 ID:h71R+bmM0
サンプル見てどういうものかわからない人は仕組みを理解しようとしない人だからプログラムには向いてない
その程度の機転の利かない奴は基礎がわかってもどう使っていいのかがわからなくて詰むから俺なら早い段階で諦めさせるな
434名無しさん@お腹いっぱい。:2013/01/07(月) 13:52:53.45 ID:RVRDBi2p0
まあ、何が便利かって、大手の言語は色々と段取りが難しい事だろうな
プロジェクトを作って、各種のファイルをプロジェクトに取り込んで、などなど

UWSCは言語として出来る事は汎用言語に比べたら劣るけど
咄嗟に思いついたほんのちょっとしたアプリを作りたいときは便利
インタプリタ型のスクリプト言語のコンセプトなので、手直しして再実行までの手続きとかね
435名無しさん@お腹いっぱい。:2013/01/07(月) 22:22:00.73 ID:RThsHk660
UWCSを機動していると予期せぬエラーが発生しましたとでて強制終了させられてしまいます
windows XPではこのようなことは起こったことがありませんでしたが、vistaと7では起こるようになってしまい、
vistaではtdl.dll、7ではusp10.dllによるものだとありました。

ぐぐってみたらマイクロソフトオフィスIMEが悪さをしているとあったのでgoogle IMEに変更をしましたがかわりありません
どうすれば解決できるのでしょうか
436名無しさん@お腹いっぱい。:2013/01/07(月) 23:15:26.53 ID:XqIbO6a+0
エラーの内容書かない人はアレだよね。
437名無しさん@お腹いっぱい。:2013/01/07(月) 23:15:44.55 ID:UO0T3rap0
>>435
UWSC 予期せぬエラーで強制終了
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1394376383

こっちじゃね?CALLしまくってメモリ足りなくってdでんじゃね
438名無しさん@お腹いっぱい。:2013/01/08(火) 00:42:28.83 ID:1L8b6yL30
>>436
エラー文とは以下のようなもので良いのでしょうか
障害が発生しているアプリケーション名: UWSC.exe、バージョン: 4.8.4.0、タイム スタンプ: 0x2a425e19
障害が発生しているモジュール名: USP10.dll、バージョン: 1.626.7600.16385、タイム スタンプ: 0x4a5bdb32
例外コード: 0xc0000005
障害オフセット: 0x0005294e
障害が発生しているプロセス ID: 0x1074
障害が発生しているモジュール パス: \syswow64\USP10.dll
レポート ID: 2597ed6c-589d-11e2-87c2-8c736eddde36
439名無しさん@お腹いっぱい。:2013/01/08(火) 00:45:34.65 ID:1L8b6yL30
ごめんなさいそう長くないのに本文が長過ぎますとでたので2つにわけました

>>437
callを多様しているのでそのでいかもしれません
callでメモリが増えるというのはa.uwsからb.uwsをcallしたときはもちろんですが、同じa.uwsをcallしたときにも増えるのでしょうか
440名無しさん@お腹いっぱい。:2013/01/08(火) 03:10:02.20 ID:7o9v9e260
例外コード: 0xc0000005
これでぐぐったら良いじゃないかと毎度。
441名無しさん@お腹いっぱい。:2013/01/08(火) 03:54:49.51 ID:1r2P0bTW0
正直スクリプトの問題ならスクリプト見ないと原因はわからないな
スレッドの作りすぎCOMオブジェクトの解放をしないで作りまくってるetc

UWSCとは別のツールが問題ならそのツールを起動するのに必要なファイルが古いとか何らかのファイルがセキュリティーソフトに引っかかってるとか

スクリプトに問題があると思ってるなら各動作ごとに分解して動作させて見てエラーが出る場所を特定するとかPRO版使ってるならデバッグツール使って確認してみるとか
442名無しさん@お腹いっぱい。:2013/01/08(火) 04:43:28.17 ID:K9FWKUPN0
443名無しさん@お腹いっぱい。:2013/01/08(火) 12:55:12.41 ID:1L8b6yL30
>>439
メモリアクセス違反のエラーであるとでました
ただ、解決するためにはリカバリをしなければならないようで、他の解決策を全て行い、それでもだめだった場合に最終手段としてやりたいと思います

>>442
すみません。これはつまりどういうことなのでしょうか
444名無しさん@お腹いっぱい。:2013/01/08(火) 23:35:08.75 ID:7o9v9e260
次から次へコールする構造を改めてみてはという事じゃない?
445名無しさん@お腹いっぱい。:2013/01/09(水) 00:23:09.88 ID:9YjMSsrO0
なるほどそういうことでしたか。
メモリの使用量について聞いていたのでそれの答えが書かれているものかと思っていました
callを少なくすることで使用量も抑えられそうなのでさっそくやってみよます
446名無しさん@お腹いっぱい。:2013/01/09(水) 08:47:26.11 ID:Jw+q1m180
call乱用はよろしくないのか
色々融通効くからプロセス毎に分けてその都度呼び出してたわ
447名無しさん@お腹いっぱい。:2013/01/09(水) 09:48:08.72 ID:GGO+2d6qP
最後の最後に☆3キター
リックドムだけど
448名無しさん@お腹いっぱい。:2013/01/09(水) 09:50:36.40 ID:qiHrJvP70
>>447
用途乙
449名無しさん@お腹いっぱい。:2013/01/09(水) 18:57:47.22 ID:7Wm9mEUa0
現在日時の取得ってどうやるんですか
450名無しさん@お腹いっぱい。:2013/01/09(水) 18:59:57.04 ID:7Wm9mEUa0
Print で出てくるウィンドウの出現位置を任意に指定できませんか
451名無しさん@お腹いっぱい。:2013/01/09(水) 19:33:24.82 ID:7Wm9mEUa0
>>449
GetTime()の後にG_Time_??変数に入る。ですね。
ヘルプの制御関数をスルーしてました。すみません。
452名無しさん@お腹いっぱい。:2013/01/09(水) 19:38:32.38 ID:GGO+2d6qP
>>449 GETTIME
>>450 acw(getid(GET_LOGPRINT_WIN),X座標,Y座標)
453名無しさん@お腹いっぱい。:2013/01/09(水) 20:15:15.39 ID:7Wm9mEUa0
>>452
ありがとうございます
454名無しさん@お腹いっぱい。:2013/01/09(水) 21:53:46.75 ID:7Wm9mEUa0
LogPrint( True, 500, 300, 100, 200 ) でおkなようでした。
455名無しさん@お腹いっぱい。:2013/01/11(金) 09:39:11.07 ID:ejShOENA0
スレッド処理便利すぎるwwwwwwwwアホかwwww便利すぎるwwwww

いいですね。Thread
456名無しさん@お腹いっぱい。:2013/01/11(金) 10:19:53.98 ID:+wJbi+uf0
if 変数 = "abc" then 処理 ←出来る
if !変数 = "abc" then 処理 ←出来ない

ブロック文でelse使うしかないの?
457名無しさん@お腹いっぱい。:2013/01/11(金) 11:29:18.00 ID:nV9JhAHW0
>>456
否定の!を文字列に対して使ってるから期待しない動きになるんじゃない?

if !(変数 = "abc") then 処理 か
if 変数 <> "abc" then 処理 でしょ
458名無しさん@お腹いっぱい。:2013/01/11(金) 11:51:32.40 ID:+wJbi+uf0
>>457
ありがとう
記号はヘルプやGoogle先生に聞きにくくて困ってた
「演算子」って言うんだなこれ
459名無しさん@お腹いっぱい。:2013/01/11(金) 12:07:09.64 ID:aCy+o2JZ0
>>375-379 だな
他人の作ったスクリプトとか見てるとよく出ると思うけどプログラムやってる人とかじゃないと知らないって人は多そうだ
460名無しさん@お腹いっぱい。:2013/01/11(金) 13:28:16.80 ID:GzP1HQz50
ある特定の条件があれば、スクリプトの特定の場所、または特定の行に飛ぶということをやりたいのですがどうすればいいのでしょうか
移動させずに、その特定の場所にかいてある文と同じ内容をそのまま書けば良いとも思いましたが、
そうするとやたら長くなってしまうので、省略するためにどうにかできないものかと思っています。
461名無しさん@お腹いっぱい。:2013/01/11(金) 14:32:36.49 ID:8VQSiHf10
Function - fend /Procedure - fend を使う
釣り?
462名無しさん@お腹いっぱい。:2013/01/11(金) 15:02:44.46 ID:GzP1HQz50
今まではぐぐったり他の人が作った構文を参考にすることで解決できていましたが、
今回はそれでもわからなかったのでここで質問をさせていただきました

functionとprocedureは初めて見るものなのでどう使うかまだよくわかりませんが、あとはぐぐるなりして自分でやってみます
ありがとうございました
463名無しさん@お腹いっぱい。:2013/01/11(金) 15:04:21.65 ID:tAfqEYKW0
これはひどい
464名無しさん@お腹いっぱい。:2013/01/11(金) 15:48:03.90 ID:Rejfue480
乞食にエサを与えると味を占めて何度でもエサを貰いに来るようになる
465名無しさん@お腹いっぱい。:2013/01/11(金) 15:58:56.09 ID:GzP1HQz50
関数引数戻り値やらモジュールという言葉には馴染みがなかったということもありますが、
私の調べ方が悪かったようですね

ご迷惑をお掛けしました
466名無しさん@お腹いっぱい。:2013/01/11(金) 21:32:01.78 ID:eemMHsM+0
関数という構造化すら知らないド素人ノンプログラマでも
ある程度スクリプトで使えていたというのが驚き
そして最初の言語がUWSCだというのは
長い目で見ると気の毒
467名無しさん@お腹いっぱい。:2013/01/11(金) 21:38:18.79 ID:aCy+o2JZ0
最近どこのスレでも無駄に煽る奴が多いこと
468名無しさん@お腹いっぱい。:2013/01/11(金) 21:38:40.97 ID:tFclmP6u0
それは無い
469名無しさん@お腹いっぱい。:2013/01/12(土) 00:53:30.56 ID:NXS4eQiI0
おやまの大将気分で煽る奴はほっときゃおk
470名無しさん@お腹いっぱい。:2013/01/12(土) 05:14:45.34 ID:3J+3k50W0
>>467
お前も十分煽ってるんじゃね?
471名無しさん@お腹いっぱい。:2013/01/13(日) 13:53:10.87 ID:Dnv7g3S70
何これちょっと
ドコにも書いてないけど参照渡しした配列をリサイズ出来ないの?
それとも俺のバグ?
472名無しさん@お腹いっぱい。:2013/01/13(日) 14:11:55.95 ID:i8/nChn6P
Var
473名無しさん@お腹いっぱい。:2013/01/13(日) 14:39:53.72 ID:Dnv7g3S70
参照渡しの配列がリサイズ出来たりエラー吐いたり
挙句には何故かJOINが文法間違ってないのに Syntax error
気持ち悪いから組込みプログラミング風に
最初から最大領域確保するように書き直してるけど
エライ手間だわ。
今朝から別の用事があったのに今日丸つぶれだわ〜
474名無しさん@お腹いっぱい。:2013/01/13(日) 15:58:43.64 ID:Dnv7g3S70
直し始めてから気づいたが…
俺の4.8bなんだが…

2012/11/12 [Ver4.8c]
 ループの中で DIM宣言の配列サイズを増やした時にエラーになるのを修正

以前はちゃんと動いていたから、
もしかしていつの間にかエンバグしてたのかな?
もう直し始めちゃって今さら元に戻せないよ…
他にも色々思い当たる修正あり過ぎるわ。
全然枯れてないじゃん…くそがorz
475名無しさん@お腹いっぱい。:2013/01/13(日) 16:19:08.95 ID:Dnv7g3S70
この分だと、Windows Server 2003 上でだけ、XPでは問題ない、
IF文やJOIN文が Syntax Error になるのもバグかな〜
476名無しさん@お腹いっぱい。:2013/01/13(日) 16:24:39.01 ID:8xLTahjB0
>>475
参考までにエラーになるJoin()ってどんな感じなの?
477名無しさん@お腹いっぱい。:2013/01/13(日) 18:43:36.37 ID:RqvEFYoI0
出先からです
>>476
join(array, ",")
配列が存在しなかったりresize(array)=0の時だけかと思ったら
極普通の時にもエラー
4.8dにしてからはまだ時間がたってないので何とも言えないけど今のところ未確認
ちなみに2003ではIFBにせずに複数行構文にするとエラー

何にせよこんな目にあったからには今後一切、配列の動的確保とかする気ない。

UWSCの本分はWindowsの自動操作であって汎用言語の提供ではないんだから
車輪の再発明してないで.NETで使えるようにしてほしいわ…
478名無しさん@お腹いっぱい。:2013/01/13(日) 19:47:57.35 ID:8xLTahjB0
>>477
ありがと
普通の構文だね、4.8bだけどエラーになったことないので他の要因との兼ね合いなのかなぁ
今後エラーになたときのために記憶に留めておくよ
479名無しさん@お腹いっぱい。:2013/01/13(日) 20:13:16.98 ID:RqvEFYoI0
あくまで多分だけど、
リソース不足の時に関数の引数に配列を指定した場合、
参照渡しにした場合、サイズ変更した場合、
この辺りが怪しいと思う。
また、chkimgやgetitemなどで生成される配列のシステム変数が、
該当なしの時にresize(ALL_ITEM...)=-1(だったと思う)になる時があって、
いじる前にヒット数をチェックして
ヒット数0のときは触らないようにしないといけないというのが意外と盲点。
480名無しさん@お腹いっぱい。:2013/01/13(日) 21:56:03.98 ID:RqvEFYoI0
FUKIDASIが超ちらついてたのも超直ったw
こんなに違うもんなのかというほど前はちらついてたがバグだったのか…
481名無しさん@お腹いっぱい。:2013/01/14(月) 01:07:52.51 ID:MG8lZrjO0
俺はストップボタンがちらつくぜい
482名無しさん@お腹いっぱい。:2013/01/14(月) 23:50:26.99 ID:BpN3lIWg0
配列の問題が解消したら
アクセシビリティ経由でのGETITEMがフリーズしやすい現象も
減ったか無くなった気がする
483名無しさん@お腹いっぱい。:2013/01/16(水) 01:38:52.39 ID:icVQHR2x0
>>482
変わらず
484名無しさん@お腹いっぱい。:2013/01/27(日) 13:20:58.64 ID:7HPQBdjI0
autohotkeyではできたんですが
~RBUTTON&amp;1::SEND{F1}
のように右クリしながら1を押すとF1が押される みたいなことを
UWSCでやるにはどうしたらいいんでしょうか?
SETHOTKEYを使おうと思ったらマウスのクリックを設定できないみたいなのですが
485名無しさん@お腹いっぱい。:2013/01/27(日) 13:56:44.56 ID:NRAwy5fYP
戻値 = GETKEYSTATE( キーコード )
486名無しさん@お腹いっぱい。:2013/01/27(日) 22:14:05.59 ID:N3fW6src0
>>324の再投稿です
分かる方いましたらよろしくお願いします

hnd = GETCTLHND(IE.HWnd,"MacromediaFlashPlayerActiveX")
フラッシュのハンドルの取得の仕方を調べると大体これが出てくるんですけど、
この方法だと"MacromediaFlashPlayerActiveX"で動いている一部のフラッシュのハンドルしか取得できません
フラッシュが何で動いているか(≒GETCTLHNDの第二引数に何を書けばよいか)を調べる方法を教えてください
487名無しさん@お腹いっぱい。:2013/01/27(日) 22:38:34.89 ID:8mEOATyS0
ブラウザによってはFLASHのハンドルは取れないよ(公式のサンプル内にも書かれてる)

IE上のFlashからデータ取得(バーチャルFXからレート取得)  #n60

// IE10 では Flashは内臓の為ハンドルの取得はできないので、クライアント全体"Internet Explorer_Server"を指定
flash_id = HndToID(GETCTLHND(IE.HWnd,"Internet Explorer_Server"))
488486:2013/01/28(月) 21:02:18.30 ID:2bwxkZWr0
回答ありがとうございます
コードがAAのあぼーん設定に引っかかってて気づくのが遅れてしまいました…
489名無しさん@お腹いっぱい。:2013/01/29(火) 10:10:55.55 ID:JTncstFp0
エエーッ!
490名無しさん@お腹いっぱい。:2013/01/29(火) 10:20:50.67 ID:9+G62Q210
アアーッ!
491名無しさん@お腹いっぱい。:2013/01/30(水) 19:11:13.13 ID:OylmZoEI0
sd
492名無しさん@お腹いっぱい。:2013/01/31(木) 21:19:24.14 ID:e7HV4NQR0
uwscはumiumi windows scriptなり
493名無しさん@お腹いっぱい。:2013/02/02(土) 10:40:13.46 ID:LMXqpbsQ0
Aキーを押している間はA連打
Aキーを押しながらBキーを押している間はAB連打
(Bキーを単独で押しても反応しない)
上記の動作をしたい場合どうすればいいでしょうか?
続けてifb-endifを記述するとAを押したときにBが一度だけ入力されてしまいます
494名無しさん@お腹いっぱい。:2013/02/02(土) 10:48:27.73 ID:LMXqpbsQ0
すみません。勘違いかもしれません。
もう少し試行錯誤してみます。
495名無しさん@お腹いっぱい。:2013/02/05(火) 21:52:14.10 ID:dKJa+tQy0
SLCT_BOXの選択肢を横に並べたいのですが
できるでしょうか?
496名無しさん@お腹いっぱい。:2013/02/05(火) 22:19:53.35 ID:zAV8s5RD0
無理じゃない?
どうしても横に並べたいなら自分でフォーム作ってデザインするしか無いと思うよ
497名無しさん@お腹いっぱい。:2013/02/05(火) 23:34:09.08 ID:u8id0zg70
CLICITEMでCLK_ACCが探すのが遅いんだけど、どうすりゃいいの?
498名無しさん@お腹いっぱい。:2013/02/06(水) 00:21:35.11 ID:rKS/FLaNP
スレッド処理、検索の仕方を変える、PCのスペックを上げるetc
499名無しさん@お腹いっぱい。:2013/02/06(水) 00:45:01.75 ID:fQ6xy58+0
ACC使わないでクリックできるアプリに変更する
500名無しさん@お腹いっぱい。:2013/02/06(水) 06:25:34.20 ID:TS9IuRbW0
できますん
501名無しさん@お腹いっぱい。:2013/02/06(水) 14:23:21.31 ID:oFjzhSvs0
>>497
低スペック・低リソースだとフリーズするよ。
ということは逆に、ハイスペックだと速くなる気がするw
502名無しさん@お腹いっぱい。:2013/02/06(水) 20:30:29.04 ID:6Z0QWr9+0
>>496
無理でしたか
ありがとうございました
503名無しさん@お腹いっぱい。:2013/02/06(水) 20:52:43.83 ID:lW5MNfJ60
>>499
どうすりゃ変更できる?
504名無しさん@お腹いっぱい。:2013/02/06(水) 20:56:07.62 ID:mr0Ls9M30
>>503
ACC使わないでクリックできるアプリに変更する
505名無しさん@お腹いっぱい。:2013/02/06(水) 21:03:57.47 ID:lW5MNfJ60
>>504
どうやって変更するの?
506名無しさん@お腹いっぱい。:2013/02/06(水) 21:32:40.91 ID:oFjzhSvs0
>>505
鉛筆削りを使わなくて済む筆記用具に変更する、と言ったのに、どうやって変更するか聞かれても困るんじゃね?w
507名無しさん@お腹いっぱい。:2013/02/06(水) 21:55:25.81 ID:KiPkZ4UV0
座標クリックしちゃえよ
508名無しさん@お腹いっぱい。:2013/02/08(金) 11:02:47.74 ID:uvTvzEkv0
どこかに4.6とか旧バージョンはありませんでしょうか
現在の環境に4.8だとサンプルでもCOM errorを吐いてまったくCOMが使えない状態です
誰か持っていたらくださいませ
509名無しさん@お腹いっぱい。:2013/02/08(金) 11:21:47.64 ID:1hsnL3YB0
>>508
バージョンは関係ない
http://support.microsoft.com/kb/969168
510名無しさん@お腹いっぱい。:2013/02/08(金) 11:38:26.30 ID:uvTvzEkv0
>>509
いや環境はXP ProのSP3です
Microsoftエージェントは特に呼んでいないのです

使えなくなったきっかけがUWSCのバージョンうpだったもので
511名無しさん@お腹いっぱい。:2013/02/08(金) 11:59:23.16 ID:1g1EEVkn0
どのサンプルがエラー吐くの?
512名無しさん@お腹いっぱい。:2013/02/08(金) 12:26:22.75 ID:uvTvzEkv0
>>511
下記ロダにあるサンプル.UWSという奴です
http://ux.getuploader.com/bcg/download/32/%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB.UWS

元々UWSCに同梱されていたものです
513名無しさん@お腹いっぱい。:2013/02/08(金) 12:48:08.27 ID:1hsnL3YB0
514名無しさん@お腹いっぱい。:2013/02/08(金) 12:55:23.18 ID:uvTvzEkv0
>>513
感謝です。ありがとうございました
515名無しさん@お腹いっぱい。:2013/02/08(金) 13:59:57.70 ID:1g1EEVkn0
別にエラーなんて出なかったが・・・
516名無しさん@お腹いっぱい。:2013/02/08(金) 14:27:27.88 ID:irJbQx570
for nextとかの繰り返し処理させるスクリプト組んだんだけど、何回か処理するうちに正常に処理できなくなります
動作が重いのかなーとか思ったりしますけど、なにか解決策あります?
517名無しさん@お腹いっぱい。:2013/02/08(金) 14:49:46.73 ID:ZEvi1ZMM0
call使って別に分けてみるとか
518名無しさん@お腹いっぱい。:2013/02/08(金) 15:43:31.72 ID:5eap3sXH0
sleep入れてみるとか
519名無しさん@お腹いっぱい。:2013/02/08(金) 18:19:37.55 ID:zUk5mqRh0
callとかsleep入れたら軽くなるんですね
長めのスクリプト組んでたので試してみます
520名無しさん@お腹いっぱい。:2013/02/08(金) 18:38:49.27 ID:ZEvi1ZMM0
ごめんスレ読み返したらcallは駄目だw
521名無しさん@お腹いっぱい。:2013/02/08(金) 19:36:48.99 ID:zUk5mqRh0
sleep多用してみます!
522名無しさん@お腹いっぱい。:2013/02/09(土) 20:54:56.33 ID:lm1CrFV50
質問です。
下記の通り行うと
ウィンドウの端から500ずつのところまで画像を保存してしまいます。
aaaの座標から幅、高さを500の範囲ところまで保存したいのですが、
G_IMG_X,G_IMG_Yから指定範囲を保存するにはどうすれば良いですか?

IFB CHKIMG("aaa")
SAVEIMG(画像名,ID,G_IMG_X,G_IMG_Y,500,500,TRUE,100)
ENDIF
523名無しさん@お腹いっぱい。:2013/02/09(土) 21:41:11.38 ID:KgXShuFM0
G_IMG_X+500とかにしなきゃだめなんじゃね?
524名無しさん@お腹いっぱい。:2013/02/09(土) 22:31:23.91 ID:wlKR+0Wy0
SAVEIMGのIDを0にすべきなんじゃないの?
525名無しさん@お腹いっぱい。:2013/02/09(土) 22:52:41.03 ID:lm1CrFV50
>>523
500→G_IMG_X+500ってことですよね?
やってみましたが結果は同じでした

>>524
IDを0にしたら画面全体の左上端からになってしまいました
526名無しさん@お腹いっぱい。:2013/02/09(土) 23:20:43.71 ID:d4Rmk2/8P
SAVEIMG("画像名",0,G_IMG_X,G_IMG_Y,G_IMG_X + 500,G_IMG_Y + 500,TRUE,100)
でテストしたら普通に画像の位置から500,500の範囲の画像作ったぞ?
527名無しさん@お腹いっぱい。:2013/02/09(土) 23:25:47.25 ID:wlKR+0Wy0
きっとMOUSEORG使ってる事を隠してるんだよ
528名無しさん@お腹いっぱい。:2013/02/10(日) 00:43:37.01 ID:HKVGjEpf0
モニタからはみださないようにチェック入れたほうがいいと思う
529名無しさん@お腹いっぱい。:2013/02/10(日) 09:22:12.52 ID:N5VUd7dT0
>>526
それでやると検出座標分でかくなるぞ@4.8b
530522:2013/02/10(日) 11:39:05.97 ID:16Z+YVXF0
>>527
MOUSEORG使ってます
使ってると失敗するんでしょうか?
531名無しさん@お腹いっぱい。:2013/02/10(日) 13:00:18.92 ID:VyK2OYZa0
>>530
MOUSEORGで何やってるかによって、CHKIMG、SAVEIMG 部分の記述が変わってくるって意味
MOUSEORGを上書きする方法でいいなら

MOUSEORG(ID)
IFB CHKIMG("aaa")
SAVEIMG(画像名,ID,G_IMG_X,G_IMG_Y,500,500,FALSE,100)
ENDIF
532522:2013/02/10(日) 13:22:54.77 ID:16Z+YVXF0
>>531
出来ました

教えて下さった皆様ありがとうございました
533名無しさん@お腹いっぱい。:2013/02/10(日) 19:30:09.57 ID:nDrF5xvR0
UWSCで指定したウインドウが表示(ホップアップ)されたらwavを鳴らせるようにできませんか?
簡単だったら教えてください。
534名無しさん@お腹いっぱい。:2013/02/10(日) 19:58:00.60 ID:ehtmG49d0
GETIDとSOUND関数
535名無しさん@お腹いっぱい。:2013/02/10(日) 19:59:24.77 ID:D+zPUse40
あなたには難しいから教えません
536名無しさん@お腹いっぱい。:2013/02/10(日) 20:01:21.94 ID:qGY/3Hwe0
たまにウインドウ閉じてもID残ってて面倒なのあるけどな
あとタイトルかぶったり
537名無しさん@お腹いっぱい。:2013/02/10(日) 23:13:13.09 ID:BiBz12dy0
>>533
スケジュール設定で「指定したWindouwが現れた時(W)」を使う
タイトル名/クラス名取得は色んなソフトがあるけど↓でコピペが簡単
ttp://www.vector.co.jp/soft/win95/prog/se125821.html

スクリプト本体はSOUNDでwav再生
もしくはEXEC/DOSCMDで外部アプリを起動
538名無しさん@お腹いっぱい。:2013/02/11(月) 17:44:38.35 ID:K/ANU6sD0
iMacrosと連携して使っている人、いる?
Excelからデータを抽出して、Firefoxでフォームに入力するのを自動化したいんだけど、うまくいかない。
UWSCでExcelから抽出した文字列をiMacrosに受け渡す方法が分からない。
539名無しさん@お腹いっぱい。:2013/02/11(月) 18:20:11.01 ID:l4KLyYRT0
IE使えよ
540名無しさん@お腹いっぱい。:2013/02/11(月) 19:00:01.01 ID:+dfhn8vw0
繰り返し処理をfor文で回しているのですがそれが何周目かを画面の片隅にでも表示させることは
できないでしょうか?

FUKIDASIで表示させてもすぐに消えてしまいます。すごい初心者質問ですがよろしくオンエガイします
541名無しさん@お腹いっぱい。:2013/02/11(月) 19:04:06.51 ID:Sy+hMWPv0
すぐ消えるって上書きしない限り消えないと思うjけど
542名無しさん@お腹いっぱい。:2013/02/11(月) 19:05:24.89 ID:+dfhn8vw0
FUKIDASIで消えないように出来ました!

しかし実害はあまりうないが通常実行中は消えるUWSCのウィンドウ(バー)が
画面上でちかちか点滅するようになってしまった
543名無しさん@お腹いっぱい。:2013/02/11(月) 19:06:38.51 ID:muX6gS+Y0
一体どんなやり方をしてるんだ・・・
544名無しさん@お腹いっぱい。:2013/02/11(月) 21:25:20.99 ID:RxPZTPny0
ブラウザで表示されているページ内で指定した画像を見つけ、見つけたらその画像が左上の隅に表示されるようにページを上下左右にスクロールさせたいのですがやり方を教えていただけないでしょうか?

ブラウザはプニルを予定しています
545マウスでクリックしたらそこを原点にして丸を書きたい:2013/02/11(月) 21:26:53.76 ID:lSOnMsoQ0
ACW(GETID("無題 - ペイント","MSPaintApp"),-4,-4,1200,900,10)
dim px = 650, py = 520, r = 200, s = r / 2
for i= 0 to s
t = 3.14 * 2 * i / s
x = cos(t) * r + px
y = sin(t) * r + py
if i = 0 then BTN(LEFT,DOWN,x, y) else MMV(x, y,10)
next
BTN(LEFT, up)
546533:2013/02/13(水) 09:51:12.11 ID:P5sQE7p90
>>537
できました、ありがとうございます!
547名無しさん@お腹いっぱい。:2013/02/14(木) 00:46:33.73 ID:oxMFflGC0
Gmailにログインして、今日きたメール全部の本文だけを抽出してメモ帳に書き出すのを書いているんですが、うまくできません。
テキストを選択するのが失敗してしまう様です。
誰かヒント下さい。
548名無しさん@お腹いっぱい。:2013/02/14(木) 00:56:52.73 ID:QmY7DBZ10
メールソフト使え
549名無しさん@お腹いっぱい。:2013/02/14(木) 04:50:37.44 ID:1urIDlfk0
>>547
「POP Out」というコマンドラインで動くメール受信ソフトがあるんだけど
Gmailでも使えれば楽に出来そうな。
ttp://mayugeya.sakura.ne.jp/00149.htm
ここが参考になると思う。
550544:2013/02/14(木) 10:05:49.51 ID:ifA5gmvm0
どなたか
>>544
のやり方教えていただけないでしょうか?
551名無しさん@お腹いっぱい。:2013/02/14(木) 12:17:52.67 ID:ACSMmnCg0
画像チェックして目的の位置に来るまでキーダウンじゃダメなの?
552名無しさん@お腹いっぱい。:2013/02/15(金) 14:45:25.85 ID:bN/K2AoW0
>>550
>>551 でもいいけど
ソースに画像のURLがあったらそこにフォーカスを移動するだけでいいんじゃね?

この方法はフォーカスが移動できる必要があるけど。
で、画面下に現れるんだけど、
いったんページの一番下までスクロールしてからその画像にフォーカスを移すと、画面の一番上にスクロールされる。

タブキーでフォーカスを移動していけばどんなかわかる。
でも、たぶん、画像にフォーカスは移せんよなあ・・・

フォーカスを移動するには、テキストボックスならIESETDATAでヌルテキストを入れてもいいけど
DOMに .forcus ってメソッドがある。
553名無しさん@お腹いっぱい。:2013/02/16(土) 00:29:08.62 ID:PTSiqqtm0
配列とhash使う機会ある?
554名無しさん@お腹いっぱい。:2013/02/16(土) 13:46:34.93 ID:32LclqVx0
取得画像が複数で逐一処理するなら配列は避けられない
ハッシュリストは無いよりマシだと思ってたが、
それ以前に配列処理の信頼性に疑念が残り
固定配列長しか怖くて使い得ない
本当は既に完成した外部の言語からUWSCをライブラリとして操作すれば
UWSC言語仕様内にハッシュリストなんか不要
もっともっと高性能なライブラリがとっくにあるのに使えない
555名無しさん@お腹いっぱい。:2013/02/17(日) 12:54:06.60 ID:5bHGYbUl0
疑念て何?そんな検証もできない問題がなんかあるん?
556名無しさん@お腹いっぱい。:2013/02/17(日) 12:54:53.52 ID:5bHGYbUl0
あと、DLL呼べるんだから高性能()なライブラリが使えない理由がわからない。
557名無しさん@お腹いっぱい。:2013/02/17(日) 15:04:04.62 ID:M0Y/IXGy0
>>556
DLL呼び出しで .NET のコレクション使うとか面倒くさいじゃん。
http://codezine.jp/article/detail/3640
それよか、.NETからUWSCを呼び出して使えるなら、そのほうがずっとスマート。
すでに他言語で実装済みかつ信頼性も確かな汎用オブジェクトを
UWSCが仕様削った劣化版を再発明して実装するよりは。
558名無しさん@お腹いっぱい。:2013/02/17(日) 15:07:51.33 ID:M0Y/IXGy0
559名無しさん@お腹いっぱい。:2013/02/17(日) 17:43:44.05 ID:sdo+k12J0
>>557
COM呼び出しじゃ駄目なのかい?

list = CreateOleObj("System.Collections.ArrayList")
list.Add("ddd")
list.Add("zzz")
list.Add("aaa")
list.Sort()
list.Insert(1, "@@@")
print list.Count
for i=0 to list.Count-1
 print i + ": " + list.Item(i)
next
print "IndexOf: " + list.IndexOf("ddd", 0)
MsgBox("")
560名無しさん@お腹いっぱい。:2013/02/17(日) 20:02:03.93 ID:5bHGYbUl0
なんだよ、ただリストが使いたいだけの話?
あまりに低レベル。
すまんかった。
561名無しさん@お腹いっぱい。:2013/02/17(日) 20:18:56.49 ID:dXFUKg300
低レベル過ぎる煽り
562名無しさん@お腹いっぱい。:2013/02/17(日) 21:31:43.16 ID:5bHGYbUl0
さすが高性能()
563名無しさん@お腹いっぱい。:2013/02/17(日) 22:07:48.96 ID:OuoX4QXk0
高レベルすぎて話が見えないオレがいる
564名無しさん@お腹いっぱい。:2013/02/17(日) 22:45:03.82 ID:M0Y/IXGy0
>>559
想像以上に簡単に使えるんですね。

現状、ChkImgで複数画像を検索すると、座標がALL_IMG_X[]とALL_IMG_Y[]に入りますが、
複数種類の複数画像を、list.location.kindとlist.location.Xとlist.location.Yに入れ、
原点からの距離list.distanceを設定してソートする、なんてことができるといいなぁと考えてます。
配列でやっていたことがありますが、一つ前のバージョンのバグでひどい目にあって使いたくないのです。
565名無しさん@お腹いっぱい。:2013/02/17(日) 23:41:07.66 ID:5bHGYbUl0
バグってどんな?
566名無しさん@お腹いっぱい。:2013/02/18(月) 11:36:32.44 ID:iTRhX4jH0
UWSCのスケジュール機能はUWSC.exeを起動していないとスケジュール起動しないのでしょうか?
試しにスケジュール機能を設定してやってみましたが、UWSC.exeを先に起動しておかないと始まりませんでした
567名無しさん@お腹いっぱい。:2013/02/18(月) 11:48:17.29 ID:kEEWUjgm0
>>566
フリー版の為に「.uws」のファイルを関連づけができて無いとか・・・?

Pro版なら多分インストール時に関連づけが行われるので常駐させる必要ないし
EXE形式にする事もできるから、多分起こりえないと思う
568名無しさん@お腹いっぱい。:2013/02/18(月) 11:53:39.66 ID:iTRhX4jH0
>>567
UWSCを起動してない状態で、スケジュール起動させたい.uwsファイルをダブルクリックしてみましたが、ちゃんと実行されました
関連付けはされてると思うんですが
皆さんは問題無くUWSC.exe先行起動無しでスケジュール起動できてるんでしょうか?
569名無しさん@お腹いっぱい。:2013/02/18(月) 12:04:15.86 ID:kEEWUjgm0
>>568
なるほど、関連づけはできてるみたいですね
じゃあ例えば、UWSCを起動する引数としてそのファイルを渡すようにしてみたら?
570名無しさん@お腹いっぱい。:2013/02/18(月) 12:10:18.08 ID:eGsXevei0
>>568
自分もできないよ
時間関係の処理は中で記述してスタートアップに入れてやってるから
普段使ってないスケジュールは詳しく知らないけど
571名無しさん@お腹いっぱい。:2013/02/18(月) 12:20:13.15 ID:iTRhX4jH0
>>569
起動する引数とは具体的に同やることなのでしょうか?
572名無しさん@お腹いっぱい。:2013/02/18(月) 12:30:15.95 ID:iTRhX4jH0
>>570
PCを起動したらUWSCも起動するように設定してるって事ですね
私もそうしてみます

とりあえずUWSC.exeを起動させていればスケジュール起動するようなので
573名無しさん@お腹いっぱい。:2013/02/18(月) 12:34:31.59 ID:kEEWUjgm0
>>571
タスクスケジューラにどうやって設定してるか解らないけど
起動するファイルを「UWSC本体」、起動する引数の箇所を「動かしたいマクロファイル名」
とすればどうでしょう?

スタートアップであれば、それ用のバッチファイルを書いてやるとか
例えばコマンドラインから
"C:\Program Files (x86)\UWSC\UWSC.exe" "動かしたいマクロファイル"
としても起動されるので
574名無しさん@お腹いっぱい。:2013/02/18(月) 12:47:31.25 ID:iTRhX4jH0
>>573
アドバイス色々ありがとうございました
皆様のご意見を参考に何とか解決できそうです。
ご迷惑おかけしました
575名無しさん@お腹いっぱい。:2013/02/18(月) 17:55:53.02 ID:i7uFTMl20
タスクスケジューラーじゃなくてUWSCのスケジュール機能でしょ?
そっちはさすがにUWSC起動してないと動かないと思うが
576名無しさん@お腹いっぱい。:2013/02/19(火) 22:12:21.04 ID:yATMOBM80
uwscで作業させてるときに作業させたままディスプレイをオフさせる方法ないですか?
577名無しさん@お腹いっぱい。:2013/02/19(火) 22:20:26.11 ID:hqreyzTr0
>>576
それくらいはヘルプ見てみるといいぜ
578名無しさん@お腹いっぱい。:2013/02/19(火) 22:26:56.66 ID:yATMOBM80
>>577
ヘルプ見たけどのって無くない?
579名無しさん@お腹いっぱい。:2013/02/19(火) 22:41:45.75 ID:tOnZ59gp0
>>576
ディスプレイをオフにするソフトを起動すればいいのじゃないか?
580名無しさん@お腹いっぱい。:2013/02/19(火) 22:44:53.41 ID:yATMOBM80
>>579
でもuwscでマウスとキーボード使われるから画面つくくない?
581名無しさん@お腹いっぱい。:2013/02/19(火) 22:52:59.23 ID:4jfk8YFp0
ディスプレイのケーブルでも引っこ抜いとけ
ノートPC?そんなの知らん
582名無しさん@お腹いっぱい。:2013/02/19(火) 23:18:01.76 ID:hqreyzTr0
poffでできるだろ
583名無しさん@お腹いっぱい。:2013/02/19(火) 23:23:13.17 ID:tOnZ59gp0
>>580
それはソフト次第だろ
UWSC側もMORG_DIRECT使ったりで回避できないのかな
584名無しさん@お腹いっぱい。:2013/02/19(火) 23:34:31.45 ID:EIPXR+S40
ディスプレイついてないと動かないのかと思った
585名無しさん@お腹いっぱい。:2013/02/20(水) 15:54:10.54 ID:FZTDp2Gl0
UWSC起動させるとCtrl-Wとか押すと変になるんだけどこれ切れないの?
emacs使ってるから困るんよね。
586名無しさん@お腹いっぱい。:2013/02/20(水) 15:58:21.62 ID:r1bWBA4b0
ホットキーがかぶっているんでしょ?
設定に無いと思う??
587名無しさん@お腹いっぱい。:2013/02/20(水) 17:14:26.38 ID:5SQInTKz0
ランチメニューの設定のところの下部に設定開けるところあるからそこを変更だな
588名無しさん@お腹いっぱい。:2013/02/20(水) 17:41:39.56 ID:mQMumw+n0
emacsなんてやめちゃえ
ブラウザで長文書いてるとき癖が出て何度もひどい目に遭った
589名無しさん@お腹いっぱい。:2013/02/21(木) 01:28:56.59 ID:2B3jHULp0
>>587
おぉ、サンクス。「設定」にないんで決め打ちなのかと思ってたわ。
>>588
emacsで書いてコピペしかしないんで関係ない。
590名無しさん@お腹いっぱい。:2013/02/21(木) 12:56:13.22 ID:zR3V/8Aa0
Ctrl-Wってブラウザのカレントタブを閉じるショートカットキーじゃんw
591名無しさん@お腹いっぱい。:2013/02/21(木) 13:23:36.56 ID:KLUn4P0kT
変更じゃなくて無効にできない?
ランチメニューのホットキーなんて使わないんだよなぁ
592名無しさん@お腹いっぱい。:2013/02/22(金) 09:48:22.25 ID:MjxovSxo0
何らかのキーコードの入力があった場合
(どれでも)
と言うことがしたいのですが
一つ一つ vk_〜〜 と登録していく以外に方法は無いでしょうか?
593名無しさん@お腹いっぱい。:2013/02/22(金) 14:30:29.26 ID:bMwzb/AP0
AからZとか数字はFOR文で一応回せる
が基本全部登録が必要

def_dll GetAsyncKeyState(Long):int:user32.dll
while true
sleep(0.1)
for i = vk_a to vk_z
if GetAsyncKeyState(i)<>0 then fukidasi(i)
next
for i = 0 to 9
if GetAsyncKeyState(i)<>0 then fukidasi(i)
next
//後は個別にSHIFTやら他のキー判定を記述
wend
594名無しさん@お腹いっぱい。:2013/02/22(金) 14:31:56.53 ID:bMwzb/AP0
数字の部分は間違ってたわ
595名無しさん@お腹いっぱい。:2013/02/22(金) 14:45:11.40 ID:4O1Id58M0
ありがとうございます
こんなことができるとは・・・
596名無しさん@お腹いっぱい。:2013/02/22(金) 14:50:13.29 ID:qu73Wb4e0
>>593
GETKEYSTATEを使わないのは何故
597名無しさん@お腹いっぱい。:2013/02/22(金) 20:05:06.66 ID:bMwzb/AP0
getkeystateだとCPUが専有された時にキー判定が正常に行われない時があるから全キー判定とか無茶させるならGetAsyncKeyStateのほうが良いんじゃないかと
別にgetkeystateでも動くことは動くけどね
598名無しさん@お腹いっぱい。:2013/02/22(金) 20:31:18.96 ID:KVsk64D60
uwscは他のツールを使わず(コマンドプロンプトぐらいのものはあり)
チューリング完全ですか?
599名無しさん@お腹いっぱい。:2013/02/22(金) 21:03:29.56 ID:lPeAZNqv0
今時チューリング不完全なもの探す方が難しいと思うが。
600名無しさん@お腹いっぱい。:2013/02/22(金) 21:28:41.99 ID:KVsk64D60
ありがとうございます
あんなものでもチューリング完全なんですね、よくわかってないけど
601名無しさん@お腹いっぱい。:2013/02/22(金) 22:31:00.29 ID:JN28TGwR0
全部のキー監視するのはいいな、アイディアいただくわ
でもなぁ、
ここ数秒以内に
パソコン触ってるかどうか確認する方法ないんすかね?
602名無しさん@お腹いっぱい。:2013/02/22(金) 22:39:47.32 ID:Ge6C2jfz0
>>601
触ってない間ループさせて
その前後の時間の差を求めて判断すればいいのでは?
603名無しさん@お腹いっぱい。:2013/02/22(金) 22:48:25.95 ID:OS4ffgfD0
>>601
調べてみたけどスクリーンセーバーみたいに検知するには
何かフックしてDLLしてキーロガーらしいっすよ…
604名無しさん@お腹いっぱい。:2013/02/22(金) 23:36:40.63 ID:HO2vR3ZV0
オンラインかオフラインかスマートに確認する方法無いですか?
スカイプよんで画像認識とかはもうこりごりです・・・
605名無しさん@お腹いっぱい。:2013/02/22(金) 23:38:52.32 ID:Ge6C2jfz0
ピングが通る外部サイト宛に飛ばしてみた結果を見るとか
606名無しさん@お腹いっぱい。:2013/02/22(金) 23:43:57.77 ID:bMwzb/AP0
全キー監視ちょい調べてみたら過去にも話題になってたみたいだな
http://archive.2ch-ranking.net/software/1260304053.html
の29から40くらいまで
607名無しさん@お腹いっぱい。:2013/02/23(土) 12:23:03.04 ID:9Tt/09pW0
二つ同じuwscが
起動しないようにするにはどうしたらいいですか?
608名無しさん@お腹いっぱい。:2013/02/23(土) 13:51:44.50 ID:uV+cCLf/0
NotMultiplex = -1
609名無しさん@お腹いっぱい。:2013/02/23(土) 14:09:39.93 ID:XNylp7zO0
>>607
実行中ずっと自分自身のuwsファイルを排他制御モードで開いておく
開始時に開けなかったら他が使用中と判断して即終了させる
ヘルプのFOPEN関数を参照
610名無しさん@お腹いっぱい。:2013/02/23(土) 14:19:01.03 ID:tAP7EuYS0
>>608>>609
ありがとうございます
その他の項目、こんなのが合ったんですね
何年もヘルプ使い続けてるのに見逃してました
ありがとうです
611名無しさん@お腹いっぱい。:2013/02/23(土) 14:21:35.02 ID:tAP7EuYS0
あ、これは全部を二重禁止しちゃうのか
400にできるとは・・・
足りない足りないとずっと困っててあきらめてたらこんなものが思わぬところで助かりました

FOPENキッチリ覚えてみます
612名無しさん@お腹いっぱい。:2013/02/24(日) 13:11:10.65 ID:Kn0OdNxn0
スリープモードからの復帰を認識するのって
なんかありますかね?
613名無しさん@お腹いっぱい。:2013/02/24(日) 14:00:04.45 ID:fMy1AT9R0
スリープの解除にパスワードを設定してパスワードの入力画面が出たらとかじゃダメなの?
614名無しさん@お腹いっぱい。:2013/02/24(日) 16:18:10.54 ID:8MO4z5Sj0
「After Suspend」「スタンバイ・ミー」も試してみたけど、自分はこれ使ってる
Restarterの詳細情報 : Vector
ttp://www.vector.co.jp/soft/winnt/util/se311201.html

直にUWSCで出来ればいいのにね、出来るのかな?
615名無しさん@お腹いっぱい。:2013/02/24(日) 16:52:20.99 ID:C8cYz7Xb0
UWSCで秒数をカウントして実際の経過時間と比較して閾値を超えたらその間CPUが止まっていたと見なせるんじゃない?
616名無しさん@お腹いっぱい。:2013/02/25(月) 15:30:05.25 ID:Naxf0GLC0
変数を文字列に変換できます?

aiueo = "aiueo"
で""内が変数で表したものにしたいのです
617名無しさん@お腹いっぱい。:2013/02/25(月) 15:53:51.02 ID:Naxf0GLC0
ああ、vartype使えばいいみたいだけど
procedure内の変数と文字列がからむと
うまく機能しないみたいです…
618名無しさん@お腹いっぱい。:2013/02/25(月) 16:41:10.64 ID:tq9hEZf90
>>616
その文章では何をしたいのかよくわからん
他人に伝わるようもっと丁寧に説明すべき
619名無しさん@お腹いっぱい。:2013/02/25(月) 17:25:10.22 ID:T3HaOVVY0
どうもすいません

procedure ok_osu( var title , var class_dayo , var button_name )
    title_mojiretu      = vartype( title       , var_bsrt )
    class_dayo_mojiretu = vartype( class_dayo   , var_bsrt )
    button_name_mojiretu = vartype( button_name , var_bsrt )
    id = getid( title_mojiretu , class_dayo_mojiretu )
    clkbtn( id , button_name_mojiretu ,clk_btn )
fend


こんなのを
callして
お手軽に"OK"やら"はい"を押したいのですが
機能してくれないのです
620名無しさん@お腹いっぱい。:2013/02/25(月) 17:29:45.71 ID:4tgfwX56T
うん意味分かんない
621名無しさん@お腹いっぱい。:2013/02/25(月) 17:42:53.00 ID:UDne134m0
>>619
とりあえず
×var_bsrt
○var_bstr
622名無しさん@お腹いっぱい。:2013/02/25(月) 17:47:01.39 ID:T3HaOVVY0
あ、ですね、申し訳ない
コピペは修正前のでしたが
修正してたんですがやっぱ動かなかったです…
623名無しさん@お腹いっぱい。:2013/02/25(月) 17:48:48.58 ID:tq9hEZf90
>>619
clkbtn じゃなくて ClkItem の間違いなんじゃないの?
それと、引数を参照で受け取る必要ないよね

procedure ok_osu( title, class_dayo, button_name )
  id = GetId( title, class_dayo )
  ClkItem( id, button_name, CLK_BTN)
fend
624名無しさん@お腹いっぱい。:2013/02/26(火) 08:28:35.20 ID:iEc7VCe30
Num lockしてるときの
右側のテンキーの
vk_ってあります?
見当たらない(><)
625名無しさん@お腹いっぱい。:2013/02/26(火) 11:53:46.73 ID:YoApVGTc0
>>624
numpad
626名無しさん@お腹いっぱい。:2013/02/26(火) 16:24:39.04 ID:oCIkjsJs0
>>625
あ、できました
どもども
627名無しさん@お腹いっぱい。:2013/02/27(水) 14:03:31.27 ID:jL3K/d3z0
CHKIMGの使い方について質問させてください
CHKIMG("○○○.bmp, -1,,,,, -1")
として仮に該当する画像が5つあった場合戻値はいくつになるのでしょうか
また左上から数えて1番目と2番目の座標情報は
ALL_IMG_X[], ALL_IMG_Y[]
で表すとどのようになるのでしょうか
ひたすらぐぐっても分からなかったのでご教授願います
628名無しさん@お腹いっぱい。:2013/02/27(水) 14:28:53.04 ID:EwKWtS0s0
 番号にて -1指定時はヒットした数を返し、座標情報は配列変数 ALL_IMG_X[], ALL_IMG_Y[] に格納(配列はゼロから)

ヘルプより
629名無しさん@お腹いっぱい。:2013/02/27(水) 14:39:10.93 ID:jL3K/d3z0
はいそれを何回も読んで組んだのですがエラーが出てしまいます
組んだマクロを書いてみます
やりたい事は指定画像が複数出てきた場合に左上の一番目からクリックして別ページに飛び処理Aを行い
次に左上から二番目の画像をクリックして同じ処理を行いそれを出てきた画像分繰り返すと言うものです
hits = CHKIMG("○○○.bmp", -1,,,,, -1)
for i = 0 to hits step1
BTN(LEFT, CLICK, ALL_IMG_X[i], ALL_IMG_Y[i])
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
処理A
NEXT

こう組んだのですがはじめの一回は上手く行くのですが二番目の処理になると

変数:ALL_IMG_X 配列をオーバーしてます
○○行目:BTN(LEFT, CLICK, ALL_IMG_X[I],ALL_IMG_Y[i])

と出てしまい処理をしてくれません
630名無しさん@お腹いっぱい。:2013/02/27(水) 15:06:02.89 ID:U4UiNDKp0
あんまり詳しくはないけど、こんなんだと普通にいけたっぽい

hits = CHKIMG("test.bmp", -1,,,,, -1)

msgbox("ヒット数" + hits)

for i = 0 to hits - 1

msgbox(ALL_IMG_X[i] + "<#CR>" + ALL_IMG_Y[i])
BTN(LEFT, CLICK, ALL_IMG_X[i], ALL_IMG_Y[i])
//  REPEAT
//   SLEEP(0.1)
//  UNTIL !IE.busy AND IE.readystate=4
// 処理A
next

EXIT

サーチ時のヒット数は1からだけど、変数格納が0からっぽいので
-1してやればいいって事なのかな多分
631名無しさん@お腹いっぱい。:2013/02/27(水) 16:20:30.12 ID:jL3K/d3z0
出来ました!!
解決策まで示していただきありがとうございます
>サーチ時のヒット数は1からだけど、変数格納が0からっぽいので
>-1してやればいいって事なのかな多分
正にこの通りでした
気付かなかった・・・
632名無しさん@お腹いっぱい。:2013/02/27(水) 22:23:30.43 ID:tq+0c08c0
>>631
あとヒット数0をチェックして配列に触らないようにしないと参照しようとした瞬間エラーで止まるよ
633名無しさん@お腹いっぱい。:2013/02/27(水) 23:32:17.85 ID:jL3K/d3z0
そうなんですよねw
出来たと言っておきながら実践導入したらエラー吐いてますw
今日は時間が無いので明日ちょっと弄んでダメだったらまた聞きにきます
634629:2013/02/28(木) 17:43:39.55 ID:KwvETkQU0
むっずい
635名無しさん@お腹いっぱい。:2013/02/28(木) 18:28:17.79 ID:Zghp426V0
ifb CHKIMG("test.bmp", -1)
 hits = CHKIMG("test.bmp", -1,,,,, -1)
 for i = 0 to hits - 1
  BTN(LEFT, CLICK, ALL_IMG_X[i], ALL_IMG_Y[i])
//  REPEAT
//   SLEEP(0.1)
//  UNTIL !IE.busy AND IE.readystate=4
// 処理A
 next
else
// hits=0の場合の処理
endif
636名無しさん@お腹いっぱい。:2013/02/28(木) 19:34:45.49 ID:TkVxTRn+0
質問させてください
キーボード入力を変更したいのですが、例えば「/」(テンキー)を入力したら
「DB」と入力後カーソルをDとBへ移動する(←を一度押す)等をしたいです
その条件を3つ程度入れたいと思ってます

UWSCでそう言う事は可能でしょうか。可能ならどのような条件文にすればいいでしょうか。
不可の場合はどの様なソフトなら可能でしょうか。
調べましたが、「/」をDに変えるようなソフトはあったのですが、
上記の様な事は出来ないようでしたので、UWSCでできるかと考えました。
637名無しさん@お腹いっぱい。:2013/02/28(木) 19:45:57.74 ID:KwvETkQU0
ありがとうございます!やっと本当に出来ましたw
問題は処理Aでもう一回別の
CHKIMG("??.bmp", -1)
を書いてしまい
ループさせた時に座標情報が上書きされているのが原因でした
なのでfor〜の一行下にもう一度
CHKIMG("○○.bmp", -1,,,,, -1)
を書いてやることで解決しました
ありがとうございました
まだまだ他のマクロも書きたいのでまた詰まったら相談させてください
638名無しさん@お腹いっぱい。:2013/02/28(木) 20:32:12.70 ID:ds7yKn8U0
>>636
SetHotKey(VK_ESCAPE, MOD_SHIFT, "End") // Shift + ESC で終了
SetHotKey(VK_DIVIDE, 0, "OnPush")
while true
 Sleep(1)
wend

procedure End()
 exitexit
fend

procedure OnPush()
 Kbd(VK_D)
 Kbd(VK_B)
 Kbd(VK_LEFT)
fend

一応出来るけど
テキスト編集に利用するつもりなら、マクロ機能のあるテキストエディタを使った方がいいよ
639名無しさん@お腹いっぱい。:2013/03/01(金) 00:32:39.14 ID:acNCQrw00
>>638
SetHotKeyでエラーが出たのでUWSC最新に変えたら問題なくできました
最近追加された関数なのかな?
640名無しさん@お腹いっぱい。:2013/03/01(金) 07:30:41.78 ID:9OjpO5iP0
まずは礼だろクズ
641名無しさん@お腹いっぱい。:2013/03/01(金) 19:25:28.79 ID:BjHwbRDZ0
更新履歴には2011/06/05のバージョンで追加になってる
642名無しさん@お腹いっぱい。:2013/03/01(金) 19:26:08.84 ID:acNCQrw00
>>638
ありがとうございます。

>>640
おっしゃるとおり。失礼しました
643名無しさん@お腹いっぱい。:2013/03/01(金) 21:50:05.18 ID:aKNIuftD0
>>638
あれ?俺もこんな関数あったの今気づいた。
>>593をこれでやったらループ回しっぱなしにせずイベントドリブンで書けるってことか。
644名無しさん@お腹いっぱい。:2013/03/02(土) 01:17:15.68 ID:fJtd2G5Y0
>>637 今更だがIFB hits >= 1みたいな条件付けるだけでもいいんだぜ
大規模規制の巻き添え食らって書き込みするのも大変だぜ
645名無しさん@お腹いっぱい。:2013/03/02(土) 01:30:23.62 ID:uiJlB9ca0
ifbとifって区別する必要あるの?
646名無しさん@お腹いっぱい。:2013/03/02(土) 01:38:32.59 ID:xQKih/MM0
ぱっと見で区別しやすいのと説明で使う場合わかりやすい
上の例だとIFBだとENDIFで挟む必要があるからその1行だけではなく間にBTN関数の行入れてきちんとはさみなさいってことでもあるし
IF hits >= 1 みたいな条件でだとその1行で解決みたいに見えちゃうだろ
647名無しさん@お腹いっぱい。:2013/03/03(日) 14:01:26.70 ID:rU/NmGoa0
テスト
648名無しさん@お腹いっぱい。:2013/03/03(日) 17:38:02.10 ID:rSlQvC480
ifでもブロック形式でかけるんでしょ?
多分昔は1行でしか使えないとかだったのかも知らんけど。
ifbって使ったことないけどいいんだよね?
649名無しさん@お腹いっぱい。:2013/03/03(日) 22:08:19.81 ID:ZvbQYUqe0
画像認識で最初は普通に認識してくれるのですが
ブラウザを付け直すと画像が普通にあるのに認識してくれません
背景色もそれ自体の色も形も変わっていません
なぜでしょうか
650名無しさん@お腹いっぱい。:2013/03/03(日) 22:30:13.39 ID:WsLPRlRy0
ひどい質問だけど、エスパーするとウィンドウIDが変わってるから
651名無しさん@お腹いっぱい。:2013/03/03(日) 22:31:08.43 ID:PtwGqtEuP
while-wend条件をfalseにすると
repeat-untilと同じに

repeat-untilは条件をtrueにするとwhile-wendと同じになるよな
652名無しさん@お腹いっぱい。:2013/03/03(日) 23:09:37.27 ID:nrJmCjlyT
同じにはならない
653名無しさん@お腹いっぱい。:2013/03/04(月) 00:30:23.71 ID:bMD9pOGOP
なったよ。

chkimgと組み合わせで

while chkimg("hoge.bmp")=false
処理
wend

でhoge.bpmが表示されてない間に「処理」しろで

repeat
処理
until chkimg("hoge.bmp")=true

でhoge.bmpが表示されるまで「処理」しろ
---
repeat
処理
until chkimg("hoge.bmp")=false

でhoge.bmpが表示されなくなるまで「処理」しろで

while chkimg("hoge.bmp")=true
処理
wend

がhoge.bmpが表示されてる間「処理」しろ

だろ?
同じじゃん
repeat-untilが最低でも1回は処理するとか揚げ足取りは無しな
654名無しさん@お腹いっぱい。:2013/03/04(月) 01:05:13.86 ID:zGcjXNuQ0
揚げ足取りでもなんでもなくそこが最大の違いだろ
そりゃ同じになることもあるがな
655名無しさん@お腹いっぱい。:2013/03/04(月) 01:21:08.78 ID:OFhjaWUI0
repeat
処理
until chkimg("hoge.bmp")

処理の所で処理1と処理2を順にやりたいんだけど、なんかスッキリ書く方法ってないかな?
下の様にしてみたけど、なんかスッキリしない

repeat
ifb A=1
処理1
A=2
else
処理2
A=1
endif
until chkimg("hoge.bmp")
656名無しさん@お腹いっぱい。:2013/03/04(月) 01:35:20.58 ID:B7345X2V0
while true
 処理1
 if chkimg("hoge.bmp") then break
 処理2
 if chkimg("hoge.bmp") then break
wend
657名無しさん@お腹いっぱい。:2013/03/04(月) 01:37:21.82 ID:Z1jGiP6z0
>>850
つまり画像認識のスクリプトにもGETIDというようなものが必要になるということでしょうか?
658名無しさん@お腹いっぱい。:2013/03/04(月) 01:42:33.94 ID:cOYguOKl0
>>647 MOUSEORG使ってるんじゃないの?ってことじゃないの?
使っていて意味がわからないって言うことならHELP見てね
659名無しさん@お腹いっぱい。:2013/03/04(月) 11:27:46.33 ID:bMD9pOGOP
Aという100行位の処理中に、ポップアップが発生したら自動でOKか続行を押したいんだけどこれでいける?

errorID = getid("","#32770",-1)

repeat
 100行の処理
 break
until(errorID <> -1)
Clkitem(id, "OK")
Clkitem(id, "続行")

もしくは

while(errorID = -1)
 100行の処理
 break
wend
Clkitem(id, "OK")
Clkitem(id, "続行")
660名無しさん@お腹いっぱい。:2013/03/04(月) 11:30:42.35 ID:bMD9pOGOP
いやbreakじゃなくてexitだな。

getidの引数に-1をつけると、無期限待ちになるってこういう解釈でいいのかなって。
661名無しさん@お腹いっぱい。:2013/03/04(月) 12:01:41.30 ID:bMD9pOGOP
ブラッシュアップさせた

Thread Popupkill()
以降は普通に本処理記述

errorid=1//【本処理最終行に記述】#32770の監視終了条件
//【最下行に定義】#327701でポップアップが出たらOKが続行を押す(アプリケーションの例外ハンドル等想定)
Procedure Popupkill()
errorID = getid("","#32770",-1)//-1で無期限待ち
repeat
until(errorID <> -1)
clkitem(id,"OK")
clkitem(id,"続行")
Fend
662名無しさん@お腹いっぱい。:2013/03/04(月) 17:22:12.77 ID:iW6CHGKb0
IEをバックグラウンドで動かしたいんだがどうにも動かない。
教えてエロい人

 サンプルを参考に書いたスクリプト
  id = GETID("InternetExplorer.Application")
  MOUSEORG(GETCTLHND(id,"Internet Explorer_Server"), 2)
  BTN(left,click,1000,600,100)
  KBD(VK_A); KBD(VK_B); KBD(VK_C)

 オブジェクト判定に使ったスクリプト
  While True
// ESCを押したときに終了する
If GetKeyState(VK_ESC)Then ExitExit
sObject = Status(GetID(GET_FROMPOINT_OBJ), ST_CLASS)
Fukidasi(sObject)

//Shiftを押したときにクリップボードにコピーする
If GetKeyState(VK_SHIFT)Then SendStr(0, sObject)

Sleep(0.1)
  WEnd

 サンプルの通りメモ帳動かしたら動作した
 IEで起動で積んだ
 過去ログ探して他の方法もチャレンジ
 ID読み込みできてないんじゃないかとHndtoIDつかって移動したりした
 やっぱり積んだ ←今ここ

 1週間さまよってもまだできないんだ
 お願い助けて
663名無しさん@お腹いっぱい。:2013/03/04(月) 17:29:21.46 ID:h0frnzwp0
GetObject
664名無しさん@お腹いっぱい。:2013/03/04(月) 18:22:56.03 ID:lUzVVrym0
>>653
あー他に言語やったことない証拠ですねぇ…
do〜whileとかCで使ったりもするし、揚げ足取りとかwwwwwwwバカ過ぎてヤバイ
665名無しさん@お腹いっぱい。:2013/03/04(月) 19:27:10.01 ID:7sbcOhyh0
俺はループにFOR以外は使わない。
ループに必ず上限を設定し無限ループを予防するため。
ループの終了が正常なのか異常なのか判定するのがちょっと面倒臭いけどね。
666名無しさん@お腹いっぱい。:2013/03/04(月) 19:31:10.29 ID:7sbcOhyh0
>>661
errorIDはgetidを実行した時点でのIDだからそれだと
何万回ループしようと消せるポップアップは1つだけだな
667名無しさん@お腹いっぱい。:2013/03/04(月) 19:32:18.54 ID:7sbcOhyh0
というか消した跡もerrorIDが-1に更新されず無限ループ
Thread Popupkill() を実行する度にそういったゾンビスレッドが増殖する
668名無しさん@お腹いっぱい。:2013/03/04(月) 20:09:57.54 ID:B7345X2V0
clkitemのidは閉じたいポップアップのIDじゃないだろうから、閉じるの失敗したままスレッド終了
ポップアップ出なかったら、出るまでgetidから帰ることなくゾンビスレッド化
erroridはgetidの戻り値で上書きされるので、errorid=1しても無意味
669名無しさん@お腹いっぱい。:2013/03/05(火) 02:15:14.38 ID:fJoLmDkeP
これってexe化したあとuwsには戻せないんですか?
670名無しさん@お腹いっぱい。:2013/03/05(火) 05:11:49.01 ID:7DO2EZYc0
基本的には無理やね
671名無しさん@お腹いっぱい。:2013/03/05(火) 06:09:21.55 ID:d3LsH2mK0
exe化するときにuwsファイルが消えるわけでもないし取っておけばいいだけじゃないか
672名無しさん@お腹いっぱい。:2013/03/05(火) 08:02:07.48 ID:n9zlyPex0
初心者なんですが質問してもいいですか

ある変数の値を読み取って、その数値をキーボードで入力する式を作りたいのですが
どういう式を書いたらいいでしょうか

例えば変数nが321の時、キーボードを3、2、1と叩くようにする感じです
673名無しさん@お腹いっぱい。:2013/03/05(火) 08:19:08.77 ID:k+hddbPn0
文字や数字を仮想キーへと変換する自作関数を作っておく
文字数を調べる
文字数分文字を1つずつ分解して別の変数に入れる(配列にしておくと後で楽)
作った自作関数を使い分解した文字を仮想キーへと変換
文字数分KBDさせる

配列にしておけば何行も書かなくてもFOR文でまとめて数行の処理可能
674名無しさん@お腹いっぱい。:2013/03/05(火) 08:44:33.35 ID:d3LsH2mK0

PUBLIC 文字 = 321
PUBLIC MOJI = ""

文字数 = LENGTH( 文字)
IFB 文字数 >= 1
FOR i = 1 to 文字数
MOJI = COPY( 文字, i,1)
キーダウン
NEXT
ENDIF
//自作関数
PROCEDURE キーダウン
FOR n = 0 to 9
IF MOJI = n THEN KBD(EVAL("VK_"+n),0,100)
NEXT
FEND
675名無しさん@お腹いっぱい。:2013/03/05(火) 09:37:51.88 ID:n9zlyPex0
>>673-674
ありがとうございます
不勉強な為分からない箇所がありますがいろいろ試してみたいと思います
676名無しさん@お腹いっぱい。:2013/03/05(火) 10:51:08.93 ID:n9zlyPex0
無事完成させることが出来ました
ありがとうございました
これからも精進して参ります
677名無しさん@お腹いっぱい。:2013/03/05(火) 12:37:58.86 ID:fJoLmDkeP
>>676
初心者のくせに仕事はやいな!おれも見習おう
678名無しさん@お腹いっぱい。:2013/03/05(火) 21:02:02.07 ID:t3hhmXN5P
>>664
たりめーだks
オマエは他に言語やった事ないやつがここに来る想定さえもできてないのか?
むしろそっちの方が見てて多いだろ。
優越感に浸ってて楽しいね。ボクwww
679名無しさん@お腹いっぱい。:2013/03/05(火) 21:12:46.52 ID:imzuEQqQ0
知ったかぶるから恥かくんだよ
680名無しさん@お腹いっぱい。:2013/03/05(火) 22:27:37.03 ID:t3hhmXN5P
知ったかぶってるように受け取ってるお前ら糞なプライド高すぎwwww
681名無しさん@お腹いっぱい。:2013/03/06(水) 00:07:07.02 ID:/JqYVqJl0
教えてもらう態度じゃないな。
下がって良いぞ。
682名無しさん@お腹いっぱい。:2013/03/06(水) 00:18:50.56 ID:CiQqJDoe0
痛すぎるwww
これ、素なんかな?
683名無しさん@お腹いっぱい。:2013/03/06(水) 01:45:48.27 ID:GmRp3qFwP
ここでしか威張れない連中なんだ
ほっといてやれww
684名無しさん@お腹いっぱい。:2013/03/06(水) 03:31:32.77 ID:FUtBJo230
雑魚ほどキャンキャンと吼えるという実証
685名無しさん@お腹いっぱい。:2013/03/06(水) 17:02:02.62 ID:aWGfEv8a0
firefoxでは
id = GETID("Mozilla Firefox", "MozillaWindowClass")
SENDSTR(id, "http://google.com" , 1, True, True)
SCKEY(id, VK_RETURN)
でURLに入力してくれるのですが
Chromeでは
id = GETID("Google Chrome","Chrome_WidgetWin_1")
SENDSTR(id,"http://google.com",1,True,True)
SCKEY(id,VK_RETURN)
としてもURLに入力してくれません
ChromeではURLのとこをクリックしてからじゃないと無理なのでしょうか?
686名無しさん@お腹いっぱい。:2013/03/06(水) 17:04:51.92 ID:aWGfEv8a0
>>685
事故解決しましたすみません;;
687ゴルゴ:2013/03/07(木) 01:42:47.61 ID:Pc6emUy+I
uwscを起動するとchange of exe name is prohibitionとでてしまいます。
解決策はないでしょうか…
688名無しさん@お腹いっぱい。:2013/03/07(木) 01:53:40.45 ID:l916SPKg0
名前を変えない
689名無しさん@お腹いっぱい。:2013/03/07(木) 12:52:42.83 ID:6LbSjCYh0
前スレかどこかでその質問で自爆してた奴がいたな…
690名無しさん@お腹いっぱい。:2013/03/09(土) 05:53:46.98 ID:uhKracHj0
あるマクロを再生しているなかで、1時間毎にwindows自体を再起動って、どうしたらいいですか?
再起動したらマクロも当然終了しちゃうので、1回で終わってしまいます。
691名無しさん@お腹いっぱい。:2013/03/09(土) 06:09:23.02 ID:mjUStLr/0
再起動
POFF(P_REBOOT)
マクロはスタートアップにでも登録しておけばいいでしょ
692名無しさん@お腹いっぱい。:2013/03/09(土) 09:05:56.50 ID:F+1kvNQt0
サンプル
www1.axfc.net/uploader/so/2822641
693名無しさん@お腹いっぱい。:2013/03/09(土) 09:28:25.02 ID:hwXt/uBN0
>>692
このくらいの量なら直接投稿しちゃえyp
適当に圧縮して無断で投下
あと変数名が判りやすいから要らないコメントは勝手に消しといたw
694名無しさん@お腹いっぱい。:2013/03/09(土) 09:31:06.90 ID:hwXt/uBN0
//サンプルスクリプト「一時間後に再起動」
//前提条件:UWSファイルがUWSCと関連付けされていてShortcutの実行でスクリプトが動くこと
//     UWSファイルへのShortcutがこのスクリプトと同じフォルダに入っていること
UWSファイルへのShortcut="\UWSファイルへのShortcut.lnk"
objNetWork=CreateOleObj("WScript.Network"); User名=objNetWork.UserName
カレントディレクトリ=GET_CUR_DIR
StartupFolder1=""; StartupFolder2=""
再起動時刻=GETTIME(1/24)
OS=KINDOFOS(FALSE)//32bitか64bitの識別はしない
SELECT OS
CASE 13 //WINDOWS XPの時
  StartupFolder1="C:\Documents and Settings\"
  StartupFolder2="\スタート メニュー\プログラム\Startup"
CASE 22 //WINDOWS 7の時
  StartupFolder1="C:\Users\"
  StartupFolder2="\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
DEFAULT //OSが識別不明の時は終了
  msgbox("OS識別不能のため終了するよ"); EXITEXIT
SELEND
//StartupにShortcutがあるかどうかのチェック
IFB FOPEN(StartupFolder1 + User名 + StartupFolder2 + UWSファイルへのShortcut, F_EXISTS) //"Startupにファイルが存在するかどうかのチェック
  //ファイルが存在する場合の処理
ELSE
  //Startupファイルが存在しない場合はShortcutファイルをコピー
  DOSCMD("copy /y <#DBL>"+ カレントディレクトリ + UWSファイルへのShortcut + "<#DBL> <#DBL>" + StartupFolder1 + User名 + StartupFolder2 + "<#DBL>")
ENDIF

WHILE ! GETKEYSTATE(VK_ESC) //ESCが押されるまでループ
  現在時刻=GETTIME()
  IF 再起動時刻 <= 現在時刻 THEN POFF(P_REBOOT)  //最初の時間の取得から1時間経過したらPC再起動
  FUKIDASI(再起動時刻 - 現在時刻 + "秒後に再起動"+"<#CR>"+"終了させる時はESCキーを押してね"); SLEEP(1)
WEND
695名無しさん@お腹いっぱい。:2013/03/09(土) 09:34:40.91 ID:hwXt/uBN0
ミス
×  StartupFolder2="\スタート メニュー\プログラム\Startup"
○  StartupFolder2="\スタート メニュー\プログラム\スタートアップ"
696名無しさん@お腹いっぱい。:2013/03/09(土) 09:38:25.45 ID:hwXt/uBN0
いーなー
スタートアップフォルダ名の取得関数を独立させて
再起動待ち関数をスレッドで動かしたいな
ショートカットの作成はWSHで出来るけど面倒くさいからこのほうがいいか…
697692:2013/03/09(土) 09:48:05.64 ID:mjUStLr/0
規制中で海外鯖通してるのでID変わっていても気にしないでくれ
ショートカットのリンクは
www.vector.co.jp/soft/dl/win95/util/se158605.html
この辺りのツールと組み合わせて自動でショートカットを作らせると環境に左右されないで動くものが出来る(忍法帳の関係でリンク貼れないのでアドレスの先頭は消してある)
使い方はツールのREADME見てサンプルを元にDOSCMDで動かせばOK
後再起動の予定時間変更してPC再起動を短時間で繰り返すような悪質なスクリプトは作っちゃダメだぞ、絶対だぞ
698名無しさん@お腹いっぱい。:2013/03/09(土) 10:50:23.25 ID:mjUStLr/0
1時間毎に再起動マクロサンプル2
www1.axfc.net/uploader/so/2822700
ショートカット作成コマンドツールを利用しショートカットを作成するスクリプト
DOSCMDではなくbatファイルをEXECで実行だったね
699名無しさん@お腹いっぱい。:2013/03/09(土) 21:08:54.45 ID:tD6zzqje0
ログイン画面が出ないように設定しなきゃならないのかな?
700名無しさん@お腹いっぱい。:2013/03/09(土) 21:27:08.36 ID:hwXt/uBN0
>>697-698
いいですね〜私も使わせて頂きますわ〜
スタートアップフォルダ取得を関数化してみたよ

PRINT getStartupFolderPass()

FUNCTION getStartupFolderPass()
  
  // ユーザープロファイルの場所
  // Windows 2000/XP/2003 C:Documents and Settings<ログイン名>
  // Windows Vista/7/2008 C:User<ログイン名>

  // スタート メニュー (ユーザ)
  // XP   C:\Documents and Settings\ユーザ名\スタート メニュー\プログラム
  // Vista  C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
  
  // UWSCは 95/98/MEは動作せず、NT/2000は未サポートで正常動作しない場合多いため、対象外とする。
  
  objWshShell = CreateOleObj("WScript.Shell")
  strUserProfilePass = objWshShell.ExpandEnvironmentStrings("%USERPROFILE%")

  numKindOfOS = KINDOFOS(FALSE) //FALSE:OS種別番号を返す
  SELECT numKindOfOS
    CASE 20, 21, 22 // Windows Vista/2008Server/7
      RESULT = strUserProfilePass + "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
    CASE 12, 13, 14 // Windows 2000/XP/2003Server
      RESULT = strUserProfilePass + "\スタート メニュー\プログラム\スタートアップ"
    DEFAULT
      RESULT = EMPTY
  SELEND
  
FEND
701名無しさん@お腹いっぱい。:2013/03/09(土) 21:29:56.20 ID:hwXt/uBN0
>>699
そこはPGでやるより窓の手でやったほうが楽かな〜
XPではログオンパスワードは無しにすると自動ログイン出来なかったから注意
702名無しさん@お腹いっぱい。:2013/03/09(土) 21:39:14.01 ID:wxz3Ljpc0
>>699 あくまで1時間毎の再起動と再起動後に同じマクロファイルを実行という動作のサンプルスクリプトだからログイン画面が出るならその処理を自動で行う動作を入れないとダメ
自動でログインさせるならセキュリティーなんてないようなものだからスクリプト作るよりも初めから出ないようにしたほうが楽だとは思うけど
703名無しさん@お腹いっぱい。:2013/03/09(土) 21:51:41.32 ID:hwXt/uBN0
>>698
CSC.exeが流石に古くて、?startup?の機能がWindows7で失敗するので、パスを埋め込まにゃいかんから、やっぱりDOSCMDでやることになるかな〜
空白を含むパスだったり色々あって、

set DIR=%~dp0
"%DIR%csc.exe" "%DIR%1時間毎に再起動.uws" "C:\Users\(ユーザーID)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\UWSファイルへのショートカット.lnk"

で、やっとこさ作成できた。" は <#DBL>に置き換えて文字列作成かな。

ただ、UWSの関連付け、サクラエディタで編集するようにしてんだよね〜
ショートカットの中身にUWSCへのコマンドラインオプション含めて作成出来ればいいんだけど。
Readme102の最後に /arg オプションがあったからコレで行けるかな
704名無しさん@お腹いっぱい。:2013/03/09(土) 22:30:35.37 ID:5ExM262h0
>>703
oWshShell = CreateOleObj("WScript.Shell")
startupFolderPath = oWshShell.SpecialFolders("Startup")
スクリプトのPATH = "D:\hoge\1時間毎に再起動.uws"
ショートカットファイル名 = "UWSC - 1時間毎に再起動"
oShortcut = oWshShell.CreateShortcut(startupFolderPath + "\" + ショートカットファイル名 + ".lnk")
oShortcut.TargetPath = GET_UWSC_DIR + "\UWSC.EXE"
oShortcut.Arguments = "<#DBL>" + スクリプトのPATH+ "<#DBL>"
oShortcut.WorkingDirectory = GET_UWSC_DIR
oShortcut.Save()
705名無しさん@お腹いっぱい。:2013/03/09(土) 23:33:38.15 ID:hwXt/uBN0
>>704
FAでたかw
WSHでそんなに短くw
thx.
706名無しさん@お腹いっぱい。:2013/03/10(日) 09:11:33.97 ID:QQlaXDXQ0
WSHにしろAPIにしろ知らない奴がこうしたいと思ってぐぐってもキーワード違いで拾ってこれないレベルだよなこれ…
IsWindowって何だよ便利すぎだろw

346 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2013/03/10(日) 01:48:45.09 ID:dfoFNmwc0
>>319
そういう時こそUWSC

60秒毎に上書き保存の一例
-----------この下から
DEF_DLL IsWindow(HWND): BOOL: user32.DLL

idAT = GetID(" - 暗号メモ帳", "Afx", -1)
hAT = IdToHnd(idAT)

While IsWindow(hAT)
Sleep(60) // ここで周期指定(単位:[秒])
ClkItem(idAT, "ファイル\上書き保存")
Wend

ExitExit
-----------この上までを「CyclicSave.uws」等の名前で保存、以下はUWSCの使い方をどうぞ
707名無しさん@お腹いっぱい。:2013/03/10(日) 13:37:57.43 ID:aFLtHCIQ0
どなたか優しい人このFireFox用javascriptをUWSCのIEで使える様に移植してもらえませんか

self.port.on("shika", function(message) {
if (message) {
var image;
var img = document.getElementsByTagName("img");
for (var i = 0; i < img.length; i++) {
if (img[i].src.match("\/shika\.php")) {
image = img[i];
// image.onload = function() {
if (image) {
var arr1 = [
"キャンプ","サイクリング","サイコロ","サバイバル","ジャングル",
"ストーンヘンジ","チュパカブラ","ツチノコ","ネッシー","バックパッカー",
"ハネムーン","ビックフッド","ヒッチハイク","ひのきの棒","ぶらり旅",
"マチュピチュ","モヘンジョダロ","リュックサック","ルーブル美術館","遺跡探索",
"一人旅","家族旅行","海外旅行","奇妙な冒険","寄り道",
"国内旅行","傷心旅行","小旅行","食べ歩き","新婚旅行",
"世界一周","素泊まり","卒業旅行","大冒険","探究",
"探検","途中下車","洞窟探検","道草","貧乏旅行",
"放浪の旅","万里の長城","未開の地","未確認生命体","未知との遭遇",
"民宿","夢旅人","夜行バス","野宿","旅館",
"旅人","旅立ち"];
708名無しさん@お腹いっぱい。:2013/03/10(日) 13:41:22.89 ID:aFLtHCIQ0
var arr2 = [
"dioS7", "c1XgN", "dvFt2", "atnny", "vR8YF", "ot8ED", "TIeCk", "2rrop", "U0jpW",
"LlPY5", "XLCct", "8ZjuD", "yHyaX", "sT1Nl", "t5KOY", "NqK9N", "vp1+g", "jTwM+"
, "eIupq", "YRkao", "sm5qc", "VPlFs", "35uw+", "x71qc", "2mton", "zlUvN", "vt9Ww"
, "IJF8d", "m592t", "qHWhl", "y3mp8", "Wgthf", "dEsul", "ljmLB",
"LgS+S", "cs78S", "xgokh", "xIdAi", "qHNG7", "8EYFe", "rOsSM", "z3Tiv", "GCQMc",
"8mFyq", "qSkpy", "KVY98", "jF5id", "1NqaB", "BEhWR", "hpqp+", "HmHea", "eOFL1"];
var canvas = document.createElement("canvas");
canvas.width = "400";
canvas.height = "100";
var ctx = canvas.getContext("2d");
ctx.fillRect(0, 0, 400, 100);
ctx.drawImage(image, 0, 0);
var data = canvas.toDataURL();
var n = arr2.indexOf(data.substr(-25, 5));
if (~n) {
var input = document.getElementsByTagName("input");
for (var j = 0; j < input.length; j++) {
if (input[j].name == "imgauth_word") {
if (arr1[n]) input[j].value = arr1[n];
}
else if (input[j].value == "決") {
input[j].focus();
}
}
}
};
break;
}
}
}
});
709名無しさん@お腹いっぱい。:2013/03/10(日) 13:59:28.85 ID:dRiTJhlf0
作成依頼スレいってこい
710名無しさん@お腹いっぱい。:2013/03/10(日) 17:07:23.35 ID:aFLtHCIQ0
失礼
作成依頼スレのURLを教えて下さい
711名無しさん@お腹いっぱい。:2013/03/10(日) 18:22:29.66 ID:JbcDYmlQ0
UWSC勉強しろ。
712名無しさん@お腹いっぱい。:2013/03/13(水) 01:00:17.05 ID:/ZB3+goj0
Webブラウザで表示中のページを文字列検索して
最初に該当した文字列の座標XYを返す関数を教えてください
座標を返さずとも該当箇所にマウスを移動したりクリックしたりできるものでもありがたいです。
713名無しさん@お腹いっぱい。:2013/03/13(水) 01:56:04.26 ID:YjywcViY0
>>712 公式でスルーされてたやつか?
そんな関数無いし作るとしても相当めんどくさいから誰も作りたがらないと思うぞ
もし作るとしたら
1、ソースからBODY部分の取得
2、先頭の数文字を抜き取る
3、PosACCを使って座標を0から2で抜き取った文字がヒットするまでチェックする
って感じでやるしか無いだろ
714名無しさん@お腹いっぱい。:2013/03/13(水) 02:43:05.06 ID:YjywcViY0
サンプル
//アクティブウィンドウのID取得
ID = GETID(GET_ACTIVE_WIN)
//アクティブウィンドウの座標取得
ACTIVE_X = STATUS(ID,ST_CLX)
ACTIVE_Y = STATUS(ID,ST_CLY)
ACTIVE_WIDTH = STATUS(ID,ST_CLWIDTH)
ACTIVE_HEIGHT = STATUS(ID,ST_CLHEIGHT)
FOR i = ACTIVE_X to ACTIVE_WIDTH
FOR n = ACTIVE_Y to ACTIVE_HEIGHT
//アクティブウィンドウ内の文字を検索
HIT_WORD = POSACC(ID,i,n,ACC_BACK)
FUKIDASI(i+","+n)
IFB HIT_WORD <> ""
//文字が見つかったらその座標をPRINT表示して終わる
PRINT ("(" + i + "," + n + ")で文字を発見")
EXITEXIT
ENDIF
NEXT
NEXT
//文字が見つからなかった時のPRINT文
PRINT ("指定した文字が見つかりませんでした")
715名無しさん@お腹いっぱい。:2013/03/13(水) 02:46:53.84 ID:YjywcViY0
何らかの文字がヒットしたらその座標をPRINTして終わるサンプル
FUKIDASI(i+","+n)はチェックしてる座標だからいらないな
アクティブウィンドウ内の座標を全チェックするから実用的ではないぞ
716名無しさん@お腹いっぱい。:2013/03/13(水) 03:17:00.91 ID:KKZwkQmN0
質問の内容から察するにわざわざ座標を取得する必要のない操作がしたいだけに見えるがな
717名無しさん@お腹いっぱい。:2013/03/13(水) 03:39:39.49 ID:BGzogVtw0
どうでもいい訂正
FOR i = ACTIVE_X to ACTIVE_WIDTH >FOR i = ACTIVE_X to ACTIVE_X + ACTIVE_WIDTH
FOR n = ACTIVE_Y to ACTIVE_HEIGHT >FOR n = ACTIVE_Y to ACTIVE_Y + ACTIVE_HEIGHT

クリックしたりってことはそれ自体で反応がある部分だろうからCLKITEMとかで出来そうだけど座標を知りたいってことだからね
718名無しさん@お腹いっぱい。:2013/03/13(水) 12:43:06.62 ID:2iHU15sE0
画像ならともかく文字の座標をわざわざ調べて何したいんだろうね
その座標をクリックしたいだけだったらとんでもない徒労だよね
だから回答がなかったんだろう
条件後出しと同じ、質問の仕方が悪い典型だね
719名無しさん@お腹いっぱい。:2013/03/13(水) 18:46:48.67 ID:8lEF/N9K0
>>707それはわざわざUWSCにする必要がないような
HTAをもっと流行らせる計画 Part2
http://toro.2ch.net/test/read.cgi/tech/1220874815/
720名無しさん@お腹いっぱい。:2013/03/13(水) 19:28:13.83 ID:5OvD1SLv0
>>712
oRange = oIE.document.body.createTextRange()
ifb oRange.findText("探したい文字列") = false then
  MsgBox("見つからない")
else
  oRange.scrollIntoView()
  MsgBox("x = " + oRange.offsetLeft + " y = " + oRange.offsetTop)
endif
721名無しさん@お腹いっぱい。:2013/03/14(木) 09:46:17.50 ID:E9oSdAAN0
>>713-715,717
質問は初めてです。ありがとうございます。
PosAcc()での走査よりも早いものがよかったので質問しました。すみません。

>>716,718
検索し該当する文字列付近に表示されている情報を取得したいだけです。
CLKITEM()でクリック後に座標をずらすということも試したところ、
とても遅く、また文字によっては必ずしもTrueを期待できなかったので。

>>720
ありがとうございます。比較的単純なページでは期待通りでした。
本来対象のページはスクリプトのサイトのようで
oIE = GetActiveOLEObj( "InternetExplorer.Application" )
MsgBox( oIE.document.body.innerHTML )  で中身が殆ど取れず、
oRange = oIE.document.body.createTextRange()  で名前が不明だと言われました。
bodyが空っぽなのかも?body.Children?とかの正しいElement?を指定する?
という感じで躓きました。oRangeを利用したいので
HTMLとか勉強する必要がありそうです。ありがとうございました。
722名無しさん@お腹いっぱい。:2013/03/14(木) 12:31:43.47 ID:VYDmlSZT0
>>720
ここまでくるともはやUWSCそのものが足をひっぱる側だな…
723名無しさん@お腹いっぱい。:2013/03/14(木) 12:33:42.35 ID:VYDmlSZT0
>>721
> 該当する文字列付近に表示されている情報
というのが背景画像とかだったら意味があるかもしれないけど、
文字なり何らかのアイテムであるなら、遠回りだと思うな
724名無しさん@お腹いっぱい。:2013/03/14(木) 12:36:31.29 ID:VYDmlSZT0
ちなみに力技で、
探す文字列もその近傍の情報も
全て画像判定するという方法がある。
大量の画像を予め登録しておく必要があるが、
画像に重ね合わせやぼかし効果などの変更が加わらない限り
確実に判定できる。
725名無しさん@お腹いっぱい。:2013/03/14(木) 16:40:08.77 ID:WqGIF89g0
clkitemでツールバーの中身?が効かない時があります
どうすればいいですか?
726名無しさん@お腹いっぱい。:2013/03/14(木) 19:43:44.64 ID:VYDmlSZT0
ツールバーのアイコン画像を探してクリック
727名無しさん@お腹いっぱい。:2013/03/14(木) 20:39:08.06 ID:wIrPBAdq0
>>719
今の自分だとhta用にすら変換できないw
勉強してきます
728名無しさん@お腹いっぱい。:2013/03/15(金) 00:16:35.92 ID:QaK6Vj6s0
>>726
何で効かないのか、原因を知って
根本的に解決したいです
729名無しさん@お腹いっぱい。:2013/03/15(金) 00:27:37.18 ID:1ACGSkbj0
>>728
725の文章だけで原因究明できると思ってるの?
730名無しさん@お腹いっぱい。:2013/03/15(金) 04:45:15.92 ID:stmevALv0
「test」ウインドウにある複数項目のうち、「hogehoge」以外のどれかひとつをランダムに選んで、変数「Y」に格納したいのですが、

kazu = GETITEM(test, ITM_LSTVEW)
while True
X=random(kazu)
Y = ALL_ITEM_LIST[X]
if POS("hogehoge", Y)>0 then continue else break
wend

こうすると、

変数: ALL_ITEM_LIST 配列をオーバーしてます
〇〇行目 : Y = ALL_ITEM_LIST[X]

とのエラーが出てしまいます。
どこが間違っているのか分からず、困っています。
よろしくお願いします。
731名無しさん@お腹いっぱい。:2013/03/15(金) 04:58:32.24 ID:5NswM1G+0
DIM X[2]=1,2,3

という配列に対して
X[3]とかX[4]とか呼びだそうとするとそのエラーが出る
732名無しさん@お腹いっぱい。:2013/03/15(金) 05:22:58.27 ID:stmevALv0
>>731
ありがとうございます。

しかし、
X=random(kazu)

X=random(kazu - 1)
としても、やはりエラーが出てしまいます。
733名無しさん@お腹いっぱい。:2013/03/15(金) 05:39:27.71 ID:s5PWw8Kr0
>>730
GetItemで取得できてないんじゃないの
print kazuでちゃんと1以上になってる?
734名無しさん@お腹いっぱい。:2013/03/15(金) 05:50:54.00 ID:stmevALv0
>>733
すみません、その通りでした。
kazu = GETITEM(test, ITM_LSTVEW,-1)
にしたら、ちゃんと取得してくれて、エラーがなくなりました。
ありがとうございます。

よろしければ、もうひとつ教えて下さい。

IE.navigate("http://aaa.com/")
repeat
sleep(0.1)
until !IE.busy AND IE.readystate=4
sckey(IEid, vk_ctrl,vk_t)
sleep(1)
IE.navigate("http://bbb.com/")
repeat
sleep(0.1)
until !IE.busy AND IE.readystate=4

という部分で、

COM_Error:RPC サーバーを利用できません。
〇〇行目 : IE.navigate("http://aaa.com/")

のエラーが出てしまい困っています。
どこか、まずいのでしょうか。
735名無しさん@お腹いっぱい。:2013/03/15(金) 06:17:56.61 ID:stmevALv0
その前に
IE.Visible = True
を入れたら、エラーは出なくなりました。
お騒がせしました、すみません。
736名無しさん@お腹いっぱい。:2013/03/15(金) 07:48:24.90 ID:isazPtMO0
clkitemでツールバーの中身?が効かない時が
複数のソフトであったんですよね
なのでよくある普遍的なことなのかと思いました。すいません
737名無しさん@お腹いっぱい。:2013/03/15(金) 20:02:35.45 ID:j6X/y7Gu0
IE10だとソースとie.document.body.innerHTMLで返ってくる値が違うんな
属性の並び順が変わってる
738名無しさん@お腹いっぱい。:2013/03/15(金) 20:21:12.61 ID:1ACGSkbj0
>>737
innerHTMLは、DOMをソースコードの形式に再構成したものであって、元のソースではない
739名無しさん@お腹いっぱい。:2013/03/16(土) 00:13:09.68 ID:m2eD90fN0
STOPFORM(FALSE)
ACW(GETID(GET_ACTIVE_WIN),889,494,1030,705,0)

上記のように、マクロ実行時にアクティブになってるウィンドウを
所定の位置に移動するという簡単なマクロを作ろうとしたのですが、
マクロ実行時にSTOPボタンのウィンドウがアクティブになってしまい、うまくいきません
STOPFORM(FALSE)も効果ないようです
何かいい方法ないでしょうか
740名無しさん@お腹いっぱい。:2013/03/16(土) 00:46:43.46 ID:DeBAysZR0
>>738
ありがとう(恥
741名無しさん@お腹いっぱい。:2013/03/16(土) 00:53:36.62 ID:wDLsIall0
>>739
CtrlWin(GetId(GET_THISUWSC_WIN), MIN)
ACW(GETID(GET_ACTIVE_WIN),889,494,1030,705,0)
742名無しさん@お腹いっぱい。:2013/03/16(土) 01:03:25.51 ID:m2eD90fN0
>>741
なるほどーUWSCを最小化するってことですか
ありがとうございました
743名無しさん@お腹いっぱい。:2013/03/16(土) 06:11:45.86 ID:frETHI600
処理1
if1
処理2
if1

最初のif1を満たした時に処理1に戻って
if1を満たさなかったら処理2
二番目のif1を満たしたら処理2に戻る
のループを作りたいんだけど出来る?
744名無しさん@お腹いっぱい。:2013/03/16(土) 06:37:35.77 ID:wDLsIall0
>>743
repeat
 処理1
until !( 条件if1 )
repeat
 処理2
until !( 条件if1 )
745名無しさん@お腹いっぱい。:2013/03/16(土) 11:23:15.40 ID:wilsN9dX0
あっれ
今まで resize(array) の戻り値は、インデックスの最大値、
array[123] なら 122 が戻ってくると思っていたが、
勘違いしていたみたいだな…

DIM testSingleDimensionArray[123]
PRINT "一次元配列のRESIZE参照テスト testSingleDimensionArray[123]"
PRINT "RESIZE(testSingleDimensionArray)=" + RESIZE(testSingleDimensionArray) //123

DIM testMultiDimensionArray[5][2][500]
PRINT "多次元配列のRESIZE参照テスト DIM testMultiDimensionArray[5][2][500]"
PRINT "RESIZE(testMultiDimensionArray)=" + RESIZE(testMultiDimensionArray) //5
PRINT "RESIZE(testMultiDimensionArray[])=" + RESIZE(testMultiDimensionArray[]) //5
PRINT "RESIZE(testMultiDimensionArray[][])=" + RESIZE(testMultiDimensionArray[][]) //5
PRINT "RESIZE(testMultiDimensionArray[0])=" + RESIZE(testMultiDimensionArray[0]) //2
PRINT "RESIZE(testMultiDimensionArray[0][0])=" + RESIZE(testMultiDimensionArray[0][0]) //500

ver4.8c1
746名無しさん@お腹いっぱい。:2013/03/16(土) 11:30:03.16 ID:wilsN9dX0
過去のソース見たら、全てインデックス上限値と見なしてプログラムが組まれてたわ…
これから使用箇所190行を修正する作業が始まるお…
747名無しさん@お腹いっぱい。:2013/03/16(土) 11:40:17.70 ID:O4wYclcZ0
ん・・・?あってるんじゃないの
dim a[5]としたらできるのはa[0]〜a[5]までの6個だよ
748名無しさん@お腹いっぱい。:2013/03/16(土) 12:03:53.78 ID:wilsN9dX0
>>747
まじか…

> 多次元配列には宣言が必要: DIM 変数名[数]
> (配列での初期値代入: DIM X[2]=1,2,3  配列数の省略可 DIM X[]=1,2,3 )

DIM宣言時の数は要素数だから
DIM a[5] → a[0]〜a[4] とばかり思っていた…


  一体いつから─────── 一般的に配列の宣言は要素数を書く、と錯覚していた?


ってか今調べたらUWSCが特殊なのね。
どうりで配列の結合が失敗するわけだ。。。


これから誤修正した190行を書き戻す作業が始まるお…
749名無しさん@お腹いっぱい。:2013/03/16(土) 13:57:19.08 ID:7YjAXYg4P
ランチメニューを常時出しておく設定はありませんか?
750名無しさん@お腹いっぱい。:2013/03/16(土) 20:24:09.72 ID:wilsN9dX0
// FORのテスト

PRINT "FOR lI=0 TO 3"
FOR lI=0 TO 3
PRINT lI // 0,1,2,3
NEXT
PRINT "end of FOR lI=0 TO 3"

PRINT "now lI="+lI+", out of loop." // 4

PRINT "FOR lI=1 TO 1"
FOR lI=1 TO 1
PRINT lI // 1
NEXT
PRINT "end of FOR lI=1 TO 1"

PRINT "FOR lI=1 TO 0"
FOR lI=1 TO 0
PRINT lI // 実行されない
NEXT
PRINT "end of FOR lI=1 TO 0"

PRINT "test end."
751名無しさん@お腹いっぱい。:2013/03/16(土) 20:31:50.24 ID:vBbrYnh10
何が言いたいのか全くわからない
lIとか普通使わないとか?
1 TO 0 とか初心者でもしないようなミスのこと?
752名無しさん@お腹いっぱい。:2013/03/16(土) 22:11:44.67 ID:x/efmUfi0
(`・ω・´)ゞ
753名無しさん@お腹いっぱい。:2013/03/16(土) 23:31:43.51 ID:/I0Wh0cB0
CHKIMGをC++で実装しようと思ってBitmap使ったら速度どのくらい違う?
754名無しさん@お腹いっぱい。:2013/03/17(日) 01:01:58.84 ID:jthWrVlJP
IESETDATAでテキストボックスにパスワードを自動入力してログインさせたいが
name属性がソースに見当たらない件。。
Java Scriptらしいのでcommon.jsの中や全てのhtmlファイルやjsファイルの中見たけどelementの記述がない場合諦めるしかない?
755名無しさん@お腹いっぱい。:2013/03/17(日) 01:12:41.13 ID:ue9YsYIa0
つ IERec
756名無しさん@お腹いっぱい。:2013/03/17(日) 03:23:13.75 ID:jthWrVlJP
<tr align="center">
<td>
<input type="password" id="ID_PASSWORD" onkeypress="handleKeyPress(event)" />
</td>
</tr>
<tr align="center">
<td>
<center>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td align="center" style="text-align:center;">
<a class="ovalbutton" href="javascript:Login();"><span id="oLogin" class="item_btn">LOGIN</span></a>
</td></tr>
</table>
</center>
</td>
</tr>
757名無しさん@お腹いっぱい。:2013/03/17(日) 04:04:39.01 ID:jthWrVlJP
>>755
おいおいこの3年間Free版の方使ってたからIERecは1回も触ったことなかったよ。
この3年間手動で解析して苦労してた事がこれで全部1瞬でわかってたわけだ。。驚いたよ。さすがPro
しかしコレ。uwscpro本体じゃないがIERecもやっぱレジストしないと試用期間しか使えないわけだよな。。?

ありがとう>>755
758名無しさん@お腹いっぱい。:2013/03/17(日) 17:27:58.02 ID:PI/SvLmh0
2003Server上でのみ、JOINの第2引数が省略できない。
759名無しさん@お腹いっぱい。:2013/03/17(日) 17:55:18.40 ID:PI/SvLmh0
最新版に更新してJOINの全ての引数を省略せずに書いても2003Server上でJOINが使えなかった。
とうとうサポートから外れたか。
760名無しさん@お腹いっぱい。:2013/03/17(日) 18:23:09.54 ID:PI/SvLmh0
try〜endtryによる例外処理すら効きません >2003server
XP代わりに使っていましたが、突然のお別れを告げられた気分ですw
761名無しさん@お腹いっぱい。:2013/03/17(日) 20:56:28.80 ID:+MsevJay0
初心者です。

mouseorg(id,2)で非アクティブウィンドウに左クリック命令を送りたいのですが上手くいきません。
第2引数を0や1に変え、ウィンドウをアクティブにしてテストしてみると目的通りに動いてくれます。
クリックの命令自体は(場所は全然違うけれど)届いているみたいなので座標が間違っていると思うのですが、
絶対座標、相対座標どちらを試してもだめでした。
画像認識などはしておらず、BTN(LEFT,CLICK,100,100)のように直接数値が入っている簡単なプログラムです。

原因と解決方法を教えてください。
よろしくお願いします。
762名無しさん@お腹いっぱい。:2013/03/17(日) 21:02:33.91 ID:wQ7z6wAP0
MOUSEORG(ID,2,MORG_BACK)は?
763名無しさん@お腹いっぱい。:2013/03/17(日) 23:35:52.32 ID:+MsevJay0
>>762
今試してみたけど、やっぱり変なところをクリックしちゃうみたいです。
764名無しさん@お腹いっぱい。:2013/03/18(月) 00:13:13.93 ID:5V8fp7/l0
>>763 バックグラウンドの問題じゃなくクリック位置の方の問題だったのか
HELPにも
以降のMMV()、BTN()、PEEKCOLOR()、CHKIMG()関数の座標を指定ウィンドウを基準にしたものにする
基準指定にて MORG_DIRECTが指定された場合は KBD()、MMV()、BTN()関数の情報は直接ウィンドウ(オブジェクト)へ送る
って説明がきちんとされてるけどスクリーン座標でやってるとか言うオチじゃないの?
765名無しさん@お腹いっぱい。:2013/03/18(月) 00:58:47.24 ID:eZezCUPR0
>>764
スクリーン座標=絶対座標ですよね?

他は全くいじらずに、mouseorgの第2引数を0または1にしてアクティブ時にテストする時には、
ウィンドウの位置を動かしても目的の場所でクリックしてくれるので、そこは大丈夫だと思います。
ダメ元でウィンドウを(0,0)に配置しても解決しませんでした(間違って絶対座標でやってたらこれで動くと思ったので)

第2引数を2にすると、アクティブ・非アクティブに関わらず変なところをクリックします。
766名無しさん@お腹いっぱい。:2013/03/18(月) 02:23:28.69 ID:jvEcJO3s0
// 必:起動オプション(accessibilityをOnにする) "--force-renderer-accessibility"
path = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
id = Exec(path + " --force-renderer-accessibility --process-per-tab --new-window http://www.google.co.jp/")
表示完了待ち(id, "Google 検索")
SENDSTR(id, "検索文字", 2, True, True) // 検索文字
sleep(1)
CLKITEM(id, "Google 検索", CLK_ACC or CLK_LEFTCLK) // 検索ボタン
表示完了待ち(id, "日本語のページを検索")
CLKITEM(id, "日本語のページを検索", CLK_ACC or CLK_LEFTCLK)

// 指定アイテム/文字が確認できるまで待つ
Procedure 表示完了待ち(id, item)
While True
Sleep(0.4)
for n = 0 to GETITEM(id, ITM_ACCCLK or ITM_ACCTXT)-1
if ALL_ITEM_LIST[n] = item then Exit
next
wend
Fend


サンプルにあるこのコードを実行してもグーグルトップが表示されるだけで"検索文字"を入力してくれません
今はこの書き方ではダメなのでしょうか
767名無しさん@お腹いっぱい。:2013/03/18(月) 10:38:31.40 ID:c2D1OPVh0
どうせネトゲじゃねーの?
768名無しさん@お腹いっぱい。:2013/03/18(月) 20:45:50.51 ID:Jg0gUeaN0
どちらも、クリックする直前にウィンドウIDをGETIDで再取得してmouseorgしてみ?
769名無しさん@お腹いっぱい。:2013/03/18(月) 22:41:09.14 ID:i6VbW1M80
>>767
最近はブラウザゲーの無人化やらネトゲのマクラーが質問に来すぎだなw
770名無しさん@お腹いっぱい。:2013/03/19(火) 00:23:41.04 ID:6b4ufPMO0
でも最近のブラゲは無人化されてるんだろ最初から?
771名無しさん@お腹いっぱい。:2013/03/19(火) 04:39:22.88 ID:dcQc2FL60
アクセシビリティ用インターフェース経由でアクセスする例って、何処かにサンプルがありませんか?
772名無しさん@お腹いっぱい。:2013/03/19(火) 19:07:08.49 ID:lXjOHSO80
アクセスするってどういうことだ?
普通にACC使う方法ならサンプルの通りで動くが
773名無しさん@お腹いっぱい。:2013/03/20(水) 17:36:12.86 ID:0IRKtWvh0
既に起動している「ABC」という名前のエクセル(正確にはLibreOfficeのCalc)のファイルのセルA1の値を読み取る方法をを教えてください
774名無しさん@お腹いっぱい。:2013/03/20(水) 19:18:17.11 ID:Cvad/HbA0
>>773
MSエクセル操作したければUWSC有料版
と思ったがLibreOfficeじゃダメだな
775名無しさん@お腹いっぱい。:2013/03/20(水) 19:47:42.43 ID:dpIdgujy0
マクロ起動するとかで出来ないかと思ったが、UWSC関係ないか。
776名無しさん@お腹いっぱい。:2013/03/20(水) 21:20:03.64 ID:TkCtM4NV0
OLEで操作するならUWSCより何倍も優れた言語と開発環境を使えばいい。
ましてやEXCELなどのマクロ記録機能のついたアプリなら、マクロでやらない理由に乏しい。
マクロ機能のないアプリの手動操作をそのままトレースして置き換えるのがUWSCの本来ではないか。
777名無しさん@お腹いっぱい。:2013/03/20(水) 21:37:35.27 ID:EOqAdwve0
>>773
CSVで保存
TXTで保存とかさせて
そのファイルの1番目のデータ読めばいいんじゃね?
778名無しさん@お腹いっぱい。:2013/03/20(水) 21:41:19.52 ID:7ZsTSXXp0
>>773
COM操作したいなら wsh com.sun.star.ServiceManager でググれ
ちなみにポータブル版はCOM操作できない(標準状態では)
779名無しさん@お腹いっぱい。:2013/03/20(水) 22:41:21.44 ID:1uGipkxk0
COM操作したいなら
Windows マクロテクニック
を買って勉強したら?ちゃんと書いてあるよ。
780名無しさん@お腹いっぱい。:2013/03/21(木) 11:05:41.32 ID:IdcnOx/P0
VBSでExcelのウィンドウを開かずにやりくりする方法があったはず
781名無しさん@お腹いっぱい。:2013/03/21(木) 14:02:26.22 ID:Nu46dVH40
そのウィンドウをアクティブにしてホームキー、F2、Ctrl-A、Ctrl-Cとか
すればいいんでね?
782名無しさん@お腹いっぱい。:2013/03/23(土) 19:46:43.87 ID:OJVqFLF90
毎日7時から18時までの間で、4分おきに作動させたいんですが、
設定画面のスケジュール項目から設定できますか?
どうやって設定すれば良いのか分からずに悩んでいます><
783名無しさん@お腹いっぱい。:2013/03/23(土) 20:48:01.38 ID:4EcPfQwd0
4分おきに起動するスクリプトの最初に現在時刻の確認を行い
時間外なら終了するという処理を追加すると似た動作になりますね
784名無しさん@お腹いっぱい。:2013/03/23(土) 21:17:40.72 ID:n4inQNH80
WHILE TRUE
GETTIME()
IFB 0 = G_TIME_NN MOD 4 and G_TIME_HH >= 7 and G_TIME_HH <= 18
CALL "○○.uws"
ENDIF
SLEEP(1)
WEND

って内容のUWSファイルを別に作ってそれを実行
○○.uwsその時間に実行させるファイル
ファイル読み込みがすぐに終わる(1分以内)ようなら連続して使用しないようにSLEEP内の時間を調整
785名無しさん@お腹いっぱい。:2013/03/23(土) 21:35:21.28 ID:2F4b87dd0
式による設定
(HH=7 OR HH=8 OR HH=9 OR HH=10 OR HH=11 OR HH=12 OR HH=13 OR HH=14 OR HH=15 OR HH=16 OR HH=17 OR HH=18) AND ((YMDNN MOD 4)=0)
Helpそのままだけど
786名無しさん@お腹いっぱい。:2013/03/24(日) 00:37:05.39 ID:q8bT7+YX0
祝日判定はどうやったら一番スマートかな〜
エクセルは使いたくないな
787名無しさん@お腹いっぱい。:2013/03/24(日) 01:28:16.64 ID:tZXQzOJB0
JavaScriptだけど
http://d.hatena.ne.jp/yoshiob/20100826
計算の仕方は同じように使えるから参考にしたら?
788名無しさん@お腹いっぱい。:2013/03/24(日) 04:33:13.67 ID:EFy0Kgav0
>>783-785
ありがとうございます!!
789名無しさん@お腹いっぱい。:2013/03/25(月) 00:05:52.02 ID:T1oKiVEg0
>>784
callだとpublic変数が初期化されないからだめなケースもあるよね?
790名無しさん@お腹いっぱい。:2013/03/25(月) 00:58:11.93 ID:oR6BqF5u0
初期化必要ならCALLする前に初期化するとかPOFF(P_UWSC_REEXEC,TRUE)でループの最後にツール自体を再起動させるとか
791名無しさん@お腹いっぱい。:2013/03/25(月) 05:09:16.38 ID:sMeSNtHh0
googleリーダーのスターを自動的に付けるという
スプリクトを作ったのですが

見てるときは動作するのですが見てないとスプリクトは
動いてるようですがスターがつかないという現象が起こってます
どのようにすれば改善できるのでしょうか。

ブラウザ  Firefox19.02
googleリーダーのショートカットキーを使用して
sキーでスターを付けてpキーで上のアイテムに移動
それのループと一定時間のSleepをする。

ソース
For i = 1 TO 8
For i = 1 TO 30
KBD(VK_S,CLICK,10)
KBD(VK_P,CLICK,10)
Sleep(0.5)
NEXT
Sleep(3600)
NEXT
For i = 1 TO 10
KBD(VK_S,CLICK,10)
KBD(VK_P,CLICK,10)
Sleep(0.5)
NEXT

よろしくお願いします。
792名無しさん@お腹いっぱい。:2013/03/25(月) 08:41:39.42 ID:dpUxCjVy0
repeat
処理A
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4

ifb CHKIMG("○○.bmp")
repeat
処理B
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
until !CHKIMG("○○.bmp")
repeat
処理C
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
until !CHKIMG("○○.bmp")
continue
endif

until !CHKIMG("○○.bmp")


IF文が出たときだけcontinueで処理Aの上のrepeatに戻りたいのですが
上手く行きません
エラーメッセージは
ループ外にCONTINUE文がある
です
ご教授願います
793名無しさん@お腹いっぱい。:2013/03/25(月) 10:01:11.75 ID:YuFMTUPx0
>>792
まず動作しないように始まりにexitexitを書いておく
エラー出なくなるまで、処理A,B,Cを順にコメントアウトしていって、原因箇所を絞り込む
絞り込めたら、更にコメントアウトして絞り込む
794名無しさん@お腹いっぱい。:2013/03/25(月) 10:46:17.69 ID:cT14Y9py0
コマンドプロンプトを呼び出して
2行以上を続けて行動させる
たとえばフォルダを移動して、特定ファイルを開くといったことをするにはどうすればいいんでしょうか?
1行ずつしか受け付けてくれない感じがします
795名無しさん@お腹いっぱい。:2013/03/25(月) 11:19:57.67 ID:YuFMTUPx0
>>794
batファイル経由で実行
796名無しさん@お腹いっぱい。:2013/03/25(月) 13:12:58.34 ID:RF7tLqM/0
>>795
ありがとうございます
シェルとか色んなもの勉強しないと色んなことが出来ないものなのですね
797名無しさん@お腹いっぱい。:2013/03/25(月) 13:34:55.40 ID:dpUxCjVy0
前より全然ご褒美儲からない
オワコン
798名無しさん@お腹いっぱい。:2013/03/25(月) 13:42:51.54 ID:mhwAfq6p0
ニダランの自動化の質問は受け付けておりません
799名無しさん@お腹いっぱい。:2013/03/25(月) 20:47:49.17 ID:COFHPoPA0
>>791
ショートカットキーが正しく実行できたかどうか全くチェックしないフィードフォワード処理であれば、
ショートカットキー実行結果が出てくるタイムラグのうち最大限に長いウェイトを取らなければすぐコケる。
最大限のウェイトを取ればすぐにはコケないがとても遅い。なおかついつかは必ずコケる。
確実に実行したければ手順ごとに実行結果のフィードバックを設ける。
「見ていない時」がウィンドウ非アクティブとかバックグラウンドとかの意味で言っているなら、
そもそもその方法では無理。

>>792
それ以前にまず重複部分は関数化して吐き出す。

REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4



PROCEDURE waitIeReady()
  REPEAT
    SLEEP(0.1)
  UNTIL !IE.busy AND IE.readystate=4
FEND

それから、
800名無しさん@お腹いっぱい。:2013/03/25(月) 20:49:59.09 ID:COFHPoPA0
それから、

repeat
  処理A
  waitIeReady()
  ifb CHKIMG("○○.bmp")
    repeat
      処理B
      waitIeReady()
    until !CHKIMG("○○.bmp")
    repeat
      処理C
      waitIeReady()
    until !CHKIMG("○○.bmp")
    continue
  endif
  その他の処理
until !CHKIMG("○○.bmp")

のようにちゃんと字下げをしてループを把握していく。
処理B,Cについても関数化し、それぞれ単独で正常動作するか
テストプログラムを書いてテスト。
801名無しさん@お腹いっぱい。:2013/03/26(火) 03:49:58.50 ID:UZY5TOp80
Dim HHMM[ 12 * 2 * 7 -1 ]
For i = 0 To ReSize( HHMM ) Step 1
  h = HHMM[ i - i Mod 7 ]
  m = ( i Mod 7 - 1 ) + "0"
  Select i Mod 7
    Case 0
      HHMM[i] = i / 7
    Case 1
      HHMM[i] = "{" + h + ":" + m
    Case 2,3,4,5
      HHMM[i] = h + ";" + m
    Case 6
      HHMM[i] = h + ":" + m + "}"
    Default
      HHMM[i] = "??:??"
  SelEnd
Next
N = PopUpMenu( HHMM )
For i = 0 To ReSize( HHMM ) Step 1
  HHMM[i] = Replace( Replace( HHMM[i], "{", "" ), "}", "" )
Next
MsgBox( HHMM[N] )

Print "12 * 2 * 7 -1: "  + "<#TAB>" + ( 12 * 2 * 7 -1 )
Print "ReSize(): "    + "<#TAB>" + ReSize( HHMM )
Print "i: <#TAB>"    + "<#TAB>" + i
Print "Length(): "    + "<#TAB>" + Length( HHMM )
Print ""
Print "HHMM[166]: "    + "<#TAB>" + HHMM[166]
Print "HHMM[167]: "    + "<#TAB>" + HHMM[167]
Print "HHMM[168]: "    + "<#TAB>" + HHMM[168]
802名無しさん@お腹いっぱい。:2013/03/26(火) 03:52:10.17 ID:UZY5TOp80
なんかコメントください
803名無しさん@お腹いっぱい。:2013/03/26(火) 03:54:43.29 ID:svaOjS8o0
チラシの裏にでも書いてろ
804名無しさん@お腹いっぱい。:2013/03/26(火) 07:37:32.78 ID:sKAdPIy80
とあるゲームで、mouseorg(2)を使ったときにダブルクリックを認識しません
クリックの間隔が正しくないという問題ではなくて、クリックを連打させても反応しないです
mouseorg(0)にした場合は認識するので、ダブルクリックという処理を送る必要があるんでしょうか
解決策わかる人いたらよろしくおねがいします。
805名無しさん@お腹いっぱい。:2013/03/26(火) 08:00:34.03 ID:32PXPl1j0
>>804
APIのPostMessageで直接ウインドウメッセージを送る
806名無しさん@お腹いっぱい。:2013/03/26(火) 08:13:23.30 ID:32PXPl1j0
>>802
わざと複雑に書いてるように見える

s = ""
for i = 0 to 23
  s = s + Replace("x,{x:00,x:10,x:20,x:30,x:40,x:50},", "x", i)
next
HHMM = Split(s, ",", true)
N = PopUpMenu(HHMM)
if N = -1 then exit
MsgBox( Replace(Replace(HHMM[N], "{", ""), "}", "") )
807名無しさん@お腹いっぱい。:2013/03/26(火) 08:15:47.32 ID:sKAdPIy80
>>804
APIを使えばそういうことができるんですか
現状必要ないかなぁと思って手をつけてなかったんですが、試行錯誤してみようと思います
助言ありがとうございました
808名無しさん@お腹いっぱい。:2013/03/26(火) 23:47:05.19 ID:UZY5TOp80
>>806
悔しいです!!
手取りいくらですか?
もしかして趣味グラマですか?
809名無しさん@お腹いっぱい。:2013/03/28(木) 00:32:15.26 ID:+/YoPGVRP
>>804
お前まどオンスレに書いてたやつだろ?
810名無しさん@お腹いっぱい。:2013/03/28(木) 01:22:30.64 ID:hEmcj9Um0
CHKIMGは、exe化したら動かない?
811名無しさん@お腹いっぱい。:2013/03/28(木) 01:27:09.89 ID:lJi+76+D0
多分カレントディレクトリの問題
812810:2013/03/28(木) 02:38:16.07 ID:hEmcj9Um0
>>811
それはどういうことですか?
813名無しさん@お腹いっぱい。:2013/03/28(木) 08:44:03.43 ID:lJi+76+D0
スクリプトの間はUWSCの実行ファイルの場所がカレントディレクトリだけど
実行ファイル化したらそのファイルの場所がカレントディレクトリになる

そしてCHKIMGを相対ディレクトリで指定していたとしたら
当然、比較用のファイルが見つからない
814名無しさん@お腹いっぱい。:2013/03/28(木) 11:12:18.14 ID:R0oTu4QI0
>>810
exe化して使ってるよ
815名無しさん@お腹いっぱい。:2013/03/29(金) 13:00:19.83 ID:8qOHGb+X0
javaのswingは操作できないの?

// Javaのデモアプリ FileChooserDemo を起動、操作(ACC方式)  #n39
これを見たらできるような感じなんだけど。

全然できないよ
816名無しさん@お腹いっぱい。:2013/03/29(金) 15:12:11.94 ID:HrEUlBlw0
V2C用のマクロ作ろうとしてる?
ACC方式ってコメントにある様にその範囲でなら操作できる
817名無しさん@お腹いっぱい。:2013/03/29(金) 20:57:32.66 ID:3teX6Qh90
3つ質問があります
3つとも
id = GETID("Mozilla Firefox", "MozillaWindowClass")
でIDを取得してからになります

clkitem(id,"開始", CLK_BACK or CLK_LEFTCLK)
でマウスポインタが開始のボタンまで移動してクリックするんだけど
ポインタを動かさないままクリックする方法はありますか?


SENDSTR(id, ,url , 1, True, True)
SCKEY(ffid, VK_RETURN)
URL移動するときアクティブになるんですけどアクティブにならない方法ありませんか?

for n = 0 to 10
ifb pos("result",Getstr(id,1,STR_ACC_EDIT))
表示完了待ち(id, "使う")
break
endif
BTN(LEFT, CLICK, STATUS(id,ST_WIDTH)/2, STATUS(id,ST_HEIGHT)/2, 80)
sleep(0.5)//待つ
next
URLにresultが出るまでクリックという方法で
フラッシュをクリックしてるんですけどもっといい方法ありませんか
818名無しさん@お腹いっぱい。:2013/03/29(金) 21:12:52.28 ID:OQk+Qr4R0
火狐を使わないという選択肢
819名無しさん@お腹いっぱい。:2013/03/29(金) 21:35:31.21 ID:cVbVIirB0
>>817
1・2
VMwareなどの仮想マシン上でやれば全て解決


方針としては正しいフィードバック処理
ただしアクセシビリティ経由だと遅かったりフリーズしたりすることがあるので
敢えて画像判定でチェックしたほうが良い場合がある
俺の場合、指定画像が存在すればクリックする関数を設定して使っている
820名無しさん@お腹いっぱい。:2013/03/29(金) 22:43:16.05 ID:8UlTLzMEP
Firefoxでなくてもいいけど、IEは使いたくない
821名無しさん@お腹いっぱい。:2013/03/29(金) 22:52:39.11 ID:8qOHGb+X0
>>816
FXトレードの注文に使用したいのですけど。うまくいきません。
サンプルのMonkeyやFerretみたいにCからjava access bridge使ってたら
できるんですかね?
誰かやった人いてる?
822名無しさん@お腹いっぱい。:2013/03/31(日) 10:26:28.19 ID:1XiCPpsO0
//   if GetKeyState(VK_LBUTTON) tnen exit
    if GetKeyState(VK_LBUTTON) then exit

コメントアウトした方は実行するとエラーになる。
上はWebページからのこぴぺ
下は手打ち
823名無しさん@お腹いっぱい。:2013/03/31(日) 10:29:47.40 ID:1XiCPpsO0
あ、then が tnen だったわ(笑
824名無しさん@お腹いっぱい。:2013/03/31(日) 10:48:30.58 ID:6hlPiadN0
株とかFXをUWSCでやってる人は凄いな
ソースくれ。おれも資産増やしてぇぜ!
825名無しさん@お腹いっぱい。:2013/03/31(日) 11:41:35.61 ID:S/dfEJWu0
( ´Д`)キモッ
826名無しさん@お腹いっぱい。:2013/03/31(日) 13:27:32.60 ID:/9ggFxSu0
UWSCにできてWSHで出来ない事って何があります?
827名無しさん@お腹いっぱい。:2013/03/31(日) 13:54:02.05 ID:eMSCufFqP
>>826
WSHてマウス操作できるの?
828名無しさん@お腹いっぱい。:2013/03/31(日) 14:24:00.59 ID:1XiCPpsO0
>>824
.net と Excel でやれ。マジで。

>>826
マルチスレッド。
なんかググったらそれっぽいものを実現する方法はあるみたいだ。

あと、他アプリの制御はWSHでは難しいんじゃないかな。

>>827
キーボードなら WshShell.SendKeys
マウスはできないみたいだけど、DLL を用意して呼び出せば出来る。誰も正式公開しないけどなー。
あえてUWSCを避ける理由としては、管理者権限なしで実行できることかな。
確かUWSCでだけは管理者権限がいるんじゃなかったっけ。

> 2012/07/27 ? アプリが管理者権限で実行されている場合には、UWSCも管理者権限が必要です:
ああ、そういうことか。



bad eggs online で勝つためにデスクトップ定規と分度器を使ってみたんだけどなかなか大変。
特に微調整が難しかったのでキーでマウスを移動するスクリプトを書いてみた。というのが>>822

カーソルキーで移動するようなソフトはあったと思うが、あいにくカーソルキーは砲台設定で使われてるので、テンキーを使ったものを作ってみた。
で、微調整は確かに簡単になったんだが、・・・
UWSCでコントロールできるなら自動で計算して目標位置に落としてくれればいいんじゃないかと思い立ったところ、
Flashのサンプルコードを見っけた。
ttp://hakuhin.jp/as.html
ルートってあったかなと思ったけどSQRTって関数名なんだな。
829名無しさん@お腹いっぱい。:2013/03/31(日) 14:43:21.26 ID:/9ggFxSu0
>>827
>>828
マウスや他アプリ制御ですか。。。
ずっとUWSC使ってたんですけど、言語仕様的になんかコードの再利用がしづらいなと思ってて。
PHPやJavaScriptの可変関数とかCの関数ポインタとかオブジェクト指向言語の
ポリモーみたいな実行時の再利用です。
とにかくありがとうございました。
830名無しさん@お腹いっぱい。:2013/03/31(日) 23:48:30.34 ID:cgs78iIo0
sleepで秒数をランダムに指定できますか?
20〜60秒の間で、毎回待たせる時間を変えたいのですが。。
831名無しさん@お腹いっぱい。:2013/03/31(日) 23:54:14.89 ID:AVW7xG9+0
sleep(random(40) + 20)
832830:2013/04/01(月) 00:11:46.55 ID:TJrBsBaK0
>>831
ありがとうございます!
833名無しさん@お腹いっぱい。:2013/04/01(月) 02:22:00.89 ID:KJso94nX0
2013/04/01 UWSC Ver4.8e、 Pro版と Free版をリリースしました
834名無しさん@お腹いっぱい。:2013/04/01(月) 03:18:42.39 ID:oqi0UVy80
IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
IE.Navigate(url)
BusyWait(IE)
IE.Navigate(url2)
BusyWait(IE)
GETOLEITEM(IE.document.getElementsByTagName("div"))
print ALL_OLE_ITEM[0].innerText

//IE処理待ち
Procedure BusyWait(IE)
REPEAT
SLEEP(1)
UNTIL !IE.busy AND IE.readystate = 4
Fend

上記のコードを動かすと
まれにALL_OLE_ITEM[0].innerTextが空だったりurlのほうの文字を持ってきたりします
完全に表示を完了していることを知る方法はありませんか?
835名無しさん@お腹いっぱい。:2013/04/01(月) 03:40:55.75 ID:zpym0Xtb0
対象Webページで
表示が完了した時点で動作する動的なスクリプトを使ってレイアウトしてるんじゃないかな。

それか自動的に他のページに飛んでるとか。

BusyWait()の後にSleep()を入れないとそういうことが起こりやすい。
Sleep(1) を入れても絶対確実とはいえないけど。
836名無しさん@お腹いっぱい。:2013/04/01(月) 10:57:15.76 ID:szOL6TFX0
mmvのウエイトを廃止したって事は、そのままでは動かなくなるスクリプトも出てくるんじゃないのか?
特にゲームとかw
837名無しさん@お腹いっぱい。:2013/04/01(月) 11:48:45.32 ID:zpym0Xtb0
>>836
確かにタイミングが重要なやつだと影響出るな。

ウェイトを指定してれば問題ないようだけど、
俺とか常に省略してたから・・
てっきり、デフォルトでのウェイトはゼロだと思ってたよママン。
838名無しさん@お腹いっぱい。:2013/04/01(月) 15:21:11.17 ID:6yLXTHvu0
画像認識後のクリックラグを出来るだけ短くするならグラボ差し替えるのが一番効果的ですかね?
839名無しさん@お腹いっぱい。:2013/04/01(月) 16:47:43.83 ID:T9Mvv3ej0
windows8で画像認証がうまくいかないのですが、誰か動作報告お願いします
840名無しさん@お腹いっぱい。:2013/04/01(月) 17:19:37.98 ID:t/KDxnQX0
8も7もAero切らないとCHKIMGまともに動かないよ
841名無しさん@お腹いっぱい。:2013/04/01(月) 18:24:02.37 ID:MzwZWXFN0
>>833
上げてみたけれどバージョン戻した

正規表現使うのに RegExp オブジェクト使う共通関数の
IgnoreCase のプロパティ(Boole)に値を与えていた部分が動作しなくなった

COMオブジェクトのBooleの設定が・・・って変更箇所があったからその影響だな
以前のバージョンでは問題なかったんで修正版が来るまで放置決定
842名無しさん@お腹いっぱい。:2013/04/01(月) 18:51:09.77 ID:BiAOOmrs0
バージョンが5.x 台になったら乗り換えるは
843名無しさん@お腹いっぱい。:2013/04/01(月) 19:18:39.59 ID:YJJ5UoHH0
>>841
MultiLine や Global もだね
プロパティにfalseをセットするのは大丈夫だが、trueだとエラー
なんじゃこりゃw
844名無しさん@お腹いっぱい。:2013/04/01(月) 19:28:49.08 ID:4xShaQOL0
え、エイプリルフールだから(震え声)
845名無しさん@お腹いっぱい。:2013/04/01(月) 19:43:10.30 ID:T9Mvv3ej0
>>840 8にaeroなんてありましたっけ?そこら辺調べてみてもわからないので切り方教えてください
846名無しさん@お腹いっぱい。:2013/04/01(月) 21:18:46.68 ID:zpym0Xtb0
>>845
UWSCのプロパティの互換性タブで
「デスクトップコンポジションを無効にする」にチェックを入れればおk
これが Aero プレビューを実現してるやつ。
847名無しさん@お腹いっぱい。:2013/04/01(月) 21:29:33.32 ID:zpym0Xtb0
テンキーでドット単位でマウスを動かすようにしたけど
範囲が 240x240 くらいあって時間かかりすぎるから
5ドットまとめて動かすようにしてみたらなんか余分に動いてしまう。
1ドットずつのループにしても同じ。
ゲーム側の問題かもしれんが、ずれちゃったら意味がない・・・

ちなみに、マウス自体はちゃんと正確に動いてる。
問題はコントロール対象。
画面キャプチャとかせず、コントロール対象が期待通りに動いてくれることを前提にしてるから
これが狂うとどうにもならん。

どうしたら100発100中になるんだ・・・
848名無しさん@お腹いっぱい。:2013/04/01(月) 21:59:58.72 ID:5GeQ7j940
>>847 ウィンドウ座標を始めにとってそこを基準にきちんとした位置へ移動してるかを確認
849名無しさん@お腹いっぱい。:2013/04/01(月) 22:36:18.90 ID:t/KDxnQX0
>>841
UWSCのバージョンが stable かどうか番号で判りますか?
850名無しさん@お腹いっぱい。:2013/04/01(月) 22:39:19.24 ID:t/KDxnQX0
>>847
マウスポインタの位置をいきなり5ドット飛ばしてるんなら微waitて1ドット移動×5回にしてみたら
851名無しさん@お腹いっぱい。:2013/04/01(月) 22:54:45.27 ID:zpym0Xtb0
>>848
デスクトップ定規でマウスの相対座標チェックしてるから問題ない。

照準の設定はペイントに画像を貼り付けてマウスで移動するのと同じ感覚でできるので
マウスが画面内にありさえすればいいんです。

ペイントで、マウスは10ドット動かしてるのに画像が12ドット動くなんてありえないでしょ。
だけどゲームの方はあるんですよ。
Flashゲームだからかな?
852名無しさん@お腹いっぱい。:2013/04/01(月) 23:33:15.69 ID:zpym0Xtb0
>>850
Sleep はもちろん入れてます

 // 移動
  btn(LEFT, DOWN); sleep(0.1)
  //mmv( G_MOUSE_X + dx, G_MOUSE_Y + dy, 100 ); sleep(0.5)
  ifb dy
   sy = G_MOUSE_Y
   for i = 0 to dy step dy/abs(dy)
    mmv( G_MOUSE_X, sy + i, 0 ); sleep(0.05)
   next
  endif
  ifb dx
   sx = G_MOUSE_X
   for i = 0 to dx step dx/abs(dx)
    mmv( sx + i, G_MOUSE_Y, 0 ); sleep(0.05)
   next
  endif
  btn(LEFT, UP); sleep(0.1)
  x = x + dx
  y = y + dy
 endif
 break
wend

ds = 5 * scalar
if ds = 0 then ds = 1
fukidasi("d:" + ds + " x:" + x + " y:" + y + " ")
853名無しさん@お腹いっぱい。:2013/04/01(月) 23:43:30.49 ID:MzwZWXFN0
操作対象が
グリッドにスナップする機能があれば
別に不思議じゃないかもよ
854名無しさん@お腹いっぱい。:2013/04/02(火) 00:30:43.63 ID:Cyewb6nC0
e1になったよ
855名無しさん@お腹いっぱい。:2013/04/02(火) 11:05:46.64 ID:xcFIqH5y0
>>810-814
UWSC.exe を .uws に関連付けて、.uws を直接開いた場合は .uws の存在するディレクトリがカレントディレクトリになる。
UWSC.exe を起動して .uws を開いてから実行すると、たぶん UWSC.exe の場所がカレントディレクトリになるんだろう。


UWSCのダイアログはマルチスレッド化するとスクリプトで操縦できると思ってたけど、
今やってみたら出来なかったわー。
特定の項目を表示しておくだけだから別ファイルから呼び出すわ。
856名無しさん@お腹いっぱい。:2013/04/02(火) 11:30:31.90 ID:KiWi6GjA0
Flashに問題があって手動操作でもずれるのならなすすべはないな
857名無しさん@お腹いっぱい。:2013/04/02(火) 11:44:00.87 ID:drpHx5r30
>>839
windows8+ie10の組み合わせでCHKING使えてるよ(エアロも特に切ってない状態で)

7+ie10と8+ie10でMOUSEORGの挙動が違って、認識しなくなるので困ってるorz
858名無しさん@お腹いっぱい。:2013/04/02(火) 17:55:28.71 ID:WtCdP4/x0
IEでWebフォームを自動入力させたいのですが、
ドロップダウンメニューでリストから選択するところが出来ません。
IESetDataがうまくいかないです。
859858:2013/04/02(火) 18:12:07.20 ID:wdxSHZlP0
これがソースです。
「男性」を選ばせるにはどうすればよいでしょうか。

<div class="form-element" id="gender-form-element">
<label id="gender-label">
<strong id="GenderLabel">性別</strong>
<div id="GenderHolder" >
<select id="Gender" name="Gender">
<option value="">選択してください</option>
<option value="FEMALE" >
女性</option>
<option value="MALE" >
男性</option>
</select>
</div>
</label>
<span role="alert" class="errormsg" id="errormsg_0_Gender">
</span>
</div>
860名無しさん@お腹いっぱい。:2013/04/02(火) 18:42:08.26 ID:gHFcDRK/0
iesetdataで出来るから色々試せ
861名無しさん@お腹いっぱい。:2013/04/02(火) 19:10:05.45 ID:RkgOU+ju0
RecIE使えば解るんじゃね
862名無しさん@お腹いっぱい。:2013/04/02(火) 19:16:12.81 ID:xcFIqH5y0
> 「男性」を喜ばせるには
に見えた
863名無しさん@お腹いっぱい。:2013/04/02(火) 19:25:20.02 ID:HA4XP5440
ウホッ
864858:2013/04/02(火) 21:33:28.43 ID:wdxSHZlP0
>>860
ううん、色々と試してはいるんですけど…。

>>861
RecIEやってみましたが、なぜかその部分が何度やっても記録されないみたいです。
865名無しさん@お腹いっぱい。:2013/04/02(火) 21:36:26.81 ID:gHFcDRK/0
じゃあ何を試してできなかったのか書けよ
866858:2013/04/03(水) 01:20:07.15 ID:In2EnGws0
>>865
IESETDATA(IE,"男性","Gender")
CLKITEM(IE,"男性")

等です。
どれも全く反応してくれません。
867名無しさん@お腹いっぱい。:2013/04/03(水) 02:50:36.16 ID:m4cNUGzo0
>>866
IESETDATA
もしくはタグ名を記述: "TAG=タグ名"
Value: ラジオボタン等で Nameが共通の場合に Valueを指定する
868858:2013/04/03(水) 02:55:41.11 ID:In2EnGws0
>>867
すみません、そこんところがよくわかってないのかも知れません。
記述の仕方をどう間違えているのでしょうか???
869名無しさん@お腹いっぱい。:2013/04/03(水) 03:26:18.84 ID:m4cNUGzo0
>>868
ああ、ごめん。
ラジオボタンじゃないから関係ないかな。

”男性”は表記だから値じゃない
値は”MALE”
870858:2013/04/03(水) 04:32:35.47 ID:In2EnGws0
>>869
IESETDATA(IE,"MALE","Gender")
CLKITEM(IE,"MALE")

どっちもダメでした。
871名無しさん@お腹いっぱい。:2013/04/03(水) 06:12:00.77 ID:m4cNUGzo0
>>870
CLKITEMのときは表示文字だから”男性”

<div> が気になってた。
<form> なら問題ないけど、<div> では処理できなかったような。

そのソースはUWSCで取得しました?
UWSCでソースを取得してそれなら出来るんじゃないかと思いますけど、
UWSCで取得できないなら動かない。

これラジオボタンの場合だけど、やってみて
IESETDATA(IE, true, "TAG=Gender", "MALE" )


だめなら IE.ALL.Gender.Value = "MALE"


それでもだめならそのコントロールをアクティブにしてスペースキーで選択。
872名無しさん@お腹いっぱい。:2013/04/03(水) 08:54:36.52 ID:CsAotxaI0
IESETDATAなんかより
IE.document.all("Gender").value="MALE"
とか
IE.document.all("Gender").selectedIndex=2
ってやったほうが簡単だよん
873858:2013/04/03(水) 13:14:29.26 ID:In2EnGws0
>>871
IESETDATA(IE,true,"TAG=Gender","MALE")
IE.ALL.Gender.Value="MALE"

どちらもダメでした。
ソースはUWSCでなくIEで取得しました。
コントロールをアクティブにするには、タブ連打するしかないですか?
874858:2013/04/03(水) 13:16:43.59 ID:In2EnGws0
>>872
IE.document.all("Gender").value="MALE"
IE.document.all("Gender").selectedIndex=2

どちらもダメでした。
このドロップダウンメニューよりも上にあるテキストボックスには、
SENDSTRでちゃんと文字を送信できているんですが。
875名無しさん@お腹いっぱい。:2013/04/03(水) 14:10:05.94 ID:m4cNUGzo0
×  IE.ALL.Gender.Value="MALE"
○  IE.document.all.Gender.Value="MALE"
だったわ。
まあだめなんだね。

まあ、自分で使うんならあきらめてTABで移動してスペースだね。
そこは割り切っていかないと。


それより、Bad Eggs のツールは暫定版が完成して当たりまくり。
ただ、計算が高さ固定でやってるから使うときにいろいろ気を使う。

あと、テンキーは普段使ってるんだけど
ついテンキーをクリックしてしまってマウスが動いてしまう。
一応、機能のOn/OffをCtrl+F7とかでやってるんだけどめんどくさくて使わない。

操作もめんどいから人にあげるのは無理かな。
876名無しさん@お腹いっぱい。:2013/04/03(水) 18:44:08.11 ID:03mG8P3A0
そうゆう書き方だとGenderの名前を持つエレメントが複数ある場合にエラーになる
最初(0番目)なら
IE.document.getElementsByName("Gender").item(0).value = "MALE"

たぶん、表示/入力用のフォームと、不可視の送信用フォームを持ったウェブページだろうね
入力されたデータを、JavaScriptでチェック&加工してから、送信用フォームへ入れて送信するタイプ
877名無しさん@お腹いっぱい。:2013/04/04(木) 06:27:19.11 ID:vf/nLfFw0
13年4月4日、午前4時44分44秒
に書き込むチャンスだったのに逃した。
878名無しさん@お腹いっぱい。:2013/04/04(木) 06:59:08.95 ID:DSWu5ewc0
ならこの場合はむしろ
IE.document.getElementById("Gender").value="MALE"
でおk
879名無しさん@お腹いっぱい。:2013/04/04(木) 08:01:13.72 ID:GunHhV1h0
それだとIDが重複してた場合に困るでしょ
880名無しさん@お腹いっぱい。:2013/04/04(木) 08:07:14.93 ID:R5vw5LvS0
サイトのアドレス貼ってもらえば直ぐに解決の予感
881名無しさん@お腹いっぱい。:2013/04/04(木) 11:19:34.63 ID:DSWu5ewc0
IDは仕様で重複して使わないようにされてる
使われてたらそのHTTPのソースがおかしい
882名無しさん@お腹いっぱい。:2013/04/04(木) 11:29:36.86 ID:DSWu5ewc0
HTTPじゃなくてHTMLだな
883名無しさん@お腹いっぱい。:2013/04/04(木) 11:36:37.08 ID:DSWu5ewc0
てかIESETDATAを使うにしても上のCOM操作の方法にしても
CREATEOLEOBJ

GETACTIVEOLEOBJ
の戻り値をちゃんと使ってるかな?

SENDSTRのIDとCOMオブジェクトのIEをごっちゃにしてないよね?
884名無しさん@お腹いっぱい。:2013/04/04(木) 12:41:02.65 ID:lDeIt3W20
1つのレスにまとめられなかったのか
885858:2013/04/04(木) 22:52:25.22 ID:8O/CbCiB0
>>880
https://accounts.google.com/SignUp
ここです。
上に引用したやつは、ソースを一部省略しています。

>>883
どういうことでしょうか。
すみません、もう少し詳しく教えてくださいませんか。
886名無しさん@お腹いっぱい。:2013/04/05(金) 04:50:32.40 ID:2Ax7ahmR0
スクリプトの知識が全く無いですしそんなに手の込んだことをやるわけではないので
マウス操作を記録して使おうと思ったのですが、なんど記録してもうまく記録出来ません
Chromeのウィンドウを10個並べて置いてそれぞれ一回ずつ特定の場所をクリックする、
の単純作業なのですが再生するとウィンドウの並びが変わったりして結果的に記録した時のマウス操作と別物になります
知識が無いなりにも少しだけ調べたのですが、複数のウィンドウを並べてるからアクティブウィンドウが云々みたいな感じで
正確に記録されないのかなと思いました
ウィンドウがどうとかそんな余計なことはしなくていいので僕のマウスの移動とクリックを忠実にトレースするように記録することはできないのでしょうか
余分な時間、マウス移動は記録しない、を試しましたがダメでした
887名無しさん@お腹いっぱい。:2013/04/05(金) 04:57:50.00 ID:01ziGt+o0
>>886
ブラウザの操作を記録できるのは
シェアウェア版で
しかもIEだけ
888名無しさん@お腹いっぱい。:2013/04/05(金) 11:34:44.66 ID:Gduvp6CX0
IE以外もスクリプトを組めばそれなりに動作するけれど
お手軽記録は不可能
889名無しさん@お腹いっぱい。:2013/04/05(金) 12:00:00.50 ID:HeUWRK7n0
>>886
[設定]→[記録方法]→[低レベル記録]→[マウス座標を相対座標で記録する] を OFF で記録してファイルに保存
そのファイルをメモ帳などで開いて ACW の行を全て除去する
890名無しさん@お腹いっぱい。:2013/04/06(土) 06:33:59.57 ID:bVo84azw0
最近
IE.document.forms[0].elements[0].value =
を覚えた者です

現在IE上での操作を勉強中です
任意の入力ボックスに文字を入力するには
フォームとエレメントを指定する必要がある

と色々なサイトを調べてここまでは理解できたのですが
どこのサイトも分かりやすい構造のサイトを例にしていて
「例えばこの入力ボックスはforms[0].elements[6]です」
というように、初めからエレメントが分かっている例しか示してありません

実際にはelements[6]なんて初めから分かりませんし
一体自分が操作したいエレメントは何番目のエレメントなのか
それはどうやって調べることができるのか
この問題がどうやっても解決できません

どうか力を貸してください
お願いします
891名無しさん@お腹いっぱい。:2013/04/06(土) 07:55:58.76 ID:CqePalxtP
                /⌒ヽ⌒ヽ,
               /       ⌒\
               /           ⌒ヽ,
              (               ヽ,
            /⌒\     ,,- ‐ー ‐ - ,,,,.   ゝ
            /      ヽ〆`"         ミ  (
         /      /           ',. \ ヽ     最近IE.document.forms[0].elements[0].value =を覚えた者です
         /       ./ ;.             ,,;,,  ヽ )
    ,,-‐‐-┴--‐、  / ',         ,,.'''"  `ヽ 彡
    /  、゙ヽ、 ‐‐-''   i   ' , ,,,,,       ,r''( ・)ヽ 彡
  /´ .., ヽ,,._)     ミ   〃  ゙゙゙゙''    ′. `"´丿 ヾ.
 /    ヽ,r'  ',.   (    ,r'(・)~,.'      `'''''"     .i
 l    ヽ」.   ',  彡      `"´  ノ  ;   ヽ.     ,' i
 i −'´ll     ', 〆、ミ      ー- ''"  ( ,、_ ,.ツ ヽ   ,' i
 ト──┤     '{ ⌒          ,' U  ,,___,.  ,'  }
 i      !.     \  i、. \     ' ,,.‐''"ニ  i´ ,'  ノ
 |.    i       i       \     ヽ ,,,,.ノ  ! ./
 |    ヘ         \,,,ノi \   ',          i /
 i     ゝ、_       ∧ 、    ‐ - t       ,,λ
. ヽ      ``ー、,___/ .| \      ` ‐---ー"/./ \-─- ,,
   \          ヽ/ |   \        /  /\ /     `,,
     ヽ           /   |    \   /   /   \
892名無しさん@お腹いっぱい。:2013/04/06(土) 08:14:56.66 ID:hMsqe+uu0
>>890
件数調べてループして innerHTML とか innerTEXT とかが探してるやつと一致するか比較して探す。
var length = aNode.childNodes.length;
for( var i = 0; i < length; i++ ) {
window.alert(aNode.childNodes[i].nodeValue
+ "\n" + aNode.childNodes[i].nodeName);
getElementsinfo( aNode.childNodes[i] );
}
}
return 0;
}
893名無しさん@お腹いっぱい。:2013/04/06(土) 13:45:41.61 ID:C7ELQkoL0
プリントタスクが出た段階で処理を行いたいのですが、
負荷無く常時監視的なものは可能でしょうか?
894名無しさん@お腹いっぱい。:2013/04/06(土) 16:24:38.24 ID:YrcY64+h0
>>885
selectじゃなくてdivじゃねーかよクソが
895名無しさん@お腹いっぱい。:2013/04/06(土) 17:36:27.08 ID:hMsqe+uu0
>>894
え?

> <select id="Gender" name="Gender">
間違ってなくね?


>>893
コンパイラ言語を使う。
ほんとのコンパイラじゃなくても、Just In Timeコンパイラを使う環境ならおk。

VBScript, JScript の他、
UWSCから呼び出せる POWERSHELL も Just In Time コンパイラが使える・・・はず。

コンパイルされたスクリプトでずっとループしてれば負荷は軽いはず。
もちろん、Sleep()は適度に必要。

PowerShellでウィンドウハンドルとウィンドウタイトルを取得
ttp://blog.feelthink.net/?p=1045
$psArray = [System.Diagnostics.Process]::GetProcesses()
foreach ($ps in $psArray){
 [String]$ps.Handles + " : " + $ps.MainWindowTitle
}
896名無しさん@お腹いっぱい。:2013/04/06(土) 17:51:15.32 ID:t5yx+KcZ0
Googleアカウントの作成を自動化して何するつもりなんだ
858はスパム業者の疑いがあるな
897893:2013/04/06(土) 18:21:19.32 ID:/TqP9E210
>>895
ありがとうございます。調べて使ってみようと思います。
898名無しさん@お腹いっぱい。:2013/04/06(土) 19:24:47.46 ID:YrcY64+h0
ソースではそうなってるけど実際にはdivで動いてるぞそれ
ブラウザでF12押しながら見てみな
899名無しさん@お腹いっぱい。:2013/04/08(月) 20:27:17.78 ID:Wb59nnyx0
コマンドプロンプトを介す方法になると思うんですけど
今インターネットの接続が
オンラインかオフラインか分かる方法ありますか?
900名無しさん@お腹いっぱい。:2013/04/08(月) 22:12:02.21 ID:OkX33cXg0
>>899
InternetGetConnectedState
901名無しさん@お腹いっぱい。:2013/04/08(月) 23:58:23.22 ID:7N5DLD3d0
ありがとうございます!
902名無しさん@お腹いっぱい。:2013/04/09(火) 00:04:41.44 ID:TlPKnOmD0
ありがとうございます!
903メモ:2013/04/09(火) 09:58:21.36 ID:50tQZAOb0
XSLT  XMLでGUI設計
WSH + SFC mini + Win32API で Windowsネイティブな GUI も使用可能
(ブラウザベースなら UWSC+COM の IEオブジェクトで可能)

機能    PowerShell ≧ WSH + SFC mini
コード量  PowerShell < VBScript < JScript

環境     拡張子   実行エンジン         クラスライブラリ
WSH      .vbs, .js  cscript.exe, wscript.exe    COM
PowerShell  .ps1    powershell.exe のみ      COM と .NET Framework

拡張子  言語
.vbs   VBScript
.js    JScript
.wfs   上記の両方をXMLで記述
.ps1   PowerShell

UWSC + PowerShell で カスタムGUI   #なんだUWSCの説明にあるじゃん
ttp://www.uwsc.info/sample.html#n52

UWSCのみで CreateWindow (DEF_DLL → CreateThread
ttp://d.hatena.ne.jp/junjun777/20120706/uwsc_createwindow

Delphi で RESTサーバー
RAD ツールで簡単GUI
ttp://thinkit.co.jp/story/2011/06/02/2144?page=0,2

RESTはシンプルなSOAP = Windowsの 「COM+」

COM+はNTから標準搭載
SOAP はWindows XP から標準対応
PowerShell はWindows 7 (2009/10/22 発売) から標準搭載
904名無しさん@お腹いっぱい。:2013/04/09(火) 11:24:31.27 ID:XdjqObkK0
>>857
自己レス
>7+ie10と8+ie10でMOUSEORGの挙動が違って、認識しなくなるので困ってるorz

ツールバーの有無でIDが正確に取れていなかったのが原因でした・・・
?ID = HNDTOID(GETCTLHND(IE.HWnd,"Internet Explorer_Server"))

◯ID = HNDTOID(GETCTLHND(IE.HWnd,"Internet Explorer_Server",ツールバーの数))
お騒がせしました
905名無しさん@お腹いっぱい。:2013/04/09(火) 22:21:20.79 ID:cIl5RkSyP
UWSCにGUI設定機能付く予定はありますか
RocketMouseぐらい分かりやすかったらなお良いのに
906名無しさん@お腹いっぱい。:2013/04/09(火) 22:58:20.36 ID:j97lf6vq0
>>905
GUI設定機能って何?
907名無しさん@お腹いっぱい。:2013/04/10(水) 01:06:03.74 ID:KKr6TwpF0
ぐぐってみたけどエディタ一体型ってことか?
908名無しさん@お腹いっぱい。:2013/04/10(水) 08:03:02.30 ID:8lVJakkU0
>>905
じゃあロケットマウス使えばいいんじゃね?
909名無しさん@お腹いっぱい。:2013/04/10(水) 10:45:29.23 ID:W+/E9QGj0
サクラエディタで .uws の色分け設定手順 のメモ

1.設定 - 共通設定
 1.「強調キーワード」 タブ
   ・「セット追加」 ボタン   セット名入力
   ・「インポート」       キーワードファイルを指定
   ・コメントスタイル 行型に 「//」
2.設定 - タイプ別設定一覧
 1.「設定17」などを選んで「設定変更」ボタン
 2.「スクリーン」タブで以下を設定
   ・設定の名前         uwsc
   ・ファイル拡張子       uws
 3.「カラー」タブで以下を設定
   ・強調キーワード1      uwsc
 4.「支援」タブで以下を設定
   ・外部HTMLヘルプの設定    uwsc.chm

キーワードファイル作成手順
1.UWSCのヘルプの検索タブで適当に検索して予約語を開く
2.予約語の全部をエディタにコピペ
3.VK_NUMPAD0 〜 9 などについて個数分コピペ。1〜9 を縦に書いたやつをAlt+マウスで矩形コピペすると早い。
4.定義済み仮想キー について、「正規表現」にチェックを入れて「 \s.* 」を検索して削除。DLL必要。
5.「// 」(全角スペース)を「// 」(半角スペース)に置換。行削除でもいい。
6.改行のみの行を一行選択し、Ctrl+C。次に置換で全角スペースを対象に「クリップボードから貼り付ける」にチェック入れて「すべて置換」
7.CLK_*(CLKITEM関数) とかを関数の説明文からコピペ。矩形で切り取ると早い。
8.配列の「[]」を削除
9.見出しをコメントにするか削除して .kwd とかで保存し、設定画面でインポートして使う。

環境変わってからめんどくさくてやってなかった。
キーワードファイルがなぜかダウンロードできなかったり別のエディタっぽいものしかないし、
スクリプト使いならファイルより手順の方が早いし。
910名無しさん@お腹いっぱい。:2013/04/10(水) 11:51:52.66 ID:nyMpbjjn0
6でクソわろた

\r\n

キーワードファイル頂戴(^q^)
911名無しさん@お腹いっぱい。:2013/04/10(水) 12:38:32.28 ID:v0JIHrgl0
912名無しさん@お腹いっぱい。:2013/04/12(金) 10:07:07.26 ID:iwJ/vIS00
制御文、定数、特殊変数、関数でファイル分け、色分けしてる。
(青、水色、紫、オレンジで)
913名無しさん@お腹いっぱい。:2013/04/12(金) 18:16:51.97 ID:085d3OwT0
Visual Studio のオートコンプリートで楽して入力してるよ(という妄想)
914名無しさん@お腹いっぱい。:2013/04/12(金) 18:20:11.74 ID:du6yM/Ze0
オートコンプリートは秀丸の単語補完でできるだろ
915名無しさん@お腹いっぱい。:2013/04/12(金) 18:20:35.89 ID:ePPMxPz50
サクラエディタにも入力補完機能ある
916名無しさん@お腹いっぱい。:2013/04/12(金) 23:29:06.15 ID:085d3OwT0
ドットを打つとプロパティやメソッドが出て来て便利です〜
917名無しさん@お腹いっぱい。:2013/04/13(土) 08:16:28.80 ID:pU1lIkLg0
ドットを打つとプロパティやメソッドがどっと出て来(ry
918名無しさん@お腹いっぱい。:2013/04/13(土) 14:08:13.87 ID:Y+mjpnZV0
【審議中】>>917
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'
919名無しさん@お腹いっぱい。:2013/04/13(土) 17:14:46.08 ID:jhMZJ3ua0
関数名の後に左括弧を書くと、引数の説明がポップアップ表示されて便利です〜(パラメーター ヒント)
自作関数でも書式通りにコードコメントを書いておくと引数の説明がポップアップするよ!
920名無しさん@お腹いっぱい。:2013/04/14(日) 01:25:55.15 ID:M1Pr4lAs0
プログラムのプの字も分からなかったけど、目的のスクリプトがなんとか書けてちゃんと動いてくれた!
嬉し過ぎて小便漏れそう
921名無しさん@お腹いっぱい。:2013/04/14(日) 02:30:58.80 ID:GfIOF68Q0
補完されないなあと思ったら手動だった
・Ctrl+Space  補完候補表示

・キーワードの後ろに /// でコメントを書くと説明文表示
 だから>>909 で // を削ってるけど、むしろ /// に置換すべきだった
・コメントは ; なので、コメントを残すなら // を \r\n; に置換。

ついでに
・F1       キーワードヘルプ

ショートカットキー見たら便利な機能があるね。
Ctrl+\    このファイルのパス名をコピー
Alt+; (:)   日付 (時刻) を挿入。エクセルもこれのCtrlだったっけ。

Shift+Ctrl+L  キーマクロの実行 ×
Shift+Ctrl+M  キーマクロの記録開始/終了

Ctrl+[      対括弧の検索
F12 (+Shift)  タグジャンプ (戻り)

F2 (+Shift)  次の (前の) ブックマーク
F2+Ctrl    ブックマークの登録・解除
922名無しさん@お腹いっぱい。:2013/04/14(日) 12:34:41.44 ID:wnsfvqgn0
>>921
VSやEclipseとは比べようもないけど、
サクラエディタは無料でこれだけ出来て神レベルだね。
キーワードファイルがネットに公開されてるのもサクラエディタだし、
事実上のUWSC開発環境はサクラエディタだわな。
923名無しさん@お腹いっぱい。:2013/04/14(日) 12:48:30.47 ID:OyKJMlle0
普通のテキストエディタで充分
924名無しさん@お腹いっぱい。:2013/04/14(日) 13:12:34.69 ID:GfIOF68Q0
1.UWSCのヘルプの検索タブで適当に検索して予約語を開く
2.予約語の全部をエディタにコピペ
3.VK_NUMPAD0 〜 9 などについて個数分コピペ。1〜9 を縦に書いたやつをAlt+マウスで矩形コピペすると早い。
正規表現にチェックを入れて「^//_」を「;_」に置換

4.定義済み仮想キー について、「正規表現」にチェックを入れて「 \s.* 」を検索して削除。DLL必要。
「正規表現」にチェックを入れて「[^;]_」を「\r\n」に置換
「正規表現」にチェックを入れて「\(_」を「\r\n;_」に置換

5.「//_」(全角スペース)を「//_」(半角スペース)に置換。行削除でもいい。

6.改行のみの行を一行選択し、Ctrl+C。次に置換で全角スペースを対象に「クリップボードから貼り付ける」にチェック入れて「すべて置換」

7.CLK_*(CLKITEM関数) とかを関数の説明文からコピペ。矩形で切り取ると早い。
8.配列の「[]」を削除
9.見出しをコメントにするか削除して .kwd とかで保存し、設定画面でインポートして使う。
925名無しさん@お腹いっぱい。:2013/04/14(日) 13:48:51.93 ID:apy43gz20
サクラのステマがひどくてインスコしそう
926名無しさん@お腹いっぱい。:2013/04/14(日) 13:51:09.39 ID:xCP/j1FI0
emacsで十分。
927名無しさん@お腹いっぱい。:2013/04/14(日) 14:03:19.23 ID:p4Yud3X60
サクラは秀丸が業務都合で入れられない環境の人には助かるんだろうな
割れてるからどんだけの人間が正規ライセンスで使ってるのかは不明だけど
値上げ前に買ったライセンス持ってるのでメーラーも鶴亀使ってるけど

まあ標準的な機能についての操作感は殆ど同じだし、いいんじゃない?
928名無しさん@お腹いっぱい。:2013/04/14(日) 14:29:17.07 ID:GfIOF68Q0
全角スペース入れようとしてタブ+スペース入れたら書き込まれた

コメントを削除してたのを残すようにしてみた
と思ったら /// ってキーワードヘルプ(.khp)だった。
強調キーワード(.kwd)の書式と勘違いした・・・



>>924の「[^;]_」は間違い
「;」以外の1文字を削ってしまった。
やっぱりなれないことするときは
置換前に検索で色分け状態見るとか
数件検索+1件ずつ置換で様子見てからしないとな。

ピリオドでプロパティを出すみたいなのはこれじゃできないよな。
929名無しさん@お腹いっぱい。:2013/04/14(日) 14:43:24.76 ID:TfqwkZkW0
グーグル日本語入力使えば予測変換だけで書けるようにもなるで
930名無しさん@お腹いっぱい。:2013/04/14(日) 17:37:31.80 ID:IdelvdG+0
俺もサクラ支援
UWSC4用キーワードヘルプファイル
http://www1.axfc.net/uploader/so/2868631

[設定]→[タイプ別設定]→[キーワードヘルプ]
[キーワードヘルプ機能を使う] ON
[...]ボタンから上記のファイルを選択したあと[挿入]を押す

単語の上でダブルクリックするなどして語を選択すれば
ツールチップとしてヘルプが表示される
931名無しさん@お腹いっぱい。:2013/04/14(日) 18:02:07.93 ID:6/NJnMssP BE:235332353-2BP(1)
でもやっぱり秀丸最強
932名無しさん@お腹いっぱい。:2013/04/14(日) 21:13:14.71 ID:wnsfvqgn0
>>930
ありがとう
引数ウル覚えの関数書く時にHELP起動する手間がだいぶ省けるね
これ自作関数についても作れないこともない訳だなぁ
933名無しさん@お腹いっぱい。:2013/04/15(月) 14:13:32.14 ID:n7RJx3dO0
>>903
>>905

ちょっと常駐画面が必要になったんだけど
ネイティブのRADツールよりもDOMアクセスしたほうが簡単じゃないかなと、
やっぱりHTMLで画面作ったほうがいいかなと思ったんだけど
できるだけUWSCと一体でやりたいので
PowerShell でも使える WPF っていいかもと。

> Windows Presentation Foundation (WPF) はマイクロソフトが開発した、
> .NET Framework 3.0以降に含まれるユーザインタフェースサブシステムである。

.net を使ってる人もいるみたいだけど1GB以上あるし重い。
.net っぽい機能を持ってるフリーのツールをちょっと入れてみたけどなかなかよいので

Microsoft Expression Web 4  114MB XAML を GUI で作れるツール。このバージョンから無料化。
PowerGUI              13MB PowerShell エディタ


Expression Design はベクターでお絵かきだからUWSCとは無縁かな。


Microsoft Expressionが終了へ、「Expression Web」「Expression Design」は無償化
「Expression Blend」は「Visual Studio」へ統合
ttp://www.forest.impress.co.jp/docs/news/20121221_579871.html
934名無しさん@お腹いっぱい。:2013/04/15(月) 21:46:57.71 ID:n7RJx3dO0
HTML が ネイティブの RAD ツールと違うのは
自由な配置をするときに DIV レイヤー をまず設置しないといけないところ。
しかもなんか中に設置したフォームがこれにフィットしない・・・(横幅は100%でフィットするけど)


以前、スケジュール登録したいという人がいたけど、PowerShell 3.0 にその機能がある・・
ttp://winscript.jp/powershell/237

メモ:
リリース時期 PSバージョン  対応 .net バージョン
2006年11月 PowerShell 1.0  = .NET Framework 2.0
2009年10月 PowerShell 2.0  = .Net Framework 2.0 Windows 7 で標準搭載
2012年 9月  PowerShell 3.0  = .Net Framework 4.0 Windows 8 で標準搭載

ttp://toro.2ch.net/test/read.cgi/tech/1359863558/850-851
935名無しさん@お腹いっぱい。:2013/04/15(月) 22:30:54.40 ID:KhvDQJ2o0
チラ裏にでも書いてろよ
936名無しさん@お腹いっぱい。:2013/04/15(月) 23:12:59.23 ID:n7RJx3dO0
ok. そうする


PowerShell + WPF で作った GUI 画面からどうやってUWSCにイベント通知するか。
ウィンドウメッセージなら >>903 の UWSC で ウィンドウプロシージャを作って受け取る方法もあることはあるけど
・・・
XML を PowerSell で呼び出したら .net のコントロールになるのかな?

Microsoft Expression Web 4 で作れたのは XML だから当然 IE で開くものだと思って調べてみた。
UWSC の OleEvent で StatusTextChange を登録して ステータスバー経由でイベントを渡せばいいんじゃないかと。
そういえば以前それをやるって人がいたような。
OnClick とか OnChange とかでステータスバーに情報を送ってイベント実行。
これで Web デザインの GUI からマウス制御を呼び出せる。

.net のウィンドウだったなら・・・
キーイベント発行するかな。
ループは好きじゃないんで。
937名無しさん@お腹いっぱい。:2013/04/16(火) 01:06:53.95 ID:w5qaGlXY0
PowerGUI にコンパイル機能 2013/02/24 23:00
ttp://manamana.ddo.jp/blog/post/PowerGUI-%E3%81%AB%E3%82%B3%E3%83%B3%E3%83%8F%E3%82%A4%E3%83%AB%E6%A9%9F%E8%83%BD.aspx

PowerGUI ScriptEditorでps1とdllをコンパイルして実行可能形式(.exe)にする 2月 5, 2013
ttp://guitarrapc.wordpress.com/2013/02/05/powergui-scripteditor%E3%81%A7ps1%E3%81%A8dll%E3%82%92%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%99%E3%82%8B/


DLLをEXEに含め、解凍できるということなので
書庫の自動実行をやってるだけっぽいけど
.ps1 が実行不可の環境でも実行できるようになるらすい。
938名無しさん@お腹いっぱい。:2013/04/16(火) 05:26:27.45 ID:K44WBk+U0
IEやfirefoxを介さずに
サイトのソースを取得する方法ってありますか?
APIかコマンドプロンプトを使うことになりそうな感じがしますが
939名無しさん@お腹いっぱい。:2013/04/16(火) 07:12:43.94 ID:IdM0hY9D0
>>938
ありますん

MSXML2.XMLHTTP で GET を Send して
ADODB.Stream で SaveToFile する感じで
940名無しさん@お腹いっぱい。:2013/04/16(火) 10:58:57.01 ID:M9bZ1zBf0
941名無しさん@お腹いっぱい。:2013/04/16(火) 23:14:39.34 ID:VOwLeBUr0
>>939
事実上IE(の通信機能)を使ってるような
統合だから気にしない
942名無しさん@お腹いっぱい。:2013/04/17(水) 05:47:22.32 ID:3eh5JW0A0
あ、すいません
ブラウザをわざわざ開いて、ソース表示させてコピペするとかじゃなくて
APIでスマートに取れるならIEでも大丈夫ですっ。というわけで
ありがとうございます
943名無しさん@お腹いっぱい。:2013/04/17(水) 10:17:07.79 ID:MlgeKRkB0
それならieのvisible=falseでよかったんじゃ・・・
944名無しさん@お腹いっぱい。:2013/04/17(水) 11:42:20.61 ID:9LYRRwah0
あんま他ソフト通すと
同期ミスが多くなるからな
気持ちは分かる
945名無しさん@お腹いっぱい。:2013/04/17(水) 19:17:38.44 ID:mv7L8Rgs0
>>943
同じこと思った
946名無しさん@お腹いっぱい。:2013/04/17(水) 23:06:59.47 ID:2amuLwIV0
IE6まではあれだから嫌われるけど7以降は普通のOS標準ブラウザだと思う
947名無しさん@お腹いっぱい。:2013/04/19(金) 05:33:55.45 ID:myJA2SMD0
UWSC.INIに直接書いてるんですが
変更を設定でいじるまで受け付けてくれません
iniを読み込んでくれる方法とかないですか?
948名無しさん@お腹いっぱい。:2013/04/19(金) 08:06:55.97 ID:3VThjvWH0
>>947
エスパー回答するけど
POFF(P_UWSC_REEXEC)
でUWSC再起動するのが早いと思うよ
949名無しさん@お腹いっぱい。:2013/04/19(金) 10:42:49.31 ID:0vGmo18XP
あるよ
950名無しさん@お腹いっぱい。:2013/04/19(金) 10:59:14.04 ID:khXQGVpb0
READINIしてないだけじゃないの?
951名無しさん@お腹いっぱい。:2013/04/19(金) 11:14:11.01 ID:oHyNU3B60
再起動だけじゃ無理じゃ無いっけ?
952名無しさん@お腹いっぱい。:2013/04/19(金) 13:57:19.56 ID:Zd4FwKEI0
UWSC Pro版のGUIってHTML+IEですよね。
あれちょっとあんまりうれしくないと思ってたんだけど・・・

UWSC と他スクリプトとのデータ連携とか通信とか考えていると
やっぱりデータを共有できるCOMが一番使いまわせるだろうなと思った。
イベントもあるし。
で、データ共有のための(軽量な)COMって・・・どこにあるのか分からん。
できればイベントも使いたい。というか使えないと効率悪い。
仮にあったとしても、見れないとデバッグしにくい。

そしたら、IEですべて解決。
だった。

テキストボックスへの入力とかはブラウザ上のスクリプトは実行できるけど
イベントは発生しないのでステータスバーとか使うしかないけどできる。
表示したくないデータも非表示のコントロールでいける。
----
HTAはIEみたいなもんだけどCOMサーバーがないっぽい。
けど、スクリプトでキーイベント発生できるからUWSCを呼ぶことはできる。
COMオブジェクトのステータスバーを配置することもできる。

Powershell+WPF(.net)っていいけど、COMサーバーじゃないよね。あるのかな?
これも自分で配置すれば使えるんだろうけど。
953名無しさん@お腹いっぱい。:2013/04/19(金) 14:37:10.46 ID:khXQGVpb0
GUIってCREATEWINDOWの事か?
http://d.hatena.ne.jp/junjun777/20120706/uwsc_createwindow
知識さえあれば出来るっぽいよ
かなりめんどくさそうだしそこまで作りこむ気なら普通にCとかで作ったほうがいいと思うけど(UWSCはアプリ作成ツールではないんだし)
954名無しさん@お腹いっぱい。:2013/04/19(金) 15:55:01.60 ID:Zd4FwKEI0
>>953
DLLでもCOMでもいいんだけど、
とにかく複数のコントロールを使ったウィンドウが扱えることと、
今欲しかったのはそのウィンドウを表示したままでそのウィンドウからUWSCのスクリプトを制御できる機能ね。

で、CreateWindowはめんどくさいのでWin32APIでもPowershellでも敬遠したいところ。
そのサンプルでもまあいいんだけど


>>933 でXAMLを作れると書いたけど間違いだった。
あれはXHTMLなのでブラウザでしか使えなかった。

XAMLをGUIで作れるのは Expression Blend。VS2012を入れた上で追加で入れる。
古いバージョンなら単独で入れられるけどインストーラーで350MBあった。

こんな大きいのは入れたくないのでXAMLは手書きするかあきらめる。


XHTMLだろうがHTMLだろうが、それを解釈するパーサがあれば簡単に処理できそうだけど・・・
IEとかで読み込めばいいんだよね。
位置を扱えないと使いにくいけど。
955名無しさん@お腹いっぱい。:2013/04/19(金) 16:15:21.76 ID:3KkoML3A0
スクロールがだるかったけど
iniっての触ればよかっただけか
俺も聞きたいんだが結局どうやるの?
956名無しさん@お腹いっぱい。:2013/04/19(金) 21:45:42.87 ID:5aI8SkI50
>>954
http://www.vector.co.jp/soft/win95/prog/se177026.html
このWSH用GUIのCOMコンポーネント試すといいよ
957名無しさん@お腹いっぱい。:2013/04/20(土) 02:56:22.89 ID:LUPJybjI0
>>956
試してるとこ

最初エラー → COM登録
やっぱりエラー → 64ビットでの登録がない
%SystemRoot%\SysWow64\cscript.exe で vbs を実行でいけた。

それをUWSCに移植・・・できない。
イベントをどうやるのかと思って me の代わりに THIS を入れてみたけどやっぱり駄目。
OLEEVENT するも・・・インタフェース名がわからない。オワタ
バイナリのぞいて試したら _IOverlappedWindowEvents だった
その先の DoModal() で引っかかった。
Open() でも駄目だった。
Unknown型からDispatch型へのバリアント変換はできませんって言われる。オワタ

動けば .net より軽くていいかと思ったけど駄目だな。
でも、WSH使うときは利用させてもらうよ。


PowerShellも単独で動かそうとしたらセキュリティかかってて・・・
解除するコマンド動かしたけど変化なかった。
管理者として実行してないからか。
セキュリティがめんどくさいからPowerShellは別スクリプトから呼ぶのがいいかも。
958名無しさん@お腹いっぱい。:2013/04/20(土) 15:01:23.98 ID:1o/SCLc20
UWSC COM版をPro版に入れてくれれば、全て解決するんだけどなw
959名無しさん@お腹いっぱい。:2013/04/20(土) 15:40:40.21 ID:LUPJybjI0
seraphyscripttools ってやつでも結局 PowerShell みたいに実行時に作っていく形。
素のW2kやXPでも使えるけど、
それだったら .net 3.5 をXPに入れたほうが早いかな。
W2kは僕も持ってるけど使ってないし。

OS  付属.net 使用可能バージョン
W2k  なし   1.0 〜 2.0
XP   1.0(MCE) 1.0 〜 4.0
Vista  3.0    1.1 〜 4.5
W 7  3.5    2.0 〜 4.5
W 8  3.5, 4.5 2.0 〜 4.5

WPF なら XAML のデザインツールも使える。
ちょっと大きいので使いたくないけど、表記もXHTMLよりはシンプルなので
軽量なツールでデザインを確認しながら記述する方法もある。

PowerShell 3.0 を使うとW8との互換性が取れなくなるけどそんなに使い込まないだろう。

.net 4.0〜4.5 PowerShell 3.0 DLR  PSObject は真のダイナミックオブジェクト
.net 2.0〜3.5 PowerShell 2.0 CLR  PSObject は ETS(Extended Type System 拡張型システム)の メンバ
960名無しさん@お腹いっぱい。:2013/04/20(土) 15:43:01.03 ID:LUPJybjI0
>>958
vbscriptとかをCOMで呼び出せるみたいだけど
型とかイベントに互換性がないと単なるバッチ処理で終わる。

あと、UWSCはゲームでよく使われているけど
ゲームって結構タイミングがシビアだから
COMとかで呼び出してても期待通りには動かないんじゃないかな。
961名無しさん@お腹いっぱい。:2013/04/20(土) 20:57:14.84 ID:1o/SCLc20
objUwsc.mouseMove(x, y, 300)
などとやれればいい。
「ウィンドウ関数」と「ウィンドウ関数低レベル」以外は
メジャーな言語がそれぞれ高レベルなライブラリを既にいくらでも持っていて
UWSCで実装されても車輪の再発明しかも劣化版にしかならない感触がある。
962名無しさん@お腹いっぱい。:2013/04/21(日) 21:56:19.04 ID:gKfeRzF90
seraphyscripttools は駄目だったけど
SeraphyScriptDialog ならいけたよ。

イベント関数が使えないっぽいけど
イベントがあったらそのコントロールの番号(作った順)が
GETKEYSTATE関数と同じようにループで受け取れるからまあ普通に使えると思う。

seraphyscripttools の方がレイアウト自由だしイベント登録できるからいいんだけど
SeraphyScriptDialog の方もとりあえず使うには簡単かな。
レイアウト自由でもどうやって記述しようかとか考えちゃうし。
963名無しさん@お腹いっぱい。:2013/04/22(月) 22:58:24.26 ID:KBdQTYo+0
初歩的なこと教えてください

x=0
while x<1000
x=random(1001)

print x
wend

xが1000以上になったら止まるプログラム(?)です

宝くじみたいに1回出た数字は出てこないようにして
1001のランダムの数字が限られてくるってしたいんですけど
どうすればいいですか?
964名無しさん@お腹いっぱい。:2013/04/22(月) 23:16:08.08 ID:g+5ja1hj0
965名無しさん@お腹いっぱい。:2013/04/23(火) 00:10:51.22 ID:4h1M+kK30
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=144&log=ON&cnt=2

dim a[1000]
for i=0 to length(a) -1
a[i] = i
next

sub_shuffle(a)

for i=0 to length(a) -1
if a[i] >= 1000 then break
print a[i]
next

procedure sub_shuffle(var a[])
dim n = length(a)
dim i, r, tmp
for i=0 to n -1
r = random(n)
tmp = a[r]; a[r] = a[i]; a[i] = tmp
next
fend
966名無しさん@お腹いっぱい。:2013/04/24(水) 00:12:58.74 ID:FcFHarq00
あれからいろいろ調べてたが
SFC mini とかにたどり着いたものの
画面を作るのがスクリプト手書きじゃ難しい。

COMのシェル機能でexeを呼び出す方法ではマウスの制御は遅すぎるし
マウス制御ができるからといってコンパイル言語じゃあコードがめんどくさいかな。

画面のレイアウトが大事ならやっぱり本格的なプログラミング環境かHTMLエディタしかない。
もちろんスライダーとかはHTMLじゃ使えないのでプログラミング環境しかないとなるので
それが簡単に操作できるのはUWSCのような制御ソフトとなる。

ただ、
SFCmini にしても seraphy のダイヤログにしても、
イベントとスクリプトを簡単に結びつけるなら VBScript とかのメジャー言語か
HSP や AHK のようにサポートツールの多いツールがいい。

かなり回り道をしたけど、とりあえず今作りたい奴はIEで制御することにする。
967名無しさん@お腹いっぱい。:2013/04/24(水) 01:08:44.22 ID:FnHyCfB+0
ひとりごとならブログにでも書いておけよ
968名無しさん@お腹いっぱい。:2013/04/24(水) 16:44:20.96 ID:C1Va0EDr0
ロボットマウスくんの使い方が説明読んでもわかりません。どなたか教えていただけないでしょうか?
やりたい事はWebフォームの応募を連投したいのですが。
969名無しさん@お腹いっぱい。:2013/04/24(水) 17:45:18.28 ID:7W5lopTs0
>>968
ひとりごとならブログにでも書いておけよ
970名無しさん@お腹いっぱい。:2013/04/24(水) 18:31:12.96 ID:FcFHarq00
UWSCでいろんなことができるけどどうせなら画面が作れるといいじゃないですか。
もちろん 他アプリとか exe を作るのもいいんだけど別プロセスなのでタスクバーにアイコン増えちゃうし
イベント受け取れないので終了のタイミングが分からない。(IE使えば受け取れるけど)

DLLでダイヤログ表示する方法もあるんですよね。
ttp://homepage2.nifty.com/jr-kun/hidemaru_qa/make_dll.html#window

しかし、画面の定義が面倒だからHTMLを取り込むことになるかなあと。
XAMLを自分で作って取り込むくらいなら PowerShell WPF で .net 使うし。

C + Lua なら他人が作ったDLLで自分でデザインできるけど すでに取り上げたCOMオブジェクトでできる・・・

結局自分がツール知らないだけなんだなと比較材料集めてみた。
ttps://docs.google.com/spreadsheet/ccc?key=0AnJADoDttLA2dDhmU1dDR2s1R2tQcmJNQW5UYWVraFE#gid=0
そういえば連携にはメッセージやイベント、オブジェクトのやり取りが必要だった。
971名無しさん@お腹いっぱい。:2013/04/24(水) 19:05:14.86 ID:8sALi5j00
972名無しさん@お腹いっぱい。:2013/04/24(水) 19:07:37.76 ID:FcFHarq00
>>971
他にいいツールとか比較とかまとめたところがあれば教えてくれる?
973名無しさん@お腹いっぱい。:2013/04/24(水) 21:47:41.68 ID:7EQnAf0v0
ここはuwscスレだボケ
974名無しさん@お腹いっぱい。:2013/04/24(水) 21:55:51.56 ID:FcFHarq00
UWSCの使い方としてDLLやCOMを使ったりPoweShellを使ったりする方法があるわけで。

比較検討するスレがあればいいけどないからここで。
どうせ埋めるだけのスレだし。
975名無しさん@お腹いっぱい。:2013/04/24(水) 23:17:20.20 ID:4GpKM5W10
ID:FcFHarq00死ねカス
976名無しさん@お腹いっぱい。:2013/04/25(木) 00:48:12.19 ID:sKVIOrSa0
いや、続けていいよ。
GUIでデザインできて軽くて無料でUWSCからでさえ簡単に使えるフォーム探してくれよ。
俺有料版持ってるけど設定画面表示するためだけにIE表示するとか重すぎて嫌なんで。
977名無しさん@お腹いっぱい。:2013/04/25(木) 05:36:58.18 ID:XemAR8/h0
>>976
◆画面出すだけなら .htm を .hta にすると起動が少し早くなるけど
IE と違って COM サーバー機能がないので UWSC から操縦できない。

けど便利なのでサンプルを動かしてみるといいよ。

他の .hta ファイルを開いてデータをやり取り
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20100218/344797/?ST=develop&P=5

.hta でテキストエディタ
ttp://www.mermaid-tavern.com/tomato/pc8/soft_0702.html

問題は連携手段。
.hta は COM を使えるので shell.run で .uws を呼び出せるけど、それも時間かかるからねえ。

◆そういえば COM としてコントロールを配置することもできるんだった。
COM のコントロールなら UWSC から普通にコントロールできるんじゃないかな。
VB6 用の MSComctlLib が使えるはず。
使ったことないのでよく分からんが、ステータスバーを表示するサンプルが hta のスレにあった。

<object classid='CLSID:8E3867A3-8586-11D1-B16A-00C0F0283628' />
てコードを入れると、ステータスバーがデザイナで自由にレイアウトできる。


◆ダイアログをDLL関数として呼び出す方法
C言語ならRADツールで作って表示できるからとにかく速くて軽い。
レイアウトの記述方法を覚える必要がない。
ただし、多少のコードを記述しないといけない。
ttp://homepage2.nifty.com/jr-kun/hidemaru_qa/make_dll.html#window

無料で軽量なツールとして、BCC5.5コンパイラと BCC Form がある。
.net ならVS2012とかも使えると思うけど・・・IE や hta と変わらないかも。
978名無しさん@お腹いっぱい。:2013/04/25(木) 06:26:02.96 ID:XemAR8/h0
MSComctlLib って基本のコントロールがないな・・・
リストビューを経由してデータをやり取りすることはできるけど
HTML側で全部のコントロールにデータをコピーするコードを入れないと・・・
あ、me とか this を使えば共通コードでいけるか。
けど検証がめんどくさいな。

comctrl.dll のコントロールをラップするCOMオブジェクトがあれば
HTMLエディタで自由に配置できるけど
コントロールが増えると遅くなるだろうな・・・
しかも、HTMLのスクリプトからは使いにくくなる。
とりあえず探してみたけどちょっと見つからん。


MSComctlLib の一覧
ImageComboCtl  画像?
ImageListCtrl  画像?
ListViewCtrl   リストのリッチな奴
ProgCtrl     プログレスバー(メーター)
SBarCtrl     ステータスバー
Slider      スライダー(音量とかいじるやつ)
TabStrip     タブでグループ分けするやつ
Toolbar      ツールバー
TreeCtrl     ツリー(エクスプローラーのフォルダとか)
979名無しさん@お腹いっぱい。:2013/04/25(木) 07:11:34.17 ID:XemAR8/h0
ttp://dev.onionsoft.net/seed/info.ax?id=305
ttp://dev.onionsoft.net/seed/upfiles/conv305.jpg

これはHSP用のRADツールだけど、普通のアプリと同様のコントロールなんじゃないかな。
exe ファイルを起動するのと大して変わらないと思うけど
一応 HSP3imp.dll の関数から呼べる。はず。

スレッド実行すればUWSCの関数でコントロールできるんじゃないかな。

HSPで作ったボタンでキー発行してUWSCのキーイベントで受け取るとかはできると思う。


UWSCを呼ぶ方法
HTML  ステータスバーなどの IEイベント
HTA   COM→Shell→DLL→キー発行
HSP   DLL→キー発行
AHK   {keycoe}などのキー発行でいけるが連携必要ないような

HSP
#uselib "user32.dll"
#func keybd_event "keybd_event" int,int,int,int
ttp://hspnext.com/docarc/docarc01.htm

もちろん、画面があるんだからUWSCのループで監視することもできると思うけど
コントロールが増えると遅くなるし、ボタンに反応できない場合があるのでお勧めしない。
ボタンをチェックボックスの動作で作れば確実に反応できるけど。
980名無しさん@お腹いっぱい。:2013/04/26(金) 12:53:23.57 ID:s5suSfTt0
どなたかコレをEXE化していただけないでしょうか

http://www1.axfc.net/uploader/so/2881587
981名無しさん@お腹いっぱい。:2013/04/26(金) 14:20:58.54 ID:EFyc94Sr0
>>980 何個かファイルあるけど全部?
982名無しさん@お腹いっぱい。:2013/04/26(金) 14:55:10.00 ID:s5suSfTt0
そうです!反応してくれる方がいらっしゃるとは!
983名無しさん@お腹いっぱい。:2013/04/26(金) 15:10:44.41 ID:Uyn1CVZX0
>>3
★4 ★5
作者が有料版で配ってる機能の代行依頼は不正利用に該当



あ、スレ間違えたw
984名無しさん@お腹いっぱい。:2013/04/26(金) 15:11:51.94 ID:s5suSfTt0
(´;ω;`)残念です・・・仕様を試したかったのですが・・・
985名無しさん@お腹いっぱい。:2013/04/26(金) 15:17:12.53 ID:s5suSfTt0
もしコッソリ変換して送ってくれる方がいましたら 
[email protected]にお願いします><
986名無しさん@お腹いっぱい。:2013/04/26(金) 15:26:24.13 ID:EFyc94Sr0
メールとか面倒臭いわ
http://www2.axfc.net/uploader/so/2881695
987名無しさん@お腹いっぱい。:2013/04/26(金) 15:29:08.07 ID:s5suSfTt0
感謝あああああああああああああ!!
988名無しさん@お腹いっぱい。:2013/04/26(金) 20:40:48.93 ID:2BivjPBE0
>>976
もし、IE にアドオンいろいろ入れてて重くなってるんなら
起動オプションでアドオンなしにするといいかも。

-extoff  : IE7 以降対応。IE を "アドオンなし" モードで起動する。
       アドオンのトラブルシュートでよく使われる。

でも普通はUWSCからCOMを作るから起動オプションとか指定できないんだよね。

そういえばIEが起動/終了するとき、Jane とかがせわしく表示切替てるんだよね。
だけど .hta を開いてもそういう事象は起こらないから、.hta にすれば起動速度の問題は解決するかも。
でも hta はCOM鯖もないしネイティブコントロールでもないからUWSCからアクセスできない・・・


64ビット版のIEを起動してみたけど
COMサーバーとしては32ビットアプリからも利用できるんだね。
ただ、32ビットですでに起動しているとそっちをゲットしてしまう。
特定のHTMLを起動時に読み込んでウィンドウタイトルも指定していればいけるかな。
あんまり意味ないとは思う。

ちなみに、普通にIEを起動すると32ビット版が動いてる。
989名無しさん@お腹いっぱい。:2013/04/26(金) 23:17:18.34 ID:2BivjPBE0
64ビットIEを使う絡みだけど

IEの起動引数でファイル名を指定すればスクリプト入りのHTMLを自動で開けるけど
どうせならファイルを使わずにコマンドラインだけでいきたいと試したけどだめだな。

IEのアドレスバーで javascript をコピペするときも、”javascript:”は手打ちしないといけなくなってるし、
アドレスバーでは動くスクリプトも起動引数で渡しても動かない。
ダブルコーテーションを使わないと 「:」 の前をドライブ文字として省いてしまうっぽい。

ファイルを使うしかないな。

ファイル・・というか、HTMLを使うと何がいいかというと、タイトルバーの文字列を指定できるし、
クリップボード経由で起動完了したことが確認できること。
990名無しさん@お腹いっぱい。
クリップボードを使う方法はだめやった

ローカルファイルだとスクリプト入りHTMLはブロックされるからマウスクリックする必要がある。
WebサーバーにHTMLを置けば解決するけど
場合によっては数百ミリ秒かかるから
普通にスクリプトのないHTMLでウィンドウタイトル+ウィンドウクラスで監視ループしたほうがマシか。