[ 掲示板に戻る ]

過去ログ閲覧モード

正規表現と配列 / Japanzer
いつもUWSCを便利に使わせていただきありがとうございます。

さて、配列を使用して正規表現を行おうとしているのですが、どうもうまくいきません。
下の例でAとBの置換結果が異なるのはなぜなのか、理由を教えてくだされば幸いです。


/////////////////////////////////
str="April 7th"
dim month[]="April"

msgbox(RegReplace(Str, "(month[0]) (7th)", "$2 $1")) // A
msgbox(RegReplace(Str, "(April) (7th)", "$2 $1"))  // B

function RegReplace(Str, Pattern, StrReplace)
 Dim Reg = CreateOLEObj("VBScript.Regexp")
 Reg.Pattern = pattern
 Reg.Global = true
 Result = Reg.Replace(Str, StrReplace)
fend

No.2300 2016/04/07(Thu) 12:05:23

Re: 正規表現と配列 / しろまさ
"(" + month[0] + ") (7th)"

こうではないの?

No.2301 2016/04/07(Thu) 13:32:53

Re: 正規表現と配列 / Japanzer
ありがとうございます。
教えていただき、自分の未熟さを改めて感じました。
私の書き方ですと配列のつもりが、文字列になってしまっていることに気がつきませんでした。

No.2303 2016/04/07(Thu) 18:24:02
実行までの待ち時間について / koi
BTNやMMV関数などで実行までの待ち時間のパラメータがありますが
SLEEP(0.5)
MMV(100,100)  の2行と  MMV(100,100,500) の一行は同じ
という認識でいいんですよね?
もし何か違いがあるとすればどんなことでしょうか?

No.2296 2016/04/06(Wed) 17:23:10

Re: 実行までの待ち時間について / umiumi
動作的には同じです。
No.2299 2016/04/07(Thu) 01:00:29
MODULEについて / namn
インスタンス生成ができないということですが、継承も無理ですか?
No.2294 2016/04/05(Tue) 23:44:58

Re: MODULEについて / umiumi
できません。
No.2298 2016/04/07(Thu) 00:59:58
保護モード / わかば
お世話になっております。

会社で本ソフトで作成し社内のサイトを操作するアプリを使っているのですが、保護モードをOFFにしていることを咎められてしまいました。
そこで暫定対策で、IEを開く前後でレジストリを操作してOFF/ONにするようにしました。これで本アプリで開いたIE以外はONになります。

会社の規定は、ローカルイントラネットの保護モードはOFFでいいので、恒久対策としてアクセス先が社内専用前提で、インターネットの保護モードはONにして使用する方法はないのでしょうか?

よろしくお願いします。

No.2279 2016/04/03(Sun) 09:31:58

Re: 保護モード / stuncloud
>会社の規定は、ローカルイントラネットの保護モードはOFFでいいので
>アクセス先が社内専用前提

であれば社内サイトをローカルイントラネットゾーンに登録しておけば良いのでは?

No.2281 2016/04/03(Sun) 16:07:09

Re: 保護モード / わかば
>であれば社内サイトをローカルイントラネットゾーンに登録しておけば良いのでは?
今日、あらためて確認しましたが、登録されています。

VBAで操作する場合、保護モードにする必要はないと思いますが、致し方ないのでしょうか?

No.2286 2016/04/04(Mon) 21:58:24

Re: 保護モード / stuncloud

ローカルイントラネットゾーンの保護モードをオフにすれば解決では?

No.2290 2016/04/05(Tue) 09:48:42

Re: 保護モード / わかば
残念ながら私の会社の環境ではエラーになります。
>インターネット 保護モードON
>ローカルイントラネット 保護モードOFF
>社内サイトをローカルイントラネットゾーンに登録


そこで、起動時のみ一時的に
>インターネット 保護モードOFF
にしてしのいでいます。

No.2293 2016/04/05(Tue) 22:41:10
ホットキー機能について / namn
再び失礼します。

SETHOTKEYを使用して、ダイアログを出したり消したりできるようにしたいのですが、
どうしても長押しをすると複数同じ関数が呼ばれてしまい、ダイアログが重なって操作不能になります。

長押しによる連続呼び出しの防止はどうすればいいのでしょうか?
SETHOTKEYを使用しない形では以前うまくいったのですが、なるべくこの関数を使用したいです。

PUBLIC ExitCon = True // 終了コントロール(複数の処理を終わらせるためにこうしています。)
PUBLIC LOGCON = False // ダイアログコントロール

SETHOTKEY(VK_X,MOD_ALT,"_Exit") // 終了用ホットキー
SETHOTKEY(VK_Z,MOD_ALT,"_CTRL") // ダイアログ開閉用ホットキー

WHILE ExitCon
SLEEP(0.1) // メインの処理
WEND

PROCEDURE HELLOSTRING() // ダイアログ
IFB ExitCon AND LOGCON = False
LOGCON = True
MSGBOX("Hello!")
LOGCON = False
ENDIF
FEND

PROCEDURE _Exit() // 終了処理
LOGCON = True
CTRLWIN(GETID("UWSC - HOT"),CLOSE)
ExitCon = False
EXITEXIT
FEND

PROCEDURE _CTRL() // ダイアログの開閉を行う関数
IFB LOGCON
LOGCON = False
CTRLWIN(GETID("UWSC - HOT"),CLOSE)
ELSE
HELLOSTRING()
ENDIF
WHILE GETKEYSTATE(HOTKEY_VK) AND GETKEYSTATE(HOTKEY_MOD) // ここの部分で長押しを回避していると思っていたの_ですが、別の_CTRL()が呼び出されるようです。
WEND
FEND

No.2271 2016/04/01(Fri) 02:18:35

Re: ホットキー機能について / namn
追記:CTRLWIN(GETID("UWSC - HOT"),CLOSE)の部分ですが、このスクリプトの名前を「HOTKEYTEST.uws」にしているためこのようになっています。

ダイアログ関連用のID(GET_LOGPRINT_WINみたいな感じ)がどれかよくわからなかったのでそれも教えていただけるとありがたいです。

No.2272 2016/04/01(Fri) 02:24:27

Re: ホットキー機能について / Liners
正直このような使い方はお勧めしませんが、100%不可能ではありません。
関数に入った時点で、一度解除し、ギリギリのタイミングで細かくONにすることで高確率で回避できます。

No.2280 2016/04/03(Sun) 15:50:12

Re: ホットキー機能について / namn
全然気づきませんでした!!

うまくできました。ありがとうございました。m(_ _)m

No.2292 2016/04/05(Tue) 22:34:01
IE11でファイルを名前を付けて保存を行いたい / ケイ
IE11で通知バーから「名前を付けて保存」を行いたいです。
どのように行えばいいでしょうか?

できればファイル名を指定するところまで教えていただけると助かります。

No.2265 2016/03/30(Wed) 21:44:54

Re: IE11でファイルを名前を付けて保存を行いたい / ケイ
本件ですが、以下のスクリプトで「保存」はできました。

id = GETID("Internet Explorer", "IEFrame")
vh = 0
while vh = 0
sleep(0.5)
vh = GETCTLHND(id,"DirectUIHWND",2)
wend

vbtn = HNDtoID(vh)

CLKITEM(vbtn, "保存", CLK_ACC )

しかし、「名前を付けて保存」のダイアログを表示させることができないです。
どなたかご存知でしたら教えてください。

No.2267 2016/03/31(Thu) 15:31:55

Re: IE11でファイルを名前を付けて保存を行いたい / リキュール
以下ではどうでしょうか。

id = GETID("Internet Explorer", "IEFrame")
while True
CTRLWIN(id, ACTIVATE)
Sleep(1)
msgid = HNDtoID(GETCTLHND(id,"DirectUIHWND",2))
 ifb CLKITEM(msgid, "保存", CLK_ACC, False)
  KBD(VK_DOWN)
  CLKITEM(GETID("","#32768"),"名前を付けて保存", CLK_ACC or CLK_BACK)
  if GETID("名前を付けて保存", "#32770", 1) > 0 then break
 endif
wend
id = GETID("名前を付けて保存", "#32770")
Sleep(1)
SendStr(id, XXX, 2, True) // XXX = パス\ファイル名
ClkItem(id, "保存", CLK_BTN)
Repeat
Sleep(1)
Until Pos("ダウンロードが完了", GETSTR(msgid, 1, STR_ACC_STATIC))>0 // 完了待ち
CLKITEM(msgid, "閉じる", CLK_ACC)
Sleep(1)

No.2268 2016/03/31(Thu) 15:55:57

Re: IE11でファイルを名前を付けて保存を行いたい / ケイ
リキュール様
ありがとうございます。動きました!
自動的にファイルを上書きしてくれるのですね。

実に6年ぶりにUWSCを使いました。
重宝しております。

No.2269 2016/03/31(Thu) 22:06:00

Re: IE11でファイルを名前を付けて保存を行いたい / ケイ
いつもお世話になっております

上記スクリプトを実行してみたのですが、
ファイルの上書きを聞かれるときがあります。

強制的に上書きする方法ご存知でしょうか。

調べてみたのですが分かりませんでした。

No.2289 2016/04/05(Tue) 08:24:33

Re: IE11でファイルを名前を付けて保存を行いたい / リキュール
こちらの「上書き保存の確認」部分が参考になると思います。

http://www.fukano.jp/study_of_awk/basic/UWSC.htm

No.2291 2016/04/05(Tue) 22:17:34
UWSC Ver5.2.2 / umiumi
LOCKHARDEX関数にて マウス移動が解除されるパターンがあるのを修正
GETACTIVEOLEOBJ関数にて タイトルの指定がある時に NGだったのを修正
一部アプリのコンボボックスにて CLKITEM,GETITEM関数が NGのパターンがあるのを修正
IESETDATA関数にて 一部動作しないパターンを修正
POFF関数の P_UWSC_REEXEC指定時の実行後に スケジュールが実行されないのを修正
POSACC関数の ACC_DESCRIPTION指定にて 環境により取得できなかったのを修正
SLCTBOX関数にて スクロールあり時に OKボタンやプログレスバーが隠れないようにした
Pro版:
RecIE: 余計な動作が記録されるパターンがあるのを修正

No.2253 2016/03/27(Sun) 00:39:31

Re: UWSC Ver5.2.2 / しき
//V5.2.2 以下の例で、
//UWSC は動作を停止しました
//のエラーになります
//class内、with 使用、メソッドと同じ関数名(FileExists) の時に発生するようです
//win7 pro 64bit


cls_test.fileExists("C:\")

class cls_test

function fileExists(sFilename)
dim o_Fs = CreateOleObj("Scripting.FileSystemObject")
with o_Fs
result = .FileExists(sFilename)
endwith
fend

endclass


あと、pro版セットアップ時に、次の2行程がありませんでした
インストール先の指定
プログラムグループの指定

No.2255 2016/03/28(Mon) 14:18:35

Re: UWSC Ver5.2.2 / umiumi
確認しました。
対処します。

>あと、pro版セットアップ時に、次の2行程がありませんでした
上書きインストールの時の正常動作

No.2256 2016/03/29(Tue) 00:21:55

Re: UWSC Ver5.2.2 / ROM
お世話になります。

>POSACC関数の ACC_DESCRIPTION指定にて 環境により取得できなかったのを修正
リストコントロールのところで、DESCRIPTIONの情報が得られないようです。
ご確認のほどよろしくお願いします。

補足:
UWSCで業務ソフトの操作を行っています。
表形式で表示している値をDESCRIPTIONを使って取得しています。
  列のヘッダー名と値を取得できたので大変便利でした。
業務ソフトの機能追加に伴い、UWSCスクリプトの変更が必要になり、
UWSC5.2以降でコノ機能が使えないことに気が付きました。
環境:Win8.1(64ビット)

No.2258 2016/03/29(Tue) 15:14:08

Re: UWSC Ver5.2.2 / umiumi
当方では確認する事ができません。
Windows10 で試してみてください。

No.2259 2016/03/29(Tue) 23:35:34

Re: UWSC Ver5.2.2 / ROM
了解です。

事情があり、Win10への変更が直ぐできません。
変更でき次第確認いたします。

No.2260 2016/03/30(Wed) 10:48:27

Re: UWSC Ver5.2.2 / ROM
お世話になります。
Win10(64bit)で行いましたが、同じでした。(リストコントロールのところで、ACC_DESCRIPTIONを行うと何も返らない)
このとき、ACC_ROLLとACC_STATEの内容が、UWSC5.1.2.0と5.2.2.0とで、以下の如く異なっていました。
UWSCpro5.2.2.0
  ROLE: テキスト
  STATE: フォーカスできます。
UWSCpro5.1.2.0
  ROLE: 一覧項目
  STATE: フォーカスできます。選択できます。複数選択できます。

umiumiさんの環境で再現できないのであれば、仕方が有りませんので"5.1.2.0"で当面凌ぎ、
余裕ができた時点で、ACC_DESCRIPTIONを使用しない方法を考えます。

 

No.2282 2016/04/03(Sun) 22:19:54

Re: UWSC Ver5.2.2 / umiumi
Windows10 に対応する為に MSAA から UI Automation に取得ルーチンを変更したのが原因です。
申し訳ありませんが、この為だけに古い MSAAのルーチンに戻す事はできません。

No.2288 2016/04/04(Mon) 23:26:45
IEでタブのPIDを取得 / あかべ
お世話になっております。

IEで開いているタブのPIDを取得し、別のアプリケーションへPID情報を渡したいのですが、
取得方法が分からず難儀しています。
IE自体のPIDはSTATUS(ID,ST_PROCESS)で取得出来ています。

取得したいのはアクティブタブのPIDだけです。
Pro Ver 5.2.1.0を使用しています。

ご教授の程よろしくお願いします。

No.2285 2016/04/04(Mon) 19:22:58

Re: IEでタブのPIDを取得 / あかべ
PIDを表示出来る他アプリケーションからPosACCで情報を取る形ですが、
一応は目的の動作をさせる事が出来ましたので解決しました。

No.2287 2016/04/04(Mon) 22:25:17
execlのvbaからuwsを起動する方法 / ほしのうみ
こんにちは、重宝しています。
execl上に機械制御用のaddinがあり、それをシート起動ごとにクリックする必要があり
毎回、面倒なのでuwscで、リボンの中になるアドインから、追加されたアドインを
クリックするスクリプトを制作して、uwsの関連付けも終わり、vbaで、\保管場所\スクリプト名.uwsを
シートを開くと同時に、実行する様にしましたが、プロシージャー呼び出し不正とでます。
execl上のvbaより、スクリプトを起動する方法は無いでしょうか?
参考までにrc = Shell("C:\uwsc522\uwsc.exe", vbNormalFocus)は実行されます。

No.2283 2016/04/04(Mon) 16:29:27

Re: execlのvbaからuwsを起動する方法 / stuncloud
完全にexcelの話なので場違いな気がしますが…

> \保管場所\スクリプト名.uws
相対パスが悪いのではないでしょうか
excelは作業フォルダがxls(m)ファイルの場所ではなく%USERPROFILE%\Documentsなのでそこにuwsファイルを置く、またはファイルパスを絶対パスで指定しないといけません
そもそも
> プロシージャー呼び出し不正
なので全然違う原因があるのかもしれませんが

いずれにせよ、解決しないようであればここではなくVBA関連で質問できる場所へ行かれたほうがよいと思います

No.2284 2016/04/04(Mon) 17:29:36
IEの入力フォームに入力した文字の取得方法 / myuu
お久しぶりです。以前、ここの掲示板の皆様には大変お世話になりました。今では大分やりたいことができるようになりました(>_<)
ちょっとまた課題ができ顔を出させて頂きます。ご指導頂けますと幸いです。

「質問」IEの入力フォームに入力した文字の取得方法。

例えばgoogleの検索フォームに「りんご」と打ち込んだとします。
https://www.google.co.jp/

その「りんご」という単語を取得する関数はありますでしょうか?
※自動で「りんご」と入力するのは、以下のコードで出来ます。私が行いたいのは
打ち込んである単語を拾ってくることです。(まぎわらしい表現でごめんなさい)
IESetData(IE,"りんご","q")


今回は一例でgoogleを出しましたが、色々な入力フォームで試してみたいと考えております。

どうかご指導よろしくお願いします。

No.2274 2016/04/02(Sat) 02:16:48

Re: IEの入力フォームに入力した文字の取得方法 / K.Nagatani
IEGETDATA( IE,"q")
では?

No.2278 2016/04/02(Sat) 18:49:05
全727件 [ ページ : << 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 73 >> ]