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

UWSC掲示板 が復活することを祈り、それまでの繋ぎとして。
SearchRocketbbs(掲示板DL検索) (XFREE更新期限 2022.09.30)

Name
Subject
Color
Cookie / Pass
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でうまくエクセルが立ち上がらない。 NEW / 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
空白だけを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

SearchRocketbbs(掲示板DL検索)

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