「Swindom」のVersion 4.1.0 betaを公開しました。
今回は.Net 5から.Net 6への変更が主になりますが、変更なども多くあります。
変更内容などを一部ですが紹介します。
- バージョンの仕様を変更。
以前はバージョン番号「1.2.3」の一番最後の番号が「0」以外の場合にベータ版としていましたが、バージョン番号に「-beta」を含んでいる場合はベータ版に変更しました。
以前はVisual Studioで.Net Frameworkを使用して開発していましたが、「-beta」などの数値以外の文字を含めることができなかったので (方法はあったかもしれませんが)、一番最後の番号でベータ版の判定に使用していました。
.Net 5に変更してからは含めることができるようになりましたが、他を優先していたので変更が遅れました。
- ディスプレイの情報を取得するタイミングを変更。
ディスプレイの情報はウィンドウの位置 (「%」で指定している場合はサイズも含む) の変更などで使用しています。
以前は必要な時に毎回取得していましたが、情報を手動で更新するまでその情報を使用するように変更しました。
情報を取得する処理は負荷が高いので、不便になる場合がありますが、負荷軽減の為に手動での更新に変更しました。
このソフトウェア「Swindom」が実行中に、モニターを接続したり接続を切る、解像度を変更する、などを行った場合に手動で更新する必要がありますが、頻繫に変更することはないと思うので、影響はほとんどないと思います。
このソフトウェアのウィンドウを表示した場合は自動で更新されます。
- 「クライアントエリアを対象とする」を有効にしている場合、2回処理を有効にしていなくても2回処理するようにした。
メニューバーはクライアントエリアには含まれないので、「クライアントエリアのサイズ + ウィンドウの枠とタイトルバーと処理前のメニューバーのサイズ」で計算しています。
処理前に処理後のメニューバーのサイズを知ることができないので、メニューバーの段数が変更になった場合にサイズも変更になります。
メニューバーがなくても無条件で2回処理するようにしています。
- 「ウィンドウが表示された時に画面の中央に移動」を削除。
端に表示されるよりも中央に表示されたほうが見やすいので、あったら良いんじゃないかなぁと思って機能を追加していました。
負荷を改善できなかった、スタートメニューも処理されていた (対策をすると更に負荷が増える(負荷は小さいですが))、などが削除の理由です。
低負荷が最優先なので、この機能で負荷が高いのは良くないと判断しました。
中央に表示させたい場合は、少し手間にはなりますが、ホットキーで中央に移動させることができます。
- 「ウィンドウが画面外の場合は画面内に移動」の自動処理を削除。
稀に何らかの原因で画面外にウィンドウが出てしまう場合があります。ソフトウェアのバグが原因の場合もあります。
ウェブサイトに埋め込まれている一部のマイニング機能は、ブラウザの別ウィンドウを画面外に表示して気づかれにくくしているものもあるようです (今はブラウザ側で対策されていると思いますが)。
これらのことが理由で機能を追加していました。
負荷を増やしてまで自動で処理させる必要はないと判断したので削除しました。
Windowsの機能を使用することで画面内に移動させることはできますが、操作が少し分かりにくく、複数の操作をする必要があり面倒なので、システムトレイアイコンのメニューから画面内に移動する機能は残しています。
- 「ホットキー」の「XとY座標を移動」を削除。
左上と右下には移動できましたが、左下と右上には移動できませんでした。
左下と右上に移動できるようにしてもよかったのですが、設定項目が増えて使いにくくなると判断したので削除しました。
この機能は疲れてる状態だったので何も考えずに追加していました。
疲れてるなら休まないとダメですね。
- ファイル名の取得可能文字数を増やした。
タイトル名、クラス名、ファイル名、の取得には.NETではなくWindows APIを使用しています。
これらの情報は、取得する前に予め保存しておくためのメモリを確保しておく必要があります。
タイトル名は文字数を取得する機能が用意されていて、クラス名は最大文字数が決まっていて多くはないので問題ありません。
問題なのはファイル名です。文字数を取得する機能が用意されていないですし、文字数が少なかったり多かったり...。
以前は小さすぎず大きすぎないサイズで確保していました。サイズは固定なのでファイル名 (パス) の文字数が少ない場合は
無駄に多く確保していることになりますし、ファイル名の文字数が多い場合は確保していたメモリでは足りずに途中までの
ファイル名になっていました。
確保するメモリサイズを大きくしても良いのですが、それだと負荷が増えてしまいます。
そこで、最初は少なくメモリを確保して、足りない場合は増やして再取得を繰り返すようにしました。
確保したメモリは次に取得する時に再利用するので、これらの処理の負荷は減っています。
ただし、20000文字を超えた場合は再取得しないようにしています。
- .Net 5から.Net 6に変更。
Visual Studio 2022で開発しているのですが、この変更でこうした方が良いよなどを大量に言われるようになったので、その修正に時間がかかってしまいました。
.Net 5から.Net 6に変更したことでC#のバージョンも変更になっています。
廃止された機能や非推奨になった機能、推奨されている機能や記述、などの変更があります。
これらの変更や修正が大変でした。
まだ警告は残ってますが...。警告は残っていても問題ありません。
これからについて。
不具合の修正は優先しますが、要望の機能を追加する予定です。
負荷軽減も予定しています。
Comentarios