2011年7月28日木曜日

TIF/TIFFファイルの編集を支援するJ TIFF Editor 3

JTIFEdit3
TIF/TIFFファイルの編集には、Imaging(Windows 2000等に付属)や、Microsoft Document Imaging(Office 2003等に付属)に、大変お世話になったという経験はございませんか。

ページの入れ替え・回転を支援いたします、オープンソース対応の簡易なTIFF編集ソフトがございます。

Windows XP/Vista/7版:入手は、こちらから。


次のような些細な特徴が有ります:

☆ 入れ替え: ページを入れ替えできます。

☆ 回転: ページを左や右に直角回転できます。

☆ 削除: ページを削除できます。

☆ メール送信: お使いのメーラー(MAPI)を立ち上げて、ページを添付できます。

☆ FreeImageライブラリを採用しています。(GNU GPL ライセンスで受入)

☆ ページのプレビュー表示をON・OFF切り替えできます。

ソースコードを閲覧して頂く事ができます:Source Browse

2011年7月20日水曜日

共有フォルダの移動・名前の変更・削除を制限できるかもしれないNoMoveFolder

ファイルサーバに保存しています共有フォルダ。

知らない間に、勝手に移動されたり、削除されたりして、大変な経験をなされたことはございませんか。

NoMoveFolderを利用することで、条件付きで制限することが可能です。

但し、これは魔法のような品では有りませんので: 動作の仕組みや、制限を正しく理解した上でご活用ください。

動作の仕組み:
  • ICopyHookという仕組みを利用します。
    Windows エクスプローラで、フォルダの移動・コピー・削除・名前の変更をする際に問い合わせする仕組みで、許す・許さないを決定できる仕組みです。
  • NoMoveFolderは、特定ファイルの有無を見て、フォルダ操作の不許可を決定します。
    ".NoMove"というファイルが入っていたら、そのフォルダを移動させない。
    ".NoRename"というファイルが入っていたら、そのフォルダの名前を変更させない。
    ".NoDelete"というファイルが入っていたら、そのフォルダを削除させない。
制限:
  • 共有フォルダを使用するすべてのパソコンに導入しないといけません。
    例:出入り業者様が持ち込んだパソコンで操作→防ぐことはできません。今日クリーンインストールしたばかりのパソコンで操作→十中八九、防ぐことはできません。
  • Windows エクスプローラ以外で操作する場合は多分、制限できません。
    例:ディスクをフォーマットする→防ぐことはできません。Windows PEやLinux等を起動してフォルダを触る→防ぐことはできません。コマンドプロンプト・VBScript等で操作→防ぐことはできません。
  • Windows XP又はそれ以降のOSで動きます。
    例:Windows NT 2000・Windows 98等、非対応のWindowsで操作→防ぐことはできません。
  • 導入していても、動作していなければ防ぐことはできません。
    例:ウィルス対策ソフトに検疫されてしまった→防ぐことはできません。
  • 特定ファイルを悪意の有る方に触られた場合は、お手上げです。
    例:パソコン分かる人が".NoDelete"を取り払ってしまった!→防ぐことはできません。スパイウェア・マルウェア対策ソフトが".NoXXX"を勝手に駆除してしまった!→防ぐことはできません。
  • やはり日頃の動作確認が肝要です→大変な手数!

結論としましては、かなり実験的で、業務における信頼性は余り高くない部類の一品と言えるでしょう。

NTRサポートで日本語入力を支援するNoime4ntr

NTRサポートをご利用中のオペレータ様で、

漢字キーの押下が転送されない問題で、「思い通りに日本語入力できない」といった悩みはございませんか。

NTRサポートで日本語入力できるように支援する為の方法をご紹介致します。

手順:
  1. Noime4ntrプログラム(Windows版)を次の場所から入手し、導入致します。但し、非公式・非公認のソフトです。ご利用の際にはライセンス条項等に十分ご注意ください:
  2. ソースコードを入手して頂けます。TortoiseGit等の使用を推奨:

2011年7月9日土曜日

"ControlSource/コントロールソース" プロパティ を持つATLコントロールを作成する

Microsoft Accessでフォームを構築する際には、多数のテキスト ボックス(コントロールソースを設定した物)を多用するかと思います。


開発者がこのようなコントロールを自作したい場合は、どのような作りこみをすれば良いか?

例えばExcelで見られるような、セル幅に合わせた表示をしてくれるラベル・コントロールを作りたい場合です。

Microsoft Visual Studio 2005で、Control Sourceを持つコントロールを作成できました。そのテクニックをご紹介したいと思います。

※ Microsoft社様のサイトにHow to情報が有りました:How to add Excel LinkedCell support to your ATL ActiveX control

既に作成しているコントロールを調整する場合:
  • 次のINTERFACE_ENTRYをすべて含みます:
    • COM_INTERFACE_ENTRY(IConnectionPointContainer)
      COM_INTERFACE_ENTRY(IProvideClassInfo)
  • 次のCONNECTION_POINT_ENTRYを含みます:
    • CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink)
  • IDLファイルで次の定義をinterfaceに含みます。Valueの名称、idの序数、displaybindの有無は任意。但しbindable必須、defaultbind必須、VARIANT型を用いることも必須です:
    •  [propput, bindable, displaybind, defaultbind, id(0)]
       HRESULT Value([in]VARIANT *rhs);
       [propget, bindable, displaybind, defaultbind, id(0)]
       HRESULT Value([out,retval]VARIANT *prv);
  • Valueプロパティの実装を作りこみます。
 この手はずでいけると思います。

新たにコントロールを作成する場合:
  • 「クラスビュー」を表示、プロジェクトを右クリック、「追加」クリック、「クラス」クリック、「ATL コントロール」選択、「追加」クリック。
  • 「オプション」では、「接続ポイント」のサポートにチェックを入れてください。
  • 「インターフェイス」では、「IPropertyNotifySink」「IProvideClassInfo2」をサポート有りに移動します。
  • IDLファイル中の作成したinterfaceに、Valueプロパティの定義を追加します。例:
    •  [propput, bindable, displaybind, defaultbind, id(1001)]
       HRESULT Value([in]VARIANT *rhs);
       [propget, bindable, displaybind, defaultbind, id(1001)]
       HRESULT Value([out,retval]VARIANT *prv);
  • 作成したクラスのヘッダファイルにValueプロパティ操作の実装を追加します。例:
    •  public:
        CComVariant m_vt;

        virtual HRESULT STDMETHODCALLTYPE put_Value(VARIANT *rhs)
        {
         return m_vt.Copy(rhs);
        }

        virtual HRESULT STDMETHODCALLTYPE get_Value(VARIANT *prv)
        {
         return VariantCopy(prv, &m_vt);
        }
注意する箇所の図解です:
[ATLコントロールウィザード]-[オプション]画面
 [ATLコントロールウィザード]-[インタフェイス]画面
IExcellyLabel6のinterface定義にValueプロパティを追加
CExcellyLabel6にValueプロパティ操作の実装を追加