自動化ツールuwsc使い ..
681:名無しさん@お腹いっぱい。
07/02/20 19:23:08 Xpux+e7b0
>>675
>>680以外ではGETITEMとか
//例(Jane): ステータスバーの表示が "|0 |完了 " になるまで待つ
repeat
GETITEM(ID, ITM_STATUSBAR)
sleep(0.2)
until all_item_list[0] + all_item_list[1] = "0完了"
682:名無しさん@お腹いっぱい。
07/02/21 01:04:00 wkuVEwNm0
1.WEBサイトの特定の英語のテキスト箇所をコピー。
2.翻訳サイト(Excite翻訳など)のフォーム部分に先程コピーしたテキストをペースト。
こんな感じの流れはこのソフトで可能ですか?
683:名無しさん@お腹いっぱい。
07/02/21 01:43:41 U+6PFKs/0
可能ですけど、2. をするくらいなら直接 http で POST しちゃって、
結果をツールチップで表示とかのほうがいいんじゃ。
むしろ、そういうことをしてくれるソフトやアドオンはいっぱいあるんじゃ。
684:名無しさん@お腹いっぱい。
07/02/21 01:56:38 oJndc07q0
RECタブブラウザ作ってください、IEは操作途中に落っこちちゃうんだよね
685:名無しさん@お腹いっぱい。
07/02/21 02:09:31 dZEZ/RMS0
>>682
GoogleもGooもExciteも全部uwsc(w
// 選択範囲をコピーするウインドウIDの取得
FUNCTION MUSI()
FOR I=0 TO GETALLWIN()-1
T=STATUS(ALL_WIN_ID[I],ST_TITLE)
C=STATUS(ALL_WIN_ID[I],ST_CLASS)
// 無視するウインドウ
IFB T=""_
or C="TApplication"_
or POS("#",C)>0
or POS("UnicodeClass",C)>0
// とか
CONTINUE
ELSEIF C="Progman"
MSGBOX("ERROR: ウインドウがない")
EXITEXIT
ELSE
BREAK
ENDIF
NEXT
RESULT=GETID(T,C)
FEND
686:名無しさん@お腹いっぱい。
07/02/21 02:35:02 wkuVEwNm0
夜分遅くにレスありがとうございます。
参考にして色々試してみます。
687:名無しさん@お腹いっぱい。
07/02/21 22:35:01 4wiCaUFR0
うあ、、、、これ便利すぎるw
688:名無しさん@お腹いっぱい。
07/02/22 06:36:09 2kS6WF+F0
質問です
複数の画像を指定して、その画像毎に違ったアクションをさせるにはどうすればいいですか?
サンプルの
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
while True
if GETKEYSTATE(VK_ESC) then exit
MMV(G_SCREEN_W, G_SCREEN_H)
ifb CHKIMG("test.bmp")
〜〜処理〜〜
break
endif
sleep(1)
wend
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
のSleep後に
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ifb CHKIMG("test.bmp")
〜〜処理〜〜
break
endif
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
を処理する数だけ加えていけば可能ですが、
もう少しすっきりさせる為に皆さんの知恵をお貸しください。
689:名無しさん@お腹いっぱい。
07/02/22 15:30:25 XrP4EUKx0
UWSCの勉強に役立つ書籍はスレの最初の方にあった
”Windowsマクロテクニック”だけで問題ないですか?
690:名無しさん@お腹いっぱい。
07/02/22 16:23:18 qSpCSOux0
>689
日本語でおk
691:名無しさん@お腹いっぱい。
07/02/23 01:39:23 0sH5Ww6M0
例えば行の先頭から指定した文字列(句点、濁点等)までを選択して
クリップボードにコピーするのってどうやるん?
692:名無しさん@お腹いっぱい。
07/02/23 02:17:40 aKHo+G7T0
キーボードのあるキーを押すと
マウスの左クリックを0.5秒後に押すマクロってどうやってつくるんでしょうか?
if KBD(VK_DIVIDE,CLICK) then BTN(LEFT,CLICK,500)
とかやってみたんですけどできなくて…
693:名無しさん@お腹いっぱい。
07/02/23 02:42:27 9AJmM97l0
>>691
line= "例えば行の先頭から指定した文字列(句点、濁点等)までを選択して"
sendstr(0,token("、",line))
>>692
getkeystate
694:名無しさん@お腹いっぱい。
07/02/23 02:46:11 0sH5Ww6M0
>>693
レスありがとです!
695:名無しさん@お腹いっぱい。
07/02/23 15:22:29 OI7ziwL20
UWSCおもすれー( ^ω^)
696:名無しさん@お腹いっぱい。
07/02/23 20:27:31 6yiL1E+C0
あるプログラムのメモリを書き換えるスクリプトは、
どういう記述をすればいいのでしょうか?>>533を見たのですが
APIやDLLは使い方がよくわかりません・・・
697:名無しさん@お腹いっぱい。
07/02/23 20:35:33 x+nYfDMf0
>>696
WriteProcessMemory 呼び出すだけだろ。
698:名無しさん@お腹いっぱい。
07/02/23 21:53:58 g22vXUMk0
みんなこのソフトどういう時に使ってるの?
なんか便利な使い道あったら教えて下さい。
このソフトプログラマーの人しか使わないのかな。
699:名無しさん@お腹いっぱい。
07/02/23 23:32:07 lMs4LxVV0
>>698
俺はnPOPで受信したメールがたまってきたら
テキストに保存して纏めて圧縮してるんだけど,
その操作をuwscにやらせてる。
自分が頻繁に行う定型の操作があって,
プログラムを組むほどでもないようなことをuwscで,,,みたいな
700:名無しさん@お腹いっぱい。
07/02/23 23:41:01 Zsv/MN0i0
>>688
DIM x[] = "test1.bmp","test2.bmp", ・・・
for i=0 to LENGTH(x)-1
ifb CHKIMG(x[i]) then
select i+1
case 1
処理 1
case 2
処理 2
case ・・・
処理・・・
selend
endif
next
701:名無しさん@お腹いっぱい。
07/02/24 12:15:07 ifk79U590
>>700
ありがとうございます、参考になりました。
それに加えて、複数個指定した画像以外に
指定した画像がなかった場合の処理を組み込む事は可能ですか?
この場合、配列をもう一つ別に指定した方が綺麗にまとまりますか?
702:696
07/02/24 12:55:52 NQZTMvMn0
>>697
回答ありがとうございます、呼び出し方の記述がよくわからないので
勉強して出直してきます
703:名無しさん@お腹いっぱい。
07/02/25 08:28:12 Y68j1HBx0
>>698
午前10時45分にシャットダウンしたい時。
704:名無しさん@お腹いっぱい。
07/02/25 14:38:01 4DUTXKqq0
GETITEM() の ITM_ACCTXTやITM_ACCCLKで文字列取るときに「&」を取っ払うのは仕様なのか?
ショートカットキーを表現する「&」を消すのはまだ納得できるけど、URL内の「&」消されるのはつらいぞ。
705:名無しさん@お腹いっぱい。
07/02/25 15:01:21 rNvu9Obr0
アクセスエクスチェンジとかだろ
706:名無しさん@お腹いっぱい。
07/02/25 19:13:40 dSivR6Uy0
>>701
bmp = "test.bmp" //bmp = "test1.bmp" //bmp = "test2.bmp"
DIM x[] = "test1.bmp","test2.bmp"
DIM y[LENGTH(x)-1]
for i=0 to LENGTH(x)-1
ifb bmp = x[i] then
select i+1
case 1
msgbox(x[i]+"発見")
case 2
msgbox(x[i]+"発見")
selend
// break
else
y[i] = "無い"
// msgbox(x[i]+"が無い")
// break
endif
next
for i=0 to LENGTH(x)-1
ifb y[i]<>"" then
select i+1
case 1
msgbox(x[i]+"は無かった")
case 2
msgbox(x[i]+"は無かった")
selend
endif
next
707:名無しさん@お腹いっぱい。
07/02/26 18:55:13 MQXBg9MI0
失礼します。
最小化しているウィンドウに対して処理を行う事は可能ですか?
行おうとしている作業は、最小化しているメールソフトに対して、
一定時間毎に"送受信"ボタンを押す、というものなのですが、
while
ifb chkimg(送受信.bmp)
btn(left, click, g_img_x, g_img_y)
break
sleep(60)
wend
に何を加えればいいでしょうか?
後、疑問なのですが、最小化しているウィンドウに命令を行えるなら
chkimgで指定した画像は、表示している画面をサーチするのか、
最小化しているウィンドウ内をサーチするのか、どちらなのでしょうか?
回答頂ければ幸いです。
708:名無しさん@お腹いっぱい。
07/02/26 20:30:10 XaitowDR0
chkimgは画面表示をチェックするんだろ?
最小化していて表示されるところだけちぇっくすればOK。
それが嫌ならchkimgなんか使うな。
ちなみに俺はchkimgなど1度も使った事は無い。
709:名無しさん@お腹いっぱい。
07/02/26 20:53:44 5Y5GLnn70
>>707
最小化したままだとchkimgでは無理ですね。
chkimg以外の方法で処理可能であるならば自分だったらこんな感じにするかな。
他の方法もあるかもしれないけど。
x = gettime()
while !getkeystate(vk_esc)//escキーで終了
y = gettime()-x
s = y mod 60
sleep(0.2)
ifb s = 0
//処理
endif
wend
MsgBox("終了")
710:名無しさん@お腹いっぱい。
07/02/27 02:13:24 bZ9qrAwt0
>707
とりあえず
MOUSEORG(id,2)
あとは
PostMessage使うとか
711:名無しさん@お腹いっぱい。
07/02/27 02:14:15 UsiWTpU40
♪ /妊_娠\
. |/-O-O-ヽ|
6| . : )'e'( : . |9
(( ( つ`‐-=-‐ 'ヽ、 )) ♪ ♪
〉 と/ ))) ♪
(__/ ̄ ̄(_)
♪ / ̄ ̄ \
. | | ♪
(|\ /|)
♪ /  ̄ ̄ ) )) ♪ ♪
(( ( . : ( : . 〈 ♪
(_) ̄ ̄ヽ__)
♪ /妊_娠\
. |/-O-O-ヽ|
6| . : )'e'( : . |9
(( ( つ`‐-=-‐ 'ヽ、 )) ♪ ♪
〉 と/ ))) ♪
(__/ ̄ ̄(_)
712:名無しさん@お腹いっぱい。
07/02/27 05:12:53 xdrZIzQI0
>>707
WinLister(英)
URLリンク(www.nirsoft.net)
ProcessWalkerなど
URLリンク(www001.upp.so-net.ne.jp)
最小化されているウィンドウの「クラス」「タイトル」なども取得できるソフト。
同系ソフトは他にもあるけど、この機能に限定すればWinListerが使いやすい感じ。
713:名無しさん@お腹いっぱい。
07/02/27 05:33:04 XIHG/8cC0
>>712訂正
△最小化されているウインドウの
○不可視ウインドウの
714:名無しさん@お腹いっぱい。
07/02/27 13:09:22 dd7Gb3CU0
すっげー久しぶりに来た。3ヶ月は見てないかな。ここ。
>>547
>>589
SE = IE.document.getElementsByTagName("select").item(1)
Op = SE.options
for i = 0 to Op.length - 1
Itm = Op.item(i)
if Itm.text = "名前/ヨミガナ" then Itm.selected = true // 選択
next
SE.fireEvent("onChange") // onChange イベントを発生させる
715:714
07/02/27 13:10:56 dd7Gb3CU0
業務用の抜き出しなんで、適当に直してね。
716:名無しさん@お腹いっぱい。
07/02/27 20:29:18 5o3nqbUw0
IEでリンクの文字列をクリックしたいのですがHTMLが
<a href="hURLリンク(......">)<)リンク名
</a>
IELink(IE_br[1],"リンク名"+"<#CR>") // 改行追加
複数行になってしまう場合は無理なのでしょうか?
717:名無しさん@お腹いっぱい。
07/02/27 21:52:50 mtZrmXvS0
getElementsByTagName("a")とかで試してみては
718:名無しさん@お腹いっぱい。
07/02/28 00:22:00 /zsDSXub0
>716
htmlに改行は関係ないはずだしそんなわけないやろ…と思って検証してみた。
うん、たしかに改行が入ってるとクリックできないわ。
RecIEで記録してみたら改行を含むリンクの方は改行じゃなくて
"リンク名 "みたいに半角スペースが入ってるみたい。
これに習って半角スペース入れてやれば、
無事クリックすることはできたけど。
…これってバグだよね?
719:名無しさん@お腹いっぱい。
07/02/28 00:36:17 lKePO2390
UWSCでDirectInputを扱うことはできるかな?
720:名無しさん@お腹いっぱい。
07/02/28 00:50:01 +F5S3BZ40
どういうのが扱うの定義なの?
721:名無しさん@お腹いっぱい。
07/02/28 01:34:24 lKePO2390
ああ、ミジンコですいません・・・。
単純にKBDやBTNの代わりにDirectInputを使ってみたいな、と思いまして。だから
キーやマウス操作で使いたいんです。
どうもUWSCでそういう事例がないっぽい感じなんで、聞いてみた次第です。
722:名無しさん@お腹いっぱい。
07/02/28 04:11:01 WxlpFZeq0
>>716
umiumi様に報告しなっせ。
723:名無しさん@お腹いっぱい。
07/02/28 05:50:57 +F5S3BZ40
>>721
特定のアプリのみなら DLL Injection すればできるよ。
後はドライバ作ればなんでもできる。キーボードだけなら mayu.sys 使えばいい。
724:名無しさん@お腹いっぱい。
07/02/28 22:56:38 lKePO2390
>>723
なるほど。そういう策があるんですね。Thx!
725:名無しさん@お腹いっぱい。
07/02/28 22:59:46 6bZJcGLF0
IESETDATAに対応するvbscriptってあります?
これすげー便利なんだけどvbscriptで同じのがあれば教えてください。
726:716
07/03/01 00:20:04 dHFep3w80
>>717 , >>718様
ありがとうございます。
スペースを入れることで無事解決いたしました。
727:名無しさん@お腹いっぱい。
07/03/01 00:23:51 KFbXBiFs0
vbsでIE操作関連のライブラリは聞いたことないなあ。
IESETDATAぐらいの機能なら自分で互換プロシージャ書いたほうが早いかも。
VBScriptにこだわらず、PerlやRubyやJavascript使えるならMechanize使うべし。
728:名無しさん@お腹いっぱい。
07/03/01 03:11:08 eWsgJP0Y0
>>727
やっぱそうですか。
vbscriptで実現しようとするとうまくいかないサイトがありまして、
RECIEでやると簡単にいったんです。
IESETDATAってのをたくさん使ってたのでvbでもできないかなあといろいろググってます。
でもないんですねえ。素人にはむつかしい。
Mechanizeってのをググっても???が頭に浮かぶばかりです。
やたらIT英単語が羅列される高度なサイトしかでてこない。
729:名無しさん@お腹いっぱい。
07/03/02 11:28:21 wgmImKY+0
すみませんちょっと教えてほしいのですが
CALL で呼び出した サブマクロをリリースすることは出来るのでしょうか?
やりたいことは 一日中動かす制御系マクロで、条件にしたがって CALLするサブマクロを変えたいのです。
只、問題になるのではないかと懸念しているのは
例えば 条件にしたがって A.UWS をCALLして
しばらくして、条件が変わり 今度はB.UWSをCALLした後
また、条件が元に戻って A.UWSをCALLすると、関数の重複エラーを起こすのではないかと思ってます。
CALLする際には、既にCALLしていればCALLしないような関数自体の制御はあるのでしょうか?
よろしくお願いします。
730:名無しさん@お腹いっぱい。
07/03/02 12:09:17 WyS8M7wk0
CALLはスクリプトの始まりで全て読み込まれる仕様だったと思うが。
731:名無しさん@お腹いっぱい。
07/03/02 12:11:33 wgmImKY+0
>>730 そうなんですか?
以前に
Select 条件
Case A
Call A.uws
Case B
Call B.uws
Case C
Call C.uws
Selend
みたいなので動かしてましたが、条件に関係なく Callされてしまうということでしょうか?
732:名無しさん@お腹いっぱい。
07/03/02 12:14:46 WyS8M7wk0
なので、CALLの中は関数のみにして条件式で関数を呼び出したほうが管理し易い。
733:名無しさん@お腹いっぱい。
07/03/02 12:16:44 wgmImKY+0
>>732
了解です。アルゴリズムを変えます。
734:名無しさん@お腹いっぱい。
07/03/02 12:19:54 WyS8M7wk0
> CALL文はスクリプトが走る前に評価してマージ
らしいので、何回呼び出してもOKということ。
735:名無しさん@お腹いっぱい。
07/03/02 12:21:37 wgmImKY+0
>>734
そうなんですか、であればすごく楽です。いろいろありがとうございました。
736:名無しさん@お腹いっぱい。
07/03/02 12:24:09 WyS8M7wk0
なので は変だったかな。
まとめると、CALLの重複呼び出しは可能だが、
関数呼び出しの方がCALLする数も減らせてよいのではないか・・と。
737:名無しさん@お腹いっぱい。
07/03/02 17:18:17 LEgHzb2/0
教えてください
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
の簡略化の仕方って、どうすればいいのでしょうか?
初歩的な事ですいません。
738:名無しさん@お腹いっぱい。
07/03/02 17:40:28 zd/tmG0Y0
for i=1 to 5
kbd(vk_tab)
next
739:名無しさん@お腹いっぱい。
07/03/02 18:51:13 LEgHzb2/0
>>738
なりました
どうもありがとうございました!
740:名無しさん@お腹いっぱい。
07/03/02 23:29:55 YTqW5ImN0
kbd(vk_tab, 5 ) * 5;
741:名無しさん@お腹いっぱい。
07/03/02 23:31:39 YTqW5ImN0
I=5
WHILE I--
kbd(vk_tab)
Wend
742:名無しさん@お腹いっぱい。
07/03/03 00:35:02 VMJxRwv40
>740,741
……うそつき
(緒川たまき)
743:名無しさん@お腹いっぱい。
07/03/03 09:17:41 V9IC+ExM0
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
これを誰よりも複雑に書いてください。
744:名無しさん@お腹いっぱい。
07/03/03 20:43:41 s3yQZgWo0
kbd(vk_tab , vk_tab , vk_tab , vk_tab , vk_tab) ;
745:名無しさん@お腹いっぱい。
07/03/03 23:14:36 MQ3VC4ET0
Dim TabCnt = 0
While TabCnt < 5
repeat
rd = RANDOM(100)
ret = (int(rd / 10) * 10) mod 7
until (ret = 3)
kbd(vk_tab)
TabCnt = TabCnt + 1;
wEnd
746:名無しさん@お腹いっぱい。
07/03/03 23:23:26 YLpnXPZY0
>>316をDF 1.40で使ってるけど Sleipnir 1.xへ誤爆することがある。
タイトルは「DF」の2文字しかないし、クラス名がほぼ同じ・・・
リソース弄ってタイトル書き換えたらOKになったよ。
あと、DROPFILEの前にST_BUSYを入れてみたが効果は不明。
while STATUS(id, ST_BUSY); sleep(0.1); wend
DROPFILE(id, dir, fname)
>>741-742
意味無いけどこれなら動く。
i=5
while i
i=i-1
kbd(vk_tab)
wend
747:名無しさん@お腹いっぱい。
07/03/04 02:53:05 5kEaDmCz0
ifb fopen("tab5.uws",f_exists) = 0
fid = fopen("tab5.uws",f_read or f_write)
fput(fid,chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(61)+chr(49)+chr(32)+chr(116)+chr(111)+chr(32)+chr(53),1)
fput(fid,"<#tab>"+chr(107)+chr(98)+chr(100)+chr(40)+chr(118)+chr(107)+chr(95)+chr(116)+chr(97)+chr(98)+chr(41),2)
fput(fid,chr(110)+chr(101)+chr(120)+chr(116),3)
fclose(fid)
endif
while 1
sleep(0.2)
ifb fopen("tab5.uws",f_exists) = 0
continue
else
break
endif
wend
call tab5
748:名無しさん@お腹いっぱい。
07/03/04 11:10:58 jZ09oSHm0
Class Tab5
Dim Count5
Procedure Tab5()
Sleep(1)
this.TabClick()
Fend
Procedure TabClick()
kbd(chr(57))
this.CountUp()
this.TabClick()
Fend
Procedure CountUp()
Count5 = Count5 + 1
if Count5 = 5 then exitexit
Fend
EndClass
749:名無しさん@お腹いっぱい。
07/03/04 16:30:49 ZVZ7OXQj0
ブログのバックアップデータのあるCSVファイルがあるんだけど
コレをWIKIに移行しようと思って自動化プログラム作りたいんだけど
どんなプログラムくめばいい意
750:名無しさん@お腹いっぱい。
07/03/04 16:34:23 QvCR5Gc90
>>749
要約するとこうだな
@ブログのバックアップCSVデータがある
AWIKIに移行する自動化プログラムを作りたい
Bどんなプログラムを組めばいいか?という質問
答え:自動化プログラムを組めばいい
751:名無しさん@お腹いっぱい。
07/03/04 17:18:20 ZVZ7OXQj0
>>750
そう
わからないのが
エクセルから特定のセルをキャッシュにコピーする方法
特定のアドレスにアクセスする方法
がわかればたぶんできると思うのですが
752:名無しさん@お腹いっぱい。
07/03/04 17:30:46 m1xVfsXi0
テキスト処理だけでできる作業を何でわざわざ GUI でやろうと思うのかが謎
753:名無しさん@お腹いっぱい。
07/03/04 17:50:39 aLBEPeVF0
ここ数時間試行錯誤をしてるのですが解決しませんので質問させていただきます
メモ帳などでキーボードのaを押したら処理1が開始されるようなマクロを組みたいのですが
start
__________|________
| |
aが押される bが押される (キーボード
| |
処理1 処理2
|__________________|
|
~
このようなスクリプトはUWSCにはないのでしょうか
INPUTでは新たにウィンドウが出てしまいますし、エンターを押さなければ処理1には進みません
なにか知恵をお貸しいただければ幸いです
754:名無しさん@お腹いっぱい。
07/03/04 17:53:38 QvCR5Gc90
ifb GETKEYSTATE(VK_A) then
//a key を押した時の処理
endif
当然 while 〜 wend に入れるべし
ていうか752にもあるように、UWSCでつくるべきプログラムじゃないよ
755:名無しさん@お腹いっぱい。
07/03/04 18:05:33 aLBEPeVF0
>>754
即レスありがとうございます
それでうまくできなければ他のマクロを探してみます
ありがとうございました
756:名無しさん@お腹いっぱい。
07/03/04 23:26:57 a4NBNM9n0
>>752
テキストでやるのはいいけど
ファイル名のつけ方がわからん
757:名無しさん@お腹いっぱい。
07/03/05 10:59:05 kPPaI09y0
>749
csvを読み込み処理する部分は
FOPEN
758:名無しさん@お腹いっぱい。
07/03/05 11:02:26 kPPaI09y0
おっと途中で書き込んでしまった。
csvを読み込み処理する部分は
FOPENして
FGETして
ごにょごにょしたらおk
wikiに書き込むのは
IESETDATA使うなり
直接COMでDHTMLたたくなり
好みとスキルに応じてどうぞ
759:名無しさん@お腹いっぱい。
07/03/07 12:24:23 2NSKScfX0
UWSCスクリプトを実行ファイルに変換するスクリプト
欠点: ファイルがでかすぎる。
760:名無しさん@お腹いっぱい。
07/03/08 12:11:00 BBPkbtD90
コンピュータ名が欲しくて、次のように書いてみたのだけど、
UWSCがアクセス違反エラーだと言ってきます。
書き方悪いですかね?
DEF_DLL GetComputerNameA(var string, int):int:kernel32.dll
buf = FORMAT(" ", 32)
res = GetComputerNameA(buf, LENGTHB(buf))
print buf
別のAPIならOKなんですが・・・
DEF_DLL GetPrivateProfileStringA(string, string, string, var string, int, string):int:kernel32.dll
buf = FORMAT(" ", 255)
res = GetPrivateProfileStringA("section", "param", "default", buf, LENGTHB(buf), "test.ini")
if ( res > 0 ) then print buf
761:名無しさん@お腹いっぱい。
07/03/08 14:44:22 Q+kjASni0
>>760
DIM WshNetwork = CREATEOLEOBJ("WScript.Network")
PRINT WshNetwork.ComputerName
じゃダメなのか?
762:名無しさん@お腹いっぱい。
07/03/08 14:55:38 7XN40pw00
>760
DEF_DLL GetComputerNameA(string, var long):long:kernel32.dll
引数は前が値渡しで後ろが参照渡しみたいだね
763:名無しさん@お腹いっぱい。
07/03/08 15:02:40 7XN40pw00
DEF_DLL GetComputerNameA(var string,var long):long:kernel32.dll
あれ?前もvarじゃないとだめみたい
764:名無しさん@お腹いっぱい。
07/03/08 15:18:11 O6XSymB40
>>763
そりゃ、stringに結果が返るんだから参照渡しなんじゃないの
765:760
07/03/08 16:10:33 PbsxIEko0
ありがとうございます。うまくいきました。
よく見たら、第二引数がLPDWORDっすね・・・orz
>>761
そう言う方法もあるんですね。メモメモ。
766:名無しさん@お腹いっぱい。
07/03/08 16:33:01 7XN40pw00
>764
もちろんおれもそうとは思ったんだけど
VBの例見てみたらなぜか一つ目の引数はByValだったんだよね…
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal Buffer As String, Size As Long) As Long
767:名無しさん@お腹いっぱい。
07/03/08 16:36:47 7XN40pw00
>760
ちなみにバッファは16バイトでいくない?
コンピュータ名ってANSI15文字までだった気がする。
768:名無しさん@お腹いっぱい。
07/03/08 23:10:03 3vwnAUEJ0
CTRL+Rを押すとあらかじめ作っておいたAというスクリプトが
CTRL+Lを押すとあらかじめ作っておいたBというスクリプトが実行される
こういう感じで使うことってできますか?
769:名無しさん@お腹いっぱい。
07/03/08 23:21:51 QhMdkY5Q0
uwsファイルをuwsc.exeに関連づけを行う
uwsファイルのショートカットをデスクトップに作成
そのショートカットのプロパティを開いて、ショートカットキーを割り当てる
770:名無しさん@お腹いっぱい。
07/03/08 23:26:22 3vwnAUEJ0
>>769
ありがとうございます!
771:名無しさん@お腹いっぱい。
07/03/09 02:16:24 pF+OFex30
>>767
ご指摘の通り、
MAX_COMPUTERNAME_LENGTH + 1 ということなので、16で32も必要ないですね。
772:名無しさん@お腹いっぱい。
07/03/10 16:03:33 EidvIQ3R0
コンパクトなランタイム版欲しくないか?
コピー自由だからEXE化不要というのは概ね同意だったが
ここまでファイルがでかくなるとEXE化というのもアリかな?
773:名無しさん@お腹いっぱい。
07/03/11 15:16:00 FHiSloY00
IEのイベント使おうと思っていろいろ調べてここまで来たんだけど
EVENT_PRM[4]でByref Dispatch型から OleStr 型へのバリアント型変換はできません
ってエラーになっちゃう。どうすればいいんでしょうか。
**&ppDispって形式は無理なのかな?
IE = GETACTIVEOLEOBJ("InternetExplorer.Application","honda")
OLEEVENT(IE,"DWebBrowserEvents2","NewWindow3","NewWindow")
SLEEP(100)
procedure NewWindow()
print EVENT_PRM[0] //URLリンク(www.honda.co.jp)
print EVENT_PRM[1] //URLリンク(www.honda.co.jp)
print EVENT_PRM[2] //131206
print EVENT_PRM[3] //0
print EVENT_PRM[4] //エラー
// 4 IDispatch **&ppDisp,
// 3 VARIANT_BOOL *&Cancel,
// 2 DWORD dwFlags,
// 1 BSTR bstrUrlContext,
// 0 BSTR bstrUrl
fend
774:名無しさん@お腹いっぱい。
07/03/11 17:41:38 gXtUVhMk0
>>773
IDispatch型ってのはそもそもprintするようなものじゃないと思うんだ
775:名無しさん@お腹いっぱい。
07/03/11 22:10:17 FHiSloY00
>>774
**&ppDispは入れ込むものだってのはわかった
URLリンク(www.melonpan.net)
みたいなことをやりたいんだけど無理なんでしょうか
そもそも
IE = CREATEOLEOBJ("InternetExplorer.Application");
IE.navigate("www.honda.co.jp/");
IE.visible = true
OLEEVENT(IE,"DWebBrowserEvents2","NewWindow3","NewWindow")
sleep(100)
procedure NewWindow()
print "newWindow"
EVENT_PRM[3] = true
fend
でも新ウィンドウ起動しちゃう
776:名無しさん@お腹いっぱい。
07/03/12 00:45:56 JMJM6ows0
>>775
ie = CREATEOLEOBJ("InternetExplorer.Application")
ie.Navigate("www.honda.co.jp/")
ie.Visible = True
public ie2 = CREATEOLEOBJ("InternetExplorer.Application")
ie2.Navigate("www.google.com")
ie2.Visible = True
OLEEVENT(ie,"DWebBrowserEvents2","NewWindow2","NewWindow2")
fukidasi("ESCで終了")
while !GetKeyState(VK_ESC)
sleep(0.1)
wend
procedure NewWindow2()
print "newWindow2"
EVENT_PRM[1] = ie2
fend
NewWindow2ならこんな感じであらかじめ準備しておいた
任意のieで開かせることができたけど
NewWindow3のほうはなぜかできないね。
>でも新ウィンドウ起動しちゃう
これはNewWindow2でも3でも再現した。
念のため「True」の代わりに-1入れてみたけどやっぱりだめだった。
777:名無しさん@お腹いっぱい。
07/03/12 01:09:19 A4ISQcDy0
yahooのブリーフケースにいれてあるファイルを開きたいのですがなかなかうまくいきません。
良い知恵orミスの指摘をお願いします。
IELink(IE,"ブリーフケース")
BusyWait(IE)
IELink(IE,"****.xls") //対象ファイル
BusyWait(IE)
ACW(GETID("ファイルのダウンロード"))
CLKITEM(GETID("ファイルのダウンロード"),"開く(O)",CLK_BTN)
778:名無しさん@お腹いっぱい。
07/03/12 02:08:47 JMJM6ows0
おおっと、この場合VALIANT_BOOLだからTRUEは1でよかったね。
まあどちらにしても新しいウィンドウ開いちゃうんだけど。
779:名無しさん@お腹いっぱい。
07/03/12 02:28:25 JMJM6ows0
やっぱVARIANT_TRUEは-1でよかった
ウソ言ってスマソ
780:773
07/03/12 09:03:24 a3O+JiPS0
うはNewWindow2でできました
すいません2で試してなかったようです
cancelが駄目だったからあきらめてしまった
ありがとうございました
781:名無しさん@お腹いっぱい。
07/03/12 16:49:47 n5L2tYqJ0
Sleepで待ってるスレッドを中断するにはどうすればいい?
ウィンドウ持っていればCtlWinで中断できる?
それともSleepの代わりにWAIT・POSTみたいのはWin32APIでできる?
782:名無しさん@お腹いっぱい。
07/03/12 17:13:41 wxNktC0X0
WHILE+GETKEYSTATE
783:名無しさん@お腹いっぱい。
07/03/12 18:30:24 lWuXjild0
>>781
>>782さんのいうとおり、僕も使ってますよ
Dim WaitFLG = false
while WaitFLG = true
sleep(xx)
if GETKEYSTATE(VK_W) then WaitFLG = !WaitFLG
if GETKEYSTATE(VK_S) then exitexit
wEnd
784:名無しさん@お腹いっぱい。
07/03/12 23:08:41 n5L2tYqJ0
それって単にフラグポーリングしてるだけやんか…。
785:名無しさん@お腹いっぱい。
07/03/13 05:29:39 cUL5v4BL0
じゃあなにがしたいの?
786:名無しさん@お腹いっぱい。
07/03/13 09:20:34 cyFSWzt+0
fukidasi("10秒後にこのメッセージを消すぞ!")
thread fukioff(10)
Sleep(20)
Msgbox("噴出し消えてるか?")
Exit
procedure fukioff(t)
sleep(t)
fukidasi()
fend
スレッドでfukidasiが消えてくれないのだが?
なぜ?
吹きだしウインドウを捜してCTRLWINで閉じなきゃ駄目なのか?
それともバグ?
787:名無しさん@お腹いっぱい。
07/03/13 09:30:12 cyFSWzt+0
thread fukioff(10)
Msgbox("噴出し消えてるか?")
Exit
procedure fukioff(t)
fukidasi("10秒後にこのメッセージを消すぞ!")
sleep(t)
fukidasi()
fend
これなら消える。
fukidasi以外も全部そうか?
ああそうかい。
じゃ。
788:名無しさん@お腹いっぱい。
07/03/13 12:15:17 Jt3WP4T70
メイン側とスレッド側のfukidasiは別物。
スレッド数と同じ数のfukidasiを表示できる。
789:名無しさん@お腹いっぱい。
07/03/13 12:39:02 vHwEZC+W0
質問です
テキストをコピー → エクセルへの貼り付け
テキストをコピー → エクセルへの貼り付け
・・・
・・・
を連続でしたいんですが、テキストに空白があればスキップさせたいです
さらにエクセルへのターゲットを A1,A2等ではなく選択しているセルへの
貼り付けを行いたいのです!
どなたかご教授願います。
ClkItem(memo_id,"1") ←ほにゃらら コントローラの1番タブ
BUN = GETSTR(GETID("ほにゃらら コントローラ"))
SENDSTR(0, BUN)
ACW(GETID("MICROSOFT EXCEL"))
memo = GETID("MICROSOFT EXCEL")
EXCEL = GETACTIVEOLEOBJ("Excel.Application")
EXCEL.Range("A1").PasteSpecial
ClkItem(memo_id,"2")
BUN = GETSTR(GETID("ほにゃらら コントローラ"))
SENDSTR(0, BUN)
memo = GETID("MICROSOFT EXCEL")
EXCEL = GETACTIVEOLEOBJ("Excel.Application")
EXCEL.Range("A2").PasteSpecial
ClkItem(memo_id,"3")
BUN = GETSTR(GETID("ほにゃらら コントローラ"))
SENDSTR(0, BUN)
memo = GETID("MICROSOFT EXCEL")
EXCEL = GETACTIVEOLEOBJ("Excel.Application")
EXCEL.Range("A3").PasteSpecial
790:名無しさん@お腹いっぱい。
07/03/13 13:29:22 cyFSWzt+0
>>788
> メイン側とスレッド側のfukidasiは別物。
スレッド毎に別になるのは上でもう試したので判ってるが。
例えばコンソールは同じもんなのか?
なーんでだ?ていうかあれは?これは?で全部試さなきゃ駄目そうだな。
UWSCはためしためし作るのがあたりまえなのでそれくらい全然平気だが。
791:名無しさん@お腹いっぱい。
07/03/13 17:03:36 Jt3WP4T70
だったらぶつぶつ言わないでガンバレ。
792:名無しさん@お腹いっぱい。
07/03/13 17:14:31 z+6WW4kl0
複数thread間で、printやbtn、mmvなんかを実行するとき
当然これらはシステムで1つしか存在しない共有資源なんだが
ロックとかどうなってんのかな?
793:名無しさん@お腹いっぱい。
07/03/14 08:49:07 aZuPqBx+0
とにかく試すんだよ。
794:名無しさん@お腹いっぱい。
07/03/14 16:51:21 yQ01SVVO0
質問させていただきます。
以下のような処理を uwsc で組むとどうなりますか。
1.現在、起動中のアプリから"プログラムA" を探す
2.みつかったら、
非アクティブのままで(バックグランドのアプリに)
キーX を送る。
恥ずかしい話ですが、いつもuwscに挑戦しょうとしますが挫折します。
テンプレにかいてあるいろんなサイトにいき、ヘルプなどみているうちに
わからなくなってしまいます。(どれを参考にしてよいかわかりません。)
なにか良い方法はないでしょうか。
上の1.2.を組むためにはどこを見て勉強すればよいのでしょう。
教えていただければ幸いです。
795:名無しさん@お腹いっぱい。
07/03/14 20:35:06 aZuPqBx+0
>>794
Function SendMessage(id,cmd,p1,p2)
DEF_DLL PostMessageA(HWND, LONG, LONG, DWORD): Bool: user32.DLL
DEF_DLL SendMessageA(HWND, LONG, LONG, DWORD): LONG: user32.DLL
SendMessageA(IDtoHND(id),cmd,p1,p2)
Result=0
Fend
または、CTRLWINで非表示にしてからSCKEYしてやれば大抵問題ない。
しかしこれは絶対問題ないわけではない。そのAが何かに夜。
796:名無しさん@お腹いっぱい。
07/03/14 23:09:31 yQ01SVVO0
>>795 回答、有難うございました。
コマンド1つづつ、調べてみます。
797:名無しさん@お腹いっぱい。
07/03/15 20:50:07 echeEF2V0
画面内に指定画像があるか無いかチェックし、あればクリックしたりするスクリプト文を作成したいのですが・・・、うまくいきません;
詳しい方、どうかご教授お願いしますm(_ _)m
798:名無しさん@お腹いっぱい。
07/03/15 21:19:32 gAtpnVa70
>>797
CHKIMG使えばいいと思う。
それとどう上手く行かないのか書かないと分からない。
ご教授じゃなくてご教示、意味の分からないこと葉は使わないほうがいい。
799:名無しさん@お腹いっぱい。
07/03/15 21:21:39 yidvy73a0
>>797
どううまくいかないのか書かないと
誰も答えられないよ。
ここままではヘルプぐらい嫁としか言えない。
800:名無しさん@お腹いっぱい。
07/03/15 21:51:43 RMTAm+Y00
キャラだろ。
801:名無しさん@お腹いっぱい。
07/03/15 21:52:09 Bw9W6nzv0
ま〜たオンラインゲームかw
802:名無しさん@お腹いっぱい。
07/03/16 00:22:58 nhMfxJG20
JOUTAI = SLCTBOX(SLCT_BTN,0,"状態","わからない","やっぱりわからない","それでもわからない")
ifb JOUTAI = 1
EXEC("hh "+GET_UWSC_DIR+"\uwsc.chm")
elseif JOUTAI = 2
SCKey(GetID("自動化ツールuwsc使いよ集まれ2"),vk_ctrl,f)
elseif JOUTAI = 4
MsgBox("つURLリンク(www.google.co.jp))
endif
803:名無しさん@お腹いっぱい。
07/03/16 00:26:58 mqTPjeha0
repeat
until getkeystate(VK_LBUTTON)
x = G_MOUSE_X
y = G_MOUSE_Y
repeat
until getkeystate(VK_LBUTTON)
xx = G_MOUSE_X
yy = G_MOUSE_Y
と組んだ時に、ワンクリックで両方のrepeat判定を満たしてしまうのですが、
先のrepeat判定を抜けた時点でクリックしたフラグを消すにはどうすれば良いのでしょうか。
分かり難いと思うので簡潔に書くと、
前後のrepeat判定で、別々の場所を記憶させたいのです。
804:名無しさん@お腹いっぱい。
07/03/16 00:35:15 nhMfxJG20
repeat
sleep(0.02)
until getkeystate(VK_LBUTTON)
MsgBox(G_MOUSE_X+" , "+G_MOUSE_Y)
getkeystate(VK_LBUTTON)
repeat
sleep(0.02)
until getkeystate(VK_LBUTTON)
MsgBox(G_MOUSE_X+" , "+G_MOUSE_Y)
805:名無しさん@お腹いっぱい。
07/03/16 02:07:45 qAGjSoPe0
>>802
ちょとワロタ
わざわざスクリプトまで組んでくれるなんて
親切な人だね
806:名無しさん@お腹いっぱい。
07/03/16 02:15:31 31It80P50
どういたしまして
807:名無しさん@お腹いっぱい。
07/03/16 03:21:58 nhMfxJG20
>804を訂正
repeat
sleep(0.02)
until getkeystate(VK_LBUTTON)
x = G_MOUSE_X
y = G_MOUSE_Y
sleep(1) // 長めのsleep
getkeystate(VK_LBUTTON)
repeat
sleep(0.02)
until getkeystate(VK_LBUTTON)
xx = G_MOUSE_X
yy = G_MOUSE_Y
MsgBox("x="+x+" , y="+y+" xx="+xx+" , yy="+yy)
808:名無しさん@お腹いっぱい。
07/03/16 04:01:48 e+a/E5Ma0
質問です。
最小化しているウィンドウに対して命令を送ろうと
public 2ch
2ch = GETID("Jane","TApplication")
MOUSEORG(2ch,2)
以降、処理
というマクロを組んだのですが、うまくいきません。
処理自体は、キーボードのボタンを一定時間毎に入力する簡単なものなので
間違いは無いはずですし、上記の記述に不備があるのでしょうか?
クラスの取得には>>712のWinListerを使ったのですが
指定するID自体が間違っているのでしょうか?
皆さんのお力添えをいただきたいです。
809:名無しさん@お腹いっぱい。
07/03/16 09:50:08 7NEMi9s/0
SendMessage
せめてsckey chkitem
janeに何させたいの?
810:名無しさん@お腹いっぱい。
07/03/16 13:37:57 WOCiyC/30
IEコンポーネントブラウザを使っていて、タイトルに指定した文字列があれば
次の処理へ(無ければ1秒SLEEP)移行するという制御文で詰まりましたw
識者よどうか知恵を貸して下さい。
CLIP=文字列
GETID("WTL:Donut")
STATUS("WTL:Donut",ST_TITLE)
WHILE POS(CLIP,ST_TITLE) <> 0
SLEEP(1)
WEND
.
.
.
次の処理
811:名無しさん@お腹いっぱい。
07/03/16 16:44:47 qAGjSoPe0
…
id = GETID("WTL:Donut")
title = STATUS(id,ST_TITLE)
WHILE POS(CLIP,title) <> 0
…
じゃね?
まずは戻り値や変数といった基礎を理解すべし
812:名無しさん@お腹いっぱい。
07/03/16 16:47:23 WOCiyC/30
>>811
了解です。
もっとじっくりと勉強してみます。
813:名無しさん@お腹いっぱい。
07/03/16 17:50:32 qAGjSoPe0
あと、
WHILE POS(CLIP,title) = 0
だな
814:名無しさん@お腹いっぱい。
07/03/16 18:02:54 7NEMi9s/0
TOKENでデリミタ複数指定した時、どのデリミタで引っ掛ったのか判る方法無いの?
組み込み関数が今位置不便なのでどいつもこいつもCOM使うんだよな…。
815:名無しさん@お腹いっぱい。
07/03/16 19:26:55 mqTPjeha0
>>804,807
遅れましたが、どうもありがとうございます。
sleep()
getkeystate(VK_LBUTTON)
を挟むことで、入力の機会を2回得ることが出来ました。
816:名無しさん@お腹いっぱい。
07/03/16 21:27:28 qAGjSoPe0
>>814
そもそもデリミタ複数指定って、想定されてる使用法なの?
817:名無しさん@お腹いっぱい。
07/03/17 04:30:41 MCeA35RR0
s= "abc,efg xyz/abc"
d=",/ "
t= token(d,s)
while s<>""
print t
t= token(d,s)
wend
exit
結果
abc
efg
xyz
要望だせばデリミッタ自体もトークンに含めるモードとか
つけてくれそうだけど、まぁtoken使わなくてもいいし何とかするべ。
abc
818:名無しさん@お腹いっぱい。
07/03/17 04:31:28 MCeA35RR0
あ…
819:名無しさん@お腹いっぱい。
07/03/18 09:45:56 G1MEbanD0
スピーカーから音が出ているかどうかをuwscスクリプトから確認する方法はないですか?
820:名無しさん@お腹いっぱい。
07/03/18 10:51:08 g9NJe7xK0
>>819
// サウンドが再生されたかをチェック
戻値 = CHKSND( [サウンド名] )
821:名無しさん@お腹いっぱい。
07/03/18 11:00:07 N0d6UYUB0
>>820
それだとスピーカーがつながっているかわからないし、
スピーカーの電源が入ってるかもわからないし、
スピーカーのボリュームが最小になっていて聞こえなくなってるかもわからない
822:819
07/03/18 11:08:31 G1MEbanD0
スミマセン、私の質問の仕方はよくなかったかも。
目的は複数の動画ファイルを順に5秒ほど再生して、
音が全然無かったものと、音があったものとを識別したいのです。
音は当然、動画ごとに違うので、ビープとか××.wavとかではないです。
823:名無しさん@お腹いっぱい。
07/03/18 21:55:05 qeai6ROm0
動画に音声ストリームがあるかどうかをチェックするのは可能かもしれんが
UWSCでやる必要は無い。
まず動画ファイルがどういうものか、音声ストリームとは何か
意味を知らないならググれ。
824:名無しさん@お腹いっぱい。
07/03/18 22:00:49 wpAgcroq0
その辺がわからないからOSがハードウェアに指示出すところで
拾えないかなと思ったんじゃないかな
825:名無しさん@お腹いっぱい。
07/03/18 22:03:46 N0d6UYUB0
UWSCで出来たとしてもどのみちDLL使用だろうし、
UWSCじゃないところで勉強してからきたほうがいいな。
826:名無しさん@お腹いっぱい。
07/03/18 22:23:27 g9NJe7xK0
WMPとかで再生してスペアナの画面監視するってのはどうだ?
827:名無しさん@お腹いっぱい。
07/03/19 23:12:54 zKhTt2fP0
SOREDA!
828:名無しさん@お腹いっぱい。
07/03/21 23:34:53 wOQv7e7l0
質問です。
改行を含む文字列をファイルから読み出して、別のファイルに改行抜いて書き込みたいのですが、
CHGMOJを使って<#CR>を検索してもヒットせず改行が削除できなくて困っています。。
何が原因なのでしょうか。
829:名無しさん@お腹いっぱい。
07/03/22 00:19:06 N4q8VkjG0
USB-RS232Cのインターフェースを使っているのですが、
接続の度にCOM番号が移動してしまいます。
uwscで、現在有効なCOM番号を取得する事は出来ますか?
ヒントだけでもいいので、よろしくお願いします。
830:名無しさん@お腹いっぱい。
07/03/22 02:22:37 G1apsxhH0
>>828
改行なし文字列 = chgmoj(改行入り文字列,"<#CR>","")
で普通にできたけど。
まさかファイル読み込み→置換→書き込みを一行づつ処理したりしてないよね?
831:名無しさん@お腹いっぱい。
07/03/22 10:14:02 qku/eKST0
ifb elseif elseの使い方でつまづいています。
させたい事としては
A.bmp B.bmp C.bmpなどの複数画像の認識と、そうでなかった場合の認識で,
メモ帳にA.bmpなどの場合はAと打ち込み、B.bmp、C.bmpも同じようにB,Cと打ち込ませ
画像がみつけられなかった場合にはngと打ち込ませたいと思っています。
現在は
IFB CHKIMG("A.bmp")
KBD(VK_A,CLICK,30)
ELSEIF CHKIMG("B.bmp")
KBD(VK_B,CLICK,30)
ELSEIF CHKIMG("C.bmp")
KBD(VK_C,CLICK,30)
ELSE
KBD(VK_N,CLICK,30)
KBD(VK_G,CLICK,30)
この様にしてありますが、どうもELSE以下の、画像が見つけられなかった時のng入力がうまく
いきません。どのように対処したらいいでしょうか?
832:名無しさん@お腹いっぱい。
07/03/22 10:40:14 G1apsxhH0
>>831
つENDIF
ヘルプぐらい読もうぜ
833:名無しさん@お腹いっぱい。
07/03/22 10:55:55 qku/eKST0
>>832
レスありがとうございます。
上ではENDIF書き忘れました。すみません。
実際にはENDIF入ってます。
ELSEの時がうまく機能しないのです。
具体的に言うと何も画像が見つからなかった時はNGと打たずに
そのままスクリプトが終了してしまます。
834:名無しさん@お腹いっぱい。
07/03/22 11:16:05 TVb0c2890
俺の環境では再現しないな
以下試してみたコード
ChkImg()に問題があるのかな?
IFB FALSE
KBD(VK_A,CLICK,30)
ELSEIF FALSE
KBD(VK_B,CLICK,30)
ELSEIF FALSE
KBD(VK_C,CLICK,30)
ELSE
KBD(VK_N,CLICK,30)
KBD(VK_G,CLICK,30)
ENDIF
835:名無しさん@お腹いっぱい。
07/03/22 12:29:32 qku/eKST0
>>834レスありがとうございます。
ほんとですね、そのスクリプトだと問題なくいけました。
ただ、今つかってるPCと、実行させたいPCが違うので、
後で>>834さんが書いてくれたスクリプトと自分のスクリプトを比べて、
実行させたいPCで試して検証してみます。
ありがとうございました。
836:名無しさん@お腹いっぱい。
07/03/22 18:45:18 2wM5CfJf0
指定画像をクリックさせたいんだが上手く動かん・・・
スクリプトは
Wend
while True
if GETKEYSTATE(VK_ESC) then exit
ifb CHKIMG("a.bmp")
MMV(G_IMG_X,G_IMG_Y)
KBD(VK_CTRL,DOWN)
BTN(LEFT,DOWN,G_IMG_X,G_IMG_Y)
KBD(VK_CTRL,UP)
BTN(LEFT,UP,G_IMG_X,G_IMG_Y)
endif
wend
現在こうなってますマクロ自体は走らせることができるのだが
画像をクリックしにいかない状態。
アドバイスよろしくお願いします
837:名無しさん@お腹いっぱい。
07/03/22 19:53:37 G1apsxhH0
>>836
FAQ中のFAQ
まずはifb〜endifの間にprintでも入れて
画像をちゃんと見つけているか確認すれ
838:名無しさん@お腹いっぱい。
07/03/22 22:43:14 +Ql66cZK0
>>836
俺ならば、
MMV(G_IMG_X + 50, G_IMG_Y + 50)
などとするな。(50はbmp中の中央付近の位置として)
それから各操作の間に10〜100ミリ程度の時間を置いて。
しかも、
CTRLを離してから左クリックを離す?
それが仕様の動作なのか?
ここの部分は疑問点。
俺ならばCTRL押下でクリックを囲うな。
839:名無しさん@お腹いっぱい。
07/03/22 22:46:31 +Ql66cZK0
それから良くある間違いが、マウスポインタが指定の画像の位置の上にあると当然検知されない。
そのためCHKIMGの前に、その画像が絶対ない箇所へのマウスポインタの移動は必須だ。
その後僅かに時間をとってからCHKIMG
840:名無しさん@お腹いっぱい。
07/03/22 23:15:53 R7pm3fb20
>>829
レス付きそうに無いなぁ…。あれからあちこち見て回って、
なんとなく取っ掛かりになりそうな方法を見つけましたので、質問を取り下げます。
お目汚し失礼しました。
841:名無しさん@お腹いっぱい。
07/03/23 01:20:18 uBr/UHik0
>>840
手動で確認する方法を知っていればその通りにやればいいと思う。
842:名無しさん@お腹いっぱい。
07/03/23 02:09:21 1q7aiu0K0
>>840
未確認だけど
WMIでできないかな?
843:名無しさん@お腹いっぱい。
07/03/23 10:24:54 1q7aiu0K0
新バージョンがでましたよ
UWSC Ver4.2、 Pro版と Free版をリリースしました。
URLリンク(www.uwsc.jp)
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5385日前に更新/293 KB
担当:undef