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

ステップ実行なら動くのですが / kwood
この年末にすみません。あと成人向け内容を含んでいてすみません。

所持本をリスト化する為、ISBNコードでネット検索(http://www.e-hon.ne.jp/bec/EB/Top)しようと
しています。通常は問題無いのですが、成人本の年齢確認ページが直前に出ると、データが
取得できなくなります。
デバッガでステップ実行すると問題無く動くので、挙動が早すぎるのかとsleep()を入れたり
しているのですが、空欄のまま正常終了したり、IE描画は終わっているのに、ie.busyがfalseに
ならなくてループして終わらないとか現象がよく分からず解決できていません。

今は別窓で成人指定チェックを通過させた状態で実行して逃げてますが、モヤモヤしてます。
どうしたらうまくいくか分かりますでしょうか?

環境は、Win8.1Pro64 IE11 UwscPro5.2.3.0 です。

よろしくお願います。


//クリップボードに9784873066868を入れて実行すると再現すると思います。

// 入力文字からISBN13を取り出してE-honからタイトル取得
// クリップボードにJAN入れて起動するとIEでタイトル取得し、
// 整形してクリップボードに戻す
//
// テスト用ISBN 9784873066868

// クリップボードが空ならinputさせる
isbn13org = GetStr(0)
if isbn13org = "" then isbn13org = Input( "isbnコード13桁",isbn13org )

isbn13 = ""

// 入力文字の先頭から数値13文字分をISBN13として切り出す
isbn13orgLen = Length(isbn13org)

For i = 1 To isbn13orgLen
c = Copy(isbn13org,i,1)
if ChkNum(c) Then isbn13 = isbn13 + c // 数字ならisbn13に追加
if Length(isbn13) >= 13 Then Break
Next
if Length(isbn13) < 13 Then
MsgBox("数値13文字以下は強制終了<#CR>" + isbn13org)
ExitExit
EndIf


IE = CreateOleObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.e-hon.ne.jp/bec/SA/Forward?mode=speed&button=btnSpeed&scope=1&spKeyword=" + isbn13 )
COM_ERR_IGN // COMエラー無視

BusyWait(IE) // 接続表示待ち

// 成人指定チェック画面に飛ばされたら[はい]を押す
IEhtml = IE.document.body.innerHtml
if Pos("あなたは18歳以上ですか?", IEhtml) > 0 Then // 成人警告文の確認
IELink(IE, "はい")
BusyWait(IE)
EndIf
////////////////////////////////////////

// e-hon個別ページ
// 個別ページから作品名と著者名を取得
IEtitle = IEGetData(IE, "TAG=TITLE")
作品名 = Trim(BetweenStr(IEtitle,,"/"),True) // 先頭から/まで
If Pos("/著", IEtitle) > 0 Then
著者名 = Trim(BetweenStr(IEtitle, "/","/著"),True) // /から/著まで
Else
著者名 = Trim(BetweenStr(IEtitle, "/","著"),True) // /から"著"まで
EndIf

//////////////////////////////////////////

IEtext = IE.document.body.innerText
発売日 = Trim( BetweenStr( IEtext, "出版年月 :","月") + "月")


// 出力するタイトルを生成

// 著者追加 作品名追加
出力 = " [" + Trim(著者名) + "] " + Trim(作品名)

// 日付追加 "/"は "-"へ置換する
出力 = 出力 + " (" + Replace(発売日,"/","-") + ")"

// isbn13追加
出力 = 出力 + "(ISBN" + isbn13 + ")"

// 最初の入力文を先頭に追加
出力 = isbn13org + 出力

SendStr(0, 出力)

Fukidasi(出力)
Sleep(2)
IE.Quit

// 終了

//////////////////////////////////
// IEの表示待ち
Procedure BusyWait(ie)
Repeat
Sleep(0.2)
ie_busy =ie.busy
ie_readyState = ie.readyState
Until (! ie.busy) and (ie.readyState=4)
Fend
//////////////////////////////////

No.3344 2016/12/30(Fri) 18:50:27

Re: ステップ実行なら動くのですが / routa
http://www.uwsc.info/faq.html#N45
SendMessageA(ie.Hwnd, WM_ACTIVATE, 0, 0) を入れてみたらどうですか。

No.3353 2017/01/03(Tue) 18:10:15

Re: ステップ実行なら動くのですが / kwood
routa 様

うまくいきました!
ありがとうございます。

No.3355 2017/01/04(Wed) 19:40:49
ワードプレスの投稿画面のプレビューボタンをクリックする方法 / あずさ
クロームのブラウザーのワードプレスの記事投稿画面のプレビューのボタンが押せません。
IEであればできるのですが、クロームでやる方法を探しています。
下記が画像とコードです。
何が間違っているのでしょうか?
【コード】
SLEEP(1.0)
id=GETID(GET_ACTIVE_WIN)
CLKITEM( id, "プレビュー",CLK_BTN)

【画像URL】
http://sisui.wp-x.jp/wp-content/uploads/2017/01/2017-01-01_010740.png

No.3347 2017/01/01(Sun) 01:16:27

Re: ワードプレスの投稿画面のプレビューボタンをクリックする方法 / routa
http://www.uwsc.info/sample.html#N37
// 必:起動オプション(accessibilityをOnにする) "--force-renderer-accessibility"

No.3352 2017/01/03(Tue) 18:06:45

Re: ワードプレスの投稿画面のプレビューボタンをクリックする方法 / あずさ
routaさん、返答ありがとうございます。(accessibilityをOnにするで下記のコードでやってみたのですがプレビュー押せませんでした。

SLEEP(1.0)
// 必:起動オプション(accessibilityをOnにする) "--force-renderer-accessibility"
id1=GETID(GET_ACTIVE_WIN)
path = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
id = Exec(path + " --force-renderer-accessibility --process-per-tab --new-window http://www.google.co.jp/")
CLKITEM( id, "プレビュー",CLK_BTN)

No.3354 2017/01/04(Wed) 11:24:17
テキストの途中にタグを入れる / NER
配列に入れてpos関数でできるような気がするのですが、自分の実力では分かりません。
助けてくれませんか?

「加工前」
<div class="user1">テキスト1</div>
<div class="user1">テキスト2</div>
<div class="user1">テキスト3</div>

上記の文章を下記のようにするスクリプトがなかなか考えつきません。
何か良い方法ないでしょうか?

「加工後」
<div class="user1"><span style="font-size: 14px;">テキスト1</span></div>
<div class="user1"><span style="font-size: 14px;">テキスト2</span></div>
<div class="user1"><span style="font-size: 14px;">テキスト3</span></div>

No.3348 2017/01/01(Sun) 09:47:38

Re: テキストの途中にタグを入れる / satocha
テキストの加工なら正規表現を使えばいいと思います。「正規表現 html タグ」あたりのキーワードで検索すれば、ヒントが見つかると思います。また、UWSCでの正規表現使用法はFAQの「正規表現を利用したい  #N26」を参照してください。

正規表現はテキスト加工において強力な武器となりますが、それでもHTMLタグを完全に制御するのは容易ではありません。

そこで、htmlのことはhtmlに任せてみてはどうでしょう。このやり方なら、どんな複雑なHTMLでも比較的簡単に編集できます。

document    =CreateOleObj( "htmlfile" )
document.write( OrgStr )
document.parentWindow.alert( document.body.innerHTML )
span_org  =document.createElement( "span" )
span_org.style.setAttribute( "font-size", "14px" )
for element in getOleItem( document.getElementsByTagName( "div" ) )
  text  =element.innerText
  element.removeChild( element.firstChild )
  span  =span_org.cloneNode()
  textnode=document.createTextNode( text )
  span.appendChild( textnode )
  element.appendChild( span )
next
print document.body.innerHTML
document.parentWindow.alert( document.body.innerHTML )
textblock OrgStr
<html><body>
<div class="user1">テキスト1</div>
<div class="user1">テキスト2</div>
<div class="user1">テキスト3</div>
</body><html>
endtextblock

No.3349 2017/01/01(Sun) 12:12:46

Re: テキストの途中にタグを入れる / NER
textblockとCHGMOJでできました。CHGMOJで入れ替えするだけでした。なんか難しく考えてしまう傾向があります。
No.3350 2017/01/01(Sun) 13:08:16

Re: テキストの途中にタグを入れる / NER
satocha様回答ありがとうございます。documentのスクリプトでできました、どういう構造でそう書くのか?がいまいち分かりません。色々検索して調べてみたいと思います。
No.3351 2017/01/01(Sun) 13:13:19
EXE化した際のCreateFormについて / sasaga
最近、Pro版のCreateFormを使って、HTMLを使えるようにしているのですが、
EXE化した際に、HTMLがローカルの外部ファイル(javascriptやcss)を
読み込んでくれないことがわかり、少々困っています。
(EXEにしなければ問題なく読み込めます)

どなたか対応策を御存知ないでしょうか。

No.3345 2016/12/31(Sat) 00:32:56

Re: EXE化した際のCreateFormについて / sasaga
すみません、色々試行錯誤していたら自己解決しました。
ieで単一ファイル(mht化)すれば問題なくExe化できました。

大変お騒がせいたしました。

No.3346 2016/12/31(Sat) 01:04:32
ライセンス関連の問い合わせします。 / itmuji


Free Versionの場合、企業で使用しても問題がないでしょうか。
企業でソフトウェアを使用するためにはPro Versionの購入が必要ですか?

No.3342 2016/12/28(Wed) 10:56:48

Re: ライセンス関連の問い合わせします。 / 俄プログラマー
ソフトダウンロードに付属Readme.txtより

・商用利用、配布について
  商用利用は自己責任において可です。
  二次配布(スクリプトにFree版のUWSC.EXEを同封)するような事はご遠慮ください。
  この場合は、シェアウェア版のUWSC ProにてEXE化したものを配布するか
  当サイトからFree版をダウンロードしてもらうようお願い致します。

No.3343 2016/12/28(Wed) 11:01:14
別ダイアログによる処理中断される / TJ
UWSCの初心者です。

AccessフォームからExcelへの転記処理で利用しています。
通常問題なく動きます。

しかし、処理途中別のダイアログがポップアップ表示されると、本来Excelに貼付すべき内容が元Accessのフォームに貼付られ、エラーとなります。

まずAceesフォームとExcelウィンドのIDを取得して、後でACWを使ってウィンドの切替を行い、値のコピー貼付という簡単な処理です。恐らくダイアログが出た関係で、ACWがうまくいかなかったと思いま
すが、解決方法が分かりません。

何か解決法また別のやり方があれば教えていただきたいです。

No.3339 2016/12/27(Tue) 19:03:59

Re: 別ダイアログによる処理中断される / 俄プログラマー
別のやり方は省略させて下さい。

現在のソースを少し手を加えるなら以下のようなイメージで大丈夫じゃないでしょうか。
誤動作の原因の前にダイアログを閉じてから処理します。


ダイアログ閉じる()
//ACW等何らかの処理
//コピー操作

ダイアログ閉じる()
//ACW等何らかの処理
//貼り付け操作



PROCEDURE ダイアログ閉じる()

 ID = getid("ダイアログのタイトル名")
 if 0 < ID then
  clkitem(ID,"OK") //OKはボタン名
 endif

 //もしダイアログが複数存在するなら上記の様な感じでこの下に追記して閉じる様にしましょう。

FEND

No.3340 2016/12/27(Tue) 20:27:28

Re: 別ダイアログによる処理中断される / TJ
早速なご回答ありがとうございます。

なるほど、この方法もありますね。これで試してみます。

ダイアログの関係で、ACWがうまく動作しないと書きましたが、ダイアログが前面になって、背面にあるウインドクリックできないのが原因のようです。いろいろ調べたら、MOUSEORG関数を使えば、背面にあるウインドにもBTN、KBDでマウス、キーボードの操作を送れるみたいです。これ実現できれば、ダイアログを閉じる処理がなくてもいけそうですので、この方法も試してみたいと思います。

No.3341 2016/12/28(Wed) 08:35:54
Uws2Exe.exeの圧縮チェックボックスがグレイアウトの件 / 万葉の民
いつも便利に使わせていただいております。
FAQかもしれませんが...

Win7 profesional 32bit環境で、UWSC5.2.3.0です。
Uws2Exe.exeとupx307w.zipでソースコードのEXE化しようと、
ダイアログ画面を表示させると、圧縮チェックボックスが
グレイアウトしてファイル圧縮できません。
他のPCではチェックできるのですが、
何かチェックすべき点などありましたら
ヒント、アドバイスをお願いいたします。

C:\MyAPP\UWSC\upx307w\upx.exeは確かにあります。

Uws2Exe.INIの内容...
[SET]
UpxPath=C:\MyAPP\UWSC\upx307w

No.3331 2016/12/25(Sun) 20:40:03

Re: Uws2Exe.exeの圧縮チェックボックスがグレイアウトの件 / しろまさ
多分 %appdata%\uwsc の Uws2Exe.INI に設定書込でグレーアウト解除されます。

ちなみにコマンドラインでのExe化ではカレント設定で実行できています。

C:\Uwsc\EXE\Pro\Uws2Exe.exe test.uws test.ico /stibelu

No.3336 2016/12/26(Mon) 09:25:09

Re: Uws2Exe.exeの圧縮チェックボックスがグレイアウトの件 / 万葉の民
しろまささん。コメントありがとうございます。
>多分 %appdata%\uwsc の Uws2Exe.INI

こんなとこ(%appdata%\uwsc)にもアッだとは....!
これは伏兵でした。てっきりインストールディレクトリだと思い込んでいました。
夜が明けたら、問題のPCで試してみます。ありがとうございました。

No.3338 2016/12/27(Tue) 02:07:20
最初に戻りたい / 名無し
UWSC初心者です。
よろしくお願いします。
以下の文でwhilewendの場合とは別にバツ.bmpをクリックした後にも先頭に戻りたいのですが
何を使えば戻れるでしょうか?

while true
ifb chkimg("アイコン.bmp")=true then
btn(left,click,g_img_x + random(5),g_img_y + random(5))
endif

中略

ifb chkimg("B.bmp")=true then
btn(left,click,g_img_x + random(5),g_img_y + random(5))
btn(left,click,g_img_x + random(5),g_img_y + random(5))
btn(left,click,g_img_x + random(5),g_img_y + random(5))
else
ifb chkimg("バツ.bmp")=true then
btn(left,click,g_img_x,g_img_y)
endif
endif

中略

sleep(5.0)  //5秒待機
MMV(500,500) //マウス移動
wend

No.3332 2016/12/26(Mon) 03:00:25

Re: 最初に戻りたい / toria
//continueを使用すれば「while true」のところまで戻れます
ifb chkimg("バツ.bmp")=true then
  btn(left,click,g_img_x,g_img_y)
  continue
endif

No.3333 2016/12/26(Mon) 04:44:56

Re: 最初に戻りたい / 名無し
素早い返答ありがとうございました。
おかげさまで解決しました。

もう一つ問題が出てきたのでよろしくお願いします。
以下の文で画像Aが出てくるまで待機して出てきたらクリックとしたいのですが画像Aが出てきても反応しません。
どこが間違っているのでしょうか。

While True
 IFb CHKIMG("A.bmp")
  BTN(left,click,g_img_x,g_img_y)
  Break
 EndIf
 SLEEP(0.1)
Wend

No.3334 2016/12/26(Mon) 06:17:26

Re: 最初に戻りたい / tmp
>画像Aが出てきても反応しません。

過去ログ調べましょうよ。

No.3337 2016/12/26(Mon) 12:08:36
CDドライブの状態をチェックしたい / リキュール
ノートパソコンのCDドライブにビデオCDをセットし、データを操作するソフトを起動しています。
ドライブにビデオCDをセットすると「ゴォー」と高速回転音がして、しばらくすると回転音が消えます。
高速回転音は2〜10秒程度で一定ではありません。
回転音が消えた状態でデータ操作ソフトを起動しないとエラーになる場合があります。
このため
msgbox(i + "番のビデオCDをセットして回転が止まったら OK を押して下さい。")
という行を入れて、手動で OK ボタンを押しています。
ドライブの高速回転音が止まったのを調べる方法はあるのでしょうか。
OSはWindows7です。
よろしくお願いいたします。

No.3326 2016/12/23(Fri) 20:01:36

Re: CDドライブの状態をチェックしたい / リキュール
私の勘違いがありました。
>回転音が消えた状態でデータ操作ソフトを起動しないとエラーになる場合があります。
と記載しましたが、ディスクを入れて「カチャカチャ」と音がして「ゴォー」という回転音がしてからデータ操作ソフトを起動すればエラーになりません。
ドライブがビデオCDを認識できた状態を調べる方法が分かればよいみたいです。
よろしくお願いいたします。

No.3328 2016/12/24(Sat) 21:56:40

Re: CDドライブの状態をチェックしたい / 俄プログラマー
今物理ドライブを持っていないので想像の域ですが。

GETDIRを使って戻り値が1以上なら良いのでは?
もし準備中でエラーが返るようならTRYを使うなど工夫が必要かもしれませんね。

No.3329 2016/12/24(Sat) 23:24:03

Re: CDドライブの状態をチェックしたい / リキュール
俄プログラマー さん、お世話になります。
GETDIRで解決できました。
getdir("D:\")で、ディスクを認識すると0→4に変化しました。
ありがとうございました。

No.3330 2016/12/25(Sun) 13:24:49
PC間のメッセージの仕方 / masaki
LAN内の他のPCにメッセージを飛ばし、
送信先のPCにMSGBOXで「こんにちは」と表示させるにはどのようにすればよいのでしょうか?
共有フォルダにテキストファイルを保存し自分宛のテキストファイルがあれば
読込を行って表示させる方法しか思いつきません。
可能であればネットを通して離れた場所のPCに文字表示できればと思っています。

No.3321 2016/12/22(Thu) 15:32:32

Re: PC間のメッセージの仕方 / stuncloud
winsockでゴリゴリ書く感じですねぇ、def_dllをたくさん使います
しゅんさんがブログでメッセージの送受信ができるモジュールを公開されてますよ!
1から書こうとするとなかなか大変なので、そちらを使ってみてはいかがでしょうか

僕も過去に超簡易HTMLサーバーやIRCクライアントをUWSCで書いたことがあります
winsockでゴリゴリ書くといろいろ作れます

VBだとwinsockの機能がCOMであるみたいなんですけどね (MSWinsock.Winsock)
VBのランタイム入れとけば使えるのかな?

No.3322 2016/12/22(Thu) 16:28:43

Re: PC間のメッセージの仕方 / しゅん
この辺ですかね。
http://d.hatena.ne.jp/junjun777/20131110/uwsc_winsock
しかし、Winsockの知識がないと使いにくいかと思います。
まあ、これ単体でもメッセージを送ることはできますが。

ただ、インターネット越しだとファイアーウォールとかいろいろあるので難しいですね。
簡単なのは、どこかの掲示板を借りて、IEを非表示で操作するなりMSXML2.XMLhttpを使うなりした、掲示板を仲介にした通信、でしょうか。
インターネットに公開できない情報の場合、暗号化等が必要ですが。

No.3323 2016/12/22(Thu) 18:18:21

Re: PC間のメッセージの仕方 / satocha
powershellコードレポジトリにTCP/IPクライアント/サーバスクリプトが上がってました。
http://poshcode.org/4601
これを借用すればいけるような気がします

No.3324 2016/12/23(Fri) 15:43:07

Re: PC間のメッセージの仕方 / satocha
>可能であればネットを通して離れた場所のPCに
この部分を見ていませんでした。
TCPじか叩きだと、ファイアウォール周りやセキュリティ設定が大変なことになりそうですね。
そこで、フリーメールを使ってみたらどうでしょう。
記事No.2895以下のスレッドで、メールの送受信について、詳述されています。
しゅんさんからは要DLLながら受信スクリプトも提供されています。

No.3325 2016/12/23(Fri) 16:13:51

Re: PC間のメッセージの仕方 / masaki
stuncloudさん、しゅんさん、satochaさん
お返事ありがとうございます。
まずはLAN内のメッセージのやり取りをご紹介頂いた方法を参考にしがんばってみます。
有難う御座います。

No.3327 2016/12/24(Sat) 09:45:20


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


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