2017年03月12日

wiro2 0.1.8.0.release

wiro2 0.1.8.0.release

http://sana.orz.ne.jp/wiro2/

64bit版を作成
従来の32bit版との調整

64bit版ですが、
アーカイバDLL等の64bit化が進んでいないため非推奨です
ただし、64bit版でしかディレクトリ一覧が参照できないパスがあるため悩ましい所です
FindFirst系の限界なんでしょうかね。。。

また、
GlassBoostモードというのがあるのですが、このモード時の使い勝手を少しよくしてみました

wiro2_sarani_glass_boost.jpg

そのたもろもろ。。。
posted by sanahi at 02:13| 滋賀 | Comment(0) | TrackBack(0) | wiro2 | このブログの読者になる | 更新情報をチェックする

2015年08月30日

api-ms-win-crt-runtime-l1-1-0.dll がない

TortoiseSVNを1.9.0に更新したら
なぜか、wiro2が起動時にエラーになりました

「コンピューターに api-ms-win-crt-runtime-l1-1-0.dll がないため、プログラムを開始できません。」
(略)
notfound_api-ms-win_crt_runtime_l1-1-0_dll.jpg

他のソフトでもチラホラでてるようですね

結論からいうと、VCのランタイムを入れろ、という事らしいです
TortoiseSVNのダウンロードPageに
http://tortoisesvn.net/downloads.html

Missing DLLsという項目があり、
C-Runtime redistributable.
https://www.microsoft.com/en-us/download/details.aspx?id=48145
からVCのランタイムへのリンクがあります

VCのランタイムを入れたらエラーは無くなりました

システムDLLでも更新してくれたんでしょうか?
DLL HELLですか?

wiro2では、
IShellIconOverlay::GetOverlayIndex()のコールでこのエラーが出ていました
このAPIはShell32.DLLにあるようですが、
Shell32.DLLのからapi-ms-win-crt-runtime-l1-1-0.dllへはたどりつけませんでした

api-ms-win-crt-runtime-l1-1-0.dllは
MSVCP140.DLLか、VCRUNTIME140.DLL辺りに含まれるようです
notfound_api-ms-win_crt_runtime_l1-1-0_dll_2.png

IShellIconOverlay::GetOverlayIndex()も、まわりまわってこの辺のDLLを使ってるんでしょうかね?

どこかのサイトでみかけましたが、このランタイムDLLはKBxxxxxxxになってるらしく、
インストールしなくてもそのうちMicrosoftUpdateで更新されるんだとか。。。
posted by sanahi at 22:27| 滋賀 ☔| Comment(0) | TrackBack(0) | wiro2 | このブログの読者になる | 更新情報をチェックする

2015年07月24日

wiro2 0.1.6.0.release

wiro2 0.1.6.0.release

http://sana.orz.ne.jp/wiro2/

チマチマとUpdateしてるので毎回記事にはしてないのですが、
今回は少し実験的な実装をしました

Glassモードです
単なるAlphaBlendingや背景に壁紙をセットするというのではなく、
すりガラス状の上に不透過な文字を描画しているような感じです

wiro2_glass.png

若干の問題点もあるようなないような...

要素技術はOS標準のAlphaBlendingとの重ね合わせなのでAeroとか不要
XPでも表示できるかもしれません
posted by sanahi at 22:09| 滋賀 ☀| Comment(0) | TrackBack(0) | wiro2 | このブログの読者になる | 更新情報をチェックする

2014年12月02日

wiro2 0.1.3.2.release

wiro2 0.1.3.2.release

vector(作者用HPスペース)
http://hp.vector.co.jp/authors/VA015517/wiro2/


Ver 0.1.3.2.release
・コンパイラアップデートによるリコンパイル

・下記脆弱性に対応
Vulnerability Note VU#646748 - Embarcadero Delphi and C++Builder VCL BMP file processing buffer overflow
http://www.kb.cert.org/vuls/id/646748
JVNVU#97910946: Embarcadero Delphi と C++Builder の VCL にバッファオーバーフローの脆弱性
http://jvn.jp/vu/JVNVU97910946/

まぁ、
XE7 Update1 にしたって事です
EXEサイズがどんどん肥大化するなぁ。。。
posted by sanahi at 23:13| 滋賀 ☀| Comment(0) | TrackBack(0) | wiro2 | このブログの読者になる | 更新情報をチェックする

2014年08月24日

wiro2 0.1.3.1.release

wiro2 0.1.3.1.release

vector(作者用HPスペース)
http://hp.vector.co.jp/authors/VA015517/wiro2/


Ver 0.1.3.1.release

・GraphicViewerで新規に開く時、未サポートファイルだった場合にそれ以降も画像を開こうとしないように変更

・Delphi and C++ Builder VCL Library Buffer Overflow 対応
http://support.embarcadero.com/article/44015


関連項目:
Delphi and C++ Builder VCL library Buffer Overflow
http://www.coresecurity.com/advisories/delphi-and-c-builder-vcl-library-buffer-overflow
posted by sanahi at 19:43| 滋賀 ☁| Comment(0) | TrackBack(0) | wiro2 | このブログの読者になる | 更新情報をチェックする

2014年05月20日

wiro2 0.1.1.0.release

wiro2 0.1.1.0.release

vector(投稿時点では申請中)
http://www.vector.co.jp/soft/win95/util/se326598.html

vector(作者用HPスペース)
http://hp.vector.co.jp/authors/VA015517/wiro2/

設定ファイルをUNICODE化したので、既存の設定ファイルは
メモ帳等でUNICODEに変換保存してください。

既存の設定ファイル名は以下
wiro2_[userid].ini
wiro2_[userid].key

とりあえず更新してから、設定フォルダまで移動(AppData保存の場合は、Shift+F8してwiro2へ)して
*.ini,*.keyをメモ帳でUNICODEに変換して、
wiro2再起動すれば良いかと。

他、UAC管理下フォルダへのアクセス周りを強化したつもりですが、中途半端です。。。


Ver 0.1.1.0.release

・設定ファイルをUNICODE化
既存の設定ファイルを使用する場合はメモ帳等でUNICODEに変更保存してください。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
・拡張プレフィックスパスに対応した(つもり)
ただし、削除(ゴミ箱移動)は未対応

・PCA(Program Compatibility Assistant )の介入を阻止

・Shift+F8〜F11に割当追加

・「管理者権限昇格モード」[Ctrl+F12]追加(Vista以降)
「管理者権限昇格モード」時は「ログの背景が黄色」に変わります。
「管理者権限昇格モード」時はファイルオペレーション等で都度、管理者権限昇格が行われます。
ファイルオペレーションは以下の単純処理に制限されます。
コピー
移動
削除
(現状では属性変更ができません)
その他エディタ等も管理者権限昇格してから起動するようになります。

「ちょっとProgram Filesのファイルを変更したい」等でやってみてください。
完全ではないので、
上手くいかない場合はwiro2自体を管理者権限で再起動してください。

・その他ファイルオペレーションアルゴリズムを大幅変更

・更新URLの変更忘れ

・FTPディレクトリ移動時にFTPサーバに "LOGIN FAILED" が出る場合があるバグFIX




以下は技術的なこと
UAC管理下であろうとファイラーはコピーやらできないとマズいだろう
という事で実装に挑んだのですが。。。

当初、UAC管理下フォルダにかかわらずVista以降の全てのファイルオペレーションをIFileOperationに切り替えようとしていました
IFileOperationを使うと必要に応じて勝手に管理者権限昇格UIが出るから楽です
進捗もIFileOperationProgressSinkで「比較的」楽に実装できます
色々試したのですが、IFileOperationはバッチ処理用途に向いてる気がします

wiro2の様な1ファイルずつコピーして衝突したらファイル名を「任意に」変更等の様な事が難しいようです

wiro2では、
1.IFileOperation::CopyItem
2.IFileOperation::CopyItem
3.IFileOperation::CopyItem
4.IFileOperation::PerformOperations
ではなく、
1.IFileOperation::CopyItem -> IFileOperation::PerformOperations
2.既にファイルが存在する -> ファイル名任意変更 or 上書き or なにもしないをユーザーに選択
3.IFileOperation::CopyItem -> IFileOperation::PerformOperations
4.IFileOperation::CopyItem -> IFileOperation::PerformOperations
とする必要があります

権限昇格がない場合はうまくいくのですが、途中に権限昇格があると
1.IFileOperation::CopyItem -> IFileOperation::PerformOperations
2.権限昇格
3.IFileOperation::CopyItem -> IFileOperation::PerformOperations -> 致命的なエラー(0x8000FFFF)
となってしまいまともに動作しません(Win8)

仕方がないので、
COM Elevation MonikerでIFileOperationを生成して上記処理をさせています
最初に管理者権限昇格させておくと問題ないようです
これが「管理者権限昇格モード」です
(「管理者権限昇格モード」がOFFの場合は今まで通りの::CopyFile()等のAPIで処理しています)

ただし、この方法だと、IFileOperationProgressSinkが使えないので、
進捗が別窓に出すしかなくなってしまっています
また、ファイルのプロパティ周り(属性、タイムスタンプ等)の変更のやりかたがイマイチわかりません

と、「管理者権限昇格モード」は現状では中途半端な実装となっています
単純コピーとか削除くらいにしか使えないかも。

エクスプローラみたいに必要に応じて権限昇格?させたいのですがなかなか難しいですね。。。

そもそもエクスプローラは権限昇格というより「シールドアイコン付き続行ボタン」だけで権限昇格UIがでなかったようなきがする
どうすればアレができるのかなぁ。。。_no
posted by sanahi at 01:36| 滋賀 | Comment(0) | TrackBack(0) | wiro2 | このブログの読者になる | 更新情報をチェックする

2014年05月11日

wiro2 0.1.0.0.release

とりあえずですが、公開です。
vector(投稿時点では申請中)
http://www.vector.co.jp/soft/win95/util/se326598.html

vector(作者用HPスペース)
http://hp.vector.co.jp/authors/VA015517/wiro2/
今時ディスク容量5MBとか。。。

起動時に権限昇格していないと、UAC環境下フォルダ(C:\Program Filesxxxtか)
でのファイルオペレーションがエラーになります
これは、今後何とかしたいと思います
(IFileOperationあたりで。。。。)
posted by sanahi at 23:20| 滋賀 ☁| Comment(0) | TrackBack(0) | wiro2 | このブログの読者になる | 更新情報をチェックする

2014年04月27日

wiro2 0.0.1.0.beta

wiro2を作成中です
まだまだbeta版です
http://sana.orz.ne.jp/wiro2/beta/beta.html

主な内容は
wiro(ANSI版)

wiro2(UNICODE版)
です。
アーカイバに関してはUNICODE版が実装されていればそちらを優先するような実装にする予定です。
他、FTPファイル転送の2GB超え等

UAC関連はまだまだです
とりあえずはProgramFiles以外のフォルダであればある程度動きます

一応、更新プログラムは実装したので、更新URLを以下に変更しておけば、
wiro同様メニューから更新ができます
http://sana.orz.ne.jp/wiro2/beta/beta.html

その他既知の問題点は
http://sana.orz.ne.jp/wiro2/beta/history.txt
に記述してあります
FTP関連が難しいなぁ。。。

ちなみにコンパイラはC++BuilderXE5です。
ラベル:wiro2
posted by sanahi at 05:26| 滋賀 | Comment(0) | TrackBack(0) | wiro2 | このブログの読者になる | 更新情報をチェックする

Remarks
記事中にソースコードが含まれる場合、ソースコードの再利用、改変、「オレのものにする」等は自由ですが、
ソースコードを利用して起こった問題は一切責任を負いません。(自己責任での利用となります。)