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

MORG_BACK指定でバックグラウンドで動かしてるアプリのPeekcolorが機能しない / ほり
Windows7 64bitからWindows10 64bitに移行してから今まで動いてたマクロが動かなくなりました。
調べてみたらMOUSEORG関数を使ってバックグラウンド(最小化ではなく裏に置いてるだけ)で動かしているアプリにキー情報やらPeekcolorで色を取ってきてた部分が動かないみたいでキーは送れるのですが、色をとってきたり、ChkImg関数も
バックグラウンドだと一切機能してないみたいです。
Windows10だとこういう症状があったりするのかご存知の方いませんか?

winID = GETID(GET_FROMPOINT_WIN)
MOUSEORG(winID, 2, MORG_BACK)

While True
x = G_MOUSE_X; y = G_MOUSE_Y
c = PeekColor(x, y)

Fukidasi("x = " + x + ":y = " + y + " winID=" + winID + " peekcolor = " + c , 10 , 10 , 0)
sleep(0.5)
wend

No.4947 2018/01/08(Mon) 15:29:44
既存csvファイルを指定したprocedureで指定した処理で開く方法 / せきしんご
既存csvファイルを開いた際にprocedureで指定した処理で開きたいのですが、procedureの中にpublic EXCELを入力している場合であればうまく処理ができます。
これを他の方法でできないでしょうか?(publicを使用方法とかあればいいのですが。)

後、エクセルファイルの管理ですがxlsxであれば装飾を保存できますがfopen等が使えないので、できるだけcsvでエクセルファイルを管理した方が良いと私が考えているのですが、皆様はエクセルファイルをcsv or xlsxどちらで管理が良いと思いますか?

下記のソースであればうまくいきます。

hensu="C:\Desktop\data.csv"
// hensu="C:\Users\aruke\Desktop\検証\Book1.xlsx"

// public EXCEL
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :=hensu)
aaa()

procedure aaa()
public EXCEL
Excel.RANGE("d1").value = "テスト"
Excel.Range("c1").ColumnWidth = 64 // 列の幅
fend
---------------------
//下記はエラーになる(xlopen等を使用する必要有り)
a="C:\Users\aruke\Desktop\Book1.xlsx"
// a="C:\Users\aruke\Desktop\Book1.csv"

fid=fopen(a, f_read or F_write)
fput(fid, "テスト")
fclose(fid)
---------------------

No.4928 2017/12/30(Sat) 17:52:25

Re: 既存csvファイルを指定したprocedureで指定した処理で開く方法 / せきしんご
csvファイルはそもそも1つシートしか管理できないことを、いまさら発見しました。
失礼しました。

No.4935 2018/01/03(Wed) 13:13:43

Re: 既存csvファイルを指定したprocedureで指定した処理で開く方法 / しろまさ
csvはエクセルファイルではなくテキストファイル。だからfopenで扱える。
No.4945 2018/01/08(Mon) 12:16:37
ファイル内の文字列検索 / 蛇
あるフォルダ内にある複数のファイルの中から、
本文に http://* の文字列があるファイルのみを
ピックアップ(例えば、同階層のフォルダに移動)したいと考えています。
文字列検索に関して知識がないため、何かヒントになるようなアドバイスを頂けませんでしょうか?

No.4940 2018/01/04(Thu) 22:49:30

Re: ファイル内の文字列検索 / しゅん
DOSCMDのfindstrを使うと特定文字列を含むファイル名一覧を取得できます。
No.4942 2018/01/06(Sat) 15:59:00

Re: ファイル内の文字列検索 / 蛇
有難うございます。
No.4944 2018/01/06(Sat) 16:35:46
ぼん / WHILE  CHKIMG
画像が出るまで繰り返すのは

WHILE (CHKIMG("画像.bmp")=FALSE)
〜〜
WEND

ですが、画像が出なくなるまで、すなわち出てる間、繰り返すのは

WHILE (CHKIMG("画像.bmp"))
〜〜
WEND

ではダメなんでしょうか?

No.4930 2017/12/31(Sun) 14:45:10

Re: ぼん / uwsc
何を実施したいか次第の気がします。

私の経験上chkimg関数は画像があっても確実に認識できるとは限らないため、
画像があった時に認識できないというリスクの取り方で、提示のどちらを使うかか決められるといいのではないでしょうか。

No.4934 2018/01/02(Tue) 17:23:45

Re: ぼん / ぼん
画面がない状態から出る状態までの間は

WHILE (CHKIMG("画像.bmp")=FALSE)

ですよね?
それに対して画面が出てる状態からなくなる状態までの間だとどうなるのか、
それが知りたかったのですが、そういうのはないのかな、
と思って書き込みました。
ちなみに、画像認識の精度はそこそこいいです。

No.4936 2018/01/03(Wed) 15:13:36

Re: ぼん / uwsc
その認識でよろしいのではないでしょうか。


WHILE (CHKIMG("画像.bmp")=FALSE)
//画像が無い間(認識できない場合も含)、実行される処理
WEND
//画像が出現した場合、または、画像がある場合に実行される処理



WHILE (CHKIMG("画像.bmp"))
//画像がある間、実行される処理
WEND
//画像が無くなった場合、または、画像が無い(認識できない場合も含)場合、に実行される処理

No.4939 2018/01/04(Thu) 22:44:16
指定ディレクトリにあるフォルダー名を取得方法 / 荒鷲
指定ディレクトリにあるフォルダー名を取得方法を探しています。getdirは指定ディレクトリにあるファイル名を取得するので使えませんので、他に方法ないでしょうか?
No.4937 2018/01/04(Thu) 14:54:09

Re: 指定ディレクトリにあるフォルダー名を取得方法 / satocha
ヘルプに「"\" を指定するとディレクトリ名の取得」とあります。
以下引用
// ファイル名の取得
戻値 = GETDIR( ディレクトリ, [ファイル指定, 不可視ファイルフラグ, 取得順番] )
引数
 ディレクトリ: ファイル名の取得のディレクトリ
 ファイル指定: ワイルドカード(*, ?) によるファイル名指定
         "\" を指定するとディレクトリ名の取得
 不可視ファイルフラグ: TRUE:不可視ファイルも含める、 FALSE:含めない(デフォルト)
 取得順番: ファイル並び 0:ファイル名(デフォルト)、1:サイズ、2:作成日、3:更新日、4:アクセス日
戻値
 取得した数を返す (For In 構文にて指定された場合は各要素を返す)
 取得した情報は配列変数の GETDIR_FILES[ ] に格納される (配列はゼロから)

No.4938 2018/01/04(Thu) 16:23:41
調子よいです / プフ
ウィンドウズを移動させても、元の位置に戻してクリックしてくれるとは思っていもみませんでした。素晴らしいソフトをフリーでご提供頂き、ありがとうございます。
No.4933 2018/01/02(Tue) 09:30:56
左クリックするまでシフトキー押しっぱなし / にゃんこ
あけましておめでとうございます。
本年もよろしくお願いいたします。

マウスのカーソルがある位置から、左クリックが押されるまでシフトキーを押しっぱなしにして範囲の設定をしたいと思うのですが、うまく動作できません。

REPEAT
KBD(VK_SHIFT,DOWN,40)
UNTIL GETKEYSTATE(VK_LRBUTTON)

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

No.4931 2018/01/01(Mon) 08:29:04

Re: 左クリックするまでシフトキー押しっぱなし / にゃんこ
投稿するときに文字色を押してしまいました
No.4932 2018/01/01(Mon) 08:31:26
UWSCは動作を停止しました / pon
はじめまして。
フリー5.3.0.2を使用しています。
表題の通りUWSCで画像認識処理を1晩実行していると高頻度で発生します。
win7 64bit環境
uwsには下記のような処理を記載しておりそれぞれほぼ同様の記載で差異としては確認画像が異なる程度です
もし、UWSCを長時間実行しているのが問題。というのであれば、一定時間経過したらUWSCを終了させ、再起動させる処理のサンプルいただけますとありがたいです。

//画像選択A
IFB CHKIMG("Move.BMP",,,,,,IMG_MSK_BGR1)
BTN(LEFT,CLICK,576,609,300)
FUKIDASI("行動終了認識",750,500)
ELSE
FUKIDASI("Move.BMP認識に失敗しました。",750,500)
ENDIF

//画像選択B
 A同様の画像処理
...
//画像選択F
 A同様の画像処理

While True
  Call xx.uws
Wend

No.4887 2017/12/24(Sun) 07:35:51

Re: UWSCは動作を停止しました / まっさーや
自分もはじめまして。

長時間起動しぱなしにするとエラー出ることはありますね。

例えば、1時間毎に
・操作ウィンドウを閉じる
・UWSCを再起動させる
と↓の感じになるのかな。。(全角スペースを使ってるので、使うときは削ってください)


//定期確認用変数
Public Check_Point_Timer = gettime()

//無限ループ/////////////////////////////////////////
while true

    //今やってる処理を書く↓/////////

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

    //定期的に確認
    checkPoint

wend
/////////////////////////////////////////////////////


Procedure checkPoint
ifb gettime() > Check_Point_Timer then

//Alt+F4を送り、ウィンドウを閉じる
SCKEY(ID,VK_ALT, VK_F4)

//UWSCの再起動
POFF(P_UWSC_REEXEC, True)

//次回60分後にチェックタイマー設定
Check_Point_Timer=gettime()+ 60 * 60
endif

FEND

No.4888 2017/12/24(Sun) 22:48:11

Re: UWSCは動作を停止しました / 森
無限ループは、sleep()を入れないとCPU使用率が100%になってPCがフリーズします。
While True
  Call xx.uws
  sleep(0.1) //----- これが必要
Wend

No.4890 2017/12/25(Mon) 11:11:08

Re: UWSCは動作を停止しました / pon
すみません。遅くなりました。
頂いたサンプルを動作させてみたのですが、SCKEY(ID,VK_ALT, VK_F4)でIDの指定がないと表示されるため、1行上に
ID =EXEC("UWSC")を記載してみたのですが、-1が帰ってきてしまうようでUWSCそのものを閉じることができませんでした。
また、SCKEY(GETID(xx),VK_ALT, VK_F4)と記載した場合は開きっぱなしのxx.uwsを閉じてしまい、その後はやはり-1を返してきます。
追加の質問になってしまいますが、UWSC.exeそのものを終了させることは可能でしょうか?

No.4929 2017/12/31(Sun) 04:46:48
かん / かん
FUKIDASIを複数出したり、
行ごとにフォントサイズを変更することは可能でしょうか?

No.4903 2017/12/26(Tue) 17:09:50

Re: かん / satocha
fukidasiは1スレッドに1つしか表示できなかった気がします。
私の場合は、複数必要なときは別UWSをexecで起動しています。
1本のスクリプトで実現したいなら、threadで別プロシジャを呼べばいいと思います。

一つ注意点。fukidasiの表示初期値はスクリーンの左上なので、複数出すと表示がかぶってしまいます。スレッド(スクリプト)ごとに別の場所に表示するといいでしょう。

No.4904 2017/12/26(Tue) 19:59:57

Re: かん / stuncloud
public flg = FALSE
thread fukidasi2("ひとつめ")
thread fukidasi2("ふたつめ", 0, 50)
thread fukidasi2("みっつめ", 0, 100)

msgbox("複数表示サンプル")
flg = TRUE

procedure fukidasi2(msg, x = 0, y = 0)
 fukidasi(msg, x, y)
 repeat
  sleep(0.1)
 until flg
fend

スレッドが終わるとふきだしも消えちゃうので関数内で待機ループが入っています
フラグが立ったら消えるようにします
個別のフラグ管理となるとちょっと実装が面倒になりますが不可能ではないです

> 行ごとにフォントサイズを変更することは可能でしょうか?
こっちはムリです
(ものすごく頑張るとできるかもしれないけど、それが労力に見合う成果なのかは疑問です)

No.4912 2017/12/28(Thu) 10:22:59

Re: かん / しゅん
> 行ごとにフォントサイズを変更することは可能でしょうか?

ものすごく頑張ればできます。
が、本当にがんばらないとできないので、別の方法を考えた方が良いです。

どうしてもがんばりたいなら以下がヒントです。
・一文字づつ色を変えられないか、以前検討した
http://d.hatena.ne.jp/junjun777/20120616/uwsc_color_fukidasi_no_dll
・これと同様に、自力でフォントサイズを変更しながら書けば可能
・ただし、Fukidasi自体のサイズをどうするかが面倒

No.4913 2017/12/28(Thu) 14:07:17

Re: かん / しろまさ
// スタンさんベースで誤魔化しました^^

public flg = FALSE
thread fukidasi2("ひとつめ")
thread fukidasi2("ふたつめ", 0, 13, 12)
thread fukidasi2("みっつめ", 0, 30)
thread fukidasiBG(0, 0, 5, 3)

Sleep(3)
flg = TRUE

procedure fukidasi2(msg, x = 0, y = 0, fs = 9)
 Fukidasi(msg, x, y, 0, fs, "", 0, 0, -2)
 repeat
  sleep(0.1)
 until flg
fend
procedure fukidasiBG(x, y, W, L)
 BG = Format(" ", W)
 For i = 2 To L
  BG = BG + "<#CR>"
 Next
 fukidasi(BG, x, y)
 repeat
  sleep(0.1)
 until flg
fend

No.4914 2017/12/28(Thu) 14:43:10

Re: かん / 森
// FUKIDASIではありませんが、こんなのはどうですか?
// HTMLベースなので、文字色、サイズ、背景色、行数、なんでも自由自在です。
// 複数表示だって、画像の表示だって可能です!

id1 = message(text1,10,0,200,80) // メッセージ1を表示
Sleep(0.5)
id2 = message(text2,10,100,250,200) // メッセージ2を表示
Sleep(0.5)
id3 = message(text3,300,50,300,120) // メッセージ3(画像)を表示
Sleep(3)
ctrlwin(id1, CLOSE) // 閉じる
ctrlwin(id2, CLOSE)
ctrlwin(id3, CLOSE)

// 吹き出しもどきを表示する
function message(str,x,y,w,h)
  // 表示用ファイルの生成
  hta_path = GET_CUR_DIR + "\hta_message.hta"
  f = fopen(hta_path, F_WRITE)
  fput(f, replace(hta_base,"{?hta_body}",str), F_ALLTEXT)
  fclose(f)
  // 表示してIDを返す
  result = exec("mshta.exe <#DBL>" + hta_path + "<#DBL>",false,x,y,w,h)
  // 表示用ファイルを削除
  deletefile(hta_path)
fend

// メッセージ1
textblock text1
<span class="big">本日は</span><span class="blue small">晴天なり</span>
endtextblock

// メッセージ2
textblock text2
<span class="orange">犬も歩けば</span><span class="big red">棒</span>に当たる<br />
<span class="pink small">いろはに</span><span class="green">ほへと</span><br />
<span class="small">自</span><span class="blue">由自</span><span class="orange small">在</span>
endtextblock

// メッセージ3
textblock text3
<img src="https://www.google.co.jp/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png">;
endtextblock

// 吹き出しもどきの骨格
textblock hta_base
<html>
<head>
<hta:application caption="no" border="none" innerborder="no" scroll="no" showintaskbar="no">
<style>
.blue{color:blue;}
.red{color:red;}
.green{color:green;}
.orange{color:orange;}
.pink{color:pink;}
.big{font-size:2em;}
.small{font-size:0.7em;}
</style>
</head>
<body>{?hta_body}</body>
</html>
endtextblock

No.4917 2017/12/29(Fri) 12:15:24

Re: かん / しろまさ
お、面白そう!と実行してみましたが日本語が□に化けますね。
森さん、何か設定が必要ですか?

No.4920 2017/12/29(Fri) 14:14:47

Re: かん / 森
しろまささん
UTF-8の時は、<head></head>に以下を入れてください。
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

さらに、表示用ファイルの生成も明示的にUTF-8指定しておく方と確実ですね。
f = fopen(hta_path, F_WRITE8)

No.4921 2017/12/29(Fri) 14:22:16

Re: かん / しろまさ
f = fopen(hta_path, F_WRITE8)
こっちで直りました。

スクリプトファイルはSJISにしてるのに変ですね。
Webページコピペするとなるのかな。

No.4923 2017/12/29(Fri) 17:50:34

Re: かん / 森
何年か前に、まだフォームが1つしか作ることができなかった時代ですが、
もう一つフォームを出したくて調べてた時に、HTAのことを知ったんです。
廃れて忘れ去られている技術のようですが、HTML+javascriptだけじゃなくて、
なんとVBAまで直接書き込んで動くというステキな仕組み!!
当然、AjaxとかjQueryとかも動くはずなので、今こそ時代が追い付いた?みたいに思えます。

本当は、DOMで直接UWSCから内容を書き換えたりしたいのですが、
COMオブジェクトが分らなくて、調べたけど全然情報が無くて断念(´;ω;`)ウゥゥ

ローカルファイルの読み書きもできるみたいなので、
とりあえずはファイル経由でデータのやり取りはできそうですが・・・

No.4924 2017/12/29(Fri) 18:38:37

Re: かん / satocha
森様
>jQueryとかも動くはず
jQueryのdatepickerを使い、UWSCで日付入力してみました。
一時HTAファイルを起動直後に消すのはまずいときもあるので、明示的に消去するほか、HTAを閉じたときも、UWSCを強制終了したときも、消えるようにしています。
fukidasiとは無関係で申し訳ないですが、見てやってください。
https://plaza.rakuten.co.jp/satocchia/diary/201712300000/

No.4927 2017/12/30(Sat) 12:25:39
特定の画像が出るまで処理を繰り返したい / azu
お世話になっています
初心者な質問で申し訳ないのですがどういう処理をしたらいいのかわからず
詰まってしまったでよろしければお答えいただけると嬉しいです

具体的には
ABCD。。。数種類の画像認識を行いクリック
Aの場合のみ最優先でそれ以外は優先度なし
(優先度を付けない方法がわからないので)
elseifで適当にBCDと優先順位をつけています(それでも問題なく動作しました)
その後画像EorFが出るまでクリックし
画像Fの場合はまたEが出るまでクリック
画像Eが出たらクリック
A以外から来た場合はABCDの認識に戻る
Aから来た場合はループを終了する

こういった場合はどういった処理をすればいいでしょうか?
よろしくお願い致します

No.4885 2017/12/23(Sat) 05:14:36

Re: 特定の画像が出るまで処理を繰り返したい / 森
回答付きませんね。
「具体的には」と書かれていますが、プログラムを書けるレベルの情報が足りないのです。
特に最初の方が全く分からないです(´;ω;`)ウゥゥ
途中や最後もあいまいな部分が多いです。
答えてあげたいのですが、想像で書くと後出し条件で書き直しばかりになりそうで・・・
もっと具体的に処理内容を書いてみてください。
それと、azuさんが書いているスクリプトを提示して「ここが分らない」みたいに書くと伝わりやすいです。

No.4902 2017/12/26(Tue) 16:52:35

Re: 特定の画像が出るまで処理を繰り返したい / azu
返信ありがとうございます
スクリプトで書いている物を出してご質問できれば一番なのですが
まったく思ったように動作しないので逆に混乱させてしまいそうなんです。。。

後から見てみると自分でもわかりにくいと思ったので
やりたい事を最初から書き直し、わからないとこを書いてみます

・やりたい事

1.ABCDの4つの画像がランダムで1〜3個出現し1つだけ選択しクリックします
Aが出た場合のみ優先してクリック。他の物は特に優先順位はありません
どれをクリックしても2へ

2.
上記の画像を1つクリックすると
画像Eが出る場合があり出た場合はクリック
その後画像Fがあるかを確認しなければ1へ戻る
あれば画像Fをクリックし3へ
画像Eが出ない場合は画像Fが出るので同じくクリックし3へ

3.
クリック等ある程度処理をして終了になるのですが
ここで1のABCDの内Aからここに来た場合は終了
A以外から来た場合は1に戻るとしたいのです


・わからない
特に1へ戻るという処理をどうすればいいのかわからず
またAからきた場合のみ終了にするのをどうしたらいいかと悩んでいます

自分ではBCDを選んだ場合は1へ戻る(ループ?)する処理をするようにし
Aを選んだ場合上記2,3とほぼ同じの処理ですが
最後だけ終了になっている処理分の場所へとしたらいいのかなと思ったのですが
調べても中々どうしたらいいのかわからず困り果てていました・・・


わかりにくかったら申し訳ありません。。
よろしくお願い致します

No.4909 2017/12/27(Wed) 21:26:57

Re: 特定の画像が出るまで処理を繰り返したい / しろまさ
森さんの優しい指摘で意味が解らないようなので端的に言うと
・ 作成依頼するから誰も答えない。
・ コードが無ければ間違いを指摘しようが無い。
ということ。
混乱してるのは azuさんですよ。混乱の原因を提示して下さい。

No.4910 2017/12/28(Thu) 09:06:08

Re: 特定の画像が出るまで処理を繰り返したい / stuncloud
> ネットゲーム関係の質問はご遠慮ください
っぽい気がするけど大丈夫ですか?大丈夫ですね?

やるとしたらこうです、たぶん完璧に要件を満たしていると思う

Aがクリックされた = FALSE
repeat
 // 1 select-caseによりAを優先的に処理できる
 select TRUE
  case chkimg(A)
   Aをクリック()
   Aがクリックされた = TRUE // Aがクリックされたらフラグを建てる
  case chkimg(B) or chkimg(C) or chkimg(D)
   BかCかDをクリック()
   // 完全に優先度なしというわけにはいかないけどどれかヒットすれば G_IMG_* に値が入る
   // 通常は左から見て最後に見つかったもの、SHORTCIRCUITなら左から見て最初に見つかったものになる
  default
   continue // ABCDいずれもなかったら1に戻る
 selend
 // 2
 if chkimg(E) then
  Eをクリック()
  if chkimg(F) then
   Fをクリック()
  else
   continue // Fがないので1に戻る
  endif
 else
  Fをクリック()
  continue // EがなかったのでFをクリックして1に戻る
 endif
 // 3
 残りの処理()
until Aがクリックされた // Aがクリックされていた場合は抜ける

細かい実装はご自分でお願いします
これでできないようでしたら諦めてください

No.4911 2017/12/28(Thu) 10:06:58

Re: 特定の画像が出るまで処理を繰り返したい / 森
しろまささん、stuncloudさん、フォローありがとうございます。
言った手前、私がスクリプト提示をするつもりでしたが、ホント、完璧に要件を満たしていると思います。
何となく多重ループや分岐の入れ子になりそうだと思っていたのですが、スッキリきれいに組み立てられていて、さすがだなぁ

No.4918 2017/12/29(Fri) 12:30:29

Re: 特定の画像が出るまで処理を繰り返したい / azu
森さん しろまささん
色々ご指摘ありがとうございます
分岐+ループをやろうとするとまったく上手くいかずお手本が欲しく
作成依頼の様な形になってしまいました
申し訳ありません

stuncloudさん
本当にありがとうございました
参考にさせて頂きながら試したところ上手くできたと思います
ネットゲーム関連ではありません
あるアルバイトで上手く手を抜けないかなと思い考えていました

No.4926 2017/12/30(Sat) 10:17:22


 過去ログ(〜2017/08/24)・検索ツール


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