某PCショップ店員の覚書

勤務中に作成したプログラムやスクリプトのまとめ

自作ツール「AGST」をFormアプリケーションからWPFアプリケーションにコンバートした件

以前私が製作し、共有していた自動設定ツール「AGST」をFormアプリケーションからWPFアプリケーションに変更しました。
その際、ただWPFに変換するのもつまらないと思い、MaterialDesignを使ってモダンUIを実装しました。

githubリポジトリは下記です。
github.com

それと、C#の勉強もしたいと常々思っていたのでC#でも同じものを製作しました。
github.com

ついでにタイトルバー左側にある吹き出しマークをクリックすると私のTwitterアカウント、githubアカウント、Discordアカウントが表示される機能も実装してみました。

機能的には変わりませんが、C#に慣れていないので私が把握していないバグがC#版にあるかもしれません。
もし使われる際はその点ご留意して頂いた上でお使いください。



PowershellでSeleniumを扱う Ver2

私のブログのアクセス集計を行った所、以下の記事が大変読まれているようでした。
saica94.hatenablog.com

この記事を書いた時は下準備が大変でしたが、Powershell向けに公開されているモジュールが存在しており、そちらを使ったほうがかなり楽に操作できるので
今回はその解説となります。
※この解説で使用するブラウザはGoogle Chromeです。

モジュールのインストール

まず、Powershell上に下記のコマンドを入力してください。

Install-Module Selenium

たったこれだけでSeleniumを扱う下準備が整います。
なお、扱うブラウザのバージョンとWebDriverのバージョンが合致していないと動作しないので必ず合致させるようにしてください。
WebDriverのダウンロードはこちらから

指定したブラウザを起動する

# Chrome
$Driver = Start-SeChrome

# Edge
$Driver = Start-SeEdge

# FireFox
$Driver = Start-SeFirefox

# ID
$Driver = Start-SeInternetExplorer

# -Headlessオプションでブラウザ非表示となる
$Driver = Start-SeChrome -Headless

指定URLへアクセスする

Enter-SeUrl "$URL" -Driver $Driver

エレメントの取得

$Element = Find-SeElement -Driver $Driver -Id "<ID>"
$Element = Find-SeElement -Driver $Driver -ClassName "<ClassName>"
$Element = Find-SeElement -Driver $Driver -TagName "<Tag_Name>"
$Element = Find-SeElement -Driver $Driver -XPath "<XPath>"
エレメント取得処理がタイムアウトになる時間を設定する
$Element = Find-SeElement -Driver $Driver -Wait -Timeout 10 -Id "btn"

取得したエレメントに対する操作

キー入力
# 通常文字列
Send-SeKeys -Element $Element -Keys "<strings>"
# 特殊文字
Send-SeKeys -Element $Element -Keys "{{ENTER}}"
エレメント or ボタンをクリックする
$Element = Find-SeElement -Driver $Driver -Id "btn"
Invoke-SeClick -Element $Element

# or
$Element = Find-SeElement -Driver $Driver -Id "btn"
$Element.Click()

スクリーンショットの撮影

$SS = Invoke-SeScreenshot -Target $Driver
Save-SeScreenshot -Screenshot $SS -Path .\test.png

終了する

Stop-SeDriver -Driver $Driver

このコマンド群の組み合わせでほとんどのブラウザ操作は自動化できます。
更に詳細なコマンドレットが知りたい場合は、下記のページを参照してください。
github.com

Windows 11 KB5023706を適応した環境にてNVMe SSDのパフォーマンスが低下

Windows 11 KB5023706を適応した環境でNVMe SSDを使用しているとRead Writeの速度が低下するようです。
実際、私の環境でもプチフリが頻発していましたが、アンインストールすることにより解決しました。

Powershellを愛してやまない私なのでこのKB5023706をPowershellからアンインストールしちゃいましょう。

Set-ExecutionPolicy RemoteSigned -Scope Process -Force

wusa /uninstall /kb:5023706

確認ダイアログが表示されるので[はい]を押してアンインストール。
アンインストール完了後はパソコンを再起動。
以上でKB5023706のアンインストールが完了します。

Tanked my SSD nvme reading and writing speeds, as A LOT. Went from 7000 to 3000, sometimes 1000 using the balance energy profile in my Legion 5 2021. Just uninstalled the cumulative update, and my SSD is reaching the 7000 read speed again, and Windows is snappy again. So there’s a huge problem with this one

SSDのnvmeの読み込みと書き込み速度が大幅に低下しました。Legion 5 2021のエネルギーバランス・プロファイルを使用すると、7000から3000時には1000になりました。累積アップデートをアンインストールしたところ、SSDの読み取り速度が再び7000に達し、Windowsも再びキビキビ動くようになりました。つまり、これには大きな問題があるのです。

なお、広範囲で発生している問題ではないようなのでこの処理をしたからといって必ずしもパフォーマンスが元に戻る保証はありません。
また、上記スクリプトを使用し発生した如何なる問題も私は責任を負いません。
自己責任を了承の上お試しください。

Auto Gaming Setting Tool をアップデートした件 -ver2.2.2

待ってくださった方がいるかどうかはわかりませんが、お待たせしました。
Auto Gaming Setting Tool をアップデートしました。
以前の記事に書いた通り、まずはGoogle Chromeをインストールするかどうかが選択できるようになりました。
次に、変更を適応するオプションをユーザーが選べるようにもなりました。
そして管理者権限で起動されていない時はダイアログを表示し、そのまま動作を停止していましたが今回からは管理者権限で起動しなおす事も可能となりました。
表示されるダイアログの指示に従ってください。


Windows 11環境だと全てのオプションが表示されますが、Windows 10環境だと表示されるオプションが減ります。
 これはWindows 11環境だと意味のある変更が、Windows 10環境だと意味を成さないものがあるためです。

なお、デフォルトは私オススメの設定となっております。
Windows 11をお使いの方にはぜひ試してみてほしいです。

ダウンロードは下記から

Release AGST Ver2.2.2 Release · saica94/agst · GitHub

ページ下部にある「AGST-ver2.2.2.zip」をダウンロードしてください。
また、アンチウイルスソフトによってはブロックされてしまう可能性があるので、その場合は例外リストに追加してください。

今後のアップデートなどは未定となっておりますが、何か良いアイデア等あれば教えてください。
以上です。

Auto Gaming Setting Tool をアップデートした件 -ver1.1.2

実はちょっと前にこっそりと自作ツールの「AGST.exe」をVer1.1.2にしました。
更新内容は最近はやりのダークテーマを実装したのと、管理者権限以外での起動ができなくなりました。
ダークモード実装、と言うよりかはデザインの変更で以前の白背景は無くなりました。
こんな感じ↓

そして、次のver1.2.2では以下の機能追加を予定しています。
Google Chromeをインストールするかどうか選択できるように
Windows 11環境でファイルを右クリックした際のメニューをWindows 10仕様に戻す
・ウィンドウを上部に移動させた際のスナップ機能を一部無効化

開発自体は完了していて、動作確認も済んでいるので近日中(具体的には1週間以内)に公開できるかとは思います。
それまでお待ちいただければと思います。

それでは。

AGST -ver1.1.2
github.com