=====================================             出勤リマインダ for .NET SKReminderDN.exe Version 12.7 ===================================== ●概要 【ソフト名】 出勤リマインダ for .NET SKReminderDN 【登 録 名】 SKRmndrx.EXE 【バイト数】 xxx,xxxバイト 【著作権者】 A.Shimada(島田明雄) 【対応環境】 Windows 98, 2000, XP .NET Framework 1.1 日本語版 【動作確認】 Endeavor NT7100Pro(WindowsXP Pro)but視覚効果は全てOFF 【必要 DLL】 なし 【開発言語】 Delphi2006 【更 新 日】 2006/4/8 【種 別】 フリーソフトウェア 【サポート】 メールにて 【転載条件】 転載を希望される方は、事前に私宛にメールをください。 ●機能  Windowsのログオン、ログオフ時にメッセージを出力し、出社時間、退社時間の登録  を促します。メッセージを出力することはWindowsのログオン/ログオフスクリプト  でも可能ですが、忘れていたことに気づいても、ログオフを中断して退社時間を登録  することはできません。これに対し、本プログラムはログオフを取り消し、任意の  URLを開くことができます。  なお、Windows NTの場合、ログオフ中にURLを開くことができませんので、できるこ  とはログオフの取り消しだけです。  バージョン12.0であいさつ機能をサポートしました。確認メッセージ及びボタンの  テキストを任意に変更できます。ランダムに表示できますので占い機能と呼んだ方が  適切かもしれません。標準で有効です。ぜひ好みにカスタマイズしてお使い下さい。 ●配布ファイル  SKReminderDN.EXE  プログラム本体  SKReminderDN.txt  カスタマイズファイルの指定方法及び標準サンプル  SKReminderDNQ8.txt ドラクエ[風カスタマイズファイル  READMEDN.TXT    このファイル ●インストール  【過去に手動でインストールしたフォルダ及びスタートアップは削除して下さい。】  ダウンロードしたファイルSKRmndrx.EXEを実行して下さい。インストーラに従って処  理を進めると、標準ではProgram Filesフォルダ下にSKReminderDNフォルダを作成し、  配布ファイルを配置します。また、スタートアップにSKReminderDN.exeのショート  カットを作成します。  [今すぐ実行する]をチェックして完了すると、直ちにSKReminderDN.exeを実行し、設  定画面を出します。 ●アンインストール  タスクトレイにSKReminderアイコンがある場合は右クリックして終了させた後、コン  トロールパネルのプログラムの追加と削除を使用して下さい。  なお、削除するのはSKReminderDN.EXE、及びREADMEDN.TXTのみで、SKReminderDN.INI  及びカスタマイズファイルは残しています。完全にアンインストールする場合は  SKReminderDNフォルダごと削除して下さい。  また、SKReminderDN.EXEを実行したままアンインストールすると再起動を促します。 ●アップデート  タスクトレイにSKReminderアイコンがある場合は右クリックして終了させた後、新し  いSKRmndrx.EXEを実行して下さい。アンインストールの手続きの後、インストールの  手続きとなります。  なお、アップデートするのはSKReminderDN.EXE、及びREADMEDN.TXTのみです。カスタ  マイズファイルをアップデートしたい場合は、いったんアンインストールし、カスタ  マイズファイルを削除してからインストールして下さい。  なお、SKReminderDN.EXEを実行したままアップデートすると、アンインストールの手  続き中に再起動を促します。 ●使用方法  (0)最初の起動時には自動的に設定画面が出ます。   出社、退社ごとに下記を指定して下さい。   ・確認する    : 確認メッセージを表示します。   ・確認せずに開く : 確認メッセージを表示せずにURLを開きます。   ・URL       : URLを指定します。【最初の起動時に入力して下さい。】   ・確認のテスト  : 確認メッセージの表示をテストします。   ・URLのテスト   : URLを開いてテストします。   確認メッセージのカスタマイズファイルの編集と選択ができます。ファイル名を   削除するとカスタマイズなしになります。   設定後OKボタンを押して保存して下さい。以降、再設定したい場合はタスクトレイ   のSKReminderアイコンをクリックすれば設定画面が出ます。  (1)[出社]-[確認する]指定の場合、ログオン時に出社時間の登録を促すメッセージが   出ます。   左側の[まだです]ボタンを押すとURLを開きます。   右側の[登録済みです]ボタンを押すと何もしません。   [出社]-[確認せずに開く]指定の場合、メッセージを出さずにURLを開きます。  (2)[退社]-[確認する]指定の場合、ログオフ時に退社時間の登録を促すメッセージが   出ます。   左側の[まだです]ボタンを押すとURLを開きます。プログラムは終了しません。   右側の[登録済みです]ボタンを押すとWindowsの終了オプション画面を出し、プロ   グラムを終了します。   [退社]-[確認せずに開く]指定の場合、メッセージを出さずにURLを開き、プログ   ラムを終了します。   Windows NTの場合、URLを開く代わりにメッセージを表示します。  (3)あいさつ機能で、確認メッセージ及びボタンのテキストを任意に変更できます。   複数指定するとランダムに表示します。指定方法及びサンプルは同梱の   SKReminderDN.txtをご覧下さい。あいさつ機能は標準で有効です。わずらわしい   場合は設定画面のファイル名を削除すればシンプルな表示に戻ります。でも作者と   しては、好みにカスタマイズし楽しく使うことをお奨めします。 ●使用上のヒント  (1)URLには、プログラム名、関連付けのあるファイル名、WSHスクリプト名などを   入力することもできます。  (2)確認メッセージは設定画面の確認のテストボタンで試すことができます。  (3)SKReminderDN.INIファイル中のWINDOW_MAXWIDTHを大きくすると長い確認メッ   セージを表示できます。 ●注意事項  (1)ログオフを中断すると、WindowsXPの場合システムイベントが残ります。  (2)本プログラムは一つしか起動できません。二重起動を抑止しています。  (3)Windows NTの場合、シャットダウン中にプログラムを起動できないため、退社の   URLを開けません。このためURLを開こうとした場合は代わりのメッセージを表示   します。 ●プログラムの仕組みなど  (1)ログオフの検知にはWM_QueryEndSessionを拾っています。しかし、このメッセー   ジの処理でダイアログを出すと「このプログラムは応答していません」となって   しまいます。このため本プログラムではダイアログを出すスレッドを生成し、   WM_QueryEndSessionに対しては即座にFalseを応答しています。  (2)URLを開くためにはProcess.Startを使用しています。  (3)Windowsの終了オプション画面を出すためにはProgram ManagerにWM_CLOSEをPost   しています。  (4)Windowsメッセージを扱うためにはSecurity.Permissionが必要でしたが、まだ   あまり使い方がわかってません。Version12では削除してしまいました。(^^;  (5)Pascalのコーディング例は少ないので苦労します。結果としてはタスクバーの非   表示、タスクトレイアイコン、スレッドはDelphi VCLを使うよりも楽に実現できま   した。  (6)VCLを使うとDelphi7ソースをほとんど触らずに.NETで動かせました。移植性は   非常に高いです。しかしDLLを結合するとプログラムサイズは1.5MBになり、これ   にはびっくり。DLLを結合しなければ23KBと小さいのですが、別に配布しなければ   ならず、面倒です。そこでVCLを使わないでリコーディングしてみました。  (7)VCLを使わず、Iniファイル処理を作ったりしたのでプログラムサイズは80KB程度   になり、満足です。しかしタスクマネージャによるとメモリ使用量が10数MBと   Delphi7の倍以上になってしまいました。これに対してはMaxWorkingSetを指定す   ることで3-4MBにできました。なお、MaxWorkingSetの指定はWindows98に   は無効です。Windows98では.NET Frameworkを含めておおよそ10MBを使います。  (8)DPIを120などにすると設定画面が拡大されませんでした。これについては   WindowsStateのMinimizeを設計時でなく、Formのロード時に行うようにして回避   できました。Create以前にMinimizeすると拡大されないようです。同時に   ShowInTaskBar:=FalseもFormのロード時に移動し、Minimizeされたウィンドウが   見えないようにしました。  (9)DPIを120などにすると確認メッセージウィンドウのサイズ調整がうまくいきま   せん。まず、プログラムで指定するピクセル値が拡大されるようです。これは扱   いにくい。またそれを考慮してもMeasureStringの戻り値が表示よりかなり大き   く、左右の余白が目立ちます。MeasureCharacterRangesも試しましたがあまり変   わらない。これについてはINIファイル中のLABEL_SPACINGを0にすると、いくらか   ましになります。 ●サポート  プログラムの最新版は本ドキュメント末尾のURL内にあります。  不具合等については本ドキュメント末尾の宛先にメール頂ければできるだけ対処  します。 ●免責  本プログラムの使用により生じた損害に関して作者に責任はないものとします。 ●転載  本プログラムの転載等は自由ですがメールにて連絡をお願い致します。 ●謝辞  nobukichiさん作成の簡単インストーラを使わせて頂いています。  http://www5a.biglobe.ne.jp/~nobukich/ ●改訂歴  SKReminderDN.exeのバージョン番号はタスクトレイの右クリックで確認できます。  Version 12.7(2006/4/8)   Delphi2006で再コンパイルした。  Version 12.6(2005/7/7)   カスタマイズ行の先頭が選択される確率が低かったのを訂正した。  Version 12.5(2005/6/26)   設定画面でカスタマイズファイルを編集、選択できるようにした。WindowsのDPI   設定を120などにした場合、設定画面が広がらなかった等を訂正した。  Version 12.1(2005/6/12)   確認メッセージの長さに合わせてウィンドウの幅を広げるようにした。  Version 12.0(2005/6/6)   あいさつ機能をサポートし、標準で有効にした。  Version 11.5(2004/8/29)   Windows NTの場合シャットダウン中にプログラムを起動できないため、代わりの   メッセージを表示するようにした。  Version 11.4(2004/8/18)   インストーラを使用するようにした。プログラム本体は変更なし。【手動でイン   ストールしたフォルダ及びスタートアップを削除してからお使い下さい。】  Version 11.4(2004/5/12)   .NET版でWindowsXP,2000場合のメモリ使用量を削減。  Version 11.3(2004/4/30)   .NET版公開。URLテストボタンを追加  Version 11.0(2004/4/25)   .NET版作成 ===================================== Copyright(C)2004,2006 A.Shimada(島田明雄) URL http://www.mars.dti.ne.jp/~a-smd/ E-Mail akio_dot_shimada@nifty.ne.jp(spam対策) SHIMAPEE(しまぴー) =====================================