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/
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 02:17:40 ID:aKHo+G7T0] キーボードのあるキーを押すと マウスの左クリックを0.5秒後に押すマクロってどうやってつくるんでしょうか? if KBD(VK_DIVIDE,CLICK) then BTN(LEFT,CLICK,500) とかやってみたんですけどできなくて…
693 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 02:42:27 ID:9AJmM97l0] >>691 line= "例えば行の先頭から指定した文字列(句点、濁点等)までを選択して" sendstr(0,token("、",line)) >>692 getkeystate
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 02:46:11 ID:0sH5Ww6M0] >>693 レスありがとです!
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 15:22:29 ID:OI7ziwL20] UWSCおもすれー( ^ω^)
696 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 20:27:31 ID:6yiL1E+C0] あるプログラムのメモリを書き換えるスクリプトは、 どういう記述をすればいいのでしょうか?>>533 を見たのですが APIやDLLは使い方がよくわかりません・・・
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 20:35:33 ID:x+nYfDMf0] >>696 WriteProcessMemory 呼び出すだけだろ。
698 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 21:53:58 ID:g22vXUMk0] みんなこのソフトどういう時に使ってるの? なんか便利な使い道あったら教えて下さい。 このソフトプログラマーの人しか使わないのかな。
699 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 23:32:07 ID:lMs4LxVV0] >>698 俺はnPOPで受信したメールがたまってきたら テキストに保存して纏めて圧縮してるんだけど, その操作をuwscにやらせてる。 自分が頻繁に行う定型の操作があって, プログラムを組むほどでもないようなことをuwscで,,,みたいな
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/23(金) 23:41:01 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 12:15:07 ID:ifk79U590] >>700 ありがとうございます、参考になりました。 それに加えて、複数個指定した画像以外に 指定した画像がなかった場合の処理を組み込む事は可能ですか? この場合、配列をもう一つ別に指定した方が綺麗にまとまりますか?
702 名前:696 mailto:sage [2007/02/24(土) 12:55:52 ID:NQZTMvMn0] >>697 回答ありがとうございます、呼び出し方の記述がよくわからないので 勉強して出直してきます
703 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 08:28:12 ID:Y68j1HBx0] >>698 午前10時45分にシャットダウンしたい時。
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 14:38:01 ID:4DUTXKqq0] GETITEM() の ITM_ACCTXTやITM_ACCCLKで文字列取るときに「&」を取っ払うのは仕様なのか? ショートカットキーを表現する「&」を消すのはまだ納得できるけど、URL内の「&」消されるのはつらいぞ。
705 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 15:01:21 ID:rNvu9Obr0] アクセスエクスチェンジとかだろ
706 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 19:13:40 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 18:55:13 ID:MQXBg9MI0] 失礼します。 最小化しているウィンドウに対して処理を行う事は可能ですか? 行おうとしている作業は、最小化しているメールソフトに対して、 一定時間毎に"送受信"ボタンを押す、というものなのですが、 while ifb chkimg(送受信.bmp) btn(left, click, g_img_x, g_img_y) break sleep(60) wend に何を加えればいいでしょうか? 後、疑問なのですが、最小化しているウィンドウに命令を行えるなら chkimgで指定した画像は、表示している画面をサーチするのか、 最小化しているウィンドウ内をサーチするのか、どちらなのでしょうか? 回答頂ければ幸いです。
708 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 20:30:10 ID:XaitowDR0] chkimgは画面表示をチェックするんだろ? 最小化していて表示されるところだけちぇっくすればOK。 それが嫌ならchkimgなんか使うな。 ちなみに俺はchkimgなど1度も使った事は無い。
709 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 20:53:44 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 02:13:24 ID:bZ9qrAwt0] >707 とりあえず MOUSEORG(id,2) あとは PostMessage使うとか
711 名前:名無しさん@お腹いっぱい。 [2007/02/27(火) 02:14:15 ID:UsiWTpU40] ♪ /妊_娠\ . |/-O-O-ヽ| 6| . : )'e'( : . |9 (( ( つ`‐-=-‐ 'ヽ、 )) ♪ ♪ 〉 と/ ))) ♪ (__/ ̄ ̄(_) ♪ / ̄ ̄ \ . | | ♪ (|\ /|) ♪ /  ̄ ̄ ) )) ♪ ♪ (( ( . : ( : . 〈 ♪ (_) ̄ ̄ヽ__) ♪ /妊_娠\ . |/-O-O-ヽ| 6| . : )'e'( : . |9 (( ( つ`‐-=-‐ 'ヽ、 )) ♪ ♪ 〉 と/ ))) ♪ (__/ ̄ ̄(_)
712 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 05:12:53 ID:xdrZIzQI0] >>707 WinLister(英) ttp://www.nirsoft.net/utils/winlister.html ProcessWalkerなど ttp://www001.upp.so-net.ne.jp/yamashita/product/index.htm 最小化されているウィンドウの「クラス」「タイトル」なども取得できるソフト。 同系ソフトは他にもあるけど、この機能に限定すればWinListerが使いやすい感じ。
713 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 05:33:04 ID:XIHG/8cC0] >>712 訂正 △最小化されているウインドウの ○不可視ウインドウの
714 名前:名無しさん@お腹いっぱい。 [2007/02/27(火) 13:09:22 ID: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 [2007/02/27(火) 13:10:56 ID:dd7Gb3CU0] 業務用の抜き出しなんで、適当に直してね。
716 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 20:29:18 ID:5o3nqbUw0] IEでリンクの文字列をクリックしたいのですがHTMLが <a href="http://......">リンク名</a> 上記のような場合 IELink(IE_br[1],"リンク名") で問題なクリックしてくれるのですが リンク名のあとに改行が入っている場合、改行コードを追加したりしたのですが うまく動きません <a href="http://......">リンク名 </a> IELink(IE_br[1],"リンク名"+"<#CR>") // 改行追加 複数行になってしまう場合は無理なのでしょうか?
717 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 21:52:50 ID:mtZrmXvS0] getElementsByTagName("a")とかで試してみては
718 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/28(水) 00:22:00 ID:/zsDSXub0] >716 htmlに改行は関係ないはずだしそんなわけないやろ…と思って検証してみた。 うん、たしかに改行が入ってるとクリックできないわ。 RecIEで記録してみたら改行を含むリンクの方は改行じゃなくて "リンク名 "みたいに半角スペースが入ってるみたい。 これに習って半角スペース入れてやれば、 無事クリックすることはできたけど。 …これってバグだよね?
719 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/28(水) 00:36:17 ID:lKePO2390] UWSCでDirectInputを扱うことはできるかな?
720 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/28(水) 00:50:01 ID:+F5S3BZ40] どういうのが扱うの定義なの?
721 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/28(水) 01:34:24 ID:lKePO2390] ああ、ミジンコですいません・・・。 単純にKBDやBTNの代わりにDirectInputを使ってみたいな、と思いまして。だから キーやマウス操作で使いたいんです。 どうもUWSCでそういう事例がないっぽい感じなんで、聞いてみた次第です。
722 名前:名無しさん@お腹いっぱい。 [2007/02/28(水) 04:11:01 ID:WxlpFZeq0] >>716 umiumi様に報告しなっせ。
723 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/28(水) 05:50:57 ID:+F5S3BZ40] >>721 特定のアプリのみなら DLL Injection すればできるよ。 後はドライバ作ればなんでもできる。キーボードだけなら mayu.sys 使えばいい。
724 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/28(水) 22:56:38 ID:lKePO2390] >>723 なるほど。そういう策があるんですね。Thx!
725 名前:名無しさん@お腹いっぱい。 [2007/02/28(水) 22:59:46 ID:6bZJcGLF0] IESETDATAに対応するvbscriptってあります? これすげー便利なんだけどvbscriptで同じのがあれば教えてください。
726 名前:716 mailto:sage [2007/03/01(木) 00:20:04 ID:dHFep3w80] >>717 , >>718 様 ありがとうございます。 スペースを入れることで無事解決いたしました。
727 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/01(木) 00:23:51 ID:KFbXBiFs0] vbsでIE操作関連のライブラリは聞いたことないなあ。 IESETDATAぐらいの機能なら自分で互換プロシージャ書いたほうが早いかも。 VBScriptにこだわらず、PerlやRubyやJavascript使えるならMechanize使うべし。
728 名前:名無しさん@お腹いっぱい。 [2007/03/01(木) 03:11:08 ID:eWsgJP0Y0] >>727 やっぱそうですか。 vbscriptで実現しようとするとうまくいかないサイトがありまして、 RECIEでやると簡単にいったんです。 IESETDATAってのをたくさん使ってたのでvbでもできないかなあといろいろググってます。 でもないんですねえ。素人にはむつかしい。 Mechanizeってのをググっても???が頭に浮かぶばかりです。 やたらIT英単語が羅列される高度なサイトしかでてこない。
729 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 11:28:21 ID:wgmImKY+0] すみませんちょっと教えてほしいのですが CALL で呼び出した サブマクロをリリースすることは出来るのでしょうか? やりたいことは 一日中動かす制御系マクロで、条件にしたがって CALLするサブマクロを変えたいのです。 只、問題になるのではないかと懸念しているのは 例えば 条件にしたがって A.UWS をCALLして しばらくして、条件が変わり 今度はB.UWSをCALLした後 また、条件が元に戻って A.UWSをCALLすると、関数の重複エラーを起こすのではないかと思ってます。 CALLする際には、既にCALLしていればCALLしないような関数自体の制御はあるのでしょうか? よろしくお願いします。
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つしか存在しない共有資源なんだが ロックとかどうなってんのかな?