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

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

既に開いている複数のEXCELをコントロールしたい / haku
既に開いている複数のEXCELをコントロールしたい。
EXCELを開いた数だけComを取得したいのですが、方法はありませんか?
For I = 0 to 100
COM_ERR_IGN
Dim EXCEL = GETACTIVEOLEOBJ("Excel.Application","",I)
print EXCEL
COM_ERR_RET
next

このように回してみても、最初の1つ目のComは取得できるのですが、2番目以降が取得できません。

ご助言よろしくお願いします。

No.1537 2023/01/07(Sat) 11:16:34
XLOPENでうまくエクセルが立ち上がらない。 / sen
いつもお世話になっております。
下記のようにしてエクセルを立ち上げて使用しています。

あるときから、家のパソコンではうまくいくのですが、会社のパソコンでは、
エクセルがうまく立ち上がらなかったり、ファイル表示がうまくされなくて実行できなくなりました。
一度、ファイルを立ち上げてから、保存して閉じてから実行するとうまくいくときもあります。

自分で作成して自分で動かしている別のUWSCのプログラムでうまくエクセルが閉じていないのが
原因だと思ったりもするのですが、原因を掴めません。
何かヒントになるようなものがあれば、ご教授ください。
よろしくお願い申し上げます。

※手がかりになるようなものがなくて済みません。

dim ファイル=input("ピッキング済リスト")
Excel = XLOPEN(ファイル)

No.1533 2022/10/03(Mon) 22:34:41

Re: XLOPENでうまくエクセルが立ち上がらない。 / リキュール
会社のパソコンはuwscのPro版が入っていますが?

XLOPENのファイル名にpath名、拡張子を記載したら?

No.1535 2022/10/17(Mon) 08:18:00

Re: XLOPENでうまくエクセルが立ち上がらない。 / sen
リキュール様、ありがとうございます。
色々と調べていて、エクセルの自動保存が駄目なのではないかと気付きました。

No.1536 2022/11/13(Sun) 09:52:08
別フォルダからのファイル名変更がうまくできません。 / みみ
別フォルダからのファイル名変更がうまくできません。

ren ああ.txt Sangonomiy.txt

UWSCで上記の文をBATファイルに記述し、起動しているのですがファイル名が変更されません。手動でBATファイルを起動するか、操作する.uwsファイルが同じフォルダにある場合は正しく実行されます。
どうも別のフォルダからだと操作できないようです。
起動するときにコマンプロンプトが一瞬表示されるので、BATファイルのパスが間違っているということはありません。DOSコマンドも試してみたのですが、同じような結果になりました。


CMD = "CD " + "C:\a"
DOSCMD("a.bat")
このような方法でカレントディレクトリを移動してから起動してもうまくいきませんでした。どうすればいいでしょうか。大量のフォルダを操作するため手動というわけにはいきません。

No.1534 2022/10/16(Sun) 19:03:42
UWSCを管理者として実行しているかチェック / みく
UWSCを管理者として実行しているかチェックすることはできるでしょうか。
No.1531 2022/09/15(Thu) 00:31:29

Re: UWSCを管理者として実行しているかチェック / stuncloud
def_dll IsUserAnAdmin():bool:shell32.dll

if IsUserAnAdmin() then
 print "管理者として実行されています"
else
 print "管理者として実行されていません"
endif

No.1532 2022/09/17(Sat) 04:08:27
Zipファイルの展開に失敗しました。 / DONQ
Edge用のWebDriverをダウンロードしようとすると
”Zipファイルの展開に失敗しました。”とエラーメッセージが出ます。
ブラウザ操作をするには手動でZIPファイルを解凍しなくてはいけません。
これは本来はZipファイルの解凍まで行ってくれるのでしょうか?

No.1527 2022/09/05(Mon) 14:51:11

Re: Zipファイルの展開に失敗しました。 / stuncloud
> これは本来はZipファイルの解凍まで行ってくれるのでしょうか?
はい

No.1528 2022/09/05(Mon) 23:15:25

Re: Zipファイルの展開に失敗しました。 / DONQ

msedgedriver.exeがフォルダにあるときはダウンロードしたバージョンのポップアップが出て成功した感じに見えるのですが、msedgedriver.exeがフォルダに無いときは”Zipファイルの展開に失敗しました。”と表示され解凍失敗します。

これはmsedgedriver.exeが上書きされているのでしょうか?
msedgedriver.exeが存在していないときには解凍失敗しているようなので、存在している時にも失敗しているのではないかと不安です。

また、回答に失敗する原因は何かありますでしょうか。必要な解凍ソフトが入っていないなどがあれば教えていただけますと幸いです。

No.1529 2022/09/07(Wed) 09:40:08

Re: Zipファイルの展開に失敗しました。 / stuncloud
質問はこちらで受け付けています
https://github.com/stuncloud/UwscWebDriver/issues/

No.1530 2022/09/07(Wed) 11:50:20
By.Attributeで指定したセレクタの隣接したタグを処理したい。 / Seti
UWSCWebDriverを使用しています。
チェックボックスになっている<input>をValue値を見てチェックするしないを選択したいです。
ただ、このサイトの仕様なのか<input>ではなくその直後の<SPAN>をクリックしないと反応しません。


次の記述ではチェックボックスをチェックできません。
driver.FindElement( By.Tag("input") + By.Attribute("type", "checkbox")+ By.Attribute("name", "checkbox")+ By.Attribute("value", 10000000_n) ).Click() 


ブラウザのデベロッパーツールでセレクターをコピーした下記の記述ならチェックできるのですがValue値を参照したいのでこれでは使えません。
driver.FindElement("#main-content > span > label > span").Click()


Valueを参照する以上はBy.Attributeを使うしかないと考えているのですが、By.Attributeを使って指定したセレクタの、その隣接タグや子要素タグを指定することはできるのでしょうか?




【HTML】

<span class="app-sps-checkbox">
<label>
<input type="checkbox" name="checkbox" value="10000000_n">
<span class="app-sps-checkbox__square"><span></span></span>
</label>
</span>

<span class="app-sps-checkbox">
<label>
<input type="checkbox" name="checkbox" value="10000001_n">
<span class="app-sps-checkbox__square"><span></span></span>
</label>
</span>

<span class="app-sps-checkbox">
<label>
<input type="checkbox" name="checkbox" value="10000002_n">
<span class="app-sps-checkbox__square"><span></span></span>
</label>
</span>

※Valueの値はランダム

No.1524 2022/08/20(Sat) 16:01:27

Re: By.Attributeで指定したセレクタの隣接したタグを処理したい。 / Seti
すみません、自己解決しました。下記でうまくいきました。

driver.FindElement( By.Tag("input") + By.Attribute("type", "checkbox")+ By.Attribute("name", "checkbox")+ By.Attribute("value", 10000000_n) + "+span").Click()

No.1525 2022/08/22(Mon) 17:35:50

Re: By.Attributeで指定したセレクタの隣接したタグを処理したい。 / stuncloud
// 0.10.1 より以下のように記述できます

builder = SelectorBuilder.New()
selector = builder.Tag("input")_
         .Attribute("type", "checkbox")_
         .Attribute("value", "10000000_n")_
         .NextSibling()_
         .Tag("span")_
         .Build()

print selector // input[type="checkbox"][value="10000000_n"] + span
element = driver.FindElement(selector)

No.1526 2022/08/23(Tue) 12:00:17
ファイル出力することなく配列を共有したい。 / haku
ファイル出力することなく配列を共有したい。

EXCELとUWSC間でファイル出力することなく、変数や配列を共有したいと考えています。
以前、Script directory をつかう方法を見かけたようなきがするのですが、情報をつかめないままです。

コードをお持ちの方、情報をご存じの方がおられましたら返信よろしくお願いいたします。

No.1517 2022/08/12(Fri) 18:58:45

Re: ファイル出力することなく配列を共有したい。 / haku
> ファイル出力することなく配列を共有したい。
>
> EXCELとUWSC間でファイル出力することなく、変数や配列を共有したいと考えています。
> 以前、Script directory をつかう方法を見かけたようなきがするのですが、情報をつかめないままです。
>
> コードをお持ちの方、情報をご存じの方がおられましたら返信よろしくお願いいたします。


追伸
EXCEL-UWSC間
EXCEL-EXCEL間
UWSC-UWSC間

上記の3点で可能な方法を探しています。

No.1518 2022/08/12(Fri) 20:13:23

Re: ファイル出力することなく配列を共有したい。 / stuncloud
Script directoryはScripting.Dictionaryのことですかね?
これでプロセス間通信はできないと思いますが…なんでしょうね?

僕はwinsockを使ってました
以下はIRC用ですが、クライアント側の実装になります
https://stuncloud.wordpress.com/2013/10/29/uwsc_irc_client/
こっちは超簡易HTTPサーバーの実装ですね
https://github.com/stuncloud/PoshUWSC/blob/master/HTTPServer.uws
一方がサーバー、もう一方がクライアントになりデータのやり取りができます

あとはしゅんさんのとこにプロセス間通信の記事があります
名前付きパイプ
https://junjun777.hatenablog.com/entry/20110811/uwsc_named_pipe
メモリマップドファイル
https://junjun777.hatenablog.com/entry/20160630/powershell_and_uwsc

ExcelはExcelVBAのことだと思いますけど、どのみちwinapiを使うので実装コストはUWSCでやるのとそこまで変わらないと思います

やり取りするデータはいろいろ工夫してください
(さすがに配列そのままでのやり取りは無理)

No.1519 2022/08/12(Fri) 21:06:00

Re: ファイル出力することなく配列を共有したい。 / haku
ご助言ありがとうございます。

Winsockになるのですね。
敷居が高いのでファイル出力する方向で考えます。

No.1523 2022/08/15(Mon) 19:22:16
doscmdで実行した日本語を含む文字結果が化ける / レフト
curlコマンドでphpを実行して結果を取得したいのですがうまくいきません。
コマンドプロンプト上では問題ない日本語で表示されますが
uwscだと文字化けしてしまいます・・・

print doscmd("curl https://***.***/***.php")

これも

print doscmd("curl https://***.***/***.php", false, false, true)

これも

textblock cmd
chcp 65001
curl https://***.***/***.php
endtextblock

print doscmd(cmd)

これも駄目でした。
実行しているphp側の問題でしょうか?

php実行結果をメールで飛ばすというCronもどきの動きをさせたいのが目的です。
おわかりになる方、代替案などでも結構ですのでアイデアがあれば教えてください。

No.1520 2022/08/12(Fri) 21:53:42

Re: doscmdで実行した日本語を含む文字結果が化ける / stuncloud
代替案です

Msxml2.XMLHTTPやWinHttp.WinHttpRequest.5.1など、COMでHTTPリクエストを送れるのでそれを使いましょう

xhr = createoleobj("Msxml2.XMLHTTP")
// メソッドとURLを指定、最後のFALSEにより受信完了まで待つ
xhr.open("GET", "https://***.***/***.php", FALSE)
// リクエストを送る
xhr.send()

// 結果を表示
print xhr.status // ステータスコード
print xhr.responseText // レスポンス本文

No.1521 2022/08/12(Fri) 22:51:29

Re: doscmdで実行した日本語を含む文字結果が化ける / レフト
stuncloud様

代替案の提示ありがとうございます。
COMでHTTPリクエストができて結果だけも得られるんですね。
勉強不足でした。

記載のコードで行いたかったことがすべてできました。
ご回答ありがとうございました。

No.1522 2022/08/15(Mon) 09:19:17
ネットワーク先のエクセルを誰かが開いていたら警告を出したい。 / アナログ
誰も開いて無ければ、開いて処理が出来るのですが、誰かが開いていると読み取り専用で開いてしまうので、処理途中にエラーとなってしまいます。誰かが既に開いていたら、警告を出して、処理を分岐したいです。
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

以下のフォームに記事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