116272
UWSC 仮 掲示板
投稿時に「証明書が不正です」と出る場合には、JavaScriptをオン
動作不具合での質問の場合には環境を表記(OS,バージョン等)
タイトルは内容を表し、内容はネットゲーム関係禁止
自身でコードを書く気の無いナマケモノは特に質問禁止
失敗作でもコードを投稿すること(具体性の無い質問は無視される可能性大)

UWSC掲示板 が復活することを祈り、それまでの繋ぎとして。
環境設定[s7777777]

ネットワーク先のエクセルを誰かが開いていたら警告を出したい。 / アナログ
誰も開いて無ければ、開いて処理が出来るのですが、誰かが開いていると読み取り専用で開いてしまうので、処理途中にエラーとなってしまいます。誰かが既に開いていたら、警告を出して、処理を分岐したいです。
No.1514 2022/08/09(Tue) 14:59:41

Re: ネットワーク先のエクセルを誰かが開いていたら警告を出したい。 / stuncloud
Workbook.ReadOnlyで読み取り専用かどうかがわかるようです
https://docs.microsoft.com/ja-jp/office/vba/api/excel.workbook.readonly

No.1515 2022/08/09(Tue) 15:55:21

Re: ネットワーク先のエクセルを誰かが開いていたら警告を出したい。 / アナログ
ヒントをありがとうございます。エクセル側で、開いたら、ユーザー名,コンピュータ名を記載したテキストファイルを生成するマクロを作って、エクセルを閉じるときには、そのテキストファイルを削除するマクロにしました。uwsc側は、テキストファイルがあるか?判断して、ある場合は警告し、ない場合は普通に動作させるように出来ました。ありがとうございました。
No.1516 2022/08/10(Wed) 17:27:03
バッテリー残量の取得 / けいち
ウインドウズタブレットにて使用しています。
残りバッテリーと残り時間の取得を素早く行いたいです。

現在タスクバーにバッテリーアイコンがあるので
以下の様に文字列を取得しています。

IDB=GetID("","Shell_TrayWnd",0.1) //タスクバー
s = GETITEM(IDB,ITM_ACCCLK or ITM_BACK)-1

for i = 0 to s
残量 = ALL_ITEM_LIST[i]
if 0 < pos("残り",残量) then
RESULT = 残量
exit
endif
next

問題は取得に5〜秒くらい時間がかかってしまいます。

web検索でノートPCのバッテリ算容量を取得する物も探しました

'---------------------------------------------------
' ノートPCのバッテリ算容量を取得する
' usage: cscript /Nologo バッテリ容量.vbs
'---------------------------------------------------
Set rows = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_Battery",,48)

For Each row in rows
Wscript.Echo "バッテリ容量: " & row.EstimatedChargeRemaining & "%"
Wscript.Echo "残り使用時間: " & row.EstimatedRunTime & "分"
Next

バッチファイルでこちら手動でクリックすればすぐに取得できますが
UWSCで実行させるとDLLが見つからないと言われ取得できませんでした。

UWSC自身で取得する何か良い方法は無いでしょうか?
宜しくお願い致します。

No.1511 2022/08/05(Fri) 10:45:53

Re: バッテリー残量の取得 / stuncloud
vbsのコードをUWSC用に書き換えました
vbsのGetObjectに相当する関数がないためcreateoleobjを使います

locator = createoleobj("WbemScripting.SWbemLocator")
server = locator.ConnectServer()
rows = server.ExecQuery("Select * from Win32_Battery")

for row in rows
 print "バッテリ容量: " + row.EstimatedChargeRemaining + "%"
 print "残り使用時間: " + row.EstimatedRunTime + "分"
next

手元のSurface Pro 4でこれらの情報が表示されることを確認しました

No.1512 2022/08/05(Fri) 14:29:13

Re: バッテリー残量の取得 / けいち
stuncloud様

お返事遅れまして申し訳ありません
希望通りバッテリーの残量を取得できました。
ありがとうございました。

No.1513 2022/08/08(Mon) 13:46:06
空白だけをFGETで取り込めない / SEN
いつもお世話になっております。
全角と半角の空白の固定長とCSVの混ざった様な雛形に、
受注データを差し込んで転記したいのですが、空白だけはFGETで取り込めません。
このアイデアは駄目でしょうか?
駄目なら全部「♯」とかの雛形に変更するとか、
或いは雛形を止めてすべての項目をそれぞれ作成して足すとかも考えたりします。

ご教授頂けませんでしょうか?


//受注データを取り込む//発注書.csv
//発注??,機種,数
//123,A123,2

dim excel = XLOPEN("発注書.csv")
dim データ = XLGETDATA(Excel,"A1:AS2")
XLCLOSE(Excel)

//書き込む基本をコピーする//全角と半角のスペース
//          , , ,//ご本尊.TXT

fid = fopen("ご本尊.TXT")
 dim ベース=fget(fid,F_ALLTEXT)
fclose(fid)

//書き込む基本を貼り付ける
fid = fopen("完成.txt",F_WRITE)
 fput(fid,ベース,F_ALLTEXT)
fclose(fid)

//データを書き込む
fid = fopen("完成.txt",F_READ or F_WRITE)
 n = length(fget(fid,1,1))
 a=copy(データ[2,1]+format(" ",n),1,n)//後に全角空白を足す
 fput(fid,a,1,1)
 
 n = length(fget(fid,1,2))
 a=copy(データ[2,2]+format(" ",n),1,n)//後に半角空白を足す
 fput(fid,a,1,2)

 n = length(fget(fid,1,3))
 a=replace(format(データ[2,3],n)," ","0")//前に半角空白を足す
 fput(fid,a,1,3)
fclose(fid)

//カンマを除いて一気に転記する
//f転記()

procedure f転記()
 fid = fopen("完成.txt")
  CTRLWIN(GETID("ET","ET"),ACTIVATE)
  SLEEP(0.1)
  KBD(VK_home)
  SLEEP(0.1)
  データ = fget(fid,1)
  データ = REPLACE(データ,",","")
  データ = REPLACE(データ,"<#DBL>","")
  SENDSTR(0,データ)
  sleep(0.1)
  KBD(VK_CTRL,DOWN)
  KBD(VK_V,CLICK)
  KBD(VK_CTRL,UP)
 fclose(fid)
fend

No.1502 2022/07/22(Fri) 23:07:44

Re: 空白だけをFGETで取り込めない / SEN
いつもお世話になっております。

空白を止めて、全部「♯」に変更して無事うまく動きました。
いつも1項目ずつ動かしていたので動きが遅く、
思い切って固定長で一気に貼り付ける事に挑戦しました。

固定長への切り貼りは初めてなので、どの様にするのが一般的なのか
聞きたかったのですが、レスが付かず残念でした。

ヒントがあれば、よろしくお願いします

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

No.1508 2022/07/27(Wed) 22:59:25

Re: 空白だけをFGETで取り込めない / stuncloud
質問やコードから何をしたいかを読み取るのが厳しい(なんか全体的によくわからん)のでスルーしてました

今回の場合雛形?がありそれをベースにデータを元に加工したテキストを書き込みたい?ような感じ?なのかな?
くらいまでは読み取ったのですがその後のコードもわかりにくく挫折しました
最低でも

・雛形の形式(書いてはあるけどぱっと見で半角全角が混ざってるのか?混ざってるならどのように?がわからん)
・加工のルール
・加工に必要なデータの例
・加工が完了し書き出したテキストの例

などを挙げていただいただけるといいかな、と思います
その上で今現在書いてあるコードも最低限にしてもらえるとお答えしやすいかな、と
例えばXLOPENの部分などは不要じゃないですか
Excelから読むことはこの件では必要のない情報ですし
Excelから読み取ったデータは不明なので肝心の部分が隠された状態なわけです
これだとコードを試したくてもどうしようもないのですよね
書き込むコードは他者の環境でも動くものにする、を心がけてください

そのへんを踏まえて改めてご質問していただければ協力できるかと思います

No.1509 2022/07/28(Thu) 00:05:55

Re: 空白だけをFGETで取り込めない / SEN
どうも恐縮です。
もう少し、整理してから質問させて頂きます。

No.1510 2022/07/28(Thu) 23:54:09
mmvやbtnで指定座標に関する報告 / chu
UWSCR及びuwscwebdriverの開発にご尽力いただきありがとうございます。
初めに私の技量の限界で拙い報告になりますことお許しください。
discardへの記載も要領を得ませんのでこちらにて失礼します。

環境
OS windows10 Home 21H2
ティスプレイ設定 
テキスト、アプリその他の項目のサイズ 125%
解像度 1920 X 1080

UWSCR 0.8.1

-----------------------------------
テストスクリプト
x = 1080
y = 48
mmv(x,y)
print G_MOUSE_X + "," + G_MOUSE_Y
sleep(3)
BTN(LEFT,CLICK, x, y)
print G_MOUSE_X + "," + G_MOUSE_Y
-----------------------------------
上記をUWSCとUWSCR(0.8.1)で行ったところ、

UWSCでは
1080,48
1080,48
を返しましたが、UWSCRではなぜか
1079,47
1079,47
と戻り、位置に関してはUWSCで示す位置よりx,yとも1.25倍程大きい値の位置を示しました。

以上となります。

別件になりますが座標に関して旧掲示板でお尋ねをしてumiumi様から下記の回答を頂きましたこと申し添えます。
★ SLCTBOXとAcwのX位置Y位置について / chu

UWSC Ver.4.5 あたり以降(記憶が正確ではありません)からみられる現象ですが、
SLCTBOXとAcwで同じ値のX位置、Y位置を指定しても同位置になりません。
また、SLCTBOXでは、Acwでは出来る画面右下にぴったりつける配置ができません。
実験用に下記スクリプトを作りましたが、SLCTBOXとAcwが同じ座標にもかかわらず、
動いてしまうのはなぜでしょう。
長年解明できず、ずっとモヤモヤしてます。どなたかご教示ください。

Public ID_SLCTBOX
Public x = 1716 //環境に合わせ任意の値を指定
Public y = 934 // x,yが大きいほど違いが顕著
Dim menu[] = "A", "B" ,"C"

Thread Move_SLCTBOX()
SLCTBOX(SLCT_cmb ,  0,  x, y, , menu )
// ( 種 別 , timeout, x, y, [メッセージ], 項 目)

Procedure Move_SLCTBOX
ID_SLCTBOX = GetID("", "TUslctBox_uwsc", 0)
Sleep(3)
Acw(ID_SLCTBOX, x, y)
Fend


環境
Windows 10
解像度 1920 X 1080
UWSC Pro 5.3.0.2


No.4421 2017/09/13(Wed) 12:24:30


☆ Re: SLCTBOXとAcwのX位置Y位置について / umiumi

Windows10 からフレーム構造が変わり、そのままでは見た目でズレ(3ドット)が出るようになりました。
自作ウィンドウ(INPUT/MSGBOX/SLCTBOX/CREATEFORM)では、手抜きでその対処をしていませんでした。
対処します。

No.1504 2022/07/23(Sat) 16:40:49

Re: mmvやbtnで指定座標に関する報告 / stuncloud
ありがとうございます
やはりスケールが100%ではない環境だと数値上は正しそうだけど位置が違うということが起きるのですね
対応策を調査中です

ちなみに座標が1ずれる件は開発段階でも確認していて、どうして1ずれるのかがわからないため直せなかったものです
(これはスケール100%でも起こります)
ちょっとした誤差なので未対応のままなのですが、いずれは直したいですね

slctboxとacwの件はウィンドウの構造に関わることなのでまた別の問題になるのですが、このようなことがuwscrでも起きていますか?
一応そのあたりの対応はしたのような気がする…のですがもしかしたら漏れているかも

No.1505 2022/07/23(Sat) 18:45:35

Re: mmvやbtnで指定座標に関する報告 / chu
>>slctboxとacwの件はウィンドウの構造に関わることなのでまた別の問題になるのですが、このようなことがuwscrでも起きていますか?

SLCTBOXをMSGBOXに書き換え、下記で検証したところ位置ズレは全くありませんでした。既にそこまで対応されているとは思っていませんでした。
ろくな検証もせず、蛇足となる報告で申し訳ございません。

Public x = 1200
Public y = 500

Thread Move_msb()
msgbox("動くかな?",0 , x, y )

Procedure Move_msb
ID_msb = getid("", "TUmsgDlg_uwsc")
sleep(3)
Acw(ID_msb, x, y)
Fend

No.1506 2022/07/23(Sat) 20:54:33

Re: mmvやbtnで指定座標に関する報告 / stuncloud
ご確認いただきありがとうございます!
お手間を取らせてしまったようで申し訳ないです
正しく動作しているようで安心しています

No.1507 2022/07/23(Sat) 21:47:16
エクセルブックが開いていたら、それを利用したい。 / 256
あるエクセルブックを開いて作業してますが、目的のエクセルブックが既に開いていたら、それを利用したい場合の記述はどうなりますか?よろしくお願いします。
No.1503 2022/07/23(Sat) 10:30:36
getidで値が存在しない場合に-1が返ってこない / rima
いつもお世話になっております。
getid関数で値が見つからない場合戻り値に-1を返してほしいのですが、エラーになってしまいます。
何が原因かわからないため、ご教授いただければ幸いです。

ソースコード
---------------------------------
try
id = getid("test");
print "id="+id;
id = getid("aaaaaaaaaaaaaaaaaa")
print "id="+id;
except
print "except:" + TRY_ERRLINE + ":" + TRY_ERRMSG;
endtry
---------------------------------

実行結果
---------------------------------
C:\Users\mconcept\Desktop\Edget>id=1
except:4行目: id = getid("aaaaaaaaaaaaaaaaaa"):[Win32 API エラー (0x80070057)] パラメーターが間違っています。
---------------------------------

OS : Windows
バージョン : 0.7.0

No.1496 2022/07/12(Tue) 13:34:05

Re: getidで値が存在しない場合に-1が返ってこない / stuncloud
現象を確認しました
調査します

No.1497 2022/07/12(Tue) 14:46:48

Re: getidで値が存在しない場合に-1が返ってこない / stuncloud
対応が完了しました
修正は0.8.0に入ります

No.1498 2022/07/12(Tue) 15:11:28

Re: getidで値が存在しない場合に-1が返ってこない / rima
> 対応が完了しました
> 修正は0.8.0に入ります


対応ありがとうございます。
バージョン0.8.0のリリース予定がお決まりでしたら、お聞きしたいのですがよろしいですか?

No.1499 2022/07/12(Tue) 16:48:24

Re: getidで値が存在しない場合に-1が返ってこない / stuncloud
今週中にリリースする予定です
No.1500 2022/07/12(Tue) 17:42:57

Re: getidで値が存在しない場合に-1が返ってこない / rima
> 今週中にリリースする予定です

ありがとうございます。

No.1501 2022/07/12(Tue) 18:31:05
edgeでパスワードを入れたい / sen
いつもお世話になっております。
edgeでホームページを開いた状態で、ユーザーidとパスワードを入れるだけなのですが、
うまく転記する事ができる時もあれば、出来ない時(出来ない時の方が多い)もあります。
edgeに登録されている「パスワードの管理」の表示が邪魔をしているのではないかと思ったりも
しますが、Internet Explorerの時は簡単にできたので、諦めきれません。
相手先のアドレスはさらしにくいのですが、下記のプログラムだけで分かりませんでしょうか?
よろしくお願い申し上げます。


------------------
dim データ

SELECT SlctBox(SLCT_btn or SLCT_STR,0,"選択","c-rex")
 case "c-rex"
  データ=READINI("c-rex","ユーザーID","パスワード.ini")
  転記(データ)
  データ=READINI("c-rex","パスワード","パスワード.ini")
  転記(データ)
  KBD(VK_ENTER)
SELEND
PROCEDURE 転記(データ)
 id = GETID("Microsoft​ Edge","Chrome_WidgetWin_1",-1)
 sleep(1)
 KBD(VK_HOME)
 KBD(VK_CTRL,DOWN)
 KBD(VK_A,CLICK)
 KBD(VK_CTRL,UP)
 sleep(0.5)
 CTRLWIN(ID,ACTIVATE)
 SENDSTR(0,データ)
 sleep(0.5)
 KBD(VK_CTRL,DOWN)
 KBD(VK_V,CLICK)
 KBD(VK_CTRL,UP)
 sleep(0.5)
 CTRLWIN(ID,ACTIVATE)
 KBD(VK_TAB)
fend

No.1493 2022/06/12(Sun) 18:29:33

Re: edgeでパスワードを入れたい / stuncloud
アドレスバーからjavascriptを実行すればまぁなんでもできなくはないですよね

id = getid("Edge", "Chrome_WidgetWin_1")
ctrlwin(id, ACTIVATE)

// アドレスバーを入力状態にする
sckey(id, VK_RALT, VK_D)

// アドレスバーに入力するjavascriptコード
// 例: パスワード入力欄に hogehoge と入れる
textblock js_input_value
javascript:document.querySelector('input[type="password"]').setAttribute('value', 'hogehoge');
endtextblock
// アドレスバーにjsを入力する
sendstr(id, js_input_value, 0, TRUE)
// Enterキーを押す
sckey(id, VK_ENTER)


IE操作のように自由にやりたいのならUwscWebDriverを覚えてもらったほうが早いとは思います

No.1494 2022/06/13(Mon) 00:12:56

Re: edgeでパスワードを入れたい / sen
javascriptも私には難しかったです。
ただ、sckey(id, VK_RALT, VK_D)は、凄く良い事を教えて頂きました。
edgeの使用に光が見えました。
UWSCの基本に戻って、チャレンジしてみます。

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

No.1495 2022/06/18(Sat) 19:18:57
(No Subject) / みみ
DMM版ウマ娘の画面をクリックしようとしているのですがクリックできません。
単純なクリックも受け付けない状態です。
体験版のUWSCマクロを使った場合はクリックできました。
何が原因なのでしょうか。

No.1492 2022/06/10(Fri) 00:10:15
Edgeの起動方法 / sen
お世話になっております。
WebDriverは一寸難しそうなので、取り敢えずuwscでedgeを立ち上げてサイトを立ち上げたいのです。下記のような感じで取り敢えずedgeが立ち上がったのですが、これはこれでありでしょうか?
ご教授くださいますようお願いします。


Edge = EXEC("C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe")
exec("cmd /c start https://www.yahoo.co.jp/")//例

No.1489 2022/06/04(Sat) 21:04:01

Re: Edgeの起動方法 / stuncloud
ありといえばありですが、標準ブラウザが例えばChromeになっていた場合
> exec("cmd /c start https://www.yahoo.co.jp/")//例
でChromeが開いてしまいます

> start msedge url
とすることでEdgeで任意のURLを開けます
なので
exec("cmd /c start msedge https://www.yahoo.co.jp/")
または
doscmd("start msedge https://www.yahoo.co.jp/", TRUE)
とするのが確実でしょう

No.1490 2022/06/04(Sat) 22:03:38

Re: Edgeの起動方法 / sen
うまくいきました。
Edgeに切替できそうです。

No.1491 2022/06/05(Sun) 09:39:01
chromeの出すポップアップを判断する方法について / PON
[A.UWS]
ACW(GETID("XXXX - Google Chrome","Chrome_WidgetWin_1"),XXX,XXX,XXX,XXX,0)

-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*

[B.UWS]
CALL A.UWS

CALL C.UWS

・・・省略・・・

-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*

[C.UWS]
//ウィンドウのアクティブ化
id = GETID("Google Chrome","Chrome_WidgetWin_1",-1)

fukidasi(id)
sleep(10)
//エラー画像見つけたら
IFB CHKIMG("outofmemory.BMP",0,,,,,,IMG_MSK_BGR4)
KBD(VK_F5,click,0)//5秒後にボタン押下する KBD(仮想KEY,[click/up/down,ms])
ENDIF

・・・省略・・・
POFF(P_UWSC_REEXEC, True)

-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
使用UWSC
uwsc5302

目的
chromeが表示するポップアップメッセージを判別、処理したい

現状
・B.UWSを実行A.UWS、C.UWSの順に呼び出すと画像が表示されているのに存在しないと判断されますが
A.UWSをコメントアウトし、手動で実行するとC.UWSの画像判定に成功しますが、今度はPOFFでループさせた際に画像判断に失敗します。
・ポップアップのIDとブラウザのIDは同一で("Google Chrome","Chrome_WidgetWin_1)判別に使用できそうもありません。出現タイミングは不定です。

疑問
・A.UWSを呼んだ場合と呼ばなかった場合に挙動が変わるのはなぜでしょうか?
・現状のUWSでポップアップが表示された。と確実に判断させるにはどのような修正が必要でしょうか?
よろしくお願いします。

No.1488 2022/05/29(Sun) 17:48:35

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

- HOME - お知らせ(3/8) - 記事検索 - 携帯用URL - フィード - ヘルプ - メール - 環境設定 -

- Skin: Modern v2.0 - Author: ロケットBBS -

Rocket Board Type-X (Free) Rocket BBS