[ 掲示板に戻る ]

過去ログ閲覧モード

CPUUSERATE()の値が取得出来ない / MOGU
お世話になっております。Win7 HP 64bit環境にて、ごく一部のPCでCPUUSERATE()値が0のまま(たまに-1)である事に気づきました。uwscpro511.exe以前の物でも発生していますのでハード的な問題なのか特定出来ずにいます。(uwscpro48a.exeでは"kansuCall:不正な浮動小数点演算命令"エラー)
症状が発生しているPCのCPUはAthlon 5350ですがWinXP32bitでは正常な動作を確認しています。
設定の違い等によるミスの可能性も捨てきれないのですが何か分かる方がいらっしゃいましたらご教示の程、よろしくお願い致します。

No.1225 2015/05/03(Sun) 08:24:25

Re: CPUUSERATE()の値が取得出来ない / MOGU
その後、OSのクリーンインストール直後には症状が発生していない事を確認しました。
何が悪さをしているかの特定には至っていませんがUWSC側の問題では有りませんでした。
これから原因を探って行こうと思います。お騒がせ致しました。

No.1235 2015/05/07(Thu) 11:41:23
ウインドウ全体のハードコピーをとりたい / ヨーダ
アクティブ画面のハードコピーは取れたのですが、ウインドウ全体の画面ハードコピーをとる方法を教えてください。
No.1193 2015/04/29(Wed) 13:58:00

Re: ウインドウ全体のハードコピーをとりたい / まろん
ハードコピーって画面キャプチャーの事なのかな…

SAVEIMG(画像名, [ウィンドウのID, x, y, 幅, 高さ, クライアント指定, JPEG指定] )
ID:Windowを識別するID(0=スクリーン全体)
らしいので、IDを0にすれば全体撮れるのでは。

No.1198 2015/04/30(Thu) 10:31:25

Re: ウインドウ全体のハードコピーをとりたい / ヨーダ
有難う御座います。
試してみます。
ちなみに、ウィンショットをUWSCから起動がしてみました。これでも可能でした。

No.1233 2015/05/06(Wed) 11:54:18
画面上の項目内用を取得したい / ヨーダ
画面上の入力可能項目の表示内容を取得したいのですが、getstrなどいろいろ試しましたが取れませんでした、ほかに取得する方法はありますかを教えてください。
No.1194 2015/04/29(Wed) 14:06:24

Re: 画面上の項目内用を取得したい / まろん
言っている意味がよく分からないのですが…
入力可能項目ってどういうことでしょうか?
IEなのでしょうか…?それとも何かのアプリ…?

No.1199 2015/04/30(Thu) 10:32:20

Re: 画面上の項目内用を取得したい / ヨーダ
説明不足でした。
画面(from)上のテキストボックスの表示内容を取得したいのですが、アクティブ状態(編集可能状態)の場合は取得できたのですが、ディアクティブ状態(表示のみで編集不可)の場合で、表示内容を取得する方法が知りたかったのですが、これでわかりますか?

No.1232 2015/05/06(Wed) 11:49:51
マウスの記録再生で遅くなる / Nor
動画を撮影しました。
http://www.dotup.org/uploda/www.dotup.org299332.avi

マウスの動作を記録し、再生しているだけですが、
マウスの動きがかなり遅くなってしまいます。
実際に動作させたときと同じ速さにならないでしょうか?

No.1231 2015/05/05(Tue) 16:17:57
WEBページから情報 / ミュウ
GWもプログラミングに明け暮れております。
WEBページから情報を取得しようと考えておりますが、うまくいかず困っております。
解決のためのヒントをご教授いただけますと幸いです。
【対象サイト】http://www.nasdaq.com/symbol/lock/real-time
【取得したい文字】上記サイトの14.6421 という値

【アプローチ方法】
まず、全体ソースを取得して、そこから欲しいデータを切り出します。
msg=IEGETSRC(IE, "body")
v=betweenstr(msg,">$","<")

【問題】
betweenstrで切り出せません。ソースコードとIEGETSRCで引っ張ってきたデータに違いがあるのですがその法則性がわかりません。別のサイトでは、日本語でbetweenstrすると問題なかったので、無理やりやっていたのですが、今回は英語サイトで切り出し方がわかりません。

勉強もかねて、IEから見たサイトのソースとIEGETSRCから切り出してきたソースで、なぜ違いが出るのかもお詳しい方おりましたらよろしくお願いします。

No.1226 2015/05/03(Sun) 09:58:54

Re: WEBページから情報 / stuncloud
> ソースコードとIEGETSRCで引っ張ってきたデータに違いがあるのですがその法則性がわかりません

・IEの「ソースの表示」で見れるものはサーバーからダウンロードされたhtmlファイルそのもの
・IEGETSRCで取得出来るものはその時点でのドキュメントツリー(を文字列にしたもの)
という違いがあるんじゃないかと思います

例えば、htmlのソースに
<input type="text" name="hoge" value="">
と書かれていても実際には
<input name="hoge" value="" type="text">
というように属性の書かれる順番が異なるということがあったり
あるいはJavaScriptによって元々のソースにはなかった要素が追加されていたりということがあります

現在のドキュメントの構造を見るには「ソースの表示」ではなく「F12 開発者ツール」の「DOM Explorer」を使うといいでしょう
開発者ツールはメニューから呼び出せるほか、F12キーを押すことで表示されます

今回の対象サイトで言えば、僕の環境では

ソースの表示: <div id="qwidget_lastsale" class="qwidget-dollar">$14.6421</div>
F12: <div class="qwidget-dollar" id="qwidget_lastsale">$14.6421</div>

と属性の書かれる順番が異なっていましたが…【betweenstr(msg,">$","<")】ならどちらも切り出せそうですね
何か他にも要因があるのかもしれません

しかし、その原因を追求するより次のステップへ進むためにDOMの操作を習得されたほうが良いのではないかな、と個人的には思います
例えば先程の値であれば、このように取得出来ます

print IE.document.getElementById("qwidget_lastsale").innerText // $14.6421

betweenstrのお手軽さを否定したいわけではありませんが、こちらのほうがより応用がききます

No.1227 2015/05/03(Sun) 19:05:54

Re: WEBページから情報 / ミュウ
>stuncloudさん

誠にありがとうございます。大変助かりました。
「ソースの表示」の文字は、途中で様々な影響を受けていることを理解できました。
DOM Explorer使ってみましたが、確かに異なっていることが確認できます。

そしてDOMのご指摘ありがとうございます。
やりたいことが大変簡単にできました。
この件以外にも応用できそうな気がしてウキウキしております。

いつもいつも誠にありがとうございます。GW中にマスターしたいと思います。

No.1228 2015/05/03(Sun) 19:28:47
ファイルのプロパティ情報の取得 / MM
指定したフォルダ内にあるファイル群の、以下の情報をリストアップしたいです。

1)ファイル名
2)ファイルパス
3)作成日時
4)更新日時
5)サイズ
6)(画像のみ)縦・横ピクセル数

1)、2)はGETDIRでもできましたが、3)から6)はどうすれば取得できますか?

よろしくお願いします。

No.1216 2015/05/01(Fri) 22:14:44

Re: ファイルのプロパティ情報の取得 / stuncloud
path = "C:\Hoge"

shell = createoleobj("Shell.Application")
fso = createoleobj("Scripting.FileSystemObject")

folder = shell.Namespace(path)
for file in folder.items
  if file.IsFolder then continue // フォルダはスキップ
  print "ファイル名 : " + file.name
  print "ファイルパス: " + file.path
  print "作成日時  : " + fso.GetFile(file.path).DateCreated
  print "更新日時  : " + file.ModifyDate
  print "サイズ   : " + file.Size
  print "大きさ   : " + folder.GetDetailsOf(file, 31) // 「1080 x 1920」のような形式で返る
  print
next

GetDetailsOf(file, n) の部分がファイルのプロパティの値を取得する部分です
画像の大きさの取得に31を指定していますが、これは僕の環境(Windows8.1)での場合です
OSが異なるとこの数値が変わるので、環境に合わせて適切な数値を入れて下さい
作成日時もGetDetailsOfで取れないわけではないのですが、それだと秒の値がなかったので別の方法(FileSystemObject)で取得しています
なお、FileSystemObjectだけでも画像の大きさ以外なら取得出来ます

folder = fso.GetFolder(path)
for file in folder.Files
  print "ファイル名 : " + file.name
  print "ファイルパス: " + file.path
  print "作成日時  : " + file.DateCreated
  print "更新日時  : " + file.DateLastModified
  print "サイズ   : " + file.Size
  print
next

No.1218 2015/05/02(Sat) 01:13:18

Re: ファイルのプロパティ情報の取得 / MM
stuncloud さま
回答ありがとうございます。

ShellやFileSystemObject、いろいろできそうな機能ですね!
今後のために勉強してみようと思います。

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

No.1223 2015/05/02(Sat) 22:09:40
IEを使用しない通信について / Nyu
お世話になっております。

IEを使用せず特定のサイトに通信する事は可能なのでしょうか?
具体的にはサーバーにアップしたphpファイルをUWSCを用いて参照したいと思っております。
その際ブラウザで画面を表示する必要はなく、サイトの文字(ソース)のみを取得したいと思っております。

dim IE = createoleobj( "InternetExplorer.Application" )
IE.navigate( URL )

IEを使用しない理由についてですが、上記のコードの場合IEをインストールしていない方は通信出来ないのでは?と懸念したためです。

よろしくお願いいたします。

No.1215 2015/05/01(Fri) 18:09:02

Re: IEを使用しない通信について / stuncloud
xmlhttp = createoleobj("MSXML2.XMLHTTP")
xmlhttp.open("GET", URL, FALSE)
xmlhttp.send()
source = xmlhttp.responseText
// UWSCのサイトやこの掲示板のようにエンコードがShift-JISの場合は以下のように一工夫する
// source = decode(xmlhttp.responseBody, CODE_BYTEARRAY)
print source

詳しくは「MSXML2.XMLHTTP」で検索してみてください
対象サイトのエンコーディングによってはさらに「ADODB.Stream」を使う必要があります

No.1217 2015/05/02(Sat) 00:24:49

Re: IEを使用しない通信について / Nyu
>stuncloudさん
回答、さらに補足までしていただきありがとうます。
求めている機能はまさにこのような機能でした。
わからない点や気になった点は調べてみたいと思います。

No.1222 2015/05/02(Sat) 14:33:15
2つ同時に同じコードを動かしたときのログの記録について / ミュウ
どうかどうかよろしくお願いします。


以下のコードを動かして、ログを記録させます。
【コード】
Option LogPath="○○\log.log"
print "テスト"
sleep(10)
print "テスト2"
sleep(10)
print "テスト3"
sleep(10)
print "テスト4"

【ログ】
テスト
テスト2
テスト3
テスト4

しかし、同じコードを2つ同時に走らせたときに、片方が片方のログを
掻き消してしまい、1つだけ走らせたときと同じログになります。
そうではなく、掻き消されないログの取り方を検討しております。

【理想的なログ】
テスト
テスト
テスト2
テスト2
テスト3
テスト3
テスト4
テスト4

理想的なログのように記録することはできないでしょうか。
ログではなく、iniに記録することも検討しております。

No.1200 2015/04/30(Thu) 10:54:19

Re: 2つ同時に同じコードを動かしたときのログの記録について / ざろん
同時に同じコードを動かす必要はあるのでしょうか?
(他の方法は無いのですか?)

FOPENでファイル書き込み等行ったとしても
FCLOSEで初めて更新なので
上手くいかない気がします。

(タイミングがかぶってしまった場合上書きして消される
 のではないかと思います。)

IEにテキストボックス等を表示して
それが起動されていたらそこに書き込んでいく。
なかったら表示して書き込んでいく。
こういう方法なら上手く行くのかもしれませんが…

No.1201 2015/04/30(Thu) 11:43:39

Re: 2つ同時に同じコードを動かしたときのログの記録について / stuncloud
// 書き込むログ1行毎にfopen、fput、fcloseする例

Logger("テスト")
sleep(1)
Logger("テスト2")
sleep(1)
Logger("テスト3")
sleep(1)
Logger("テスト4")

procedure Logger(log, path = "hoge.log", bPrint = TRUE)
 if bPrint then
  print log
 endif
 fid = -1
 repeat
  fid = fopen(path, F_READ or F_WRITE or F_EXCLUSIVE)
 until fid > -1
 fput(fid, log)
 fclose(fid)
fend

No.1204 2015/04/30(Thu) 13:57:48

(No Subject) / ミュウ
>ざろさん
FOPEN,FCLOSE自体知りませんでした。勉強になります。ありがとうございます。

>stuncloudさん
いつもいつも大変ありがとうございます。課題に対する答えまで教えて頂いて大変助かりました。
まさにこういうことがしたかったです。

誠にありがとうございます。

No.1210 2015/04/30(Thu) 18:21:49

Re: 2つ同時に同じコードを動かしたときのログの記録について / えあり
UWSCのファイルの書き込みタイミングについては
ざろんさんとstuncloudさんが説明しておられるので、もう一つ

同時にファイルをオープンしてしまうことを避けるには
データを追加し終わったら直ちに解放することと、
ロックファイル(ファイル名を参照するだけの0バイトのファイル)を使うのが確実です

>ロックファイル確認
>  ロックファイルがあれば、無くなるまで待機
>  十分に時間を取って、タイムアウトした場合はロックファイルを消す
>ロックファイルを作成
> 書き込みたいファイルを開く
>  データを記入
> 書き込みたいファイルを閉じる
>ロックファイルを消去


※作成、消去ではなく、リネームでも可

WEBチャットやデータベースなんかで使われる手段ですが
知ってて損はないと思うのでこの機会に是非どうぞ

No.1213 2015/05/01(Fri) 00:21:32

Re: 2つ同時に同じコードを動かしたときのログの記録について / stuncloud
えありさん
> 同時にファイルをオープンしてしまうことを避けるには
一応それを考慮に入れてF_EXCLUSIVEを指定しています
雑な処理にしているので若干心配ですが、別実行のスクリプトが書き込み中であればファイルを開けるようになるまで待つようにはしています

No.1214 2015/05/01(Fri) 13:49:35

Re: 2つ同時に同じコードを動かしたときのログの記録について / ミュウ
>えありさん
コメント頂きありがとうございます。
直近ではstuncloudさんのソースで問題解決できそうなので、そちらを使ってみます。
ありがとうございます。

No.1220 2015/05/02(Sat) 10:27:28
チェックボックスのチェックを認識させる / まさと
お世話になっております。

チェックボックスのチェック後、他のボタンが押せるようになるサイトがあります。
以下のようにやると、チェックボックスにチェックは入るのですが、
他のボタンが押せるようにはなりません。
マウスでクリックしないとダメなようです。
KBDでクリックさせる以外に方法はないでしょうか?

////HTMLソース////
チェックボックスの部分は以下だけです。
doc.forms(0).elements(7).type :"checkbox"
doc.forms(0).elements(7).value :"on"
doc.forms(0).elements(7).defaultChecked :"False"
doc.forms(0).elements(7).checked :"False"
////////
UWSCは以下のように書きました。

for j = 0 to IE.document.forms(0).elements.length - 1
ifb IE.document.forms(0).elements(j).type = "checkbox" then
IE.document.forms(0).elements(j).checked = "True" 
break
endif
next
//ここまでで画面上はチェックされているが、他のボタンが押せるようにならない

Dim elm = IE.document.getElementById("checkbox") ;
Dim evt = IE.document.createEvent("HTMLEvents");
evt.initEvent("change", true, false);
elm.dispatchEvent(evt); // IE11対応のfireEvent

//これでも駄目です。

No.1219 2015/05/02(Sat) 01:31:27
フォーム入力後の更新について / まさと
お世話になっております。

以下のようなページがあります。

URLを入力すると、その下に自動でURL先の画面が表示され、その後「次へ」ボタンが
押せるようになる。

IE.document.forms(1).urlText.value  = URL

で値を入れてもURLは表示されますが、その下に自動でURL先の画面が表示されなく、
次へボタンも有効になりません。

手動だとURLを入力し画面のどこかをクリックすると自動でURL先の画面が表示され、
次へボタンが有効になります。

これをキーボードではなく行う方法はありますでしょうか?

SelectのfireEvent("onchange")に似た対応が必要かと思い色々試していますが、
わからない状況です。

お手数ですがご協力をお願いいたします。

No.1208 2015/04/30(Thu) 15:41:47

Re: フォーム入力後の更新について / しろまさ
検証できないので外してるかもしれませんが、IE11のonchange対策です。

http://siromasa.digi2.jp/uwsc/u_term/InternetExplorerApplication.html
200 onchangeイベントを発生させる(IE11対応)

No.1209 2015/04/30(Thu) 16:58:47

Re: フォーム入力後の更新について / まさと
しろまささま

誠にありがとうございます。
以下で実現できました!!

Dim elm = IE.document.getElementById("urlText") ;
Dim evt = IE.document.createEvent("HTMLEvents");
evt.initEvent("change", true, false);
elm.dispatchEvent(evt); // IE11対応のfireEvent

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

No.1212 2015/04/30(Thu) 20:41:31
全1170件 [ ページ : << 1 ... 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 ... 117 >> ]