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

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

SearchRocketbbs.UWSで検索語によりCOMエラーが発生する場合がある / stuncloud
「検索語を入力」で正規表現のメタ文字をエスケープせずに入力すると184行目の
> Result = reg.Replace(_tx, _after)
でCOMエラーになります

例: (

メタ文字をエスケープする仕組みがあったほうが良さそう?
でもそれをやると正規表現による検索ができなくなりますね
COMエラーをトラップしてもらって適切な正規表現の入力を促すほうが良い、かも?

No.1273 2021/04/17(Sat) 16:44:03

Re: SearchRocketbbs.UWSで検索語によりCOMエラーが発生する場合がある / しゅん
エラートラップして、エスケープし再実行、が一番親切かもしれません。
面倒なら、、、ま、放置でも良いと思います!

No.1274 2021/04/17(Sat) 21:44:40

Re: SearchRocketbbs.UWSで検索語によりCOMエラーが発生する場合がある / しろまさ
> 「検索語を入力」で正規表現のメタ文字をエスケープせずに入力すると184行目の
> > Result = reg.Replace(_tx, _after)
> でCOMエラーになります
>
> 例: (
>
> メタ文字をエスケープする仕組みがあったほうが良さそう?
> でもそれをやると正規表現による検索ができなくなりますね
> COMエラーをトラップしてもらって適切な正規表現の入力を促すほうが良い、かも?


見逃してました。すみません。
エラートラップの線で検討します(これからです><)

No.1277 2021/04/20(Tue) 09:15:24

Re: SearchRocketbbs.UWSで検索語によりCOMエラーが発生する場合がある / しろまさ
修正しました。メタ文字が含まれている場合のみ選択画面が出ます。

stuncloudさん、しゅんさん、
ご指摘・アドバイス、ありがとうございました。

No.1278 2021/04/20(Tue) 11:04:27
UwscWebDriverの基本的な使い方が分かりません / yy
UwscWebDriverは初めてです。
使い方で分からない点がありますので教えてください。

https://github.com/stuncloud/UwscWebDriver
を参考に、

1)下記の(A)(B)(C)を実行しましたが、
 下記の(A)(B)(C)のようにWebdriverが見当たりませんがなぜでしょうか。
2)WebDriverのインストール
 のところに、
 旧Edgeのインストールの仕方が記載されていませんが、
 下記(A)(B)(C)の操作で、
 WebDriverはインストールされるのでしょうか。


(A)
GUIから導入するWebDriverを選ぶ
に書かれているように、
UwscWebDriver.uwsと下記のtest1.uwsを
---test1.uws--------------
call UwscWebDriver.uws
WebDriverDownload.Dialog()
--------------------------
C:\document\lesson\uwsc\dというフォルダに入れて
test1.uwsをダブルクリックして実行すると
UWSC-test1.uwsというタイトルのダイアログに
ダウンロードするWebdriverを選択
保存先:C:\document\lesson\uwsc\d
と5つのボタンが表示されます。
EdgeLegacyのボタンをクリックすると、
コマンドプロンプトウインドウが起動して
展開イメージのサービスと管理ツール
バージョン 10.0.19041.746
イメージのバージョン: 10.0.19041.867
と表示されてしばらくすると
コマンドプロンプトウインドウが閉じられます。
その後、保存先のフォルダを見ても、
Webdriverのファイルは見当たりません。

(B)
個別に導入する
に書かれているように、
---test2.uws-------------------------
call UwscWebDriver.uws
// MicrosoftWebDriverを有効にする
// UACの昇格ダイアログが表示されます
WebDriverDownload.EdgeLegacy()
----------------------------
UwscWebDriver.uwsと下記のtest2.uwsを
C:\document\lesson\uwsc\dというフォルダに入れて
test2.uwsをダブルクリックして実行すると
コマンドプロンプトウインドウが起動して
展開イメージのサービスと管理ツール
バージョン 10.0.19041.746
イメージのバージョン: 10.0.19041.867
[=============100.0%==============]
操作は正常に完了しました。
と表示されて、
コマンドプロンプトウインドウが閉じられます。
その後、フォルダを見ても、
Webdriverのファイルは見当たりません。

(C)
手動で導入する
に書かれているように、
管理者として実行したコマンドプロンプトを起動して
DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0
と入力してEnterキーを押すと
バージョン 10.0.19041.746
イメージのバージョン: 10.0.19041.867
[=============100.0%==============]
操作は正常に完了しました。
と表示されますが、
Webdriverのファイルは見当たりません。


Windows10、ブラウザは旧Edgeで、
Microsoft Edge バージョン 89.0.774.75 (公式ビルド) (64 ビット)
です。

よろしくお願いします。

No.1266 2021/04/11(Sun) 15:02:09

Re: UwscWebDriverの基本的な使い方が分かりません / stuncloud
A、B、Cいずれの場合もMicrosoftWebDriverはシステムフォルダに配置されます
その状態で使えるようになっているので、ファイルが見当たらなくても問題ありません

しかし
> Microsoft Edge バージョン 89.0.774.75 (公式ビルド) (64 ビット)
とのことでしたので、それではうまく動作しません
実はそれは、すでに新Edgeになっています
そのため旧Edge用のwebdriverでもブラウザ起動まではできますが、それ以上の操作ができないのです

新Edge(ChromiumEdge)用のwebdriver(msedgedriver)をダウンロードしてから改めてお試しください

No.1267 2021/04/11(Sun) 20:53:30

Re: UwscWebDriverの基本的な使い方が分かりません / yy
Edge(のバージョン情報がMicrosoft Edgeと表示されていたので
旧Edgeと思い込んでいました。

新Edge(ChromiumEdge)用のコードに書き換えて実行したら、
同じフォルダにmsedgedriver.zipがダウンロードされて、
msedgedriver.exeを得ることができました。

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

No.1268 2021/04/12(Mon) 19:06:49

Re: UwscWebDriverの基本的な使い方が分かりません / yy
1)のWebdriverのダウンロードはできましたが、
2)のWebDriverのインストールの仕方もよくわかりません。

同サイトには、
Chromium Edgeの場合、
Install-Package -Provider ChocolateyGet -Name selenium-chromium-edge-driver
を実行するように記載されていますが、
コマンドプロンプトを管理者権限で起動して、
Install-Package -Provider ChocolateyGet -Name selenium-chromium-edge-driver
と入力してENTERキーを押して実行しようとすると、
'Install-Package' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と表示されます。
Install-Package -Provider ChocolateyGet -Name selenium-chromium-edge-driver
は、どのように実行するのでしょうか。

よろしくお願いします。

No.1269 2021/04/12(Mon) 21:45:50

Re: UwscWebDriverの基本的な使い方が分かりません / stuncloud
1でできていれば2はやらなくていいです

2はコマンドプロンプトではなくPowerShellを使う方法です

No.1270 2021/04/13(Tue) 00:57:32

Re: UwscWebDriverの基本的な使い方が分かりません / stuncloud
PackageManagementによるWebDriver導入方法をドキュメントから削除しました
WebDriverDownloadモジュールを使ってください

No.1271 2021/04/13(Tue) 01:09:15

Re: UwscWebDriverの基本的な使い方が分かりません / yy
簡単なサンプルコードを実行することができました。
ありがとうございました。

No.1272 2021/04/13(Tue) 19:13:12
デバッガが不安定 / もも
お久しぶりでございます。最近また使いだしたのですが
昔と状況が変わってて数点困ってます。

とりあえず1個目ですが
Win10 64bitで uwscデバッガが挙動不安定でとても使いにくいです。
ソースコピペして実行などが出来ないとかチャタリングじみた挙動をするとか

だましだましでもなんとか安定的に使用する方法は無いでしょうしか?
変数の代入ミスとかポカミスの把握でとても重宝していたので困っています。

よろしくお願いします。

No.1244 2021/03/08(Mon) 14:11:53

Re: デバッガが不安定 / Rayna
>>1244 もも さん

 「など」「〜とか」じゃなくて
 実際に起っている症状 を 具体的 に 症状を切り分けて 書いていただけると回答もしやすいです。
 貼り付けが出来ないって事で合ってますかね?

 以前数回起こった気もしますけど現在の環境では再現しませんでした (Windows 10 x64 20H2 / UWSC Pro 5.302)

 何らかのリソースを使い果たしてるとかかもですね
 頻発するようなら以下を試してみてください
 再現できてないので未検証です

 チャタリングじみた挙動 はどういう挙動か分らなかったです
  何が?: キーボード, マウス, ...
  何に対しての操作?: コントロールのボタン, エディトの入力, ...
  発生のタイミングは?: スクリプト実行時, 停止中, 起動時, ...

//| !_SendWMPaste_!.uws |////////
// GET_UWSC_DIR+"\DbgScript" にこのスクリプトを置く
// 貼り付けできないときに[Script]ボタンから実行
Const TRY_TIMEOUT_SEC = 5
Const TRY_INTERVAL_SEC = 0.01

Dim idWndUDebug = GetId(GET_FROMPOINT_WIN)
Dim hWndTRichEdit = GetCtlHnd(idWndUDebug, "TRichEdit")
Dim nX=Status(idWndUDebug, ST_X), nY=Status(idWndUDebug, ST_Y)
Dim i, tm=StopWatch()
If Status(idWndUDebug, ST_CLASS)<>"TFOya" Then Exit2(1, "UWSC Debugger の獲得に失敗", 0, 0, 1)

Bal("貼り付け処理中", nX, nY)
While StopWatch(tm)<TRY_TIMEOUT_SEC
 Sleep(TRY_INTERVAL_SEC)
 If SendWM.Paste(hWndTRichEdit)=FALSE Then Continue
 Exit2(0, "貼り付け成功", nX, nY)
WEnd
Exit2(1, "貼り付け失敗", nX, nY)

Function StopWatch(tmSec=); RESULT=GetTime()+G_TIME_ZZ/1000; If tmSec<>EMPTY Then RESULT=RESULT-tmSec; FEnd
Procedure Bal(sMsg, nX, nY); Balloon("SendWMPaste: "+sMsg, nX, nY, 0, 7); FEnd
Procedure Exit2(nExitCode=0, sMsg=, nX=0, nY=0, tsWaitSec=2); If Length(sMsg)=0 Then ExitExit nExitCode; Bal(sMsg, nX, nY); Sleep(tsWaitSec); ExitExit nExitCode; FEnd
Module SendWM
 Def_Dll SendMessageW(hWnd, UInt, Word, Long): Long: user32.dll
 Const WM_GETTEXTLENGTH = $000E
 Const WM_PASTE = $0302

 Function GetTextLength(hWnd)
  RESULT = SendMessageW(hWnd, WM_GETTEXTLENGTH, 0, 0)
 FEnd

 Function Paste(hWnd)
  Dim nLen = GetTextLength(hWnd)
  SendMessageW(hWnd, WM_PASTE, 0, 0)
  RESULT = nLen<>GetTextLength(hWnd) // GetTextだと文字長制限があるのでGetTextLengthで書き込めたか確認
 FEnd
EndModule

No.1245 2021/03/10(Wed) 11:31:09

Re: デバッガが不安定 / もも
>>Rayna 様

ご返信に気づかずにすみません!!

説明不足で済みません。
Win10になってから年数が経っていますし、てっきり既知の現象だろうと想像していたので、
「互換モード使え」等、一発で解決するか「諦めて」的な定番回答が来ると思っていたので…

回答が付きにくいということは普通は問題無く使用できているという事でしょうか。

改めて思いつく現象を列挙しますと、
1.コピペでデバッガに貼り付けられない(ちょっとだけ挙動テストができない)
2.デバッガを使っていると、エディタ部の再描画が段々と遅くなる事がある
3.反応が重たく、F7 F8を押してステップ実行していると、段々追従しなくなる事がある
※キー連打入力に実行(描画)が遅れてくる。先行入力しすぎたかとキー入力を止めて
待っていると入力以上に進んで止まらない

今回、1.を改めて確認したのですが、UrtraVNC Viewerとクリップボードが
競合するようで、VNC viewerを止めるとコピペできました。
※他PCをリモート監視してました。

2.と3.は確認するようなスクリプトが今は無い為、確認出来ていません。
こちらもVNC競合かもしれませんので、機会があれば試してみます。

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

No.1265 2021/03/22(Mon) 13:49:27
XLGETDATAで取得した配列のサイズを変えたい / かーくん
エクセルのデータをXLGETDATAで一気に配列に格納して
その後にデータを追加をしたいのですがサイズの変更に失敗してしまいます。


data = XLGETDATA( Excel, ("A1:F100000"))
RESIZE(data,101000)

手動で読み込んだ配列ならサイズ変更出来ますが、
データが多いため読み込むだけで4分くらいかかってしまいます。

No.1254 2021/03/13(Sat) 15:58:50

Re: XLGETDATAで取得した配列のサイズを変えたい / cho
大きいデータですね。数年前にそのぐらいのデータをどうにかしようとした記憶があります。

公式ヘルプのRESIZEには
サイズ: 配列の上限値 (多次元配列の場合は一番上の次元に対してのみ)
と書かれています。
増えるのは列ですが、行を増やしたかったのでは?
サンプルを書いたので動かして確認してみてください。

その当時の私が解決した策は、
多次元をやめて1次元配列で作成です。
 dataA = XLGETDATA( Excel, ("A1:A100000"))
 dataB = XLGETDATA( Excel, ("B1:B100000"))
 ・
 ・
 dataF = XLGETDATA( Excel, ("F1:B100000"))

1次元に分割することで、RESIZEも容易にでき、
THREADで同時処理で値を更新することもできて時間の短縮にもなりますよ。
という感じでどうでしょうか?

//以下サンプルコード///////////////////////////////////

// 事前準備
 // エクセルのA1からF100のセルに以下の数式をコピペする
 // =ADDRESS(ROW(),COLUMN(),4,1)

EXCEL = GETACTIVEOLEOBJ("Excel.Application")
data = XLGETDATA( Excel, ("A1:F100"))
//代入されているか確認用
 PRINT data[1][1]
 PRINT data[1][2]
//現在の取得した行と列の状態
 row_Count=LENGTH(data)
 column_Count=LENGTH(data[1])
 PRINT row_Count+"行あります"
 PRINT column_Count+"列あります"

// //確認用(現時点の全DataをPRINTします)
//  FOR i=1 TO row_Count
//   FOR j=1 TO column_Count
//   PRINT data[i][j]
//   NEXT
//  NEXT

//リサイズ後の行と列の状態
 PRINT "RESIZEします"
 RESIZE(data,110)
 row_Count=LENGTH(data)
 column_Count=LENGTH(data[1])
 PRINT row_Count+"行あります"
 PRINT column_Count+"列あります"

No.1257 2021/03/13(Sat) 20:30:27

Re: XLGETDATAで取得した配列のサイズを変えたい / cho
訂正

> ・
> ・
> dataF = XLGETDATA( Excel, ("F1:B100000"))


dataF = XLGETDATA( Excel, ("F1:F100000"))

です。

No.1258 2021/03/13(Sat) 20:34:18

Re: XLGETDATAで取得した配列のサイズを変えたい / かーくん
choさんありがとうございます。
XLGETDATAで取得した配列だと列の方がサイズ変更されるのですね。

data = XLGETDATA( Excel, ("A1:F100"))
//現在の取得した行と列の状態
 PRINT LENGTH(data)+"行×" +LENGTH(data[1])+"列あります" //100行×6列あります

//リサイズ後の行と列の状態
 PRINT "RESIZEします"
 RESIZE(data,110)
 PRINT LENGTH(data)+"行×" +LENGTH(data[1])+"列あります" //100行×110列あります。


ただ、dim宣言の配列だとしっかり行の方がサイズ変更されていましたし、やりたかったのは行を増やす事でしたので、困りました。

dim data[99,5]

//現在の取得した行と列の状態
 PRINT LENGTH(data)+"行×" +LENGTH(data[1])+"列あります" //100行×6列あります

//リサイズ後の行と列の状態
 PRINT "RESIZEします"
 RESIZE(data,110)
 PRINT LENGTH(data)+"行×" +LENGTH(data[1])+"列あります" //111行×6列あります

 

No.1262 2021/03/14(Sun) 02:51:00

Re: XLGETDATAで取得した配列のサイズを変えたい / cho
処理方向は左から右へ(処理するものがなくなったら)上から下への順番が基本になります。
なので、エクセルから一括で取得した時は
A1 B1・・・F1 ←これで1次元(列)が作られて以降
A2 B2・・・F2
・・・
の行が2次元に入っていて、これは正しい処理です。

> dim data[99,5]
のようにDIMで宣言している場合は、1次元(行)を指定しているので、これもRESIZEができるのは正しいです。

今回の場合、解決策は簡単です(先述したように多次元配列はおすすめしませんが)
一括で取得しないで、FORで回して行を先に取得しこれを1次元とします。

DIM data[100-1][6-1]
FOR i=0 TO LENGTH(data)-1
  FOR j=0 TO LENGTH(data[0])-1
   data[i][j] = XLGETDATA( Excel,i+1,j+1)
  NEXT
NEXT
//現在の取得した行と列の状態
 row_Count=LENGTH(data)
 column_Count=LENGTH(data[1])
 PRINT row_Count+"行あります"
 PRINT column_Count+"列あります"

//リサイズ後の行と列の状態
 PRINT "RESIZEします"
 RESIZE(data,110-1)
 row_Count=LENGTH(data)
 column_Count=LENGTH(data[1])
 PRINT row_Count+"行あります"
 PRINT column_Count+"列あります"

No.1263 2021/03/14(Sun) 05:00:29

Re: XLGETDATAで取得した配列のサイズを変えたい / しろまさ
> データが多いため読み込むだけで4分くらいかかってしまいます
// そもそもXLGETDATAを使わず、文字列処理する提案

// 10万行の準備
Dim \n = "<#CR>", \t = "<#TAB>"
Dim o_XL1 = CreateOleObj("Excel.Application"); o_XL1.Visible = TRUE; o_XL1.WorkBooks.Add
Dim o_WS1 = o_XL1.ActiveSheet
HashTbl h; for i = 1 to 100000; h[i] = RePlace("a#b#c#d#e#f#", "#", i+\t) +\n; next
SendStr(0, Join(h)); o_WS1.Range("A1").PasteSpecial
MsgBox("貼付完了 データ取得に進みます")

// データ取得
Dim o_XL2 = GetActiveOleObj("Excel.Application")
Dim o_WS2 = o_XL2.ActiveSheet
o_WS2.Range("A1:F100000").Copy
Dim data = GetStr(0)
MsgBox("取得完了 文字列でデータ追加し貼り付けます")

// データ追加
Dim add1 = "aa1"+\t+"bb1"+\t+"cc1"+\t+"dd1"+\t+"ee1"+\t+"ff1"+\n
Dim add2 = "aa2"+\t+"bb2"+\t+"cc2"+\t+"dd2"+\t+"ee2"+\t+"ff2"+\n
SendStr(0, data + add1 + add2); o_WS2.Range("A1").PasteSpecial
MsgBox("貼付完了 文字列でデータが追加されました")

No.1264 2021/03/15(Mon) 13:53:37
デバッガについて / YMK
デバッガの話が出ていたで自分も2つ

・右ペインがマウスの上スクロールに反応しない
・右ペインのLocalの幅は小さく、Valueの幅は大きく見たいので幅の調整しているけど、記憶をしてくれないので、毎回調整しなくてはいけない。

これはやはり作者でないと対応出来ないことですかね、、

No.1253 2021/03/12(Fri) 01:47:01

Re: デバッガについて / yanyan
右ペイン上でのマウススクロールはできないが、右ペイン幅はudebug.INIで設定できると思います。
なお、記憶してくれないのは、再セットアップが必要か?(当方はwin10 pro udebug v2.302)

udebug.INIの項目から---
Position=405,54 //窓左上位置座標 xp,yp
Size=1331,886 //窓サイズ  幅(x),高さ(y)
Ratio=400,200,400 //右ペイン窓 幅(x1),gloval部高さ(y1),print部高さ(y2) //local部高さは残り(y-y1-y2)

No.1256 2021/03/13(Sat) 20:02:28

Re: デバッガについて / YMK
レス有難うございます。
でも私がやりたいのは右ペインの幅ではなく
右ペインの中のLocalの幅とValueの幅の記憶なのです。
どうやら仕様で出来そうにありませんね、、、

No.1260 2021/03/13(Sat) 21:44:02

Re: デバッガについて / stuncloud
それこそUWSCで解決できそうな気がします

デバッガ起動時にスケジュール実行するスクリプトで
・リストビューの幅を任意に変更する処理
・マウスホイールの動きに連動してスクロールさせる処理
を行わせるという手はどうでしょうか

No.1261 2021/03/13(Sat) 23:39:25
履歴を消したい / suga
お世話になります、以下、firefoxで対応したいのですが、取り掛かりのヒントなるもの、ございましたら、教えてください。
・クッキーのクリア
・キャッシュのクリア
・プロキシの指定
・UAの指定

No.1252 2021/03/11(Thu) 20:20:06

Re: 履歴を消したい / cho
コードのかけらも書いていないので、おそらく回答をもらうことが難しいと思います。
取り掛かりのヒントでしたら、まずはクッキーのクリアからやってみてはどうでしょうか?
https://aprico-media.com/posts/4331
このサイトに書いてある手順を丁寧にUWSCで書き起こしてみてください。
そうすると、ここのボタンが押せない とか 何かが反応しないとか、問題点が具体的に見えてきます。
自分で解決できないと感じたら、書いたコード(不具合を再現できるものがベスト)と一緒にどこに問題があるのか再度質問してみると良いですよ。

No.1255 2021/03/13(Sat) 19:33:55
ITM_EDITで取得できる項目の選択 / セシール
getitem(id,ITM_EDIT)で取得できる項目を番号で指定するなりしてクリック(選択)したいのですが、方法がわかりません…。
MMVとBTNの低レベル関数では可能とは思いますが、他に方法はあるのでしょうか?

No.1240 2021/03/07(Sun) 09:16:32

Re: ITM_EDITで取得できる項目の選択 / セシール
一応今も以下で思った通りの動作はできているのですが、

getitem(id, ITM_EDIT)

for i = 0 to length(ALL_ITEM_LIST) -1
if ALL_ITEM_LIST[i] = "選択したい文字列" then
getstr(id, i, STR_EDIT, TRUE)
btn(left, click)
endif
next

btnが何とも気持ち悪くお伺いさせていただきました。

No.1241 2021/03/07(Sun) 09:45:54

Re: ITM_EDITで取得できる項目の選択 / stuncloud
任意の値を持つエディットコントロールをフォーカスする関数を書いてみました
思ったよりでかくなった…

・使い方

id = getid("対象ウィンドウ")
print FocusEdit(id, "選択したい文字列") // TRUEなら成功
print FocusEdit(id, "選択したい文字列", 2) // 複数ある場合は順番を指定

// 空のエディットコントロールなら順番指定でうまいことやってください
// ただし順番指定はエディットコントロール全体ではなく
// 該当する値を持つエディットコントロールのみが対象です

print FocusEdit(id, "", n)

// [   ] nが1ならここが選ばれる
// [あ  ]
// [   ] 2ならここ
// [   ] 3ならここ

// 実装
// def_dllは関数の外に書いても大丈夫です
function FocusEdit(parent, text = "", count = 1)
 def_dll SendMessageA(hwnd, long, long, var string):long:user32
 def_dll SetFocus(hwnd):hwnd:user32.dll
 def_dll GetWindowThreadProcessId(hwnd, dword):dword:user32.dll
 def_dll AttachThreadInput(dword, dword, bool):dword:user32.dll
 
 result = FALSE
 for id in getallwin(parent)
  if status(id, ST_CLASS) = "Edit" then
   buffer = format(chr(0), 1024)
   h = idtohnd(id)
   SendMessageA(h, $000D, lengthb(buffer), buffer)
   if buffer = text then
    count = count - 1
    if count = 0 then
     edit = GetWindowThreadProcessId(idtohnd(parent), 0)
     self = GetWindowThreadProcessId(idtohnd(getid(GET_THISUWSC_WIN)), 0)
     AttachThreadInput(edit, self, TRUE)
     result = SetFocus(h) = h
     AttachThreadInput(edit, self, FALSE)
     break
    endif
   endif
  endif
 next
fend

No.1242 2021/03/07(Sun) 15:51:37

Re: ITM_EDITで取得できる項目の選択 / しろまさ
// こんな方法もあります

id = exec("notepad")
SendStr(id, "class位置テスト")
ScKey(id, VK_CTRL, VK_H) // 置換ウィンドウ呼出

idDlg = GetID("置換", "#32770", 2)
hdEdt = GetCtlHND(idDlg, "Edit", 2) // class指定でハンドル取得
idEdt = HNDtoID(hdEdt)
// オブジェクトのDlg内座標(相対座標)を作成
xEdt = Status(idEdt, ST_X) - Status(idDlg, ST_CLX)
yEdt = Status(idEdt, ST_Y) - Status(idDlg, ST_CLY)
MouseOrg(idDlg, 1)
 BTN(LEFT, CLICK, xEdt +7, yEdt +7) // 相対座標クリック
MouseOrg(0)

No.1243 2021/03/08(Mon) 10:44:49
(No Subject) / ななし
初めまして。自動化ソフトを探していてたどり着いたものなのですが、このソフトをVirusTotal無料オンライン スキャナーにかけたところ「Jiangmin Backdoor.Nhopro.i VBA32 TScope.Trojan.Delf」とでまして、バックドアが検出れましたが、感染は大丈夫なのでしょうか?

VectorからDLさせていただいたファイルはuwsc5302.zipです。
作者様が亡くなられているとも書かれていたので作った方には聞くこともできず、ソフトを使用されている方にお尋ねすればわかるかと思い書き込ませていただきました。

ウィルス感染の危険はないのでしょうか?

No.1230 2021/02/28(Sun) 16:57:44

Re: / stuncloud
ひとまず手元の無料版UWSC最終版の各ファイルでハッシュ値等を取ってみました
リリース当時に公式サイトからダウンロードしたもので、かつずっと使っていたのでウィルスの危険はないはずです
ダウンロードしたファイルと比較してみてください
一致していればひとまず安全だと言えるかと思います

Name : RecUws.dll
Version : 5.3.0.0
LastWriteTime : 2017/04/14 10:28:44
SHA256 : C2A3A54131FC0FE5ECD649F54E26BFA7285BA954551317C2078B96D30F23330A
MD5 : DBCAE6150B58C77E039F65CC15020DA9

Name : uwsc.chm
Version :
LastWriteTime : 2017/04/14 10:24:18
SHA256 : 232E5688818BFFD9EBCDFDFC99252A8BBC894E6C584017B8E81F057BE6D23A63
MD5 : 2AD28A29CF2F610797ED123361D94649

Name : UWSC.exe
Version : 5.3.0.2
LastWriteTime : 2017/04/18 12:45:00
SHA256 : 239EB98C44D5E0B8C19CE6ED3CC833196F35AE3AC644687634C8F87A1B168F00
MD5 : C6AD6EF474B01C9E99767C30EB81562A


UWSCは機能の性質上ウィルスのような動きもできる (そういうスクリプトを書けばそうなる) ので
場合によってはウィルス扱いされてもしかたがないのかもしれません

どうしても不安であればzipを展開せず破棄することをおすすめします

No.1232 2021/02/28(Sun) 17:17:13

Re: / ななし
stuncloud様
詳しい内容をありがとうございます。

ええと、自分がDLしてきたファイルの内容はこうでした。

Basic properties
MD5: 4cfd64dcf82368b43022c204d3543fd5
SHA-1: 3da26f1c7a824ea24fa04649dd432a1a8e9e48f7
SHA-256: 88f632e463fd040d207dc26f871fd03d888417795180e7159baf686e6fff3596

Vhash:27109745d38653ebf65c494cc434418f
SSDEEP: 24576:HHSsWwIpJKJ+PVGNM+KuZUxLe3zE1K+LQ34dDJPhkcNFFeKfI/3cCvYSvoIs6C2d:nlaKqcoTK+LQ6DJycNFFeiMLbvol/6
TLSH: T141653398F612FA814A4E653E4336D134A69C01A5FF0FB49270C57E7E274EF21B7E21A4
File type:ZIP
Magic:Zip archive data, at least v2.0 to extract
TrID:ZIP compressed archive (80%)
TrID:PrintFox/Pagefox bitmap (640x800) (20%)
File size 1.47 MB (1538235 bytes)
F-PROT packer:appended, Unicode

History
First Seen In The Wild 2017-04-18 05:23:42
First Submission 2017-04-18 05:24:22
Last Submission 2020-09-04 05:26:11
Last Analysis 2021-02-05 13:35:35
Earliest Contents Modification 2015-07-30 13:06:00
Latest Contents Modification 2017-04-18 12:45:00

Names
uwsc5302.zip
output.123933133.txt
uwsc5302 (1).zip
uwsc5302(3).zip
8d44c5b35f3a930f8f43b061d3d34ae83447c378
XXXuwsc5302.zip

みくらべてみましたが、これはダメみたいな気がしています。
DLできる場所がVectorしかなさそうなのでがっかりです。
他でソフトをDL出来る場所があればいいのですが……。

stuncloud様、相談にお答えいただきありがとうございました。

No.1233 2021/02/28(Sun) 18:29:01

Re: / stuncloud
や、僕は手元にzipがないので中身のexeだとかのハッシュ値を取っています
zipファイルと比較すれば異なるのは当然です
この比較は同一ファイル名でも中身が異なる可能性を示すためのものなので、そもそもぜんぜん別のファイルで比較したら意味ないです
抵抗がなければzipを展開し、中のuwsc.exeだけでもハッシュ値を取って比較してみてください

こんなことしなくてもVectorさんからダウンロードしてるなら特に問題はないはずなのですが
念の為という意味で返信をしました…しかし説明不足すぎでしたね
申し訳ない

No.1234 2021/02/28(Sun) 19:33:21

Re: / ななし
自分の知識不足でお手数おかけして申し訳ありません(汗
中身のexeと比べないと意味なかったんですね。試してみます。

実は書き込みをした後、おもいつきでインターネットアーカイブを使って今はなくなってしまった作者様のDLサイトが見れるか試してみたところ、そこからソフトをDLできまして、そのzipファイルがVectorさんにあるものと同じものでした。

だとしたらあのウィルス検知が誤検知の可能性もあるのか、試しに古いバージョンも片っ端からDLしてファイルごとウィルス検知にかけてみたところ(苦笑)ことごとくトロイとバックドアの検知をされるので、もう気にせず使ってみるしかないかな、と考えていたところです。

丁寧な返信、本当にありがとうございました!

あと、タイトル書き忘れ、申し訳ありませんでした!次の時は気を付けます!

No.1235 2021/02/28(Sun) 20:14:22

Re: / chonyada
参考になるかわかりませんが、社内で効率化のためスクリプトを作成して、同僚にわたすのですが、作成したものは、必ず、セキュリティに引っ掛かります。
ご自分で利用される分にはいいのですが、オフィス等でのご利用には向かないように思っています、Vectorにある多くの自動スクリプトにも、何か別の対策が必要な気がしています。

No.1238 2021/03/01(Mon) 10:25:09

Re: / ななし
chonyada様

親切に情報ありがとうございます。
ソフトは個人利用目的なので会社などで使うことはありません。
多くの人が使っているソフトですし、これで情報漏れが起こっていたのなら大騒ぎになると思うのですが、そういった情報漏れ騒ぎも見当たらなかったので大丈夫かなあと思いつつ使ってみようと思います。
しかし検知されて大丈夫って言われても不安は残るものですね……。

zipの中身確認したところ、uwsc.exeはstuncloud様が書き込んでくださった Name : UWSC.exeの物と数値が一致していましたので一応安心材料にはなりました。

お二方とも、相談に乗っていただいてありがとうございました!

No.1239 2021/03/01(Mon) 17:38:40
圧縮について / chonyada
お世話になります。
スクリプトの圧縮についてお伺いします。
現在、出来るだけ、空白を無くし、関数を多用することで起動が少しでも早くとしていますが、他に圧縮するなど0.1秒でも起動を早くする何か手立てはございますでしょうか、ご教示ください。

No.1229 2021/02/28(Sun) 12:36:30

Re: 圧縮について / stuncloud
今自分で字句解析や構文解析書いてるので

・変数の名前は短いほうがその分字句解析の処理は減る
・連続する空白は詰めたほうがその分字句解析の処理は減る
・同じような構文を複数書くくらいなら関数にまとめたほうが構文解析の処理は減る

くらいのことは言えますが…まぁだからどうしたレベルの誤差だと思われます

ただどうせなら実際試してみたほうが良かろうということで

・test.uws // 小さな関数定義のみ
  procedure p()
  fend
・UwscWebDriver.uws // 巨大モジュール、ただしコンストラクタはコメントアウト

いずれも実行する箇所がないので単純に解析の時間だけで比較ができるんじゃないかな?
ということでPowerShellのMeasure-Commandを10回ずつやってみました
uwsc.exeにそれぞれのスクリプトファイルを渡して実行し
実行時間をMeasure-Commandで計測します
Measure-Command {& 'C:\Program Files (x86)\UWSC\UWSC.exe' C:\test\test.uws}
こんな感じになります

するとどうだ
test.uws: 最短2.8ms、最長33.5ms
UwscWebDriver.uws: 最短2.5ms、最長14.9ms

思った以上に時間にばらつきがありましたね
とはいえこれ単位がミリ秒なのでつまり0.1秒にも満たない誤差なんですよね
そしてそれ以上にUwscWebDriver.uwsが小さなスクリプトより時間がかかるということがない
という点は注目に値します

どういうことかというと、
> 出来るだけ、空白を無くし、関数を多用する
したところで意味ないんじゃないの?という結論が出ちゃいそうなわけですよ…

のでスクリプトの書き方から起動を早くするというのはちょっとむずかしいので
スクリプト自体はのびのび好きなように書くのが良いかな?というお気持ち

じゃあ起動を早くしたい場合どうすんの!
という点ですが、UWSC自身の問題だと思うのでちょっとわかりかねます…
(他の方がなにか妙案を出してくれるかもしれないのでそこに期待ですね)

No.1231 2021/02/28(Sun) 17:00:59

Re: 圧縮について / しろまさ
起動を速くするには・・コードを少なくする! 起動時にチェックが入りますので
なんでもかんでも一つのファイルに機能を詰め込むと遅くなります。
Moduleなどに分けたとしてもCALLすれば結局遅くなります。

あくまで私個人がよくやる方法ですが、メインファイルは監視部とし、
分けられる機能は別ファイルに分け必要な時にExecやShellExecuteなどで処理させます。
これであれば機能部の起動時チェックは後で起こるので初回起動が速くなったように感じられます。

No.1236 2021/03/01(Mon) 09:30:39

Re: 圧縮について / chonyada
stuncloudさん、お忙しい所、ご丁寧な回答ありがとうございました。
体感はさほどでないとのこと、のびのび好きなように書くようにします。
しろまささん、1つにまとめることにこだわっていたのですが、再検討してみます、ありがとうございました。

No.1237 2021/03/01(Mon) 10:14:09
ポップアップ画面の処理について / リキュール
お世話になります。
以前の掲示板が閉鎖後、この掲示板があることを今日知りました。

id、pw 入力後のログイン画面で、下方に「パスワードを保存しますか?」という
ポップアップが表示されます。
表示されるボタンの処理はできるのですが、ポップ画面の右上の「×」で画面を
閉じたいのですが、どうしたらよいのでしょうか。
よろしくお願い致します。

No.1226 2021/02/27(Sat) 17:39:53

Re: ポップアップ画面の処理について / Rayna
>>1226 リキュール さん

そのポップ画面がウインドウなら GetId で ウインドウIDを獲得して
CtrlWin とか ScKey で [ALT]+[F4] とか [ALT]+[Space]+[C] とか [Esc] とかで閉じれます

IE等のポップアップならポップアップにフォーカスの後[Esc]で消えますね

// 右クリックでフォーカスを移す
ClkItem(idWndIE, "このサイトではしない", CLK_BTN Or CLK_RIGHTCLK)


・以下調べてないけどもしかしたら出来るかもしれない事
IEならDOMとか使ったらUI操作じゃなくても閉じれるかも
ChromeとかFirefoxとかChromium EdgeならWebDriverで閉じれるかも

No.1227 2021/02/27(Sat) 20:05:36

Re: ポップアップ画面の処理について / リキュール
Rayna さん、お世話になります。

msgid = HNDtoID(GETCTLHND(id,"DirectUIHWND",2)) //パスワード保存
ifb CLKITEM(msgid,"このサイトではしない",CLK_ACC or CLK_BACK,False)
sleep(0.5)
KBD(VK_ESC)
endif

上記のESCキーで解決しました。
ありがとうございました。

No.1228 2021/02/27(Sat) 23:27:43

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

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

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

Rocket Board Type-X (Free) Rocket BBS