[ 掲示板に戻る ]

過去ログ閲覧モード

止まる / しげぞう
いつも大変便利に使わせていただいてます。

今、あるアプリを自動化しようとしているのですが、
スクリプトを書いても自動記録を使っても、
必ずUWSCが止まってしまうのです。
スクリプトではクリックした瞬間に、
自動記録では最初のクリックをしたすぐ後に、
UWSCが(EXE化した場合でも)止まってしまいます。
マウスカーソルは普通に動きます。
そしてUWSCをクリックすると、再び動き出します。

これはいったい何故なんでしょうか?
どういった状態のときに起こり得るのでしょうか。
回避策はあるのでしょうか?
ご教授、よろしくお願いします。

No.2295 2016/04/06(Wed) 17:13:20

Re: 止まる / routa
uwscを管理者モードで実行してみたらどうですか。
また, あるアプリでごまかさず, どんなアプリなのか書くべきでしょう。

No.2297 2016/04/06(Wed) 22:52:43

Re: 止まる / 通りすがり
私も、とあるMMOでゲーム作業の記録をしようとしたら
最初のクリックまでしか記録できませんでした。

こういうソフトは、簡単に使えないと意味がないですね
時間をかけずにオートで作業をしたいのに、調べるのに
時間がかかっては本末転倒ですから

No.2313 2016/04/13(Wed) 08:19:32

Re: 止まる / daikirin
絶対座標でやってる?
No.2314 2016/04/14(Thu) 01:05:41
ファイルを添付してメール送信ができない / 560
いつもお世話になっております。

メール送信において、添付ファイルをつけたいのですが、
CreateOLEObj("CDO.Message").AddAttachment "添付ファイルのアドレス"
では「comエラー」となります。

なお、
.To
.TextBody
.Send
などは使用できるので、添付ファイルを使用しなければ利用できます。

「.AddAttachment」は、UWSCで使用できないのでしょうか?

初心者で大変恐縮でございますが、
ご教示いただけますと幸いです。

何卒よろしくお願い申し上げます。

No.2310 2016/04/12(Tue) 16:53:28

Re: ファイルを添付してメール送信ができない / しろまさ
VBAと違って関数は括弧つきで実行する必要があります。
その他説明がいろいろめんどいので下記リンクから必要カ所を読み取って下さい。

http://siromasa.html.xdomain.jp/uwsc/u_sample/Com/CDOMessage/Module_Gmail.uws

No.2311 2016/04/12(Tue) 18:37:31

Re: ファイルを添付してメール送信ができない / 560
しろまささん

お世話になっております。
無事出来ました!
ご親切にご回答くださり、本当にありがとうございます。

No.2312 2016/04/12(Tue) 19:22:28
replace関数の文字数上限 / たらこ
指定したテキストの空白を無くすスクリプトを組みました。
普通のテキストに対しては正常に動作するのですが、文字が一億文字以上あるテキストに対して動作させると、replace関数に対してsyntax Errorが発生したり、replace関数が-1を返したりします。
ここで質問です。
?@これは処理落ちしているということですか、それともreplace関数に上限があるということですか。
?A解決策で、ファイルを分割する以外に方法はありますか。
?Breplace関数の戻り値が-1とはどういう状態ですか。

ここで、一億文字以上あるテキストは全て数字で、このテキストに不具合はありません。

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

a = input("改行を消去したいファイルを入れる")
戻値 = FOPEN(a, F_READ )
文字列 = FGET(戻値,F_ALLTEXT)
moji = REPLACE(文字列, " ", "")
print moji

No.2302 2016/04/07(Thu) 15:09:46

Re: replace関数の文字数上限 / ある
str="123456789012345678901234567890"
str2=str ;str3=str ;str4=str

for n=0 to 20
str2=str2+str2
next
for n=0 to 22
str3=str3+str3
next

add=str+str+str
for n=0 to 16
add=add+add
next
add2=str3+add

print "文字数1="+length(str)
print "文字数2="+length(str2)
print "文字数3="+length(str3)
print "文字数add="+length(add)
print "文字数add2="+length(add2)

//----------------------------
replace関数に、というよりはuwscの扱えるデータの上限数を超えているのではないかと思いました。気になったので手動でチマチマ調べてみました。
整理されていないコードで見づらくてすみません(>_<)
上記を実行すると
文字数1=30
文字数2=62914560
文字数3=251658240
文字数add=11796480
文字数add2=263454720
を返します。
このadd=add+addのループ回数を17にするとエラーになります。
2億6000万文字よりもう少し上くらいまでは対応している、ということではないでしょうか。

No.2304 2016/04/07(Thu) 22:42:56

Re: replace関数の文字数上限 / umiumi
>replace関数が-1を返したりします。
これは replace関数の問題ではなく、ファイル読み込みの問題だと思います。
ファイルが正しく読み込まれているか確認してください。(戻値, 文字列を確認)
別アプリがファイルにアクセスしている場合は ファイルの排他制御をしてください。

No.2305 2016/04/08(Fri) 00:09:53

Re: replace関数の文字数上限 / たらこ
ある様
わざわざスクリプトまで作成して調査していただきありがとうございます。
自分で実際に調べるという考えが欠如していました。

umiumi様
問題の原因が別の処にある可能性を指摘していただきありがとうございます。

No.2306 2016/04/08(Fri) 15:22:44
正規表現と配列 / 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
全1170件 [ ページ : << 1 ... 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 ... 117 >> ]