自動化ツールuwsc使い ..
[2ch|▼Menu]
643:名無しさん@お腹いっぱい。
07/02/09 12:12:03 Eho8eh0PO
>>641
低レベルな質問をする前に少しは勉強しなさい

644:名無しさん@お腹いっぱい。
07/02/10 16:00:56 DagaOjlC0
>>641
exec("cmd /c ren uwsc.exe cswu.exe")

645:名無しさん@お腹いっぱい。
07/02/12 23:11:21 GqqG+y+o0
>>641
UWSC.exeをエロ胃人にに帰るには制てゃpぎおwn

646:名無しさん@お腹いっぱい。
07/02/13 00:36:42 FAav4dLC0
// 時報
While !GetKeyState(vk_esc)
      sleep(0.2)
      GetTime()
      T = g_time_ww+":"+g_time_hh+":"+g_time_nn+":"+g_time_ss
      ifb g_time_nn = 0 and g_time_ss = 0
         Fukidasi(g_time_hh+":"+g_time_nn2,0,0,0,72,"Arial","$ffff","",-2)
         for i = 1 to 25; sleep(0.2); next
         Fukidasi()
      endif
      //Timer(T = "0:12:34:56","メッセージ")
Wend
Fukidasi("時報を終了します。"); for i = 1 to 5; sleep(0.2); next
//
Procedure Timer(T,str)
      ifb T
         Fukidasi(str); for i = 1 to 25; sleep(0.2); next; Fukidasi()
      endif
Fend


647:名無しさん@お腹いっぱい。
07/02/13 13:56:17 vkIAvlxP0
>>640
muri

648:名無しさん@お腹いっぱい。
07/02/13 20:08:16 pgEpS4cV0
>646
なんだ?添削希望か?

649:名無しさん@お腹いっぱい。
07/02/13 21:59:53 FAav4dLC0
おながいします。

650:名無しさん@お腹いっぱい。
07/02/13 22:49:24 pgEpS4cV0
とりあえず
for i = 1 to 25; sleep(0.2); next

sleep(5)
でいいかと

あと、
Timerは何がしたいの?

651:名無しさん@お腹いっぱい。
07/02/13 23:44:52 FAav4dLC0
>>sleep(5)
>でいいかと
ホントだ…。前に>>115を読んだときに
>0.5sec待機するより0.01secを5回程度回した方が〜
ってところを何を勘違いしたのか間違って解釈しちゃったようですorz

Timerは指定の時間にメッセージを出すだけです。
別に何でも、アプリ起動とかでも良かったんですけど…
指定の時間になったら何かするっていう、つまりタイマー
どっちにしろ一行で済むしそれだけなら別にわざわざサブルーチンにしなくても良かったようですがorz


652:名無しさん@お腹いっぱい。
07/02/14 10:34:58 g3LUNaLB0
現在のディレクトリを得る方法ってない?
UWSCから、WSH利用するしかないのかな?

653:名無しさん@お腹いっぱい。
07/02/14 13:42:26 x+7ZQl1v0
GET_CUR_DIR   // 現在のカレントディレクトリ

654:名無しさん@お腹いっぱい。
07/02/15 00:20:10 nGU/ckMc0
サイズの一様(640×480)な中身が違うビットマップファイルが数百個あります。
そのBMPの中から、例えば、ある一定の区画 500, 200, 100 ,100を切り出した新しいBMPファイルを作りたいと思います。
数百もその作業をやるのはしんどうし、
切り出す区画は全ファイル同じ部分なので、uwscなどを用いて簡単に処理できないかと考えてみました。

充分なsleepを与えつつ、画像編集アプリケーションに取り込ませ実際操作する自動化は思いつきましたが、
それは非常にスマートではありません。

uwscのみで行うにはどういった手法があるでしょうか?
WINAPIとかを導入しないとできないでしょうか?

655:名無しさん@お腹いっぱい。
07/02/15 00:25:42 d0mE+fGw0
psのアクション+パッチで十分な話だと思う
uwscさえ必要ねえ

656:名無しさん@お腹いっぱい。
07/02/15 00:41:57 SGEKa07X0
IRfanでもできるかな

657:名無しさん@お腹いっぱい。
07/02/15 01:36:36 0kiNIKH70
ImageMagick でやるのが楽かと

658:名無しさん@お腹いっぱい。
07/02/15 01:38:23 0kiNIKH70
>>654
と言うか、
> 充分なsleepを与えつつ、画像編集アプリケーションに取り込ませ実際操作する自動化は思いつきましたが、
> それは非常にスマートではありません。
こういうスマートじゃない処理をするためだけに uwsc があると思うんだが。

659:名無しさん@お腹いっぱい。
07/02/15 02:16:43 4zVU3Oy00
>>654
こういうのは、PhotoShopのアクションと自動処理のバッチを使えば一発なんだけどね('A`)

俺なら、ImageMagickでも使うかなあ。

660:名無しさん@お腹いっぱい。
07/02/15 12:48:27 bY/cVw6K0
>>654
自分なら、>>656の人と同じくIrfanViewを使うかな。

661:名無しさん@お腹いっぱい。
07/02/15 15:50:26 l9DhUzp90
> GET_CUR_DIR   // 現在のカレントディレクトリ
ちょっと前とちょっとあとのカレントディレクトリはどうやって取得すればいい?

662:名無しさん@お腹いっぱい。
07/02/15 17:12:45 VdGp7gLH0
>>661
ちょっと前に Get_Cur_Dir を使えばいい

663:名無しさん@お腹いっぱい。
07/02/15 17:13:18 VdGp7gLH0
>>661
同じく、ちょっと後に Get_Cur_Dir を使えばいい

664:名無しさん@お腹いっぱい。
07/02/15 17:15:14 VdGp7gLH0
>>661 冗談だと思うな、本当のことだぞ。



665:名無しさん@お腹いっぱい。
07/02/15 18:29:55 VJCrc4le0
>>661
確かに>>662-664以外の方法はないと思う
ちなみにちょっとあとのカレントディレクトリを取得するのは不可能
未来を予知できるなら別だが。

666:名無しさん@お腹いっぱい。
07/02/15 18:47:09 RqXFGw0H0
てか、UWSCでカレントディレクトリ変更できるの?

667:名無しさん@お腹いっぱい。
07/02/15 19:02:09 VJCrc4le0
>654
皆が言うように、uwscよりも、内部マクロのようなものが使える画像処理アプリケーションを使う方がスマートだとは思う。
餅は餅屋ということで。

ただuwscを使ってという条件で(まあuwscのスレだし)
よりスマートに改善するなら
>充分なsleepを与えつつ
ここを見直してみるべきでは?

まあ自分ならあえてuwsc+ペイントでやるかなw

668:名無しさん@お腹いっぱい。
07/02/15 20:35:48 6ZnakJ6o0
>>666 
色んな方法があるでしょ
ヘルプ見れば。
君がどういう方法でカレントディレクトリを変更したいのかにもよる。
DOSCMD コマンドもあるし とにかくHELP嫁

669:名無しさん@お腹いっぱい。
07/02/15 21:01:54 RqXFGw0H0
いや、別に俺がしたいわけじゃないんだけど、できるのかなと疑問に思っただけ。
とりあえずDOSCMDではUWSC自体のカレントディレクトリは変更できない。

670:名無しさん@お腹いっぱい。
07/02/16 07:25:23 aEdQXwcP0
こんなのはられてたw

スレリンク(mmosaloon板:644-646番)


671:名無しさん@お腹いっぱい。
07/02/16 08:18:53 CMWBeYzi0
>>670
バロス
もっと見破られないようにしないとw

672:名無しさん@お腹いっぱい。
07/02/16 10:19:10 RClLESTD0
kbd(VK_LEFT, DOWN, 50) //左ナビ
kbd(VK_LEFT, UP, 50)

このへんのDOWN・UPコンボで
一目で厨ぶりがわかるな

673:名無しさん@お腹いっぱい。
07/02/17 00:35:46 vy3y0xxR0
ゲームによってはclickが正常に作動しないこともあるんだぜ?

674:名無しさん@お腹いっぱい。
07/02/17 21:48:54 RM+qUXCD0
その通り。
クリックの放す速度が速いと押したことにならないゲームもある

675:名無しさん@お腹いっぱい。
07/02/18 12:32:49 EOUmUz5k0
while True
  if (! IE.busy) and (IE.readyState=4) then Break
  sleep(0.1)
wend

IEの表示待ちはこれですけど
他のアプリケーションの表示待ちする場合の方法ってありますか?

676:名無しさん@お腹いっぱい。
07/02/19 17:39:32 P5MUdYEo0
>>675
ヘルプで『GETID』をキーワード検索しろ

677:名無しさん@お腹いっぱい。
07/02/19 18:39:43 eyre+X9O0
>>670のリンク先、延々uwscの話題をしていてワラタ


678:名無しさん@お腹いっぱい。
07/02/19 22:15:18 K8AGIvtf0
操作すんのが面倒ならデモ画面でも見てりゃいいのにな。

679:名無しさん@お腹いっぱい。
07/02/19 22:52:16 16dl77Y30
comでエクセルを呼び出して作業させているのですが、
呼び出したエクセルのモジュールに作成した「sub処理()」を実行できずに、悩んでいます。
EXCEL.RUN("処理")やEXCEL.RUN "処理"とかやったのですがダメでした。
どなたか、ご教示願います。

680:名無しさん@お腹いっぱい。
07/02/20 02:05:52 jUqXQ7cY0
>>675
STATUS, GETSTR, POSACC, CHKBTN
CHKIMG

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


じゃね?
まずは戻り値や変数といった基礎を理解すべし


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5385日前に更新/293 KB
担当:undef