SQLの窓

2018年04月07日


テストにはまだまだ使える(重宝する) AN HTTP Server の正しい使用方法

AN HTTP Server は古いソフトで、サイトも消失していますがきっちり使い方を守れば WWW サーバの必要なテスト環境は USB に丸ごと保存して利用可能です。

手順1) ダウンロード

配布サイトは消失しているので、インターネット・アーカイブから取得可能です。

http://www.st.rim.or.jp/~nakata/

このように、入力すると以下のようになります。



ここから、最後らしい履歴の一つ前のページの 2015/02/05 へ移動します。



すると懐かしいページが表示されるのでスクロールしてダウンロードリンクを表示させます。





リンクをクリックしたらダウンロードして、httpd142p.zip を C:\ にコピーして解凍します。そして、httpd.exe をエクスプローラで右クリックしてプロパティダイアログを開いて互換性タブをクリックします。

一番大事なのは、ここで『管理者としてこのプログラムを実行する』にチェックを入れる事です。そしてこれが最も重要なルールです。




手順2) 最初の設定
実行して最初に設定画面からする事があります。実行すると、HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\AnHttpd が作成されて、設定はその下のキーの default に保存されます。

ですから、USB で場所を移動する場合はこの default キーをエクスポートして USB にコピーしましょう。また、複数の環境を管理したい場合はこのレジストリのエクスポートとインポートで管理しましょう。

(※ バックアップを兼ねる事ができます)

間違って、管理者権限以外で実行してしまってレジストリがおかしくなってしまっても、インポートすれば元に戻ります。

また、バックアップが無くても、レジストリから HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\AnHttpd を削除すれば正しく動作するようになります。
▼ 設定画面を開く 設定 1 : インデックスを表示する このチェックをまず外すのを設定でいつも最初に行います。というか、設定らしい設定といえばこれくらいで、後はスクリプト用の実行ファイルの登録と、仮想パスの登録ぐらいです。仮想パスにいたっては、C:\httpd142p がルートになっているので、フォルダを作成すればそのまま使えて USB での移動がしやすくなります。 設定 2 : PHP を登録する
この際、AN HTTP  Server の設定より重要なのは、php.ini の設定で以下を必ず行う事です。

cgi.force_redirect = 0
追加ボタンをクリックします PHP のパスは参照できないので、エクスプローラで SHIFTキ−を押しながら php-cgi.exe を右クリックして『パスのコピー』で取得したパスを貼り付けてから両端のダブルクォーテーションを取り除きます。 拡張子は .php です 設定 3 : 仮想パス を登録する 特に必要は無いですが、必要な場合は『エイリアス』タブで追加ボタンを押します これも、参照できないので php-cgi.exe と同様です。仮想パスは先頭に / を入れて下さい。 手順3) PHP の動作確認 以下の内容を C:\httpd142p に適当にフォルダを作成してその中に info.php として置いてから ブラウザで localhost よりインデックスを伝ってアクセスします。
<?php

phpinfo();

?>


手順4) 補足

以下のコマンドで HOSTS ファイルを開いて、127.0.0.1 に適当なドメインを割り当ててローカルの開発環境を本番に見立ててテストします。
cmd.exe /c powershell -NoProfile -ExecutionPolicy unrestricted -WindowStyle hidden -Command "start notepad.exe %SystemRoot%\system32\drivers\etc\hosts -verb runas"









posted by lightbox at 2018-04-07 17:48 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2018年02月25日


PMailServer Version 1.91 フリー版 を Windows10 にインストールして、Windows7 の PHP よりアクセス

PMail Server ダウンロードファイルVector より pms191f.zip をダウンロードして解凍します(その場所がインストールフォルダになるので、pmman.exe 実行前に必要ならば場所を移動させます)。その後、pmman.exe を実行すると、ウィザード( この記事に一連の入力ダイアログの画像を設置しています )が開始されるので簡単な入力した後、テスト用のユーザを一件作ればテスト環境は出来上がります。

受信テストのコードは、『Pear の Net_POP3 で、SSL(995) を使って簡単にメール受信』を使って行います( USER か APOP )

送信の pear 環境は Windows PHP(Pear)で、Gmail(SSL/465)を使ってメールを送る を参照して下さい。PMailServer Version 1.91 フリー版 のコードはこの記事の最後にあります。



PMail Server の フリー版 は必ず POP before SMTP になる仕様になっていますので、アプリケーションからメールの送信を行う場合はメーラで手動受信するか、アプリケーションから前もって受信操作を行う必要があります。

ファイアーウォールの詳細設定で、受信の新しい規則を作成

ポートの 11025 に関して受信が可能になるように規則を二つ追加します

初期ウィザード

ローカルネットワークの二つの PC でテストを行うので、サーバのアドレスは IP アドレスで設定します。

▼ 作成します


▼ 設定をを行います


▼ 次へ


▼ 管理ドメインは、ローカルネットワークでは何でもよさそうです。


▼ 設定しません


▼ ローカルネットワークなので使わないとは思いますが ipconfig /all で読み取ったアドレスを設定します


▼ これは本当になんでもいいみたいですが、できれば日本語は使用しないほうがいいです。


▼ フリー版では使用できません


▼ 推奨アカウントは必要なら作成しますが、特に目的が無い場合は作成しません








※ サービスは自動起動に設定されるので、手動に切り替えておきます。

ユーザの作成



受信用データの作成

メールクライアントで設定を追加して、受信した後メールを自分自身に送って作成します。





※ この後、パスワードを登録します。

実行コード

メールクライアントまたは PHP で受信した後、PHP で実行して送信します。
<?php
error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT);

header( "Content-Type: text/html; charset=utf-8" );
header( "Expires: Thu, 19 Nov 1981 08:52:00 GMT" );
header( "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" );
header( "Pragma: no-cache" );

require_once("Mail.php");

mb_language("ja");
mb_internal_encoding("UTF-8");

// ***********************************************
// 通信のデバッグ表示
// ***********************************************
$debug = true;

// ***********************************************
// SMTP 接続設定
// ***********************************************
$settings = array(
	"host"		=> "192.168.1.16",
	"port"		=> "25",
	"auth"		=> true,
	"username"	=> "lightbox",
	"password"	=> "password",
	"debug"		=> $debug
);

// ***********************************************
// メールアドレス
// ***********************************************
$to_address   = "lightbox@lightbox-pc";
$from_address = "lightbox@lightbox-pc";

// ***********************************************
// メール用変換文字コード
// ***********************************************
$mail_enc = "iso-2022-jp";	// JIS

// ***********************************************
// メールヘッダー
// ***********************************************
$subject = "PMailServer Version 1.91 フリー版 に PHP で送信";

// 1) mb_convert_encoding  : 内部エンコーディングから iso-2022-jp に変換
// 2) mb_encode_mimeheader : MIMEヘッダの文字列をエンコードする
// ( =?文字コード?符号方式?符号化された文字列?= というようなメール用の変換 )
$subject = mb_convert_encoding($subject,"iso-2022-jp");
$to_header = mb_convert_encoding("宛先","iso-2022-jp");
$from_header = mb_convert_encoding("差出人","iso-2022-jp");

mb_internal_encoding("iso-2022-jp");

$subject = mb_encode_mimeheader( $subject );
$to_header =  mb_encode_mimeheader( $to_header ) . " <{$to_address}>";
$from_header =  mb_encode_mimeheader( $from_header ) . " <{$from_address}>";

mb_internal_encoding("UTF-8");

$headers = array(
	"To"		=> $to_header,
	"From"		=> $from_header,
	"Subject"	=> $subject
);

// ***********************************************
// 本文( JIS 変換のみ )
// ***********************************************
$body="本文";
$body = mb_convert_encoding($body, $mail_enc );

// ***********************************************
// SMTP 接続設定をオブジェクトに設定
// ***********************************************
$smtp = Mail::factory("smtp", $settings);

// ***********************************************
// 送信
// デバッグ出力対応で、PRE要素 を付加しています
// ***********************************************
print "<pre>"; 

$result = $smtp->send($to_address, $headers, $body );

print "</pre>"; 

if ( PEAR::isError($result) ) {
	print "メール送信エラー:" . $result->getMessage();
}

?>
OK




posted by lightbox at 2018-02-25 21:10 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2014年12月02日


PATH 環境変数メンテナンス : Redmond Path

Path_06

2009-07-18に最初に記事を書いた時から5年以上経過しており、現在オリジナルサイトは運営されていないような感じ(画像がリンク切れ)ですが、窓の杜からダウンロードできますし、内容が単純なので今でも使えます。

Redmond Path( 窓の杜 )

ソフトそのものはWindows ですが、PATH 環境変数のお世話になるのはコマンドプロンプトで実行されるアプリケーションがメインです。

Windows でも GUI で変更できますが、とても面倒で失敗しやすいのでおすすめできません。でも、これなら非常に簡単です。


操作の概要はこちらのページを参照して下さい


posted by lightbox at 2014-12-02 12:25 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2014年10月13日


Bandicam の静止画を使って、デスクトップキャプチャを効果的に



ダウンロードページ

Bandicam のいいところは、一般的な他のソフトがウインドウ単位や、ドラッグして範囲指定するのに対して、透過ウインドウを利用しているところです。これだと、上の設定ダイアログのような対処(Excelとの連携プレイ)が可能になります。



1) ウインドウ選択

 まず、透過ウインドウの虫眼鏡アイコンをクリックした後に対象ウインドウを選択すると、透過ウインドウがそのウインドウを囲みます。



この時に、このウインドウのサイズを覚えてくれます。そして、第一段階の画像化として、F11 キーでキャプチャします( F11 は設定ダイアログから変更できます )

2) 画像を 『ペイント』 で読み込んで赤枠を付加

画像は、保存先ディレクトリで設定されたフォルダに書き込まれるので、ペイントの画面上にドラッグ&ドロップするか、ファイルメニューから読み込みます。そしてペイントを使う目的として、注意する場所を赤枠で囲んだ後、クリップボードにコピーします。



3) Excel で吹き出しを追加

さらに、画像に効果として『吹き出し』を追加する為に Excel に貼り付けて、その上に吹き出しを追加します。

4) 透過ウインドウで再び画像化

ここで、最初に使った透過ウインドウが役に立ちます。大きさは最初と同じなので、近い位置に移動して矢印キーで微調整後、F11 で画像化します。

設定画面の扱い

最小化ボタンが二つあり、左側だと常駐になり、右側だとタスクバーに表示されます。



(いずれにしても、常駐用のウインドウの中には表示されます)



※ 右がオプションダイアログで、左が透過ウインドウです

透過ウインドウの扱い

透過ウインドウは、実際の操作用のアイコンがタイトル部分に多くありますが、表示・非表示を切り替えるのは、CTRL + ALT + H キー です。それ以外は、通常の静止画だけならば、F11 キーでこと足りるので特別使用する必要はありませんが、以下のようになっています。

▼ GIF アニメーションによる、概要


カメラアイコンは静止画キャプチャーで、REC アイコンは動画のキャプチャー開始です。動画では、無料版はキャプチャー(録画)した動画にロゴ(ウォーターマーク)が表示されます。無料版ではキャプチャー(録画)時間が10分に制限されています。


posted by lightbox at 2014-10-13 18:09 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2014年06月15日


VBScript : dump.vbs ( 昔MS-DOS にあった dump.exe を模倣したスクリプトです )



dump.zip の中には、dump.vbs が入っているだけです。dump.vbs を Windows フォルダに保存するのが一番簡単ですが、パスの通ったフォルダならどこでもかまいません。

実行は、
dump ファイルパス
とするか、
dump ファイルパス 出力先
の二通りです。

内部で再び cmd.exe を呼び出して、cscript.exe で実行していますので、新しいコマンドプロンプトが表示されて実行されます。1024 バイトまでのファイルですと、内容が表示されて pause 状態になります。1024 バイトより大きい場合は、more で実行されます。

出力先を指定すると、リダイレクトを使って出力されます。

ソースコード
Dim Fs,Stream
Set Fs = CreateObject( "Scripting.FileSystemObject" )

Crun()

' ****************************************************
' ファイルを16進数でダンプします
' ****************************************************
Dim InFile
Dim Kana
Dim KjFlg
Kana = Array( _
"。","「","」","、","・","ヲ","ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ", _
"ー","ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ", _
"タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ", _
"ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ン","゙","゚" )

Set Stream = CreateObject("ADODB.Stream")

InFile = WScript.Arguments(0)

Dim LineBuffer,DispBuffer,CWork,nCnt,strBuff,i,j

if not Fs.FileExists( InFile ) then
	Wscript.Echo "ファイルが存在しません"
	Wscript.Quit
end if

' ------------------------------------------------------
' Stream のオープン
Stream.Open
 
' ------------------------------------------------------
' Stream タイプの指定
Stream.Type = 1		' StreamTypeEnum の adTypeBinary
 
' ------------------------------------------------------
' 既存ファイルの内容を Stream に読み込む
Stream.LoadFromFile InFile
 
' ------------------------------------------------------
' バイナリ型の Stream オブジェクトからを読み取って加工
Bcnt = 0
nCnt = 0
KjFlg = ""

Do while not Stream.EOS

	if ( nCnt MOD 16 ) = 0 then
		Wscript.Echo "          0  1  2  3  4  5  6  7" _
		& "  8  9  A  B  C  D  E  F"
		Wscript.Echo "--------------------------------" _
		& "------------------------------------------"
	end if

	' 16 バイトの読込
	LineBuffer = Stream.Read(16)

	strBuff = ""
	For i = 1 to LenB( LineBuffer )
		CWork = MidB(LineBuffer,i,1)
		Cwork = AscB(Cwork)
		Cwork = Hex(Cwork)
		Cwork = Ucase(Cwork)
		Cwork = Right( "0" & Cwork, 2 )
		DispBuffer = DispBuffer & Cwork & " "
		strBuff = strBuff & CharConv( Cwork )
	Next

	Wscript.Echo _
		Right( _
			"00000000" & Ucase(Hex( nCnt * 16 )), 8 _
		) & " " & _
		Left(DispBuffer & String(49," "), 49 ) & strBuff
	DispBuffer = ""

	nCnt = nCnt + 1
 
Loop
 
' ------------------------------------------------------
' Stream を閉じる
Stream.Close

Set Stream = Nothing
Stream = Empty
Set Fs = Nothing
Fs = Empty

' ****************************************************
' 生データのテキスト
' ****************************************************
function CharConv( HexCode )

	Dim nCode

	nCode = Cint( "&H" & HexCode )

	if KjFlg = "" then
		if &H81 <= nCode and nCode <= &H84 or _
			&H88 <= nCode and nCode <= &H9f or _
			&HE0 <= nCode and nCode <= &HEA then
			KjFlg = HexCode
			CharConv = ""
			Exit Function
		end if
	else
		if HexCode <> "00" then
			KjFlg = KjFlg & HexCode
			CharConv = Chr( Cint( "&H" & KjFlg ) )
		else
			CharConv = ".."
		end if
		KjFlg = ""
		Exit Function
	end if

	if 0 <= nCode and nCode <= &H1F then
		CharConv = "."
	end if
	if &H20 <= nCode and nCode <= &H7E then
		CharConv = Chr(nCode)
	end if
	if &H7F <= nCode and nCode <= &HA0 then
		CharConv = "."
	end if
	if &HA1 <= nCode and nCode <= &HDF then
		CharConv = Kana(nCode-&HA1)
	end if
	if &HE0 <= nCode and nCode <= &HFF then
		CharConv = "."
	end if

end function

' **********************************************************
' Cscript.exe で実行を強制
' ウィンドウをアクティブにし、最大化ウィンドウとして表示(3)
' Cscript.exe の実行終了後 pause で一時停止
' **********************************************************
Function Crun( )

	Dim str,WshShell

	Set WshShell = CreateObject( "WScript.Shell" )
	str = WScript.ScriptFullName

	if Wscript.Arguments.Count = 0 then
		Wscript.Echo "1) dump ファイルパス" & vbCrLf & "2) dump ファイルパス 出力ファイル"
		WScript.Quit
	end if

	if Wscript.Arguments.Count = 1 then
		if not Fs.FileExists( Wscript.Arguments(0) ) then
			Wscript.Echo "ファイルが存在しません"
			Wscript.Quit
		end if

		Set FileObj = Fs.GetFile( Wscript.Arguments(0) )
		if FileObj.Size <= 1024 then
			Call WshShell.Run( "cmd.exe /c cscript.exe " & Dd(str) & " " & Dd(Wscript.Arguments(0)) & " dummy dummy & pause", 3 )
		else 
			Call WshShell.Run( "cmd.exe /c cscript.exe " & Dd(str) & " " & Dd(Wscript.Arguments(0)) & " dummy dummy | more", 3 )
		end if
		WScript.Quit
	end if
	if Wscript.Arguments.Count = 2 then
		if not Fs.FileExists( Wscript.Arguments(0) ) then
			Wscript.Echo "ファイルが存在しません"
			Wscript.Quit
		end if
		Call WshShell.Run( "cmd.exe /c cscript.exe " & Dd(str) & " " & Dd(Wscript.Arguments(0)) & " dummy dummy > " & Dd(Wscript.Arguments(1)), 3 )
		WScript.Quit
	end if

End Function
' **********************************************************
' 文字列を " で囲む関数
' **********************************************************
Function Dd( strValue )

	Dd = """" & strValue & """"

End function

以下は dump.zip をダンプ実行したコマンドプロンプトの状態です





posted by lightbox at 2014-06-15 17:37 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2014年06月01日


UltraVNC : 2014/6/1 現在。ひさしぶりに使ってみて変わっていた事( プロジェクタに特化? )

最新バージョンは、1.1.9.6 Monday, 16 December 2013 です。要するにこのバージョンがリリースされて約半年経過しています。



オリジナルサイトからのダウンロードは英文サイトの中でも解りにくい系のもので、日本人ですし広告等のトラップにひっかかりやすいです。ですから、素直に窓の杜からダウンロードするといいと思います( 1.1.9.6 でした )

▼ 窓の杜からインストールしたもの



UltraVNC はとても便利で強力なソフトウェアです。その為、操作には慣れておいて英文のまま使えるようになっておく事が重要です。時々日本語化されていますが、日本語化というのは、オリジナルに変更を加えて、その差分をオリジナルに対して更新する為のプログラムを提供する形になるので、バージョンアップがあると使えなくなります。

過去、何度も見てきましたが、バージョンアップしていい機能が追加されても、そうそう日本語化はされないのでせっかくの機能や、問題が起こりにくくなっていてもその恩恵を受けられません。UltraVNC はほんの少しの設定方法と(殆どデフォルトで動くので)メニューの操作方法さえ知っておけばいいアプリケーションです。根本的なものは、リモートで他の PC を操作する 事なので、そこはそもそも日本語ですし。

サーバー設定



1) パスワードの設定



これは昔から設定すべき場所ですが、設定画面はだいぶ変わってしまって、カテゴリ分けしてタブで表示してますね。昔はもっと大きい画面だった記憶があります。

2) リモートで操作可能にする



Disable Viewers Input のチェックを外すのが重要です。そもそも、リモートで操作する事が目的なのに、デフォルトでできないようになっています。

ただ、プロジェクタ用の PC から目的の PC に入って、いろいろな場所の PC の内容を表示するような目的(操作は向こう側で行います)であれば、リモートで操作するような設定であれば、逆に余計な通信が起こる可能性があるのでデフォルトでもかまわないと思います。

単純なリモートアクセスであれば、Windows で純正機能があるので、それと差別化した結果このようなデフォルトになったのかもしれません。とにかく、プロジェクタに映せる PC は普通一つですが、リモート対象の PC は無制限(地球の裏側でもいい)ですから、いろいろな発表場所で UltraVNC はとても重要で貴重な存在であると思います。

※ あと、ファイル転送とか便利ですよね
※ japanese はチェック。v102 はちょっと特殊なキーボード(多国語用)だと思いますが、普段キーボードからの入力はしないのであまり気にした事がありません( つまり、詳細な仕様を知ろうと思った事がなく、かつ困った記憶が無い )


posted by lightbox at 2014-06-01 16:23 | フリーソフト | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり