Lunatic Sol

IT Tips

@関数で10進数を16進数に変換する Part 2

2004-03-30 11:02:00 | @Formula
今朝 N 君に改良版を教えてもらった。こっちの方がスマートなのと、且つ入力チェックもしているので勝手に紹介 (^^;

dec := @Prompt([OkCancelEdit];"Lotus Notes - Dec to Hex conversion";"10進数の値を入力してください";"");
@If(
    @Matches(dec;"+{0-9}"); "";
    @Do(
        @Prompt([Ok];"Lotus Notes - Dec to Hex conversion";"ERROR: 数値を入力して下さい");
        @Return("")
    )
);
n := @TextToNumber(dec);
hex := "";
@DoWhile(
    r := @Modulo(n;16);
    hex := @If( r >= 10 ; @Char( 55 + r) + hex ; @Text(r) + hex);
    n := @Integer(n / 16);
    n >= 16);
hex := @If( n >= 10 ; @Char( 55 + n) + hex ; n = 0 ; ""+ hex ;@Text(n) + hex);
tmp:=@Prompt([OkCancelEdit];"Lotus Notes - Dec to Hex conversion";"16進数変換結果";hex);
■ 関連記事
@関数で10進数を16進数に変換する

@関数で10進数を16進数に変換する

2004-03-29 15:46:00 | @Formula
基本的に LotusScript を使用しているので、個人的には @関数を使う機会はあまりないのですが、Notes の制限で @関数しか使えない場面がいくつかあります。そんな場面で10進数を16進数に変換する必要が出てきたのですが標準のファンクションを調べたらなんと関数がないではないじゃありませんか。

ということで、@関数で10進数を16進数に変換する方法を考えてみました。二回目の@ifが気に入らないのですが、とりあえず作ったサンプルで動けばいいので良しとしましょう。以下のサンプルではあえて@Prompt() でシミュレーションできるようにしていますが、プログラムの中で使う場合は最初と最後の行は省いて dec という10進数文字列を入力値にして最後に hex を返すようにするか、入力は n という10進数整数値にするといいでしょう。

@DoWhile() を使っているので Notes 6 以降でしか使えませんが、ボタンをリッチテキストフィールドに作って以下の関数を貼り付けるだけで簡単にシミュレートできます。ただしエラー処理はしていないので、数値以外の文字列を渡した場合などはどうなるか知りません。10進数の文字列を前提にしたサンプルなので @Prompt() にはシングルバイトの10進数文字列だけを入れてくださいね。Have Fun :-)

dec := @Prompt([OkCancelEdit];"Lotus Notes - Dec to Hex conversion";"10進数の値を入力してください";"");
n := @TextToNumber(dec);
hex := "";
@DoWhile(
    r := @Modulo(n;16);
    @If(
        r=10; hex := "A" + hex;
        r=11; hex := "B" + hex;
        r=12; hex := "C" + hex;
        r=13; hex := "D" + hex;
        r=14; hex := "E" + hex;
        r=15; hex := "F" + hex;
        hex := @Text(r) + hex
    );
    n := @Integer(n / 16);
    n >= 16
);
r := n;
@If(
    r=0; "";
    r=10; hex := "A" + hex;
    r=11; hex := "B" + hex;
    r=12; hex := "C" + hex;
    r=13; hex := "D" + hex;
    r=14; hex := "E" + hex;
    r=15; hex := "F" + hex;
    hex := @Text(r) + hex;
);
@Prompt([Ok];"Lotus Notes - Dec to Hex conversion";"16進数変換結果: " + hex)
■ 関連記事
@関数で10進数を16進数に変換する Part 2

ThinkPad T41 の進む・戻るキーを無効にする その2

2004-03-24 12:21:12 | Windows
以前 ThinkPad T41 の進む・戻るキーを無効にする でレジストリを操作して ThinkPad のブラウザキーを無効にする方法を紹介しました。が、レジストリを操作せずとも IBM サポートが提供している「IBM ThinkPad キーボード・カスタマイズ・ユーティリティー」を使用してブラウザキーを無効にすることができることがわかりました。

PC サポートのダウンロードファイル というところから使用している製品を選択して、そこの検索結果で表示される「IBM ThinkPad キーボード・カスタマイズ・ユーティリティー」を見つけてダウンロードしてみてください。Readme.txt によると Ver.1.2.60.1 で新機能が追加されているので、このバージョン以降なら大丈夫なのではないかなと思います。一応わざわざ検索が煩わしいという人は以下の直リンから DL してみてください (リンク切れだったらごめんなさい)。

IBM ThinkPad キーボード・カスタマイズ・ユーティリティー(Windows 2000/XP) Ver.1.2.72.1
2010/10/06 Update
Lenovo キーボード カスタマイズ・ユーティリティー (Windows 2000/XP) Ver1.3.53.1

インストールが終わったら [スタート] - [すべてのプログラム] - [Access IBM] - [キーボード カスタマイズ・ユーティリティー] を実行して [キーの応答速度] タブに移動してみてください。[ブラウザキーを有効にする] のチェックを外して [適用] してあげれば進む・戻るのブラウザキーは無効になります。



尚、先日紹介した記事のレジストリ値を設定している場合は、レジストリ値が優先されるようで、ユーティリティの設定は有効・無効どちらでも関係なくブラウザキーは無効です。

■ 関連記事ThinkPad T41 の進む・戻るキーを無効にする

Windows XP のパスワード長を変更する

2004-03-23 15:32:01 | Windows
セキュリティを高めるために、XP のデフォルトのパスワード長 0 を任意の文字数に変更してみたい。でも、どうすりゃいいのさ?といろいろ調べてみる。

マイクロソフト管理コンソール (MMC) 上で設定するようである。
  1. [コントロール パネル] -> [管理ツール] -> [ローカル セキュリティ ポリシー] を選択して [ローカル セキュリティ設定] を開く
  2. [セキュリティの設定] \\ [アカウント ポリシー] を展開して [パスワードの長さ] を任意の文字数に変更する。
これでうまくいくらしい。で、マイクロソフト社の TechNet を調べてみたらこの文書があった。

セキュリティの設定の説明
Microsoft 管理コンソール (MMC) のコンソール ツリーでこのセキュリティ設定を見つけるには、コンピュータの構成\\Windows の設定\\\セキュリティの設定を参照してください。
とあるが、こんなメニューはどこから辿れば出てくるのだろうか...逆に混乱してしまった。

Tips: ローカル セキュリティ設定は [スタート] -> [ファイル名を指定して実行] 上で secpol.msc とやっても表示できますね。

Windows XP のようこそに Administrator を表示する

2004-03-23 14:50:31 | Windows
私は XP 初心者。いまだにいろいろ悩むことが多い。今日は、XP の Administrator をどうやって扱えば良いのか迷ってしまった。デフォルトの XP GUI のようこそには表示されないので、クラシック画面を使えばログインできることはわかった。

マイクロソフト サポート技術情報 - 417868
Windows XPのようこそ画面にAdministratorが表示されない

でも XP GUI のようこそを使っている場合どうすればいいのだろう?Safe モードで起動すれば Administrator が表示されるという方法もあったが、それはわずらわしい。ということで調べてみたらレジストリを操作する方法が見つかった。

WPC ARENA より
「ようこそ画面」に「Administrator」を表示する

以下のレジストリキーに Administrator という DWORD 値を 1 として追加すると「ようこそ」に Administrator が表示されるようになるらしい。私はクラシック UI にしているので「ようこそ」画面の検証はしていないが、このレジストリ値の追加で [コントロール パネル] -> [ユーザー アカウント] 上にも Administrator が表示されるようになるのを確認した。

キー
HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList


Administrator (REG_DWORD) : 1
ちなみにクラシック ログイン プロンプトは、XP の GUI をクラシックに変更しなくとも、ようこそ画面で Ctrl+Alt+Del を2回やると表示されるらしい。

@IT より
「ようこそ」画面でログオン・ダイアログを表示する

濁点・半濁点を含む半角カナを StrRight / StrLeft で処理する

2004-03-22 22:16:21 | LotusScript
あんまし半角カナを取り扱うことって個人的にはないのですが、世の中そういう処理をしたいケースってのはあるようです。今日はこの半角カナを取り扱った際の LotusScript での問題を解決する方法の話。

StrRight や StrLeft っていう便利なファンクションが LotusScript にはあるんですが、半角カナに濁点・半濁点が含まれている場合、このファンクションがちゃんと動作しないようです。

濁点・半濁点を含む半角カナを StrLeft 関数および StrRight 関数の引数に使用すると空白文字が返される

StrLeft2 と StrRight2 ってのがサポート技術情報に載っているので、この方法を使って解決できるみたいです。半角カナを取り扱う場合は回避ファンクションを使って対応しておけばいいですね。

JIT デバッガのレジストリ

2004-03-22 13:02:10 | Windows
いっつも忘れるのでメモ

キー
HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug


Auto (REG_SZ) : 0 - 手動 / 1 - 自動
Debugger (REG_SZ) : JIT デバッガの実行パス

JIT デバッガの例
Dr Watson 32 : drwtsn32 -p %ld -e %ld -g
Notes 6 (QNC) : "C:\\lotus\\notes\\qnc.exe" -p %ld -e %ld -g
MSDEV .NET : "C:\\Program Files\\Common Files\\Microsoft Shared\\VS7Debug\\vs7jit.exe" -p %ld -e %ld

Web ページのデフォルトアプリケーションをカスタマイズする

2004-03-16 16:32:11 | Windows
なんでだか良く覚えていないのですが、私の ThinkPad T41 の環境、デフォルトの Web ページを開くアプリケーションが Notes 6 になっておるのです。

Notes with IE なんかで常に Web サーフィンしたいわけじゃないですし、Regnessem + Y!ニュース プラグイン上のダブルクリックで Notes に切り替わるのも煩わしい。

ということから、この Notes になってしまう元凶をつきとめて、自分のメインブラウザ sleipnir に切り替えてしまいましょう。

で、その設定を調べる方法はググって設定箇所を見つけるというのもひとつの方法ですが、まぁレジストリのどっかを見ているでしょうというのは予測がつくので、sysinternals にある Regmon を使ってみました。これつかった方が楽チンなので。

まず Regmon を起動してフィルターで Include に notes と指定します。Or 条件で notes nlnotes としておくのもいいかもしれませんが、自分の場合は notes でうまく行きました。IE になっているのをどうにかしたい人は iexplore を指定した方がいいですね。あ、[Option] - [Font] メニューでフォントも変更しておいた方が見やすいです。

次に私の場合は Regnessem + Y!ニュース プラグイン上のダブルクリックを使いましたが、[ファイル名を指定して実行] 上に http://www.googole.co.jp/ として実行するだけでもいいです。要は、Web ページを直接指定して開く方法を実行します。すると、Regmon 上にだだだだーっとマッチした Registry の QueryValue リクエストが出てきます。そこの Path を調べます。

HKCR\\http\\shell\\open\\command\\(Default)

まさにこれでしょう。ここを調べてみると、私の場合 c:\\lotus\\notes\\notes.exe %1 が指定されていました。これを自分の任意のアプリケーションに変えてしまいます。今回は sleipnir にするのでこんな感じ。

"c:\\Program Files\\sleipnir\\Sleipnir.exe" %1

うまく行きました。[ファイル名を指定して実行] 上の http://... でも問題なしです。

E-P-I-C Eclipse プラグイン使用環境の Perl.exe のフラッシングを解除する方法

2004-03-03 11:25:35 | Eclipse
Perl はテキスト処理に向いていて簡単にコーディングできるので困ったときにちょろっと使ってます。

昔は秀丸エディタにせこせこ書いて実行みたいなことしていましたが、Eclipse の Perl Plugin として E-P-I-C ってのがあってこれが便利なので使ってたりします。

私の場合プラットフォームは Windows なので W32 版の Eclipse 2.1.1、ActivePerl (W32 版)、E-P-I-C を使っています。この環境で一番気になるのは Perl のコーディングをしている最中に構文チェックなどを行うことから Perl の実行環境である Perl.exe のコマンドが頻繁にちかちか表示されることなんです。

perlexe.jpg


これをどうしたもんか、というのを解決するのが今日の Tips。

Cmd 上で ActivePerl の実行ディレクトリに移動して dir *.exe と実行すると5つくらい実行モジュールが表示されます。この中に perl.exe だけじゃなくて wperl.exe ってのがあるはずです。こいつを E-P-I-C の Perl 実行環境にしてあげれば頻繁に表示されるのは解除できるはずです。

[Window] - [Perferencec] を表示して [Perl EPIC] を開くと Perl executable というフィールドが見つかるはずです。ここにはデフォルトで perl が指定されていると思いますが、ここを wperl (フルパスにしないといけない場合もあるかな) と変更してみてください。

perlepic.gif


Perl Script コーディング中の構文チェックでも CMD が表示されなくなりましたよね?perl.exe と wperl.exe は Java でいうところの java.exe と javaw.exe の関係と同じかなぁと理解しているんですが、本当のところは実は知らなかったりします。。。。でも、結果オーライってことで、煩わしいのは解除できましたよね。