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

フォーム画面の縦スクロールバーの制御 / まるぱ
CreateFormで作ったフォーム画面、
これで縦のスクロールバーが表示されます。

このスクロールバーの位置をGETSLIDERで取得できません。

スクロールバーの位置を読込み、あとでその位置にスクロールさせることをしたいのですが、
いいアイデアありますでしょうか?

よろしくお願い致します

No.3506 2017/02/18(Sat) 22:21:11

Re: フォーム画面の縦スクロールバーの制御 / routa
普通にDHTMLやJavaScriptが使えますよ。
.Document.documentElement.scrollTop
.Document.parentWindow.scrollTo(0, 100)

No.3507 2017/02/19(Sun) 19:25:07

Re: フォーム画面の縦スクロールバーの制御 / まるぱ
routaさん、アドバイスありがとうございます。
試しましたが、取得できるスクロールの位置が0になってしまいます...
何か間違っているんでしょうか、ちょっと考えます。

No.3508 2017/02/19(Sun) 21:00:34

Re: フォーム画面の縦スクロールバーの制御 / routa
こっちかも
.Document.body.scrollTop

No.3509 2017/02/19(Sun) 23:20:30

Re: フォーム画面の縦スクロールバーの制御 / まるぱ
routaさん、
IE6以上は
.Document.documentElement.scrollTop
とのことで、やってみたらできました。
ヒントありがとうございました。

No.3522 2017/02/20(Mon) 18:03:37
正規表現で抜き出した分から、数字のみを抽出する方法 / ゆうい
サイトのソースをinnerhtmlで取得し、正規表現でIDの数字のみを抜き出したいですが、ExecuteからFOR文でMatches.Item(i).Valueで取得し、FPUTでファイルに書き出し、それをfgetで全テキスト取得し、chgmojでいらないIDの前後を削除しています。もっとダイレクトに正規表現のみでIDのみを抜き出す方法ないでしょうか?

【サイトソース】
テキスト1
id="inline_1806">
テキスト2
id="inline_1206">
テキスト3
id="inline_1156">

【正規表現で検索できている分】
id="inline_1806">
id="inline_1206">
id="inline_1156">

【希望処理】
1806
1206
1156

【試してスクリプト】

文字列全体=IE.document.body.innerhtml


Public regvb=CREATEOLEOBJ("VBScript.RegExp")

// fid=""
file = FOPEN("Desktop\wp.txt", F_WRITE)


Pattern="inline_\d{1,4}"
Matches=regvb_Execute(文字列全体, Pattern)

for i = 0 to Matches.count-1
FPUT(file, Matches.Item(i).Value, i+1)
next

zenn=fget(file, F_ALLTEXT)

tesaa=chgmoj(zenn, "id=<#DBL>inline_", "")
tesaa=chgmoj(tesaa, "<#DBL>>", "")
tesaa=chgmoj(zenn, "inline_", "")
FPUT(file, tesaa,F_ALLTEXT)
FPut(file, Join(Split(FGet(file, F_ALLTEXT), "<#CR>"), "<#CR>", TRUE), F_ALLTEXT)

fclose(file)
Function regvb_Execute(str, Pattern, IgnoreCase=TRUE, Global=TRUE)
regvb.IgnoreCase=IgnoreCase
regvb.Global=Global
regvb.Pattern=Pattern
Matches=regvb.Execute(str)
Result=Matches
Fend

No.3511 2017/02/19(Sun) 23:39:24

Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / しき
//SubMatches コレクション
//https://msdn.microsoft.com/ja-jp/library/cc392216.aspx
Pattern="inline_(\d{1,4})"
Matches=regvb_Execute(文字列全体, Pattern)
for i = 0 to Matches.count-1
  print Matches.Item(i).SubMatches(0)
next

No.3512 2017/02/20(Mon) 00:30:15

Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / ゆうい
しき様、ありがとうございます。こんなに便利なやり方あるんですね。
_(\d{1,4})、()でくくってサブマッチさせるやり方とても簡単で使いやすいです。

No.3513 2017/02/20(Mon) 08:54:10

Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / しろまさ
慣れたらreplaceも試して下さい。速くなりますよ。

TextBlock aaa
テキスト1
id="inline_1806">
テキスト2
id="inline_1206">
テキスト3
id="inline_1156">
EndTextBlock

list = regReplace(aaa, ".*inline_(\d+).*|.*\r\n", "$1")
MsgBox(list)

// 正規表現 置換
Function regReplace(a_text, a_ptn, a_after)
Dim reg = CreateOLEObj("VBScript.Regexp"); reg.Global = TRUE; reg.Multiline = TRUE; reg.pattern = a_ptn; Result = reg.Replace(a_text, a_after)
FEnd

No.3515 2017/02/20(Mon) 12:19:53

Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / stuncloud
// 正規表現使わんでもいい気がします

for elem in IE.document.querySelectorAll("*[id]") // id属性のあるエレメントを列挙
 n = replace(elem.id, "inline_", "")
 if chknum(n) then
  print n // 数字っぽいのだけprintする
 endif
next

No.3516 2017/02/20(Mon) 12:27:46

Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / ゆうい
しろまさ様、回答ありがとうございます。しろまさ様のスクリプトでもできました。
パターンで、|.*\r\n", "$1"この部分が今の自分の実力では理解ができません。
|が論理和、\r\nの \nが改行にマッチ、\rがキャリッジリターン(行頭復帰)にマッチとなっていますが、なかなか難しいですね。

No.3517 2017/02/20(Mon) 15:37:19

Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / ゆうい
stuncloud様、回答ありがとうございます。以下のスクリプトで試したのですが、このような表示がされできませんでした。intenet explorerは動作を停止しましたと表示、プログラム終了のボタンが表示になります。ワードプレスプレスの管理画面のソースのID取得で試しています。

[試したスクリプト]
URL1="http://b.jp/nan/"
TRY
   IE = CREATEOLEOBJ("InternetExplorer.Application")
  EXCEPT
   EXEC("C:\Program Files\Internet Explorer\iexplore.exe")
   IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
  ENDTRY
IE.visible = true
IE.navigate(URL1)

REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4

for elem in IE.document.querySelectorAll("*[id]") // id属性のあるエレメントを列挙
 n = replace(elem.id, "inline_", "")
 if chknum(n) then
  print n // 数字っぽいのだけprintする
 endif
next

No.3518 2017/02/20(Mon) 15:43:08

Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / stuncloud
あれれ、なんでしょうね…
すいません思いつきで書いたので実際に試してないんですが、IEが停止って大事ですね
理屈の上ではそういう書き方でも抽出できるよ、という例のつもりだったのですが…
もうしわけない、あとで時間取れたら確認してみます

No.3519 2017/02/20(Mon) 16:30:53

Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / stuncloud
> intenet explorerは動作を停止しましたと表示、プログラム終了のボタンが表示になります。
こちらの環境でも再現しました、原因はわかりません
僕の書いたサンプルは使用しないでください

No.3521 2017/02/20(Mon) 17:54:24
2つのフラッシュの操作を自動化したい! / あの
一つのフラッシュで基本操作(4ヶ所クリック)をして、その結果によって、もう一つのフラッシュの3つのボタンのうちのどれかを押すような、比較的単純な作業を自動化したいです。
どなたか、お仕事として(報酬5万円)
チームビューアーなどの画面共有をしながら説明しつつ、作っていただくか、もしくは作り方をレクチャーしていただけないでしょうか?
よろしくお願いします。

No.3510 2017/02/19(Sun) 23:34:48
正規表現でパターン検索した文字列に対して、後ろに指定の文字列を加える方法 / ゆうい
textblockの中の文字列を正規表現のパターンで検索したのが下記。
<img style="width: 600px;" src="//" alt="1" />
<img style="width: 600px;" src="//" alt="2" />

これを下記にする方法について何か良い方法ないでしょうか?

希望処理
<img style="width: 600px;" src="//" alt="1" /><div class=ms2></div>
<img style="width: 600px;" src="//" alt="2" /><div class=ms2></div>

試しているスクリプト
textblock t_Text
テキスト1
<img style="width: 600px;" src="//" alt="1" />
テキスト2
<img style="width: 600px;" src="//" alt="2" />
endtextblock

print (regReplace(t_Text, "<img style=.+", "<img style=.+"+"<div class=<#DBL>ms2<#DBL>></div>"))

// 正規表現 置換
Function regReplace(a_text, a_ptn, a_after)
Dim reg = CreateOLEObj("VBScript.Regexp"); reg.Global = TRUE; reg.Multiline = TRUE; reg.pattern = a_ptn; Result = reg.Replace(a_text, a_after)
FEnd

No.3501 2017/02/17(Fri) 21:53:47

Re: 正規表現でパターン検索した文字列に対して、後ろに指定の文字列を加える方法 / しき
//後方参照を使う
s = regReplace(t_Text, "(<img style=[^\r\n]+)", "$1<div class=<#DBL>ms2<#DBL>></div>")
msgbox(s)

No.3502 2017/02/18(Sat) 04:28:46

Re: 正規表現でパターン検索した文字列に対して、後ろに指定の文字列を加える方法 / しろまさ
私は1行にタグが複数あることを前提として最短マッチを使います。
print (regReplace(t_Text, "(<img.+?>)", "$1<div class=<#DBL>ms2<#DBL>></div>"))

No.3503 2017/02/18(Sat) 10:51:15

Re: 正規表現でパターン検索した文字列に対して、後ろに指定の文字列を加える方法 / ゆうい
しき様、ご回答ありがとうございます。希望通りの処理ができました。
後方参照って便利なものがあるなんて知らなかったです。

No.3504 2017/02/18(Sat) 11:29:26

Re: 正規表現でパターン検索した文字列に対して、後ろに指定の文字列を加える方法 / ゆうい
しろまさ様、ご回答ありがとうございます。.+?で最短マッチ勉強になります。
No.3505 2017/02/18(Sat) 11:30:48
PROCEDURE内からTHREADの実行 / ギン
THREAD A

PROCEDURE A
THREAD B
FEND

PROCEDURE B
処理
FEND

というようにPROCEDURE A内からTHREAD Bを実行したいのですができません。
PROCEDURE AのFENDと同時に実行したはずのTHREAD Bも終了してしまうのではないかと思い
PROCEDURE A
THREAD B
sleep(100000)
FEND
としてみたのですが駄目でした。

何が原因でしょうか?

No.3483 2017/02/15(Wed) 14:30:09

Re: PROCEDURE内からTHREADの実行 / しろまさ
メインプロセスが終了してると思われます。

THREAD A
Sleep(10) // 待機しないとプロセスが高速で死ぬ。

PROCEDURE A
THREAD B
Fukidasi("A", 50, 50)
Sleep(5)
FEND

PROCEDURE B
Fukidasi("B", 100, 100)
Sleep(5)
FEND

No.3484 2017/02/15(Wed) 14:37:41

Re: PROCEDURE内からTHREADの実行 / ギン
しろまささん、ありがとうございます。

すいません、THREAD Aの下のsleepを記述し忘れていました。
THREAD A
sleep(100000)
としているのですが駄目なようです。

No.3485 2017/02/15(Wed) 14:42:03

Re: PROCEDURE内からTHREADの実行 / stuncloud
UWSCのバージョンが古いとか?
僕の環境でもBが呼べてますし、Aが終わってもBは動いてますね

thread A()
sleep(10)

procedure A
 fukidasi("A")
 thread B()
 sleep(2)
fend

procedure B
 fukidasi("B", 0, 50)
 sleep(5)
fend

No.3486 2017/02/15(Wed) 16:00:10

Re: PROCEDURE内からTHREADの実行 / ギン
stuncloudさん、ありがとうございます
コピーして使用してみたところ正常に動作しました。
なのでこちらの組んだスクリプトに問題があるのだと思い色々確認してみたところ、原因がわかりました。
Aの中でBを呼び出す直前にDOSCMDでバッチファイル(C)を呼び出しているのですが、DOSCMD(”C”,FALSE,TRUE)で確認してみたところそのバッチが終了していなかった為次の処理(THREAD B)に移れないでいたようです。

バッチファイルの内容は
コマンド < exit.txt
となっておりuwscにexitという名で内容は
exit
exit
のテキストを保存しているのですがバッチが終了しません。
手動でコマンドプロンプトを閉じたところTHREAD Bに移行したのでこれが原因で間違いなさそうです。
何が間違っているかわかりますでしょうか?
(UWSCというよりバッチファイルやコマンドの質問になってしまっていますがよろしければ教えて頂けると幸いです。申し訳ありません。)

No.3489 2017/02/15(Wed) 17:08:20

Re: PROCEDURE内からTHREADの実行 / stuncloud
> 何が間違っているかわかりますでしょうか?
わかりません
> コマンド < exit.txt
のコマンドがなんだかわかりませんがそれが終わってないんでしょう
そのコマンドがちゃんと終わるようにしてください

あと別にその程度ならわざわざbatファイルを通さなくてもDOSCMDで直接叩けばいいのでは…

No.3492 2017/02/15(Wed) 18:03:38

Re: PROCEDURE内からTHREADの実行 / ギン
ありがとうございます。
確かにそうですね。いつもの癖で何故かバッチを通してしまっていました。
DOSCMD(”コマンド”,TRUE,TRUE)としたところCMD.exeは残ったまま次の処理に移ることはできたのですがこのままプログラムを組んでいくとPROCEDURE内からTHREADを実行するたびにCMD.exeが裏に溜まっていってしまうのでしょうか?

No.3493 2017/02/15(Wed) 18:26:01

Re: PROCEDURE内からTHREADの実行 / stuncloud
> PROCEDURE内からTHREADを実行するたびにCMD.exeが裏に溜まっていってしまうのでしょうか?
THREADかどうかは全く関係ありません
が、DOSCMDで叩いたコマンドが終了しないのであればそうでしょうね

問題はUWSCではなくその実行コマンドにほかならないので
・コマンドプロンプト上で直接試す
・DOSCMDの部分だけ切り出したスクリプトを書いて試す
でうまくいくようになったら本番のスクリプトでうまくいくコマンドを実行するようにしてください
実行コマンドが明かされない以上こちらからの助言は無理なのであとはがんばってください

No.3494 2017/02/15(Wed) 18:51:54

Re: PROCEDURE内からTHREADの実行 / ギン
ありがとうございます。
すいません、コマンドの内容もきちんと書くべきでした。
DOSCMD(”nox.exe -clone:Nox_1”,TRUE,TRUE)
Nox app playerという仮装androidを扱うこのソフト専用のコマンドでエミュレータを一つ指定して起動する、という内容のコマンドです。
これをDOSCMDから実行するとコマンド自体は正常に動作するのですがCMD.exeには何も表示されておらず、手動で何かを打ち込もうとしても何も打ち込めない状態です。
コマンドプロンプト上で直接試すとその後も普通にキーボードを叩けば反応する状態で、exitを入力すれば窓は閉じます。
DOSCMD(”nox.exe -clone:Nox_1”,TRUE,TRUE)のみを実行しても先程と結果は同じでした。

No.3495 2017/02/15(Wed) 19:35:35

Re: PROCEDURE内からTHREADの実行 / しろまさ
,TRUE,TRUE) ではなく
,TRUE,FALSE) では?

No.3496 2017/02/16(Thu) 09:53:30

Re: PROCEDURE内からTHREADの実行 / ギン
CMD.exeが終了しているのかいないのかを確かめる為に今はTRUE,TRUEにしています。
No.3497 2017/02/16(Thu) 13:16:29

Re: PROCEDURE内からTHREADの実行 / しろまさ
なるほど。では、「Exitで終了する」のであれば、Exitを記述して起動しては?
DosCmd("nox.exe -clone:Nox_1;exit", TRUE, TRUE)

No.3498 2017/02/16(Thu) 14:08:00
ウィルスソフトに削除されてしまいます。 / kj
今まで、長年問題なくつかえてましたが、最近、uwsc の exe ファイル を実行すると ウィル対策ソフトにより削除される ことが多いです。uwsc、本体も実行したら削除されました。ウィルス対策ソフトは nifty が提供するソフトです。nifty に 問い合わせるべきことですが、ウィルス対策ソフトに削除されないような、uwsc を作っていただければと思い、投稿いたしました。
No.3480 2017/02/15(Wed) 07:56:29

Re: ウィルスソフトに削除されてしまいます。 / しゅみん
類似なのでココへ
バージョン5.2.3にするとトレンドマイクロのウイルスバスターcorpで警告がでます。
5.2.2では問題ありません。

No.3481 2017/02/15(Wed) 08:43:27

Re: ウィルスソフトに削除されてしまいます。 / しゅみん
訂正
5.2.2も警告でます。
5.2.1は大丈夫。

No.3482 2017/02/15(Wed) 09:20:20

Re: ウィルスソフトに削除されてしまいます。 / stuncloud
ウイルス対策ソフトにはだいたい例外設定があるので、uwsc.exeは削除対象にしないというように設定しておくべきかと思います
No.3487 2017/02/15(Wed) 16:02:53

Re: ウィルスソフトに削除されてしまいます。 / satocha
先ほどhttps://www.virustotal.com/ja/で最新版を一括スキャンしてみたのですが、Trend Microを含むすべてのエンジンで問題は検出されませんでした。

万一を考え、入手経路やPC環境の再確認をおすすめします。

No.3488 2017/02/15(Wed) 16:42:06

Re: ウィルスソフトに削除されてしまいます。 / mogutan
それって無理でしょ。ウイルス対策ソフト側が後から対策を取るのですから。
つまりですね、exeファイルなんだから何でもアリな訳で、それを"脅威"とみなしたメーカーが有ると言う事ですよ。"VirusTotal"での検証では58社中、3社が脅威と判断しているようです。

No.3490 2017/02/15(Wed) 17:10:03

Re: ウィルスソフトに削除されてしまいます。 / mogutan
※補足
↑はUWSC.EXEの事では無く、EXE化したスクリプトの事ね。

No.3491 2017/02/15(Wed) 17:14:59
複数のExcelブックへ複数のUWSCスクリプトから別々の処理をしたい。 / たいし
windows10 64bit
Excel 2013

windows7の時は以下で動作していたのですが
10アップグレード後、数年たって昔のスクリプトを動かすと
前面にあるブックへの書き込みになってしまい、それぞれへの
同時処理ができなくなってしまいました。

修正方法を指南していただけるとありがたいです。


・やりたいこと
 11.xlsx、22.xlsxを開いた状態で
 11.uwsから11.xlsxへの書き込み
 22.uwsから22.xlsxへの書き込み
 を、同時起動して処理したい。

// 11.uws
Excel = GETACTIVEOLEOBJ("Excel.Application", "11.xlsx")
for i = 0 to 100
Excel.ActiveCell.Offset(i, 0).value = "11 " + i
sleep(1)
next

// 11.uws
Excel2 = GETACTIVEOLEOBJ("Excel.Application", "22.xlsx")
for i = 0 to 1000
Excel2.ActiveCell.Offset(i, 0).value = "22 " + i
sleep(1)
next

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

No.3475 2017/02/11(Sat) 13:41:55

Re: 複数のExcelブックへ複数のUWSCスクリプトから別々の処理をしたい。 / たいし
↑ // 11.uws → // 22.uws 訂正します。すいません
No.3476 2017/02/11(Sat) 16:35:37

Re: 複数のExcelブックへ複数のUWSCスクリプトから別々の処理をしたい。 / miles
> 前面にあるブックへの書き込みになってしまい、
ActiveCellの切り替えがうまくいかないなら、
Row,Columnを取得して、裏で操作したらどうでしょうか?
(必要ならsheet名も取得)

Excel = GETACTIVEOLEOBJ("Excel.Application")
With Excel.WorkBooks("11.xlsx")
 .Activate
 x = Excel.ActiveCell.Row
 y = Excel.ActiveCell.Column
// name = .ActiveSheet.Name
 for i = 0 to 100
  .WorkSheets(1).Cells(x+i, y).value = "11 " + i
//  .WorkSheets(name).Cells(x+i, y).value = "11 " + i
  sleep(1)
 next
EndWith

No.3479 2017/02/14(Tue) 16:45:41
EXCELの行を非表示にしたい / もり
excelで値がセットされていない行を非表示に、セットされている行を表示したいのですが。

宜しくお願いいたします。

No.3477 2017/02/13(Mon) 10:53:16

Re: EXCELの行を非表示にしたい / stuncloud
もう少し要件をつめてください

> 値がセットされていない行
それはその行のすべての列に値がないということですか?それとも特定の列だけ?

フィルタを使いたいという話ですか?
それとも1行1行確認して非表示にしていく?
行の範囲は?

No.3478 2017/02/13(Mon) 11:30:08
AirDroid3.4.0.1のメッセージ作成ボタンが押せません。 / ちっき
AirDroid3.4.0.1とエクセル(EXCEL2016)一覧表を組み合わせて、スマホからショートメールを自動的に送信する動作の記録に挑戦しているのですが、UWSCの「低レベル記録」「高レベル記録」のどちらを利用しても、メッセージ作成ボタンを押すことができません。このような特定のアプリについての不具合の解決は難しいのかもしれませんが、解決方法や代案等について、ご教示いただける方がおりましたら、よろしくお願いいたします。
ちなみに同様の操作をmysmsというソフトでは問題なく操作可能です。

No.3471 2017/02/09(Thu) 20:08:14

Re: AirDroid3.4.0.1のメッセージ作成ボタンが押せません。 / stuncloud
> mysmsというソフトでは問題なく操作可能
なのであればそれ使ったら良いんじゃないですかね?
> 同様の操作
が出来るのならなんの不都合もないはずですし
そのmysmsとやらをUWSCで操作されたらどうでしょう

No.3474 2017/02/10(Fri) 09:44:06
READINIの変数で値を取得について / NER
READINIの変数で値を取得したいのですができません、何か良い方法ないでしょうか?
下記の2つパターンのコードで試しています。

(1つ目パターン)
ID = READINI("ID1","id","C:\Users\ランダム.INI")
ID1 = READINI("ID2","id","C:\Users\ランダム.INI")
ID2 = READINI("ID3","id","C:\Users\ランダム.INI")
ID3 = READINI("ID4","id","C:\Users\ランダム.INI")
ID4 = READINI("ID5","id","C:\Users\ランダム.INI")
ID5 = READINI("ID6","id","C:\Users\ランダム.INI")


for i = 1 to 5
tes="id"+i
print tes
i=i+1
next


(2つ目パターン)

ID = READINI("ID1","id","C:\Users\ランダム.INI")
ID1 = READINI("ID2","id","C:\Users\ランダム.INI")
ID2 = READINI("ID3","id","C:\Users\ランダム.INI")
ID3 = READINI("ID4","id","C:\Users\ランダム.INI")
ID4 = READINI("ID5","id","C:\Users\ランダム.INI")
ID5 = READINI("ID6","id","C:\Users\ランダム.INI")


for i = 1 to 5
tes=id+i
print tes
i=i+1
next

No.3472 2017/02/09(Thu) 22:29:56

Re: READINIの変数で値を取得について / しろまさ
tes=id+i

tes=READINI("ID" + i ,"id","C:\Users\ランダム.INI")
でいいんじゃないですか?

それと i=i+1 は書く意味ないですよ。

No.3473 2017/02/10(Fri) 08:53:51


 過去ログ(〜2017/03/22)・検索ツール


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