UWSC 掲 示 板
投稿時に「証明書が不正です」と出る場合には、JavaScriptをオンにしてください
動作不具合での質問の場合には環境(OS,IEのバージョン等)の表記もしてください
タイトルは質問内容を表したものにしてください
ネットゲーム関係の質問はご遠慮ください

タイトル (必須)
 お名前 (必須)
文字色
設定保存削除/編集パス  

SHIFTARRAY / SHINJI
SHIFTARRAY関数の引数にSAFEARRAY型の配列変数は使えないのでしょうか?
No.3399 2017/01/22(Sun) 05:27:36

Re: SHIFTARRAY / routa
使えますよ。
d = SAFEARRAY(0, 5)
for i=0 to 5
d[i]=i
next
SHIFTARRAY(d, -2)
for i=0 to 5
print d[i]
next

No.3404 2017/01/22(Sun) 22:41:30

Re: SHIFTARRAY / SHINJI
なるほど動きますね!
一次元配列なら可能で、二次元配列の場合はむりなんでしょうか?
二次元配列のSAFEARRAY型の配列変数を引数にして試していて、それだと動かなくて。

No.3413 2017/01/23(Mon) 17:41:09

Re: SHIFTARRAY NEW / routa
行ごとに一次元配列で指定しましょう。
d = SAFEARRAY(0,1, 0,5)
for i = 0 to 1
SHIFTARRAY(d[i], -2)
next

No.3420 2017/01/23(Mon) 23:34:56

Re: SHIFTARRAY NEW / SHINJI
そういうことだったんですね!
ありがとうございます!

No.3421 2017/01/24(Tue) 01:26:34
(No Subject) / カルロス
なるほど、分数で表記するわけですか。ぶっちゃけこのようなuwsファイルを速く動かしたいときには
どこにsleepを入れればいいのでしょうか

While True
MMV(1184,49,515)
MMV(1399,22,16)
ACW(GETID("(無題)(更新) - 秀丸","Hidemaru32Class"),1252,12,640,759,0)
BTN(LEFT,CLICK,1400,21,312)
KBD(VK_SHIFT,DOWN,999)
KBD(VK_DOWN,CLICK,468)
KBD(VK_SHIFT,UP,109)
KBD(VK_CTRL,DOWN,671)
KBD(VK_X,CLICK,406)
KBD(VK_CTRL,UP,78)
MMV(1401,15,624)
MMV(873,10,15)
ACW(GETID("temp - Windows ムービー メーカー","MovieMakerWndClass"),4,1,1004,1029,0)
BTN(LEFT,CLICK,873,10,172)
KBD(VK_ALT,DOWN,1622)
KBD(VK_ALT,DOWN,499)
KBD(VK_ALT,DOWN,32)
KBD(VK_E,DOWN,15)
KBD(VK_ALT,UP,156)
KBD(VK_E,UP,0)
KBD(VK_E,CLICK,718)
KBD(VK_TAB,CLICK,2028)
KBD(VK_CTRL,DOWN,780)
KBD(VK_V,CLICK,327)
KBD(VK_CTRL,UP,78)
KBD(VK_BACK,CLICK,1045)
KBD(VK_SHIFT,DOWN,1326)
KBD(VK_TAB,DOWN,218)
KBD(VK_SHIFT,UP,203)
KBD(VK_TAB,UP,0)
KBD(VK_DELETE,CLICK,655)
MMV(877,5,1201)
MMV(1410,26,15)
BTN(LEFT,CLICK,1410,26,359)
ACW(GETID("(無題)(更新) - 秀丸","Hidemaru32Class"),1252,12,640,759,0)
KBD(VK_SHIFT,DOWN,1170)
KBD(VK_DOWN,CLICK,297)
KBD(VK_SHIFT,UP,218)
KBD(VK_CTRL,DOWN,702)
KBD(VK_X,CLICK,375)
KBD(VK_CTRL,UP,63)
KBD(VK_SHIFT,DOWN,468)
KBD(VK_DOWN,CLICK,187)
KBD(VK_SHIFT,UP,94)
KBD(VK_DELETE,CLICK,562)
MMV(1408,16,982)
MMV(165,173,16)
BTN(LEFT,CLICK,165,173,249)
ACW(GETID("temp - Windows ムービー メーカー","MovieMakerWndClass"),4,1,1004,1029,0)
KBD(VK_CTRL,DOWN,764)
KBD(VK_V,CLICK,499)
KBD(VK_CTRL,UP,172)
KBD(VK_RETURN,CLICK,655)
KBD(VK_TAB,CLICK,1560)
KBD(VK_TAB,CLICK,203)
KBD(VK_RETURN,CLICK,920)
KBD(VK_RIGHT,CLICK,1623)
MMV(169,173,1030)
MMV(1074,46,15)
Wend

No.3402 2017/01/22(Sun) 22:35:38

Re: / MM
工夫すれば出来るの真意は、その機能を自力で実装する、です。
貴方の望むような形での機能はありませんので他のソフトを当たるか、
誰かに発注して有償で作ってもらうかしてください。

No.3403 2017/01/22(Sun) 22:39:48

Re: / カルロス
なるほど。基本的なユーザインターフェイスや動き方は気に入っていたので残念です。どなたか、だいたい同じような感じのフリーウェアのマクロソフトで、倍速機能が付いているおすすめソフトがありましたら、ご紹介いただけるとありがたいです。
No.3405 2017/01/22(Sun) 23:22:48

Re: / tmp
調べる事も苦労もしない人に教える人はいるのでしょうか?
他のソフトですか?そんな事ここで聞くものではないかと思います。

No.3406 2017/01/23(Mon) 10:09:58

Re: / stuncloud
荒れてますね
以下は一応出来なくはないよ、という話です

前のスレッドで俄プログラマーがおっしゃっていたことを提示されたスクリプトでやる場合はsleepを使うわけではありません

> MMV(1184,49,515)
> BTN(LEFT,CLICK,1400,21,312)
> KBD(VK_SHIFT,DOWN,999)


主にこのMMV、BTN、KBDという関数で構成されていますが、これらの最後の引数は
> 実行までの待ち時間 (ミリセカンド)
です
つまりこれをいじれば早くなるんですね

----------------------------
速度 = 1 //2倍速の時は2
MMV(1184,49,515/速度)
BTN(LEFT,CLICK,1400,21,312/速度)
KBD(VK_SHIFT,DOWN,999/速度)
----------------------------

といった感じにすべてのMMV、BTN、KBDの最後の引数に「/速度」を付ければ変数「速度」に入れた値によって速度調整できるようになるというわけです
MMV(1184,49,0)
MMV(1184,49)
のように実行までの待ち時間を0にするか省略すれば最速で動作します

No.3407 2017/01/23(Mon) 10:58:54

Re: / カルロス
No.3407さま
ありがとうございます。まさに私が聞きたかった解決法です。これなら手間を掛けずに倍速動作が可能ですね。重ね重ねありがとうございました。

No.3406
>調べる事も苦労もしない人に教える人はいるのでしょうか?
いましたね。
上から目線でモノを言いたいだけの役立たずはすっこんでてください。

No.3409 2017/01/23(Mon) 14:47:15

Re: / stuncloud
カルロスさん
> 上から目線でモノを言いたいだけの役立たずはすっこんでてください。
ええと、あなたもそういうこと言わんでくださいますかね…
思うのはぜんぜん構わんので、でも腹に抱えといとくだけにしてください…

プログラムを書くということの性質上なのか、このような場では「人に聞くばかりで自分の手をあまり動かそうとしない人」というのは嫌われる傾向にあります
いわるゆ「教えて君」のような呼ばれ方をする人ですね
あなたの質問や受け答えからそのような人だと思われたという可能性があり、ついきつい言い方になってしまう人が出てくるのは理解できます
実際僕のあなたに対する印象もそのようなものでありました

ただ、文面から受ける印象とその人の実際が合致するとも限りませんし、あまりそんなことでいざこざが起こるのも好みません
ですのでひとまず(おそらくあなたが求めているであろう)回答を提示しました

ちなみに僕の最近の回答スタンスは「とりあえず答えを提示する」です
これが一番スムーズです
かつては安易に答えだけ教えるのは良くないのではないかと思っていました
いわゆる教えて君な感じの人には特に、自分で考えようとしない姿勢が気に入らないという気持ちがあったんですよね
ただそれは全部こちらの思い込みですし、それで意地悪したところでなんもいいことないです

ことプログラミングに関しては人に聞く、ということは絶大な効果があったりします
みなさんも経験があるんじゃないかと思うんですが、独学では理解できなかったことが誰かの一言で途端に理解できた、といったことがありますよね
たったそれだけのことで一気に習熟が進むことを身を以て知っているので、僕はそのものズバリの答えを教えることに躊躇しなくなりました
プログラムで何につまづいて、またどのようにつまづいているかって人によるのでそのあたりの事情って質問からでは読み取れない事が多いです
でも、解答となるコードは手段からなにから全部詰まってるわけですよ
そのコードを見た質問者がその場しのぎにコピペするかとかそこから成長するかとかはまぁ、どうでもいいことなんですよ
どうせわかんないし
だったらまぁ後者だといいなぁと思いながら回答したほうがこっちにとってもいいし、答えを求めている相手にとっても良いですよね

あ、もちろん何度も何度も質問を繰り返すひとにはふんわりいい加減にしろって伝えます
あと、具体的にな答えではなくヒントだけでも良さそうな人にはヒントだけ伝えたりもします

とまぁ色々書きましたが、あくまで僕がこうだよって話でみなさんもそうであれってことではないです
ただあまりつっけんどんにしないほうがみんな気持ちよく利用できるよね、ということだけは意識してもらいたいかな…

No.3412 2017/01/23(Mon) 17:00:09

Re: / しろまさ
(o^-^)b いいね!
No.3418 2017/01/23(Mon) 19:41:54

Re: / カルロス
stuncloudさん

ネガティブな反応が返ってくることはわかりきっていたんで、もう書き込まないつもりだったのですが、せっかく長文のレスをいただいたということもありますんで、ちょっとだけ。

おっしゃるとおり私は「教えて君」です。プログラムに限らずいろんな分野で「教えて君」です。で、ほうぼうでこの手のドシロートな質問をするのですが、どの分野の掲示板に行っても必ず居るんですよね。たいした知識もないくせにエラぶりたいだけの人が。教えてgooとかほんとヒドいです。

私はプログラム全くわかりませんが「最後の項目がミリセカンドの待ち時間です」、このたった1行のレスすら返せない人が上級者のわけがない。ほんと笑っちゃいます。

確かに私のレスは常識を欠いたものであることに弁解の余地はありませんが、「自称上級者」が特権的に行使する嘲笑が、私がやったと同じように不愉快の種を撒いていて、時には初心者を萎縮させたり、必要以上にへりくだった態度を取らせていることも、知っていただきたいと思うのです。

No.3419 2017/01/23(Mon) 20:04:07
なぜか止まる / SHINJI
行数が1103がプリントされた時点で動きが止まってしまいます。型があってないorオーバーフロー
初期値を1000、終了値を1300などとした時も、1103がプリントされた時点で動きが止まってしまいます。
別のスクリプトでは、最終行まで処理をしていたと記憶しているのですが、これはなぜ止まるのでしょうか?
このファイルは4312行あります。

fail="データ 一覧表1.CSV"
fid = FOPEN(fail, F_READ or F_WRITE)  
行数=FGET(fid, -1)
print 行数
print fail
print fid
For 行 = 1 to 行数
print 行
dat=FGET( fid, 行, 16,true )*2.204 //型があってないorオーバーフロー
FPUT(fid,dat,行,23)
next
FCLOSE(fid)

No.3414 2017/01/23(Mon) 17:53:39

Re: なぜか止まる / 俄プログラマー
データ 一覧表1.CSVのファイルの1103行目のデータが文字か空白行等で数値ではないのでは?
No.3416 2017/01/23(Mon) 18:06:48

Re: なぜか止まる / SHINJI
その通りでした!
失礼しました!

No.3417 2017/01/23(Mon) 18:45:38
EXCELオートフィルター / ROM
お世話になります。
見よう見まねでEXCELのオートフィルタープログラムを作成しています。
何とかオートフィルターまでは出来たつもりですが、”選択行の数”と”選択行”を取得する方法が解りません。
ググったところ、以下の記述を見つけました。


 選択されているセルのすべての行番号を取得する
  Dim rng As Range

  For Each rng In Selection.Columns
   MsgBox rng.Column
  Next rng

知識不足でUWSCへの適用方法が解りません。
何方かご教示いただければ幸いです。
よろしくお願いします。

参考:オートフィルター
oXL=GetActiveOleObj("Excel.Application")
_Filter="XXX"
_CellNumber="C2"
ColumnNumber = oXL.ActiveSheet.Range(_CellNumber).Column
oXL.ActiveSheet.Range(_CellNumber).AutoFilter(Field:=ColumnNumber, Criteria1:=_Filter)
PRINT oXL.Selection.ROWS.count // 「1」と表示される。

No.3408 2017/01/23(Mon) 12:55:00

Re: EXCELオートフィルター / しき
//フィルタリングの結果を取得する場合は、AutoFilterオブジェクトを使います
oXL=GetActiveOleObj("Excel.Application")
o_filter = oXL.ActiveSheet.AutoFilter //AutoFilterオブジェクト
xlCellTypeVisible = 12

//第一列の Ranges
o_ranges = o_filter.Range.Columns(1).SpecialCells(xlCellTypeVisible)
print o_ranges.Count
print o_ranges.Address

n = GetOleItem(o_ranges)
for i=0 to n -1
  o_range = all_ole_item[i]
  print o_range.Row +" "+ o_range.Address(false, false)
next

msgbox(o_ranges.Count +" 行")

No.3411 2017/01/23(Mon) 16:07:44

Re: EXCELオートフィルター / しき
>フィルタリングの結果を取得する場合は、AutoFilterオブジェクトを使います
少し違いました。
AutoFilterオブジェクト は表の範囲を特定するためだけに使っています

o_ranges = o_filter.Range.
の部分は、例えば以下のようにも書けます
o_ranges = oXL.ActiveSheet.Range("C2").CurrentRegion.
o_ranges = oXL.ActiveSheet.Range("A1:C15").

肝は表示行だけを得るための、.SpecialCells(xlCellTypeVisible) です

参考URL
Office TANAKA - Excel VBA Tips[オートフィルタを使い倒す]
http://officetanaka.net/excel/vba/tips/tips155d.htm

No.3415 2017/01/23(Mon) 17:54:05
倍速指定はできますか / カルロス
2倍速、3倍速、10倍速のように、実行速度を変化させることはできますか。
昔、Win98時代にFマクロ(だったかな)を使っていて、似たフリーソフトにようやく巡り会えてうれしく思っています。

No.3394 2017/01/20(Fri) 10:39:54

Re: 倍速指定はできますか / 俄プログラマー
出来る出来ないの答えであればできます。
但し標準の機能ではないです。

No.3395 2017/01/20(Fri) 12:06:39

Re: 倍速指定はできますか / カルロス
標準でないやり方が難しいものでなければ教えてください。
No.3396 2017/01/20(Fri) 17:40:09

Re: 倍速指定はできますか / 俄プログラマー
SLEEPに入れる値を変数にすれば良いですよ。
待ち時間が変わる=実行速度の変化

No.3397 2017/01/20(Fri) 19:52:36

Re: 倍速指定はできますか / カルロス
待ち時間が変わったぐらいですと、10倍速のような高速の変化は期待できないように思うのですが。
質問の趣旨は、例えばマウスの移動を記録したとして、そのマウスの移動速度が2倍速、3倍速、10倍速になるように変化させる設定が可能かどうか、です。

No.3400 2017/01/22(Sun) 10:26:22

Re: 倍速指定はできますか / 俄プログラマー
既に回答している通りです。
標準の機能で2倍速で再生などのようなものはありません。
ただ
>2倍速、3倍速、10倍速のように、実行速度を変化させることはできますか
の質問に対しては「工夫」する事で実現可能なわけです。
具体的な例が欲しいのであれば下記の通り
これがご不満であれば他のマクロソフトを探された方がよろしいかと思います。

速度 = 1 //2倍速の時は2
for i = 1 to 10
  print "test"
  SLEEP(1/速度)
next

No.3401 2017/01/22(Sun) 16:54:03
スケジュール設定が時々消えてしまいます / 小市民
平日の決まった時間に自動実行をするのに、使わせていただいております。
ところが、1月に1回ぐらいの割合で、設定しているスケジュール設定が消えてしまい、
自動実行ができないという現象が起こっております。
最初は、当方の操作ミスか、ウインドウズのアップデート、ウイルスソフトによるものではないかと思い。各種設定を自動更新から手動に切り替えておりますが、先日また、スケジュール設定が消えてしまいました。
何か良い方法はございませんでしょうか?

使用環境
windows10 pro 32bit
UWSC Ver5.2.3.0

No.3380 2017/01/14(Sat) 16:19:45

Re: スケジュール設定が時々消えてしまいます / koi
同じ現象を何度か経験してますが
(UWSC以外のINIファイルの破損は見たことない)
定期的に設置をバックアップしておくなどの対策しかないかと思います

-------------追記
UWSC掲示板  という意味からはそれた回答になりますが
どうしてもスケジューリングで動かなければ困るとかいったことがあるのであれば
OSのタスクスケジューラでの実行も視野に入れたほうがよろしいかと思います
(私も一部 UWSCのスケジュールから移行したものがあります)

No.3382 2017/01/15(Sun) 02:50:37

Re: スケジュール設定が時々消えてしまいます / しゅん
私はスケジュールを使っていないので、今の所アドバイスできませんが、複数報告があるなら、興味があります。

興味本位で申し訳ないですが、できたら質問に回答していただけると嬉しいです。
1. 消えた際、UWSC.INIは存在するか?
2. UWSC.INIの内容は、スケジュール部分のみが消えるのか?(他項目も変更している場合それは残るのか?)
3. ファイル更新日付はどうなっているか(できれば、スケジュール設定後更新日付をメモ。消えた後の更新日付がどうなっているか)
4. UWSCやUWSC.INIのあるディスクは、Windowsの入っているディスクか?(外付けだったりしないか)

あたりが気になるところです。
あとは、イベントログにDiskのエラーがあったりとかは、、、ないですよね?

No.3383 2017/01/16(Mon) 20:47:03

Re: スケジュール設定が時々消えてしまいます / koi
あくまで私の場合の話で覚えてる範囲での話ですが
UWSC.INIは存在していました というかそれまでのものが消えて
新規作成されている様な状況だったと思います
気が付くのはスケジューラではなくてランチメニューが全部消えてて
(ボタンに何も登録(表示)されてないのですぐわかる)
INIファイル見るとスケジュールも消えている  という状況です
  個人的な重要度も ランチメニュー > スケジューラ

OS起動時にUWSCも同時起動でそのままタスクトレイに入れぱなしにしてるうえ
登録スケジュールもそれほど多いわけではないので
一番で気が付くのがランチメニューになります (UWSCは管理者実行してます)
  
ただ今思えば表示位置などが初期化されていなかったようにも思うので
完全に初期化  ということでもなかったかもしれません
   また消えちゃったよ   位で再編集してしまったので・・・
   
INIファイルの場所は標準のままで
本体含め全てWindowsと同一ドライブ上に存在します
その際特にエラーが起こっていたような気配はありませんでしたが
イベントログや作成日まで気にしたことは無い というのが正直な処です
DISK異常はありません

UWSC 4.9a あたりからちょこちょこ使っていますが
これまでに数回本現象を経験しています
  バージョンアップのタイミングで消えた記憶はありませんが
  PC再起動で消えた記憶はあります

その意味では元投稿者さんのように
最新バージョンで経験してるという意味ではありませんし
発生頻度的にもかなりの違いがあり明確な環境情報を開示できません
(以下の組み合わせで経験)
UWSC 4.9c以降
OS  Win7/32bit/64bit  Win10 64bit

No.3384 2017/01/17(Tue) 00:46:59

Re: スケジュール設定が時々消えてしまいます / しゅん
koiさんの状況からすると、uwsc.exe起動中に、uwsc.iniが消える、というところのようですね。
PC再起動で消えたのは、
1. UWSC.INIが存在する状態で、PC起動。UWSC.exe起動、UWSC.INI読込
2. なんらかの原因でUWSC.INIが消える。ランチメニューは読込済みのため無事
3. PC再起動開始。UWSC.exe終了時に座標書き込み。INIがないので再作成
4. PC再起動完了。UWSC.exe起動、INIがないのでメニュー初期化
という流れに見えます。推測ですが。

となると、UWSC.INIが消えた理由は、、、さっぱりわかりませんね。
犯人も絞れませんし、、、。
ただ、UWSC.exeが消す事故は更新時に起きそうなので、起動中に消えるとすると犯人である可能性は低そうに思えます。
他に犯人がいそうですね。なんでしょうねぇ、、、。

No.3386 2017/01/17(Tue) 20:56:14

Re: スケジュール設定が時々消えてしまいます / koi
PC再起動で消えた  とは書きましたが
確かに実際いつ書き換わったのかはわからないんですよね
  再起動でファイルが読み直されてそこで気が付いてるだけという話なので

常にそれを気にして使ってるわけにもいかないし
原因がどこにあるか調べるより バックアップでも作ったほうが現実的だな
って考えになってます

私の環境では
iniファイルに関しては設定が消えるのはUWSC限定
(実は他にあるのかもだが明確に判明してるのはこれだけ)
ですが設定が壊れたことがあるアプリという意味では
他に radicool のスケジュール予約設定があります
  −>これもある時突然それだけが壊れることを過去数回経験
両方ともOS起動と同時に起動で後はタスクトレイに放置のまま
といった使い方は同じですが因果関係含め原因はさっぱりわかりません

No.3387 2017/01/18(Wed) 07:48:13

Re: スケジュール設定が時々消えてしまいます / しろまさ
直接は関係ないですが経験上の話を一つ。

アプリは終了時に設定書込みすることが多いですよね。

次に、PCをシャットダウンする際に
「〜が原因でシャットダウン出来ません。強制終了しますか?」
のメッセージをYES実行するとアプリが強制終了されます。
ここでファイルが壊れるという現象が、
ポータブルHDに入れたThunderBirdで頻発したことがありまして、
他人の行動なので原因究明に時間が掛かりました。

対策はアプリを先に終了させてからもしくは
USBの安全な取り外しを実行してからシャットダウンすればいいだけでした。

参考までに。

No.3393 2017/01/20(Fri) 08:59:31
画像認識でのファイル名 / kon
画像認識を使うときにファイル名を入力しますが、それを変数で入力するようなことはできないでしょうか?
画像ファイル名が1〜10まであり、ファイル名以外同じ処理をする場合にそれぞれのファイル名で作ると修正や追加するのが大変なのでやり方があればお教え願います。

No.3388 2017/01/19(Thu) 08:12:46

Re: 画像認識でのファイル名 / stuncloud
> 画像認識を使うときにファイル名を入力しますが、それを変数で入力するようなことはできないでしょうか?
できますよ、というかそのくらいは実際に試してみればすぐわかるのでは…

> やり方があればお教え願います。
繰り返しの作業を行う場合はfor、while、repeat等のループを使います
以下に例を示します

ファイル名が1から10の連番だというのならforを使うのが楽ですね

// gazou1.bmp〜gazou10.bmpまでで処理を繰り返す
for i = 1 to 10
 filepath = "C:\path\to\gazou" + i + ".bmp"
 if chkimg(filepath) then
  DoSomething()
 endif
next

あとは連番じゃなくても特定のフォルダに入ってる画像全部で処理を行うとかならgetdir()でできますね
こっちの場合画像の名前は適当で良くなります

folder = "C:\path\to\bmpfolder\"
// 対象フォルダ内のBMPファイルを列挙してそれぞれに対して処理を行う
for name in getdir(folder, "*.bmp")
 filepath = folder + name
 if chkimg(filepath) then
  DoSomething()
 endif
next

No.3389 2017/01/19(Thu) 10:29:18

Re: 画像認識でのファイル名 / kon
回答ありがとうございます。
済みません、やってはみたんですが記述の仕方が間違っていたようでうまくいかなかったので質問させていただきました。
以後、もう少ししっかり確認してから質問するように気を付けます。

ありがとうございました。

No.3391 2017/01/19(Thu) 12:03:30
getactiveoleobjを使ってのエクセルの操作 / たけ
お世話になっております。
getactiveoleobjを使ってのエクセルの操作について
過去の掲示板(No.1994 2015/12/29(Tue) 23:38:13)に不具合として載っていましたが、
同様の現象が発生しました。

「管理者として実行」で起動すると発生し、再現性があります。

(UWSC Pro Ver5.2.3)

No.3368 2017/01/12(Thu) 00:48:27

Re: getactiveoleobjを使ってのエクセルの操作 / routa
http://www.uwsc.info/faq.html#N29
エクセルを管理者モードにしたのならuwscも管理者モードにしましょう。

No.3374 2017/01/12(Thu) 21:28:33

Re: getactiveoleobjを使ってのエクセルの操作 / たけ
routaさま
返信 ありがとうございました。
私の場合は、「アプリが一般ユーザの場合には、UWSCも管理者権限ではなく一般ユーザにしてみてください」が該当していました。
→UWSCをEXE化したものを「管理者として実行」で起動してしまったようです。

No.3390 2017/01/19(Thu) 11:11:00
チャートの目盛を取得したい / xxo
FXのMT4というソフトで、ローソク足チャート表示欄の右の”縦軸の目盛”を、上から順に全て取得したいのですが、不可能でしょうか?

チャート表示欄を上下に伸縮させることで、目盛の数も変わる仕様なのですが、現在表示中のものを、上から全て取得したいです。


↓実際には、座標は目盛が書いてある上を指定しましたが、以下に書いた座標は、適当です。


posacc(id, 200, 100) //なぜか、IDを指定すると、ソフトを閉じてしまいます。Win7、Ver5.2.3


posacc(0, 200, 100)

posacc(0, 200, 100, ACC_ACC)

posacc(0, 200, 100, ACC_API)

posacc(0, 200, 100, ACC_NAME)

posacc(0, 200, 100, ACC_VALUE)

posacc(0, 200, 100, ACC_ROLE)

posacc(0, 200, 100, ACC_STATE)

posacc(0, 200, 100, ACC_DESCRIPTION)

posacc(0, 200, 100, ACC_LOCATION)


GETITEM(id, ITM_BTN)

GETITEM(id, ITM_LIST)

GETITEM(id, ITM_TAB)

GETITEM(id, ITM_MENU)

GETITEM(id, ITM_TREEVEW)

GETITEM(id, ITM_LSTVEW)

GETITEM(id, ITM_TOOLBAR)

GETITEM(id, ITM_ACCCLK)

GETITEM(id, ITM_ACCTXT)


GETSTRの「番号」は、1〜10まで試しました。

GETSTR(id, [番号], STR_EDIT)

GETSTR(id, [番号], STR_STATIC)

GETSTR(id, [番号], STR_STATUS)

GETSTR(id, [番号], STR_ACC_EDIT)

GETSTR(id, [番号], STR_ACC_STATIC)

GETSTR(id, [番号], STR_ACC_CELL)


以上を全て試してみましたが、取得できませんでした。
目盛以外の情報は、色々と取得できます。

目盛の値を取得するのは無理でしょうか。

No.3385 2017/01/17(Tue) 07:29:42
APIを活用したい 初心者 / SHINJI
// Yahoo!検索Webサービスの利用  #N43

url = "http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=YahooDemo&"
key = "高校野球" // 検索文字
xml = GetRXML(url + "query=" + Encode(Encode(key, CODE_UTF8), CODE_URL))
wkp = xml.getElementsByTagName("Result")
for i = 0 to wkp.Length-1
print wkp.item[i].childNodes.item[0].text // Title
print wkp.item[i].childNodes.item[1].text // Summary
print wkp.item[i].childNodes.item[2].text // Url
print
next

// ResponseXMLの取得
Function GetRXML(url)
oHttp = CreateOLEObj("MSXML2.XMLHTTP")
oHttp.Open("GET", url, 0)
oHttp.Send
Result = oHttp.responseXML
Fend
-------------------------------------------------------------------
AmzonMWSのAPIを活用したいと思い、uwscでAPIを使う方法を模索中です。
上記のサンプルスクリプトを変形させながら、チャレンジしようと思ったのですが実行できませんでした。


oHttp.Send

のところで例外が発生したとなります。
原因は何でしょうか?

No.3371 2017/01/12(Thu) 18:31:33

Re: APIを活用したい 初心者 / stuncloud
sendはメソッドなので()付けましょう
oHttp.Send()

あとリクエスト本文を送る場合はSend()に引数として渡します
oHttp.Send(Body) // 変数Bodyにリクエスト本文が入ってるものとします

No.3372 2017/01/12(Thu) 18:45:48

Re: APIを活用したい 初心者 / しろまさ
ドメインが変わったらしいですよ。
http://searchblog.yahoo.co.jp/2008/08/yahooyahoowebapi.html

V2も在るみたいですね(2011年記事)
http://codenote.net/yahoo/117.html

No.3373 2017/01/12(Thu) 18:57:30

Re: APIを活用したい 初心者 / SHINJI
url = "http://jlp.yahooapis.jp/FuriganaService/V1/furigana?appid=(ヤフーのアプリケーションID)&sentence=%E6%98%8E%E9%8F%A1%E6%AD%A2%E6%B0%B4"

key = "高校野球" // 検索文字
xml = GetRXML(url + "query=" + Encode(Encode(key, CODE_UTF8), CODE_URL))
wkp = xml.getElementsByTagName("Result")
for i = 0 to wkp.Length-1
print wkp.item[i].childNodes.item[0].text // Title
print wkp.item[i].childNodes.item[1].text // Summary
print wkp.item[i].childNodes.item[2].text // Url
print
next

// ResponseXMLの取得
Function GetRXML(url)
oHttp = CreateOLEObj("MSXML2.XMLHTTP")
oHttp.Open("GET", url, 0)
oHttp.Send()
Result = oHttp.responseXML
Fend
--------------------------------------------------------
stuncloudさん、しろまさ さん、ありがとうございます。
少し前進しました。
ヤフーに頼んで発行してもらう(ヤフーのアプリケーションID)がいるんですね。
それと、urlのところをヤフーのサイトに載っていたものを使ってみました。
上記のスクリプトで、下記のような反応がありました↓↓
明鏡止水 めいきょうしすい meikyousisui query = 高校 こうこう koukou 野球 やきゅう yakyuu

そして、下記の箇所で、COM_Errorが起きました。
print wkp.item[i].childNodes.item[1].text // Summary

反応があれば何かつかめるかと思ったんですが。
UWSCでAPIを使うにあたって知っておかないといけない概念とか知識はどこでわかりますか?
あと、uwscでAPIを使っているサンプルはどこかにもっとないでしょうか?
ほかの言語での使用例はよく見かけるんですが。

No.3375 2017/01/13(Fri) 01:04:34

Re: APIを活用したい 初心者 / stuncloud
> UWSCでAPIを使うにあたって知っておかないといけない概念とか知識はどこでわかりますか?

先ずはMSXML2.XMLHTTPの使い方を覚えましょう

次にAPIの仕様を把握する必要があります

> AmzonMWSのAPIを活用したい
という目的が今回の目的なので、yahooのAPIをいくら試しても意味があまりないです
AmzonMWSとyahooのAPIでは仕様が異なるからです
AmzonMWSの仕様をきちっと学ばなければなりません

AmzonMWSについては以下を読み込む必要があるでしょう
https://developer.amazonservices.jp/gp/mws/docs.html

APIにもよりますが、認証の仕方は先ずしっかり把握する必要があります
APIキーをヘッダやURLに含めるといった単純なものだったり、oAuthを使うものだったり

あとは送受信するデータの扱いですね
基本はjsonだったりxmlだったりの文字列を送って文字列を受けるだけなんですが、文字列のままだと扱いにくいのでオブジェクトに変換して使うといった工夫が必要です
XMLならMicrosoft.XMLDOMを使う、とか
先のyahooのサンプルにあるようにXMLが返る場合はresponseXMLを使うとXMLオブジェクトで返してくれますね
jsonであればそれを扱えるモジュールを公開してます
https://gist.github.com/stuncloud/38786fec654b0522839ca764aa6c97d8

> あと、uwscでAPIを使っているサンプルはどこかにもっとないでしょうか?
> ほかの言語での使用例はよく見かけるんですが。


WebAPIでやること自体はhttpリクエストを送るだけなので、実のところ言語に依存する部分はあまりないです
だから多言語でも参考にはできるはずなんですよね
(ただ、WebAPIをラップしたクラスモジュールなんかが提供されててそれを使っているサンプルだったりする場合は例外ですが)

・送信先のURL (API)
・送信時のメソッド (getとかpostとかputとか)
・ヘッダ (APIキーを埋め込んだりする)
・送るデータの形式と内容
・返ってくるデータの形式と内容

このあたりが読み取れるサンプルが見つかれば参考になると思います

amazonではないので直接の参考にはなりませんが、WebAPIを使っているサンプルということであれば過去にここで投下したgmailのものがあります
https://gist.github.com/stuncloud/775042e3149e8aa8a45f

No.3376 2017/01/13(Fri) 12:30:14

Re: APIを活用したい 初心者 / SHINJI
stuncloud さん ありがとうございます。
私の中で漠然とあった疑問を言語化してもらったので、無駄なく取り組んでいけそうです。
説明のプロですね。
ひとつずつクリアしていきたいと思います。

No.3379 2017/01/13(Fri) 16:54:55


 過去ログ(〜2016/10/02)・検索ツール


以下のフォームに記事No.と投稿時のパスワードを入力すれば
投稿後に記事の編集や削除が行えます。
199/200件 [ ページ : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 20 >> | 過去ログ ]