[ 掲示板に戻る ]

過去ログ閲覧モード

PROCEDUREとcallの使い方について / タカハシ
test.uws1で下記のコードで保存しています。これを部品としてtest2.uwsで呼び出したいのですが、msgが定義されていませんと表示されます。
何が間違っているのでしょうか?


[test1.uws]
PROCEDURE msg()
MSGBOX( ”メッセージ”)
FEND

[test2.uws]
call "C:\Users\aruke\Desktop\UWS\部品\test1.uws"

print msg

No.2833 2016/09/02(Fri) 15:04:15

Re: PROCEDUREとcallの使い方について / stuncloud
二点間違ってます

一点目
msg は関数なので msg() としなければいけません
> print msg
にあるような括弧を付けない msg は変数として解釈されるため
> (変数としての)msgが定義されていません
という警告が出ます

二点目
printはその後に書いた式が返す値を出力します、ですので
> print msg()
とした場合はmsg()の返す値が表示されるのですが、msg()はprocedureなので値を返しませんからなにも出力されないことになります
(実際はEMPTYが返されてるような動きになります)
関数で値を返す場合はfunctionを使います

print msg()

function msg()
 result = "メッセージ"
fend

No.2834 2016/09/02(Fri) 15:48:18
UWSCのスクリプトでスケジュール設定をしたいです。 / nnn
いつもお世話になっております。
実行環境は、IE9、WindowsVistaです。

現在、あるサイトの掲載終了時刻を取得して、その時刻になったらPCをスリープから起動してIEを操作するというスクリプトを考えています。

掲載終了時刻を取得してから掲載終了するまでは2日ほどかかることがあるので、可能であればスリープ状態のPCを起動させたいです。

UWSCに付属のスケジュール機能ですと、毎回同じ時間ならば手動で1度設定すればよいのですが、終了時刻は毎回異なり、設定する回数も多いので、スクリプトで実現させたいです。

UWSCの画像認識でボタンを押していき、スケジュール設定をするという方法も考えましたが、これ以外に方法がございましたらご教授をよろしくお願いいたします。

No.2829 2016/09/02(Fri) 13:26:00

Re: UWSCのスクリプトでスケジュール設定をしたいです。 / stuncloud
スケジュールは %APPDATA%\UWSC\UWSC.ini (※)に書き込まれているので、一旦手動でスケジュールを登録しiniファイルにどのように書き込まれるのかを確認してから、writeiniを使ってスクリプトから指定した時刻で登録するようにすればよいでしょう
writeiniした後はUWSCを再起動すれば設定が読み込まれると思います
※ iniファイルの場所は[設定]>[.INI/.LOG Folder]で開けます

UWSCのスケジュール機能を使わずタスクスケジューラを使うという手もあります
こっちはちょっと難易度高いですがいろいろできますよ
https://gallery.technet.microsoft.com/scriptcenter/78fa186b-8c7d-42af-bd1a-d905e3d3abab

No.2830 2016/09/02(Fri) 13:46:36

Re: UWSCのスクリプトでスケジュール設定をしたいです。 / nnn
stuncloud様

ご回答ありがとうございます。

早速、iniファイルを書き換えるスクリプトを作成してみます。

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

No.2831 2016/09/02(Fri) 14:00:21
AddAttachment / tama
「.AddAttachment」は、UWSCで使用できないのでしょうか?と以前質問が上がっていましたが、
同じ穴にハマり、自己解決しました。
ですが、記載が無かったので、自己解決記録を記載させて下さい。


 .AddAttachment("C:\hoge.txt")


 .AddAttachment="C:\hoge.txt"

No.2827 2016/09/02(Fri) 11:10:16

Re: AddAttachment / 俄プログラマー
自己解決した場合そのソースを載せない人が多い中
大変素晴らしいです。

No.2828 2016/09/02(Fri) 12:32:50
英語環境での設定ダイアログの翻訳誤りの件 / waken
UWSCダイアログ右端の設定ボタンから、「設定(X)...」を選択して表示される設定ダイアログですが、日本語環境だと「記録」と表示されているのですが、英語環境でUWSCの設定ダイアログを表示すると「再生」と同じ「Play」と表示されています。「Record」の誤りでしょうか?
No.2819 2016/08/29(Mon) 18:45:29

Re: 英語環境での設定ダイアログの翻訳誤りの件 / umiumi
修正します。
No.2821 2016/08/30(Tue) 01:32:17
CREATEOLEOBJ("MSEdge.Application")が動かない / 犬
サンプルに載っている、コードを実行すると、
「COM_Error:クラスの文字列が無効です。ProgID:"MSEdge.Application"」
と表示されます。

http://uwsc.info/sample.html#N38
edge = CREATEOLEOBJ("MSEdge.Application")
edge.Navigate("http://www.google.co.jp/")

環境はWindows 10 HomeでEdgeは最初からインストールされています。
Edgeも問題無く動作する環境なのですが、何がいけないのでしょうか?

関係ないかもしれませんが、
DOSCMD("start shell:AppsFolder\Microsoft.MicrosoftEdge_XXXXXX!MicrosoftEdge")
は問題なく動作します。

No.2791 2016/08/20(Sat) 23:55:59

Re: CREATEOLEOBJ("MSEdge.Application")が動かない / routa
uwscのバージョンが古いからでしょう。
No.2792 2016/08/21(Sun) 20:29:36

Re: CREATEOLEOBJ("MSEdge.Application")が動かない / 犬
使っていたバージョンが4.9cでした・・・
無事に解決しました。ありがとうございました。

No.2793 2016/08/21(Sun) 22:13:03

Re: CREATEOLEOBJ("MSEdge.Application")が動かない / 犬
バージョン5.2.2にして実行しました。一度だけ成功したのですが、その後はcom_errorと表示されるだけで実行できません。再起動しても何をしても実行できませんが、何が原因と考えられるでしょうか?
No.2794 2016/08/23(Tue) 01:20:47

Re: CREATEOLEOBJ("MSEdge.Application")が動かない / satocha
私の環境でもうまくいきません
edgeは起動するもののcom操作がエラーになります
OS:windows10 pro 64ビットビルド番号14393
Edge:Microsoft Edge 38.14393.0.0
UWSCは最新です

No.2810 2016/08/26(Fri) 07:41:44

Re: CREATEOLEOBJ("MSEdge.Application")が動かない / umiumi
修正します。
No.2820 2016/08/30(Tue) 01:31:43
コマンドラインを調べる方法 / シスイ
メモ帳のコマンドラインで下記コードを試しています。
過去ログを見ていると、ChkCtlID.zipというツールでコマンドライン(WM_COMMAND, 2)を調べると記載があります。
UWSCに付属されていると記載されていますが見つかりません。どこにあるのでしょうか?


DEF_DLL PostMessageA(Hwnd,Long,Long,Dword):Bool:user32.DLL
WM_COMMAND = $111
id = GETID("メモ帳")
PostMessageA(IDtoHND(id), WM_COMMAND, 2)

No.2817 2016/08/29(Mon) 10:30:10

Re: コマンドラインを調べる方法 / シスイ
自己解決しました。
No.2818 2016/08/29(Mon) 11:03:16
DROPFILEについて / タカハシ
デスクトップにあるAutoHotkeyのアプリにiniファイルをドラッグアンドドロップしたいのですが、下記のコードの2つのパターンで試しましたがまったく反応がありません。どごが間違っているのでしょうか?(450,356はAutoHotkeyがある座標です)

[1つ目コード]
ID = GETID("AutoHotkey.ahk","#32770")
DROPFILE(ID,450,356,"C:/Users/aruke/Desktop/記事用.ini")


[2つ目コード]
ID = GETID("AutoHotkey.ahk","#32770")
DROPFILE(ID,C:/Users/aruke/Desktop/,"C:/Users/aruke/Desktop/記事用.ini")

No.2796 2016/08/24(Wed) 08:47:41

Re: DROPFILEについて / stuncloud
ヘルプより
> DROPFILE( ID, ディレクトリ, ファイル名, [ファイル名, ファイル名, ...] )
> ディレクトリ: ファイルのあるディレクトリ
> ファイル名: ドロップするファイル名 (配列変数で渡す事も可)

なので、
DROPFILE(ID, "C:/Users/aruke/Desktop", "記事用.ini")

座標指定に関しては多分対象ウィンドウのクライアント座標になるんじゃないかと思います
> 450,356はAutoHotkeyがある座標です
もし[450,356]がスクリーン座標(statusのST_X、ST_Y)でしたらウィンドウサイズによっては失敗するかもしれません
(対象ウィンドウのクライアント領域の左上を0,0とするので、[450,356]指定で対象のクライアント領域をはみ出しているとNG)
> x, y: 第2引数と第3引数が数値であれば ドロップ位置 X, Yと判断します (省略型は中央)
とのことなので通常は省略していても問題ないと思われます

それ以外ですと
・対象ウィンドウがそもそもドロップを受け付けていないと成功しない
・対象ウィンドウの実行ユーザーがUWSCの実行ユーザーと別だと成功しない
 (例:対象を「管理者として実行」してUWSCを通常実行した場合)
といったことも考えられます

No.2797 2016/08/24(Wed) 10:06:31

Re: DROPFILEについて / しき
デスクトップにドロップするのなら、
第一引数はデスクトップウインドウのIDを指定

デスクトップの左上にメモ帳のショートカットをおいで実行すると
"Readme.txt"がメモ帳で開かれました。
win7, uwsc5210

id = getid("Program Manager", "Progman")
dropfile(id, 30, 30, get_uwsc_dir, "Readme.txt")

No.2802 2016/08/24(Wed) 13:34:57

Re: DROPFILEについて / タカハシ
stuncloud様、クライアント領域の座標でやるとなるとmouseorg関数でやってみましたが、うまくいきませんでした。色々ヒントを頂きありがとうございます。
No.2803 2016/08/24(Wed) 20:00:07

Re: DROPFILEについて / タカハシ
しき様、第一引数はデスクトップウインドウのIDを指定、これがポイントでした、ありがとうございます。
下記のコードでうまくいきました。

id = getid("Program Manager", "Progman")
dropfile(id, 837, 296, GET_CUR_DIR, "記事用.ini")

No.2804 2016/08/24(Wed) 20:03:05

Re: DROPFILEについて / タカハシ
uwscの.uwsファイルを起動する場合にファイルを選択して、ドラッグ&ドロップでuwscのウィンドウに運んでいます。これをDROPFILEで使用して.uwsファイルを選択してスクリプトを起動したらuwscのウィンドウに運ぶ事って可能ですよね、どちらが作業の効率化になるかな?
No.2814 2016/08/27(Sat) 21:13:36

Re: DROPFILEについて / しろまさ
関連付けされたらいかがですか?

@ xxx.uws をダブルクリック
A インストールされた・・・から選択 にチェックを入れてOK
B 右下の参照ボタンからuwsc.exeを探して選択
C この種類のファイルを・・・いつも使う にチェックを入れOK

次から xxx.uws をダブルクリックするだけで実行できます。

No.2815 2016/08/29(Mon) 09:17:11

Re: DROPFILEについて / タカハシ
しろまさ様、UWSCを半年間ずっと使ってきて、関連付け知らなかったです。ずっとウィンドウのドラッグアンドドロップしてました。ありがとうございます、また一つ勉強になりました。
No.2816 2016/08/29(Mon) 10:21:11
指定ディレクトリにファイルを作成する方法 / タカハシ
URLをコピーした状態で下記のスクリプトを起動して、指定ディレクトリにファイルを作成したいのですが、指定ディレクトリに作成できずエラーになります。
FNAME = test2 + test3 + taitoru + test4の書き方が間違っているような気がするのですが色々なパターンを試してもできません。
何が間違っているのでしょうか?

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
tes = GETSTR(0)

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

taitoru = IE.document.title

test2 = ""
test3 = "C:/Users/aruke/Dropbox/txtファイル一覧/"
test4 = "/.txt"


FNAME = test2 + test3 + taitoru + test4
DOSCMD("echo %DATE% %TIME% > " + FNAME)
//ファイルをオープン
ID = FOPEN(FNAME,F_READ or F_WRITE)

FPUT(ID,"aaaaaaaaaaa")


//最後にファイルクローズ
FCLOSE(ID)

No.2800 2016/08/24(Wed) 11:15:50

Re: 指定ディレクトリにファイルを作成する方法 / Nagatani
ファイル名に":/\"は使えませんよ!
No.2801 2016/08/24(Wed) 12:23:33

Re: 指定ディレクトリにファイルを作成する方法 / タカハシ
Nagatani様、返信ありがとうございます。
ファイル名に":/\"は使えないという事ですが、test3 = "C:/Users/aruke/Dropbox/txtファイル一覧/"
これが間違っているという事でしょうか?

No.2805 2016/08/24(Wed) 20:05:28

Re: 指定ディレクトリにファイルを作成する方法 / タカハシ
指定のディレクトリに、taitoru = IE.document.titleで取得したサイトのページのタイトルでファイルを、上書きではなくその都度新しく新ファイルとして作成する方法を探しています。何か良い方法ないでしょうか?
下記のような形です。

サイト名ページ.txt

No.2806 2016/08/24(Wed) 20:13:22

Re: 指定ディレクトリにファイルを作成する方法 / Nagatani
説明不足でしたね!
あくまでもファイル名です。ホルダー名ではありません。

test4 = "/.txt" を
test4 = ".txt" にされてはいかがですか?

No.2807 2016/08/24(Wed) 21:37:28

Re: 指定ディレクトリにファイルを作成する方法 / satocha
現在はページのタイトルを名前として持つフォルダの下に".txt"という一律の名前のファイルを作るプログラムになっていますよ。
これだと、ページのタイトルと同名のフォルダがtest3以下にない限り、エラーになります。Webページにタイトルがない場合は'/'が並んでしまうので、そこもエラーになります。

fnameが実際、どうなっているか見れば、分かると思います。

FNAME = test2 + test3 + taitoru + test4
print FNAME
sleep(3)
DOSCMD("echo %DATE% %TIME% > " + FNAME)

やりたかったこととは違う出力が得られるはずです。

そこで、

タイトルがない場合、「無題」+現在時.txtというファイル名にする
タイトルに空白があれば_に変換しておく

の2点を考え

if taitoru = ""
 gettime()
 taitoru="無題"+g_time_yy4+g_time_mm2+g_time_dd2+g_time_hh2+g_time_nn2+g_time_ss2
else
 taitoru=replace( taitoru, " ", "_" )
endif
FNAME=test2+test3+taitoru+".txt" //test4の"/.txt"は使わない

とすればどうでしょうか。

No.2808 2016/08/25(Thu) 14:39:36

Re: 指定ディレクトリにファイルを作成する方法 / タカハシ
Nagatani様、.txtでできました、ありがとうございました。一つ問題が起こりました。読み込むサイトによってファイル作成できるサイトとできないサイトが出てきました。

下記のサイトがファイル作成できないサイトです。
http://wise-alliance.co.jp/

下記のサイトがファイル作成できるサイトです。
http://www.vrp-p.jp/

No.2809 2016/08/25(Thu) 22:02:45

Re: 指定ディレクトリにファイルを作成する方法 / タカハシ
satocha様、下記のサイトのURLを指定して上記スクリプト(if taitoru = ""から始まる教えて頂いたコードに修正しました)を起動した所、このようなエラー表示が出ました。

[サイト]
http://wise-alliance.co.jp/

[エラー]
C:/Users/aruke/Dropbox/txtファイル一覧/株式会社ワイズアライアンス_|_公認会計士・税理士・経理・CFOの人材紹介・転職エージェント.txt:Can't be written in 中断しますか?と表示、はいといいえの選択肢が表示でいいえやはいを押しても指定のディレクトリにファイル作成できませんでした。

No.2811 2016/08/26(Fri) 08:58:13

Re: 指定ディレクトリにファイルを作成する方法 / miles
「ファイル作成できないサイト」のタイトルには、「|」(ファイル名に使えない)が入っています。
「ファイル名」等で検索してみてください。

No.2812 2016/08/26(Fri) 09:01:17

Re: 指定ディレクトリにファイルを作成する方法 / タカハシ
miles様、ありがとうございます。ずっと悩んでいてうまくいかなかったのが無事解決しました。
本当にありがとうございました。

No.2813 2016/08/26(Fri) 09:50:29
バックグランド操作について / にゃんこ
MOUSEORG関数を使用し、バックグラントにてキー操作をを行いたいんですが、shiftを押しながらとかctrlを押しながらといった操作が出来ません。以前の古いバージョンでもあったようですが改善されてるようですね。shiftやctrlを使わないキーボード操作は問題無く行えています。、
No.2783 2016/08/19(Fri) 10:51:08

Re: バックグランド操作について / にゃんこ
sckey関数を使えばバックグラウンドのソフトに対してはキー操作出来ますがアクティブになってしまいます。KBD関数でshift+○○とかctrl+○○などバックグラウンドのソフトに対してはキー送信する方法は無いのでしょうか?
No.2795 2016/08/23(Tue) 14:57:44

Re: バックグランド操作について / stuncloud
id1 = exec("notepad", FALSE, 0, 0)
id2 = exec("notepad", FALSE, 200, 200)

def_dll SetWindowTextA(hwnd, string):bool:User32.dll
SetWindowTextA(idtohnd(id1), "バックグラウンド")
SetWindowTextA(idtohnd(id2), "フォアグラウンド")
ctrlwin(id2, ACTIVATE)

mouseorg(getctlhnd(id1, "Edit"), MORG_DIRECT, MORG_BACK)

kbd(VK_SHIFT, DOWN, 100)
kbd(VK_A, CLICK)
kbd(VK_B, CLICK)
kbd(VK_C, CLICK)
kbd(VK_SHIFT, UP)

mouseorg(0)

No.2798 2016/08/24(Wed) 10:24:42
テキストファイルの空文字をすべて削除したい / nnn
下記のスクリプトを下記の内容のテキストファイルに対して実行すると、なぜか空文字が1つずつしか消えません。
1度にすべての空文字を削除するにはどうすればよいでしょうか。

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



txt = FOPEN( "aaa.txt", F_READ or F_WRITE )
line_end = FGET( txt, -1 )

for fc = 1 to line_end
ifb FGET( txt, fc )="" OR FGET( txt, fc )=FALSE OR FGET( txt, fc )=NULL OR _
FGET( txt, fc )=EMPTY OR FGET( txt, fc )=NOTHING
FDELLINE( txt, fc )
endif
next

FCLOSE( txt )



---テキストここから---
aa
dfds



fds
---テキストここまで---

↑この内容が↓このように空文字が1つ分しか削除されません。

---テキストここから---
aa
dfds


fds
---テキストここまで---

No.2787 2016/08/20(Sat) 20:46:14

Re: テキストファイルの空文字をすべて削除したい / nnn
txt = FOPEN( "aaa.txt", F_READ or F_WRITE )
line_end = FGET( txt, -1 )

for fc = 1 to line_end
ifb FGET( txt, fc )=""
FDELLINE( txt, fc )
endif
next

FCLOSE( txt )


こちらでも結果は同じでした。

No.2788 2016/08/20(Sat) 20:53:12

Re: テキストファイルの空文字をすべて削除したい / リキュール
通常は最後の行から実行します。
for fc = 1 to line_end → for fc = line_end to 1 step -1

No.2789 2016/08/20(Sat) 21:47:06

Re: テキストファイルの空文字をすべて削除したい / nnn
リキュール様

ご回答ありがとうございます。

空文字をすべて削除できました。
最後の行から消していかないと、ずれてしまうということだったのですね。

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

No.2790 2016/08/20(Sat) 22:04:55
全796件 [ ページ : << 1 ... 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 80 >> ]