CustomScript

2016年1月28日木曜日

画像ビューアー 「NeeView」1.1 更新しました

  • WPF
画像ビューアー NeeView を 1.1 に更新しました。
縦長ウィンドウでの利便性向上が主な更新です。横長ページの分割機能、スクロール+ページ送りコマンド、が追加されています。
  • 横長ページ分割対応
  • 「スクロール+ページ送り」コマンド追加
  • 「ファイルの場所を開く」コマンド追加
  • ドットのまま拡大するモード追加
  • スケールモード「高さをウィンドウに合わせる」を追加
  • EXIFの回転情報を反映させる設定追加
  • 背景の設定をメニューで行うようにした
  • ページソートの種類を整備
  • 「単ページ表示」「見開きページ表示」を「1ページ表示」「2ページ表示」に名称変更
  • アプリケーション構成ファイルで横長ページ判定用縦横比を指定できるようにした

2016年1月23日土曜日

ファイル検索ツール「RealtimeSearch」1.2 更新しました

  • WPF
ファイル検索ツール RealtimeSearch を 1.2 に更新しました。
利便性の向上が主な変更で、機能に大きな変更はありません。
  • フォルダを検索結果に表示するかを設定できるようにした
  • ファイル名でのソートを自然順にした
  • ポップアップの情報を増やした
  • 処理中アニメーション追加
  • フォルダ選択ダイアログを標準のものに変更

2016年1月14日木曜日

画像ビューアー「NeeView」作ったよ

  • WPF

WPF勉強の成果物(その3)として画像ビューアーを作りました。

NeeView
https://bitbucket.org/neelabo/neeview/wiki/




フォルダ内の画像を本のように閲覧できる画像ビューアーです。
基本機能は一通り実装できてるかな?
  • シンプルなインターフェイス
  • 標準対応画像フォーマット (bmp, jpg, gif, tiff, png, ico)
  • 圧縮ファイル対応 (zip, rar, 7z, lzh)
  • 多重圧縮ファイル対応
  • マウスジェスチャー対応
  • キーカスタマイズ、ジェスチャ設定可能
  • ドラッグによる移動、回転、拡縮
  • 見開き表示モード
  • フルスクリーンモード
  • スライドショー機能
  • Susieプラグイン対応(UNICODEファイル名可)
  • マルチスレッド、先読み対応

2016年1月12日火曜日

PowerShell スクリプトで Hello World

  • Windows10
  • PwoerShell

そろそろ低機能なDOSバッチファイルから卒業したい、ということでPowerShellを触ってみました。 Windows10に標準搭載なので環境は問題無いです。

今回の課題は「"Hello World" を表示する」です。すべてのプログラム言語における最初の一歩です。
しかしこれが思いの外難航しました。

その1,まずはスクリプトファイルを作ろう

メモ帳を開いて以下のコードを書き込み、ファイル名 "test.ps1" で実験用の適当なフォルダに保存します。

ここまでは問題ありません。

さあ、これを実行したいのですが、PowerShellはあの手この手で実行を妨害してきます。挫折しかけます。

その2,ダブクリックで実行しようとして挫折する

.exeや.batならダブルクリック実行余裕なのですが、PowerShellはそうは問屋がおろしません。

最初、コンテキストメニューに「PowerShellで実行する」といったメニューがあった気がしますが、一度テキストエディタで開いてからそれすらも表示されなくなり、ダブルクリックではそのエディタが立ち上がるようになってしまいました。 ならばと既定のアプリ設定で .ps1 拡張子ファイルでPowerShellが立ち上がるようにしようとしたのですが、PowerShellは選択できませんでした。

調べてみたところ、レジストリを触る必要がありそうな気配。
てことで、ダブルクリック実行は諦め、PowerShellのコンソールを開いてそこから実行することにします。

特定のフォルダでPowerShellコンソールを開く方法ですが、エクスプローラーでそのフォルダに移動し、アドレスバーに "powershell" と入力してEnterキーを押せば開きます。ちなみに "cmd" でDOS窓が開きます。

さて、実行だ!

その3,test.p1 を実行しようとして失敗する

test.ps1 のあるフォルダでPowerShellコンソールを開き、スクリプトファイル名を入力して実行しようとします。

PS E:\Work\Labo> test.ps1
test.ps1 : 用語 'test.ps1' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。 名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ test.ps1
+ ~~~~~~~~
    + CategoryInfo : ObjectNotFound: (test.ps1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

実行に失敗します。カレントフォルダに検索パスが通ってないのが原因です。このあたりはUNIXと同じですね。てことで以下のようにします。

PS E:\Work\Labo> .\test.ps1

ですが、まだ動きません。ははは、こやつめ。

その4,セキュリティーに阻まれる

実行できずにエラーが表示されます。

PS E:\Work\Labo> .\test.ps1
.\test.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル E:\Work\Labo\test.ps1 を読み込むことができません。 詳細については、「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ .\test.ps1
+ ~~~~~~~~~~
    + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

PowerShellはセキュアですがその分気軽に使えなくなっています。
セキュリティーポリシーを変更する必要があります。Set-ExecutionPolicyコマンドでインターネット経由でダウンロードしたスクリプトのみ証明書を要求するように変えましょう。
長いコマンドですが、途中まで入力してTabキーを押すと補完してくれるので便利です。

PS E:\Work\Labo> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y

ででーん

Set-ExecutionPolicy : レジストリ キー 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell ' へのアクセスが拒否されました。 既定 (LocalMachine) のスコープの実行ポリシーを変更するには、[管理者として実行] オプションを使用して Windows PowerShell を起動してください。現在のユーザーの実行ポリシーを変更するには、"Set-ExecutionPolicy -Scope CurrentUser" を実行してください。
発生場所 行:1 文字:1
+ Set-ExecutionPolicy RemoteSigned
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

まだだ、まだ終わらんよ

その5,管理者権限が必要だよね

セキュリティー関係を触るのですから一般ユーザでは変更できませんね、はい。 ということで管理者権限でPowerShellコンソールを立ち上げます。

コルタナさんにpowershellを問い合わせると「Windows PowerShell」が候補に出てくるので、右クリックして「管理者として実行」してください。で、先ほどと同じコマンドを入力します。今度は成功するはずです。

エラーなく終了したらこの管理者コンソールは閉じてしまいましょう。

その6,Hello World

元のコンソールに戻って実行してみます。

PS E:\Work\Labo> .\test.ps1
Hello world

ようやく成功!
長かったよ、お疲れ様!