8 5月

TascherVer.1.64公開

マウスの移動とホイールの回転やMigemoインクリメンタルサーチでウインドウを切り替えるTascher Ver.1.64を公開しました。

○Ver.1.64 – 2021/05/08
・PropVariantToString()を動的リンクするように。(Special Thanks!:kiyohiro様)
・[仮想デスクトップ]-[アクティブな仮想デスクトップのウインドウのみ表示]が有効な場合、強制終了していた不具合を修正。
・プロセスのコマンドライン取得処理でエラーが発生するとメモリリークしていた不具合を修正。
・「選択項目にカーソルを移動」で選択項目が先頭か末尾の場合、移動しない不具合を修正。
・Windows10環境でWin+Tabと同じ順番(最前面属性や最小化状態に関係なく表示順)となるように。
・モーダルダイアログ等が表示中であってもそのオーナーウインドウをリストアップするように。
・ウインドウの切り替え方法を変更。
・WinUIアプリに対応。
・設定ダイアログをタブ表示からツリー表示に変更。
・設定のデザインでフォントを変更すると、設定をキャンセルしても反映されてしまう不具合を修正。
・インクリメンタルサーチ文字列の表示をツールチップから子ウインドウに変更、文字色、背景色を設定できるように。
・インクリメンタルサーチの表示文字列を設定できるように。
・設定のうち、全般にあったインクリメンタルサーチ設定を分離。
・[デザイン]で背景色の終了色を設定できるようにし、グラデーション表示ができるように。
・隠し設定[ListView]DialogFrameをWS_EX_WINDOWEDGE|WS_THICKFRAMEの付加ではなく、リージョンの描画に変更。
・隠し設定[ListView]DialogFrameColorを追加。
・[デザイン]に「DirectWrite設定」を追加。ウインドウリストをDirectWriteで描画できるように。カラー絵文字にも対応。
・設定「ウェブタブブラウザ」を追加。ウェブブラウザタブの列挙ができるように。
・[全般]-[表示項目]に「ウインドウ」「ウェブタブブラウザ」を追加。
・ショートカット/マウスのコマンドに「itemtypeメニュー」「windowitem」「webbrowsertabitem」を追加。
・[コマンド]-[引数]にプロセスID「%P」URL「%U」、タブID「%I」を追加。
・[情報を表示](info)でプロセスIDを表示するように。
・[コマンド]-[引数]で連続する置換文字が2回目以降置換されない不具合を修正。
・隠し設定[ListView]UWPAppNoBackgroundColorを追加。
・[全般]-[動作]-[サムネイルを表示]を削除、[高度な設定]からサムネイル関連の設定を[全般]へ移動。
・隠し設定[MouseClipCursorMode][MouseClipCursorTime][HotKeyClipCursorMode][HotKeyClipCursorTime]を[高度な設定]に移動。
・隠し設定[LeftCornerDistance][RightCornerDistance][TopCornerDistance][BottomCornerDistance]を[表示]に移動。
・対象ウインドウがWS_DISABLEDであっても操作できるように。
・他プロセスのコンテキストメニューやシステムメニュー表示中の場合、ウインドウの切り替えができない場合がある不具合を修正。
・Tascherのメニュー表示中に選択項目を変更した場合、メニューを非表示にするように。
・[マウス]で設定できる組み合わせにチルトホイール(マウスホイール左/右)を追加。
・[表示]-[マウスの移動][ホットキー]に[フルスクリーン時は無効]を追加。
・コンパイラをMicrosoft Visual Studio Community 2019 Previewに変更。プラットフォームツールセットも32bit版はv141_xp、64bit版はv142に変更。
・列挙するウインドウ数が多くスクロールが発生する場合、サムネイル表示位置がスクロールによって変動してしまう不具合を修正。
・[全般]-[表示項目]に「アイコンの余白」を追加。
・ウインドウリスト表示のデザインから下線と打ち消し線を削除。
・[全般]-[表示項目]に「大きなアイコン(48×48)」表示を追加。
・管理者権限のプロセス名を表示できるように。
・一部ストアアプリのアイコンが取得できない不具合を修正。
・UWPアプリではない場合にアイコンの取得をウインドウからではなく実行ファイルから行うことで一部ウインドウのアイコンが表示されない不具合を修正。
・隠し設定[ListView]IconFromWindowを追加。従来通りウインドウから取得します。
・[マウス]に「カーソル位置にメニューを表示」を追加。
・列挙するウインドウ数が多く表示数を制限している場合において、インクリメンタルサーチの結果がモニタサイズ以下だったとき、制限せずそのまま表示されてしまう不具合を修正。
・XP環境でcopynameやinfoで取得できるプロセスファイル名をデバイス名ではなくドライブ名で表示するように。
・アイコン取得に時間を要した場合、強制終了していた不具合を修正。
・高DPI環境に一部対応(Per Monitor V2)。ただしマルチモニタ環境や、そもそも高DPIのディスプレイではテストできていません。
・設定ダイアログのフォント設定やテキストサイズを環境に合わせて変更するように。
・コマンド「reset」でアイテムが1つであっても確定しないように。
・[コマンドメニュー]を[メインメニュー]に名称変更。

今回も見た目はあまり変わっていませんが、色々と機能が増えていたりします。

Tascher Ver.1.64

ウインドウの列挙方法を変更

Windows10環境において、Ver.1.63まではウインドウが最小化されていても最前面表示であれば先頭に列挙されてしまう仕様でしたが、
1.IApplicationViewCollectionで列挙
2.IApplicationViewのGetLastActivationTimestamp()で表示タイムスタンプを取得しソート
で解決しました。

なお、これらのインターフェースは公式ドキュメントがないため、ジェット氏のTipsを参考にさせていただきました。
また、ビルドによってIIDが異なるためレジストリから取得するようにしています。

ウェブブラウザタブの列挙に対応

↑の方法で列挙することで、Microsoft Edgeのタブも列挙できるようになりましたが、切り替え方法が分からず…。
(プロセスがexplorer.exe、クラスがWindows.Internal.Shell.TabProxyWindow)

そこで、Chrome DevTools Protocol(CDP)を使用する方法でタブの取得や切り替えに対応してみました。

☆CDPでタブを切り替えてみるテスト

1.ブラウザをremote-debugging-port付きで起動し、タブの一覧を取得。

msedge.exe –remote-debugging-port=9222
curl http://127.0.0.1:9222/json/list

2.タブ等の情報が出力されます。

{
“description”: “”,
“devtoolsFrontendUrl”: “/devtools/inspector.html?ws=127.0.0.1:9222/devtools/page/9E15D440688EB1F99042F1C35B7D7533”,
“faviconUrl”: “https://~”,
“id”: “9E15D440688EB1F99042F1C35B7D7533”,
“title”: “~”,
“type”: “page”,
“url”: “https://~”,
“webSocketDebuggerUrl”: “ws://127.0.0.1:9222/devtools/page/9E15D440688EB1F99042F1C35B7D7533”
},

3.一覧の中のidを使用し、アクティブ化

curl http://127.0.0.1:9222/json/activate/9E15D440688EB1F99042F1C35B7D7533

で切り替えることができます。
※切り替えの前にAllowSetForegroundWindow()しておかないと点滅するだけで切り替えができないので注意です。
現在のところ、Google ChromeとMicrosoft Edgeで動作確認をしています。
我らがMozilla FirefoxはCDPではなくRemote Debugging Protocol (RDP)として実装しているようですが、activateできませんでした。

DirectWrite対応

環境にもよりますが、スクロール描画がスムーズになります。
なお、LVS_OWNERDATA|LVS_OWNERDRAWFIXEDなリストビューでお作法に従いWM_DRAWITEMで描画しようとすると、BeginDraw()/EndDraw()が遅いため、WM_PAINTで描画する必要がありました。

インクリメンタルサーチ文字列の表示をウインドウ化

インクリメンタルサーチ文字列の表示をツールチップから子ウインドウに変更しました。
文字色、背景色、フォントが指定できるようになりました。
加えて表示文字列の設定もできるようになりました。

高DPI環境に一部対応

Per Monitor V2に対応したつもりです。
ただしマルチモニタ環境や、そもそも高DPIのディスプレイではテストできていません…

19 1月

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.19.00.00.03公開

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.19.00.00.03を公開しました。

○Ver.19.00.00.03 – 2021/01/19
・SevenZipFindFirst()で設定したワイルドカードがSevenZipFindNext()で反映されない不具合を修正。(Special Thanks!:HotKeyIt様)

HotKeyIt氏指摘の不具合を修正しました。

22 8月

TascherVer.1.63公開

マウスの移動とホイールの回転やMigemoインクリメンタルサーチでウインドウを切り替えるTascher Ver.1.63を公開しました。

○Ver.1.63 – 2020/08/22
・インクリメンタルサーチで絞り込むとサムネイルが選択中のウインドウにならない不具合を修正。
・Migemo検索を開始するまでの時間の初期値を30に変更。
・ウインドウを透過させる「opacity0」~「opacity100」「opacitytoggle」を追加。
・最背面表示する「background」を追加。
・マルチモニター環境で、カーソルのあるモニターにTascherのウインドウを表示できるように。(Special Thanks!:razgriz13様)
・マルチモニター環境で、画面端の判断をプライマリモニターだけでなく、モニター全体で判断できるように。(Special Thanks!:razgriz13様)
・表示用ホットキーでWindowsキーが使えるように。(Special Thanks!:涼様)
・設定から「タスクバー相当の表示」を削除。
・設定から「取得したアイコンをキャッシュ」を削除。
・設定から「ウインドウにフレームを表示」を削除。(Tascher.cfgの直接編集では対応可能)
・設定から「候補のウインドウが1つなら確定」遅延時間」を削除。(Tascher.cfgの直接編集では対応可能)
・設定から「Migemo検索を開始するまでの遅延時間」を削除。(Tascher.cfgの直接編集では対応可能)
・[表示方法]-[マウスの移動][ホットキー]設定に「選択項目にカーソルを移動」を追加。
・[表示方法]-[共通]-[「選択項目にカーソルを移動」が有効なら表示時に移動]を追加。
・設定ダイアログを閉じた時、最小化している最前面属性を持つウインドウがアクティブになる不具合を修正。
・ウインドウを切り替えた時に最前面属性が解除されてしまう不具合を修正。
・D&Dの判定方法を変更。
・[マウス]で設定できる組み合わせに中央クリックやX1/X2クリック等を追加。(Special Thanks!:Jun様)
・[コマンド]を追加。追加したコマンドはメニュー、[ショートカットキー]、[マウス]で選択できるようになります。(Special Thanks!:Jun様)
・[高度な設定]-[サムネイル]に「表示位置」を追加。
・[表示方法]-[マウスの移動]に「表示までの時間」を追加。
・UWPアプリで最小化されている場合のウインドウの特定方法を変更。
・「MMHook.dll」を廃止。RawInputで処理するように。
・ウインドウの切り替え方法を変更。
・「マウスホバーで選択」が「マウスアウトで確定」が有効でないと機能しない不具合を修正。
・隠し設定にカーソルを非表示までの時間を追加。
・サムネイルサイズをオリジナルで表示できる設定を追加。(thumbnailoriginal)
・[表示方法]-[マウスの移動][ホットキー]設定に「カーソルを移動しない」「カーソルを○○へ移動」を追加。
・隠し設定にダブルクリック判定時間及びクリック+ホイール判定時間を追加。
・表示・非表示を繰り返すと重複してアイテムを追加してしまう不具合を修正。
・隠し設定にマウスの移動表示及びホットキー表示時のカーソル位置マージンを追加。
・[全般]-[管理者権限で起動]を追加。
・ドラッグ中にホットキー表示でウインドウ外だとタイムアウト確定してしまう不具合を修正。
・ドラッグ中だとマウスホイール操作ができない不具合を修正。
・migemo.dllの辞書ファイルをmigemo.dllがあるディレクトリから取得するように。
・Windows8以降の環境で「自動起動する」設定でも起動しない不具合を修正。
・切り替えてカーソルをウインドウ中央へ移動する「centercursor」を追加。
・隠し設定にウインドウリスト非表示の際はMigemoを解放するオプションを追加。
・「デスクトップ」を表示する方法を変更。
・[情報を表示](info)でプロセスが管理者特権かどうか表示するように。
・隠し設定にマウスカーソルの移動範囲を一定時間制限するオプションを追加。
・AND検索を行う「and」を削除。インクリメンタルサーチ中であれば設定しなくともスペースでAND検索するように。
・ウインドウリスト上ではIMEを無効にするように。
・インストーラの配布を中止。
・二重起動であれば元のTascherのウインドウリストを表示するように。
・「2番目にアクティブなウインドウを選択」で2番目にアクティブなウインドウがなければ先頭のウインドウを選択するように。
・[高度な設定]-[マルチモニタ]-[表示位置][アクティブモニタのウインドウのみ表示]を追加。
・アクティブモニタにウインドウを移動する「movetoactivemonitor」を追加。
・指定モニタにウインドウを移動する「movetomonitor」を追加。
・プライマリモニタ以外ではウインドウリストの高さの調整ができていなかった不具合を修正。
・[表示方法]-[マウスの移動]-[モニタごとに画面端を判定]を追加。
・画面中央にウインドウを移動し表示する「center」を追加。
・[仮想デスクトップ]-[アクティブな仮想デスクトップのウインドウのみ表示]を追加。
・「情報を表示」の処理方法を変更、コマンドラインが一度目は表示されない不具合を修正。
・隠し設定に画面端と判断する端からの距離を指定するオプションを追加。
・表示後すぐの左クリックが効かない場合がある不具合を修正。
・ウインドウタイトルの取得タイミングを変更、アイコン・ウインドウの取得を別スレッド化。
・ウインドウ切り替え方法の変更。別スレッド化。

見た目はあまり変わっていませんが、色々と機能が増えていたりします。

好きなコマンドを実行できるようになっていたり、

マルチモニタにちょっとだけ対応したり、

サムネイル表示位置をちょっとだけ変えることができたり、

あと選択項目にカーソル移動できたりとかできるようになりました。
「MMHook.dll」も不要になりました。
ちょっとだけマルチスレッドにもなりました。
Windows10の仮想デスクトップ対応にもチャレンジしました。(完全ではないかもです)

ダウンロードはこのへんから。

22 8月

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.19.00.00.02公開

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.19.00.00.02を公開しました。

○Ver.19.00.00.02 – 2020/08/22
・4,294,967,295バイトを超える出力に対応したSevenZipExtractMemEx()を追加。(Special Thanks!:tenteko様)
・SevenZipExtractMem()/SevenZipExtractMemEx()でARCEXTRACT_BEGIN(0)及びARCEXTRACT_INPROCESS(1)も送出するように。(Special Thanks!:tenteko様)
・SevenZipExtractMem()/SevenZipExtractMemEx()でディレクトリを作成してしまう不具合を修正。(Special Thanks!:tenteko様)
・ソリッド書庫等の解凍時、実際に解凍せずスキップするファイルの処理中もプログレスバーの更新や、コールバック関数へメッセージの送信等をするように。
なお、スキップファイルの処理中はARCEXTRACT_SKIP(5)となります。(Special Thanks!:tenteko様)

SevenZipExtractMem()だと4GBを超える出力ができないため、対応したSevenZipExtractMemEx()をまた勝手に追加しました。
ほか、ソリッド書庫等の解凍時、実際に解凍せずスキップするファイルの処理中もプログレスバーの更新や、コールバック関数へメッセージの送信等をするようにしました。

7-Zipそのものの更新はありません。

18 8月

reces Ver.0.00r34b公開

reces Ver.0.00r34bを公開しました。

●(暫定)開発履歴
○Ver.0.00r34b – 2019/08/18
・再圧縮時に「/oor」でリネーム処理があった場合、処理後削除ができなかった不具合を修正。(Special Thanks!:通りすがりの人様)

○Ver.0.00r34a – 2019/02/17
・7-zip32.dll及びunrar32.dllで処理する書庫ファイルの結合処理をreces側で行なわないように。
・lzh等一部分割ファイルの処理が行えない不具合を修正。
・「~.part1.rar」及び「~.rar」「~.r00」に関する処理を追加。処理後削除等が正しく処理できるように。(Special Thanks!:通りすがりの人様)

foo.zipが存在する状態で
reces /mr /oor /d foo.rar
すると「foo_1.zip」が作成されますが、その際「foo.rar」が削除されない不具合を修正しました。
自動リネームが有効の場合処理後削除を行わない処理としていました。

広告