[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 11:22 / Filesize : 293 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

自動化ツールuwsc使いよ集まれ2



1 名前:名無しさん@お腹いっぱい。 [2006/08/24(木) 19:54:44 ID:x9yegvov0]
Windowsを自動化させるツールUWSC。
ttp://www.h7.dion.ne.jp/~umiumi/

uwsc使いよ 己のスクリプトを晒すのだ。

前スレ
自動化ツールuwsc使いよ集まれ
pc7.2ch.net/test/read.cgi/software/1107738590/

730 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 12:09:17 ID:WyS8M7wk0]
CALLはスクリプトの始まりで全て読み込まれる仕様だったと思うが。

731 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 12:11:33 ID:wgmImKY+0]
>>730 そうなんですか?
以前に 
Select 条件
 Case A
  Call A.uws
 Case B
  Call B.uws
 Case C
  Call C.uws
Selend

みたいなので動かしてましたが、条件に関係なく Callされてしまうということでしょうか?

732 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 12:14:46 ID:WyS8M7wk0]
なので、CALLの中は関数のみにして条件式で関数を呼び出したほうが管理し易い。

733 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 12:16:44 ID:wgmImKY+0]
>>732
了解です。アルゴリズムを変えます。

734 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 12:19:54 ID:WyS8M7wk0]
> CALL文はスクリプトが走る前に評価してマージ
らしいので、何回呼び出してもOKということ。

735 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 12:21:37 ID:wgmImKY+0]
>>734
そうなんですか、であればすごく楽です。いろいろありがとうございました。

736 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 12:24:09 ID:WyS8M7wk0]
なので は変だったかな。
まとめると、CALLの重複呼び出しは可能だが、
関数呼び出しの方がCALLする数も減らせてよいのではないか・・と。

737 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 17:18:17 ID:LEgHzb2/0]
教えてください

kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)

の簡略化の仕方って、どうすればいいのでしょうか?
初歩的な事ですいません。

738 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 17:40:28 ID:zd/tmG0Y0]
for i=1 to 5
kbd(vk_tab)
next



739 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 18:51:13 ID:LEgHzb2/0]
>>738
なりました
どうもありがとうございました!

740 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 23:29:55 ID:YTqW5ImN0]
kbd(vk_tab, 5 ) * 5;

741 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 23:31:39 ID:YTqW5ImN0]
I=5
WHILE I--
kbd(vk_tab)
Wend

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 00:35:02 ID:VMJxRwv40]
>740,741




……うそつき
(緒川たまき)

743 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 09:17:41 ID:V9IC+ExM0]
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)
kbd(vk_tab)

これを誰よりも複雑に書いてください。


744 名前:名無しさん@お腹いっぱい。 [2007/03/03(土) 20:43:41 ID:s3yQZgWo0]
kbd(vk_tab , vk_tab , vk_tab , vk_tab , vk_tab) ;

745 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 23:14:36 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 23:23:26 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 02:53:05 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 11:10:58 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 16:30:49 ID:ZVZ7OXQj0]
ブログのバックアップデータのあるCSVファイルがあるんだけど
コレをWIKIに移行しようと思って自動化プログラム作りたいんだけど

どんなプログラムくめばいい意

750 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 16:34:23 ID:QvCR5Gc90]
>>749
要約するとこうだな
@ブログのバックアップCSVデータがある
AWIKIに移行する自動化プログラムを作りたい
Bどんなプログラムを組めばいいか?という質問

答え:自動化プログラムを組めばいい


751 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 17:18:20 ID:ZVZ7OXQj0]
>>750
そう

わからないのが
エクセルから特定のセルをキャッシュにコピーする方法

特定のアドレスにアクセスする方法

がわかればたぶんできると思うのですが

752 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 17:30:46 ID:m1xVfsXi0]
テキスト処理だけでできる作業を何でわざわざ GUI でやろうと思うのかが謎

753 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 17:50:39 ID:aLBEPeVF0]
ここ数時間試行錯誤をしてるのですが解決しませんので質問させていただきます

メモ帳などでキーボードのaを押したら処理1が開始されるようなマクロを組みたいのですが
      start
  __________|________
  | |
aが押される bが押される (キーボード
  | |
処理1 処理2
|__________________|
|
~
このようなスクリプトはUWSCにはないのでしょうか
INPUTでは新たにウィンドウが出てしまいますし、エンターを押さなければ処理1には進みません

なにか知恵をお貸しいただければ幸いです

754 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 17:53:38 ID:QvCR5Gc90]
ifb GETKEYSTATE(VK_A) then
  //a key を押した時の処理
endif


当然 while 〜 wend に入れるべし


ていうか752にもあるように、UWSCでつくるべきプログラムじゃないよ

755 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 18:05:33 ID:aLBEPeVF0]
>>754
即レスありがとうございます
それでうまくできなければ他のマクロを探してみます

ありがとうございました

756 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 23:26:57 ID:a4NBNM9n0]
>>752
テキストでやるのはいいけど
ファイル名のつけ方がわからん

757 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 10:59:05 ID:kPPaI09y0]
>749
csvを読み込み処理する部分は
FOPEN

758 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 11:02:26 ID:kPPaI09y0]
おっと途中で書き込んでしまった。
csvを読み込み処理する部分は
FOPENして
FGETして
ごにょごにょしたらおk

wikiに書き込むのは
IESETDATA使うなり
直接COMでDHTMLたたくなり
好みとスキルに応じてどうぞ



759 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 12:24:23 ID:2NSKScfX0]
UWSCスクリプトを実行ファイルに変換するスクリプト
欠点: ファイルがでかすぎる。

760 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:11:00 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 14:44:22 ID:Q+kjASni0]
>>760
DIM WshNetwork = CREATEOLEOBJ("WScript.Network")

PRINT WshNetwork.ComputerName

じゃダメなのか?

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 14:55:38 ID:7XN40pw00]
>760
DEF_DLL GetComputerNameA(string, var long):long:kernel32.dll

引数は前が値渡しで後ろが参照渡しみたいだね

763 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 15:02:40 ID:7XN40pw00]
DEF_DLL GetComputerNameA(var string,var long):long:kernel32.dll

あれ?前もvarじゃないとだめみたい

764 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 15:18:11 ID:O6XSymB40]
>>763
そりゃ、stringに結果が返るんだから参照渡しなんじゃないの

765 名前:760 mailto:sage [2007/03/08(木) 16:10:33 ID:PbsxIEko0]
ありがとうございます。うまくいきました。
よく見たら、第二引数がLPDWORDっすね・・・orz

>>761
そう言う方法もあるんですね。メモメモ。

766 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:33:01 ID:7XN40pw00]
>764
もちろんおれもそうとは思ったんだけど
VBの例見てみたらなぜか一つ目の引数はByValだったんだよね…

Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal Buffer As String, Size As Long) As Long



767 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:36:47 ID:7XN40pw00]
>760
ちなみにバッファは16バイトでいくない?
コンピュータ名ってANSI15文字までだった気がする。

768 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 23:10:03 ID:3vwnAUEJ0]
CTRL+Rを押すとあらかじめ作っておいたAというスクリプトが
CTRL+Lを押すとあらかじめ作っておいたBというスクリプトが実行される
こういう感じで使うことってできますか?



769 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 23:21:51 ID:QhMdkY5Q0]
uwsファイルをuwsc.exeに関連づけを行う
uwsファイルのショートカットをデスクトップに作成
そのショートカットのプロパティを開いて、ショートカットキーを割り当てる

770 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 23:26:22 ID:3vwnAUEJ0]
>>769
ありがとうございます!

771 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 02:16:24 ID:pF+OFex30]
>>767
ご指摘の通り、
MAX_COMPUTERNAME_LENGTH + 1 ということなので、16で32も必要ないですね。

772 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/10(土) 16:03:33 ID:EidvIQ3R0]
コンパクトなランタイム版欲しくないか?
コピー自由だからEXE化不要というのは概ね同意だったが
ここまでファイルがでかくなるとEXE化というのもアリかな?

773 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/11(日) 15:16:00 ID: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] //www.honda.co.jp/WGP/
print EVENT_PRM[1] //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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/11(日) 17:41:38 ID:gXtUVhMk0]
>>773

IDispatch型ってのはそもそもprintするようなものじゃないと思うんだ

775 名前:名無しさん@お腹いっぱい。 [2007/03/11(日) 22:10:17 ID:FHiSloY00]
>>774
**&ppDispは入れ込むものだってのはわかった
www.melonpan.net/letter/backnumber_all.php?back_rid=283118
みたいなことをやりたいんだけど無理なんでしょうか

そもそも
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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 00:45:56 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 01:09:19 ID:A4ISQcDy0]
yahooのブリーフケースにいれてあるファイルを開きたいのですがなかなかうまくいきません。
良い知恵orミスの指摘をお願いします。

IELink(IE,"ブリーフケース")
BusyWait(IE)
IELink(IE,"****.xls")   //対象ファイル
BusyWait(IE)
ACW(GETID("ファイルのダウンロード"))
CLKITEM(GETID("ファイルのダウンロード"),"開く(O)",CLK_BTN)

778 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 02:08:47 ID:JMJM6ows0]
おおっと、この場合VALIANT_BOOLだからTRUEは1でよかったね。
まあどちらにしても新しいウィンドウ開いちゃうんだけど。




779 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 02:28:25 ID:JMJM6ows0]
やっぱVARIANT_TRUEは-1でよかった
ウソ言ってスマソ

780 名前:773 mailto:sage [2007/03/12(月) 09:03:24 ID:a3O+JiPS0]
うはNewWindow2でできました
すいません2で試してなかったようです
cancelが駄目だったからあきらめてしまった
ありがとうございました

781 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 16:49:47 ID:n5L2tYqJ0]
Sleepで待ってるスレッドを中断するにはどうすればいい?
ウィンドウ持っていればCtlWinで中断できる?
それともSleepの代わりにWAIT・POSTみたいのはWin32APIでできる?

782 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 17:13:41 ID:wxNktC0X0]
WHILE+GETKEYSTATE

783 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 18:30:24 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 23:08:41 ID:n5L2tYqJ0]
それって単にフラグポーリングしてるだけやんか…。

785 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 05:29:39 ID:cUL5v4BL0]
じゃあなにがしたいの?

786 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 09:20:34 ID:cyFSWzt+0]
fukidasi("10秒後にこのメッセージを消すぞ!")
thread fukioff(10)
Sleep(20)
Msgbox("噴出し消えてるか?")
Exit

procedure fukioff(t)
sleep(t)
fukidasi()
fend

スレッドでfukidasiが消えてくれないのだが?
なぜ?
吹きだしウインドウを捜してCTRLWINで閉じなきゃ駄目なのか?
それともバグ?

787 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 09:30:12 ID:cyFSWzt+0]
thread fukioff(10)
Msgbox("噴出し消えてるか?")
Exit

procedure fukioff(t)
fukidasi("10秒後にこのメッセージを消すぞ!")
sleep(t)
fukidasi()
fend

これなら消える。
fukidasi以外も全部そうか?
ああそうかい。
じゃ。

788 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 12:15:17 ID:Jt3WP4T70]
メイン側とスレッド側のfukidasiは別物。
スレッド数と同じ数のfukidasiを表示できる。



789 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 12:39:02 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 13:29:22 ID:cyFSWzt+0]
>>788
> メイン側とスレッド側のfukidasiは別物。
スレッド毎に別になるのは上でもう試したので判ってるが。
例えばコンソールは同じもんなのか?
なーんでだ?ていうかあれは?これは?で全部試さなきゃ駄目そうだな。
UWSCはためしためし作るのがあたりまえなのでそれくらい全然平気だが。

791 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 17:03:36 ID:Jt3WP4T70]
だったらぶつぶつ言わないでガンバレ。

792 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 17:14:31 ID:z+6WW4kl0]
複数thread間で、printやbtn、mmvなんかを実行するとき
当然これらはシステムで1つしか存在しない共有資源なんだが
ロックとかどうなってんのかな?

793 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 08:49:07 ID:aZuPqBx+0]
とにかく試すんだよ。

794 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 16:51:21 ID:yQ01SVVO0]
質問させていただきます。

以下のような処理を uwsc で組むとどうなりますか。

1.現在、起動中のアプリから"プログラムA" を探す
2.みつかったら、
 非アクティブのままで(バックグランドのアプリに)
 キーX を送る。

恥ずかしい話ですが、いつもuwscに挑戦しょうとしますが挫折します。
テンプレにかいてあるいろんなサイトにいき、ヘルプなどみているうちに
わからなくなってしまいます。(どれを参考にしてよいかわかりません。)
なにか良い方法はないでしょうか。

上の1.2.を組むためにはどこを見て勉強すればよいのでしょう。
教えていただければ幸いです。

795 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 20:35:06 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 23:09:31 ID:yQ01SVVO0]
>>795 回答、有難うございました。
コマンド1つづつ、調べてみます。

797 名前:名無しさん@お腹いっぱい。 [2007/03/15(木) 20:50:07 ID:echeEF2V0]
画面内に指定画像があるか無いかチェックし、あればクリックしたりするスクリプト文を作成したいのですが・・・、うまくいきません;
詳しい方、どうかご教授お願いしますm(_ _)m

798 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 21:19:32 ID:gAtpnVa70]
>>797
CHKIMG使えばいいと思う。
それとどう上手く行かないのか書かないと分からない。

ご教授じゃなくてご教示、意味の分からないこと葉は使わないほうがいい。



799 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 21:21:39 ID:yidvy73a0]
>>797

どううまくいかないのか書かないと
誰も答えられないよ。

ここままではヘルプぐらい嫁としか言えない。

800 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 21:51:43 ID:RMTAm+Y00]
キャラだろ。

801 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 21:52:09 ID:Bw9W6nzv0]
ま〜たオンラインゲームかw

802 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 00:22:58 ID: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("つwww.google.co.jp/")
endif

803 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 00:26:58 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 00:35:15 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 02:07:45 ID:qAGjSoPe0]
>>802
ちょとワロタ
わざわざスクリプトまで組んでくれるなんて
親切な人だね


806 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 02:15:31 ID:31It80P50]
どういたしまして

807 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 03:21:58 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 04:01:48 ID:e+a/E5Ma0]
質問です。
最小化しているウィンドウに対して命令を送ろうと

public 2ch
2ch = GETID("Jane","TApplication")
MOUSEORG(2ch,2)
以降、処理

というマクロを組んだのですが、うまくいきません。
処理自体は、キーボードのボタンを一定時間毎に入力する簡単なものなので
間違いは無いはずですし、上記の記述に不備があるのでしょうか?
クラスの取得には>>712のWinListerを使ったのですが
指定するID自体が間違っているのでしょうか?
皆さんのお力添えをいただきたいです。



809 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 09:50:08 ID:7NEMi9s/0]
SendMessage
せめてsckey chkitem
janeに何させたいの?

810 名前:名無しさん@お腹いっぱい。 [2007/03/16(金) 13:37:57 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 16:44:47 ID:qAGjSoPe0]

id = GETID("WTL:Donut")
title = STATUS(id,ST_TITLE)
WHILE POS(CLIP,title) <> 0


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

812 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 16:47:23 ID:WOCiyC/30]
>>811
了解です。
もっとじっくりと勉強してみます。

813 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 17:50:32 ID:qAGjSoPe0]
あと、
WHILE POS(CLIP,title) = 0
だな

814 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 18:02:54 ID:7NEMi9s/0]
TOKENでデリミタ複数指定した時、どのデリミタで引っ掛ったのか判る方法無いの?
組み込み関数が今位置不便なのでどいつもこいつもCOM使うんだよな…。

815 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 19:26:55 ID:mqTPjeha0]
>>804,807
遅れましたが、どうもありがとうございます。
sleep()
getkeystate(VK_LBUTTON)
を挟むことで、入力の機会を2回得ることが出来ました。

816 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 21:27:28 ID:qAGjSoPe0]
>>814
そもそもデリミタ複数指定って、想定されてる使用法なの?

817 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 04:30:41 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 04:31:28 ID:MCeA35RR0]
あ…



819 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 09:45:56 ID:G1MEbanD0]
スピーカーから音が出ているかどうかをuwscスクリプトから確認する方法はないですか?

820 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 10:51:08 ID:g9NJe7xK0]
>>819

// サウンドが再生されたかをチェック
戻値 = CHKSND( [サウンド名] )

821 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 11:00:07 ID:N0d6UYUB0]
>>820
それだとスピーカーがつながっているかわからないし、
スピーカーの電源が入ってるかもわからないし、
スピーカーのボリュームが最小になっていて聞こえなくなってるかもわからない

822 名前:819 mailto:sage [2007/03/18(日) 11:08:31 ID:G1MEbanD0]
スミマセン、私の質問の仕方はよくなかったかも。

目的は複数の動画ファイルを順に5秒ほど再生して、
音が全然無かったものと、音があったものとを識別したいのです。
音は当然、動画ごとに違うので、ビープとか××.wavとかではないです。



823 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 21:55:05 ID:qeai6ROm0]
動画に音声ストリームがあるかどうかをチェックするのは可能かもしれんが
UWSCでやる必要は無い。

まず動画ファイルがどういうものか、音声ストリームとは何か
意味を知らないならググれ。

824 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 22:00:49 ID:wpAgcroq0]
その辺がわからないからOSがハードウェアに指示出すところで
拾えないかなと思ったんじゃないかな

825 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 22:03:46 ID:N0d6UYUB0]
UWSCで出来たとしてもどのみちDLL使用だろうし、
UWSCじゃないところで勉強してからきたほうがいいな。

826 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 22:23:27 ID:g9NJe7xK0]
WMPとかで再生してスペアナの画面監視するってのはどうだ?

827 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/19(月) 23:12:54 ID:zKhTt2fP0]
SOREDA!

828 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 23:34:53 ID:wOQv7e7l0]
質問です。
改行を含む文字列をファイルから読み出して、別のファイルに改行抜いて書き込みたいのですが、
CHGMOJを使って<#CR>を検索してもヒットせず改行が削除できなくて困っています。。
何が原因なのでしょうか。



829 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 00:19:06 ID:N4q8VkjG0]
USB-RS232Cのインターフェースを使っているのですが、
接続の度にCOM番号が移動してしまいます。
uwscで、現在有効なCOM番号を取得する事は出来ますか?
ヒントだけでもいいので、よろしくお願いします。

830 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 02:22:37 ID:G1apsxhH0]
>>828

改行なし文字列 = chgmoj(改行入り文字列,"<#CR>","")

で普通にできたけど。

まさかファイル読み込み→置換→書き込みを一行づつ処理したりしてないよね?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<293KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef