2015年12月02日


実運用では無く、学習用の WWWサーバーとしてはこれ以外に無い『AN HTTP Server』ですが、古いソフトなので使い方にコツがあります

AN HTTP Server が何故か落ちる場合は、レジストリの AnHttpd(HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd) を全て削除して下さい。何らかのの理由で整合性が保たれなくなって落ちています。httpd.exe を実行するとデフォルトの正しいエントリが作成されます。そしてもちろんの事ですが、実行は管理者権限で実行してください。

以下は、実行中の httpd.exe を終了させ、管理者としてカレントの httpd.exe を実行して、スクリプトのあるフォルダをドキュメントルートにします。(インデックス表示を許可するようにしています)
' 管理者として実行を強制する
Set obj = Wscript.CreateObject("Shell.Application")
if Wscript.Arguments.Count = 0 then
	obj.ShellExecute "wscript.exe", WScript.ScriptFullName & " runas", "", "runas", 1
	Wscript.Quit
end if

Dim Fs,WshShell

Set WshShell = CreateObject("WScript.Shell")

Const ForWriting = 2
Set Fs = CreateObject("Scripting.FileSystemObject")
strCurPath = WScript.ScriptFullName
Set obj = Fs.GetFile( strCurPath )
Set obj = obj.ParentFolder
strCurPath = obj.Path

Call WshShell.Run( "cmd /c taskkill /im httpd.exe /f", , True )

Call WshShell.RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\default\DocumentRoot\",strCurPath )
Call WshShell.RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\default\Index\Browsable","Off" )
WshShell.Run(strCurPath & "\httpd.exe")

※ php.ini では、cgi.force_redirect = 0 を設定してください。

WEB アーカイブからダウンロードは可能です。

とにかく、今年( 2015年 )の2月5日以降に、何があったのか配布サイトのトップの HTML が無くなっています。ダウンロードリンクはまだ生きていますが、いつ無くなっても不思議は無いです(なくなりました)。



Apache を使ってもいいのですが、インストールいらずで 軽量なので、USB に気軽にいくつでも入るので便利この上無いです。( USB への使い方は、エイリアス無しでルートにディレクトリを掘って何パターンも保存できると言う意味です )

しかし、確かにいろいろ面倒な事が山積みではあるので、知らない人が使おうと思う事はまず無いと思います。ですが、以降の手順であればすぐに PHP を使っていろいろな事ができます。

大前提!! 管理者権限で起動する

これを守らないと、環境によっては訳が解らない事になります。



ショートカットを作成して、その詳細設定ボタンから常に管理者権限で起動するようにしておきます。これは、AN HTTPD がレジストリを使ってデータを保存するので、通常起動だと情報が意図しない場所に保存されて読み出しできなくなるからです。

"C:\httpd142p" に保存する

これは、後々小回りが利くという意味でもありますが、Program Files は、Windows の権限の扱いが面倒だと言う事と、フォルダ名にスペースが混じっているという問題があります。Cドライブに自分が必ず普通にアクセスできる権限で保存します。二つ欲しければ違う名前にします( 但し、一度に起動できるのは一つまでですし、切り替えるにはドキュメントルートの変更が必要です / レジストリは同じ場所になるので )

余計な機能は使わない

1) 引数を与えてレジストリ内に複数環境を作成する事ができる
2) サービスとして登録できる

この二つの機能は、現在の環境(Windows7、Windows8.1)を考えると不向きですし、もともと簡単に実行環境を作る事が目的なので使ってはいけません。

PHP の登録

AN HTTP Serverは、フォルダの参照ができないので、自分でパスをコピーしてペーストしてやる必要があります。そして、PHP の場合は、チェックボックスを必ず二つチェックします。



以下は、php フォルダに置いて実行すると、php-cgi.exe を AnHttpd に自動登録するスクリプトです
' 管理者として実行を強制する
Set obj = Wscript.CreateObject("Shell.Application")
if Wscript.Arguments.Count = 0 then
	obj.ShellExecute "wscript.exe", WScript.ScriptFullName & " runas", "", "runas", 1
	Wscript.Quit
end if

Dim Fs,WshShell

Set WshShell = CreateObject("WScript.Shell")

Const ForWriting = 2
Set Fs = CreateObject("Scripting.FileSystemObject")
strCurPath = WScript.ScriptFullName
Set obj = Fs.GetFile( strCurPath )
Set obj = obj.ParentFolder
strCurPath = obj.Path

const HKEY_LOCAL_MACHINE = &H80000002
Set obj = GetObject _
	("winmgmts:\\.\root\default:StdRegProv")
strKeyPath = "SOFTWARE\AnHttpd\default\Progs\Names"
obj.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes
nCount = 0
bEntry = false
For Each strValue In arrValueNames
	nCount = nCount + 1
	strValue2 = UCase(strValue)
	if strValue2 = ".PHP" then
		bEntry = true
		Call WshShell.RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\default\Progs\Names\" & strValue,strCurPath & "\php-cgi.exe" )
	end if
Next

if not bEntry then
		Call WshShell.RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\default\Progs\Names\.php",strCurPath & "\php-cgi.exe" )
		Call WshShell.RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\default\Progs\Attrs\.php", 7, "REG_DWORD" )
		Call WshShell.RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\default\Progs\Count", nCount+1, "REG_DWORD" )
end if


インデックスを表示させる



これを最初に必ずセットしておきます。


ここから先はお好みで

エイリアスを設定すると、ルート以外を参照可能になります



後は、ログの設定でトレースを出力するようにすると、ファイルのアップロードの際の内部フォーマットを確認できます。必要ならば、CGI 検査を出力するというチェックボックスが一般タブの下のほうにあります。

細かい話で言うと、Apache で動作するバイナリデータの直アップロードとかは動作しないので注意して下さい。さらに、C# とかで作った exe なんかを自作 CGI として動作させる事は可能です。




posted by at 10:07 | Comment(0) | 開発用 | このブログの読者になる | 更新情報をチェックする


2015年05月03日


日本語 Eclipse 4.4 Pleiades All in One Java(Vector から) で即 Window Builder を使う

Eclipse 4.4 Pleiades All in One Java を Vector よりダウンロード



32ビットの Java Full バージョンのみですが、とても使いやすくおすすめです。

Pleiades では、Eclipse の書庫内の階層が多すぎて、解凍用のソフトウェアにも言及するようなものでしたが、これを使うと自己解凍なので安心して使用できます。

『デフォルトでは c:\pleiades (c:\pleiades\eclipse) に解凍されます。』

なので、デフォルトを変えるのはおすすめではありません。というかしないほうがいいです。そして、自己解凍はそういう理由なので、アンインストールはフォルダを削除するだけで良く、二つ以上の Eclipse の開発環境も作成可能です。

pleiades のお約束

1) 既に日本語化されている
2) 何か設定が変わったら、eclipse.exe -clean.cmd を実行するといいかもしれない
3) JDK は中に入っているので Java のインストールは必要無い。既にあっても関係無い。

解らない場合は忘れて下さい。過去の経験からのお約束なので。

Window Builder プロジェクトの作成





これで作らないと動きません。



プロジェクトから新規で『その他』



アプリケーションウインドウを作成します



ここまでで、Window を表示可能になります

メニューの処理

少し解りにくいですが、Menu Manager が、同一階層のメニューユニットです。デフォルトでは空なので、さらに Menu Manager を追加し、その中に 『新規』を追加して行きます。




この時点でソースには、二つのアクションが作成されています。
	/**
	 * Create the actions.
	 */
	private void createActions() {
		// Create the actions
		{
			action = new Action("New Action") {

			};
		}
		{
			action_1 = new Action("New Action") {

			};
		}
	}
後は、Action の中で、Override で run を作成してその中に処理を記述します




	/**
	 * Create the actions.
	 */
	private void createActions() {
		// Create the actions
		{
			action = new Action("New Action") {

				@Override
				public void run() {
					// TODO 自動生成されたメソッド・スタブ
					super.run();
					
					System.out.println("メニューの処理");
				}

			};
		}
		{
			action_1 = new Action("New Action") {

			};
		}
	}
ボタンはもっと簡単で、作ってダブルクリックしたらイベントが作成されます
	/**
	 * Create contents of the application window.
	 * @param parent
	 */
	@Override
	protected Control createContents(Composite parent) {
		Composite container = new Composite(parent, SWT.NONE);
		container.setLayout(null);
		{
			Button btnNewButton = new Button(container, SWT.NONE);
			btnNewButton.addSelectionListener(new SelectionAdapter() {
				@Override
				public void widgetSelected(SelectionEvent e) {
					System.out.println("ボタンの処理");
				}
			});
			btnNewButton.setBounds(10, 10, 81, 28);
			btnNewButton.setText("New Button");
		}

		return container;
	}



posted by at 00:32 | Comment(0) | 開発用 | このブログの読者になる | 更新情報をチェックする


2013年02月26日


BASP21

ダウンロードサイト

このページには、2007/06/29 の最新バージョンがありますが、開発としては、昔からずっと使っていて信頼性の高い 2003/02/11 バージョンがおすすめです。

非常に簡単にメールを送る事ができ、メール受信も可能です。( メール受信は簡易的な目的以外は使わないほうが良いとは思います )
そのほかにも役に立つ機能はたくさんあるのですが、時代の変化とともに、他にも良いフリーソフトがたくさん出てきたので、メール送信以外ではもう使わないかもしれません。

↓もっとも最近作った Basp21 を使ったメール送信のツールです。
IE 拡張メニューで取得したテキストをメールで送る(Basp21版)



posted by at 05:33 | 開発用 | このブログの読者になる | 更新情報をチェックする



JGREP 2.0.5 はWin7 でも動作する、テキスト内文字列検索のできる結構人気の高いフリーソフトです

ダウンロードページ

かなり古いソフトではありますが、他の同類のソフトをダウンロードして試してみましたが、他の同類のソフトはWindows7 で動作しなかったり、GUI の設計がまずかったりで、それらと比較すると結局総合点は高いものだと思っています。

最新バージョンが 2004/10/11 で完全に開発は終了していますが、以下の画像からも解るように、とてもデザイン性に優れています。

Windows8 でも使っています

想定する目的は、Windows8 のサンプルソースコードが大量にあるので、その中からキーワードを検索して、内容の解析調査をする事です。すでに開発の終わったWEBシステム内のソースコード内から必要な文字列を探し出す場合にも威力を発揮します( SQL 文の検索はとても重宝します )



設定ダイアログ

※ F10 で開く環境設定ダイアログです



このソフトは、機能の特性上検索後のテキストデータを表示する機能が必要になりますが、既存のエディタを使う事を想定しており、世の中にある有名なエディタのコマンドライン引数を簡単に設定できるようになっています。



このソフトを使うシチュエーションでは、同様の操作を続けて行う可能性がありますので、常に指定した検索設定は保存しておくほうが賢明です。

検索後、その行でエディタを開く



その他

★ 正規表現を記述する場合は、『正規表現をしない』チェックを外します
★ 大文字小文字を区別したい場合は、『大文字小文字を区別する』にチェックします
★ ネットワークドライブは固まる可能性が高いので使用しないほうがいいです


タグ:文字列
posted by at 00:43 | Comment(0) | 開発用 | このブログの読者になる | 更新情報をチェックする


2012年04月16日


TeraPad 導入時の設定

2014/04/16 時点で 最新版は、1.09 です。1.08リリースからもう一年以上経過しているので、ほぼ機能的には完成されてしまっています。

※ インストーラは使った事が無いので、zip 版を前提に話を進めて行きます

zip 版の場合、Windows 純正( 右クリックより )で展開すると、実行時に以下のようなダイアログが出るので、実行ファイルを右クリックしてプロパティを開いて『ブロックの解除』を行っておきます



▼ ブロックの解除



オプション設定

起動後、まずオプションダイアログを開きます。




ウインドウ

最初にまず、『ウインドウ』タブを開いて以下のように設定します

1) 何より、以前のウインドウ位置やサイズは復帰してもらわないと非常に不便です。
2) 現在開いているファイルがどこにあるかをすぐ知る為に、タイトルバーの設定は必須です。




表示

タブや空白文字が非表示になっているので、必ず表示するようにしておきます。特にソースコードを扱う上において、漢字スペースかどうかの判断は一目瞭然にしておく必要があります。




ファイル

これは必ずしも必要ではありませんが、アプリケーション作成やログのチェック等の作業で、リアルタイムに結果をエディタで見る必要がある事のほうが多いので、設定しておくといいと思います。




SendTo フォルダにショートカットを作成する

エクスプローラのアドレスに sendto と入力すると、SendTo フォルダへ移動できます

SendTo フォルダにショートカットを作成しておくと、右クリックからどんなファイルも対象にして開く事ができます。ショートカットはいったんデスクトップに作成しておいて、後で以下のフォルダに移動するといいと思います( Windows7 等 )

C:\Users\ユーザー\AppData\Roaming\Microsoft\Windows\SendTo

簡単に SendTo フォルダを開きたい場合は以下のスクリプトをダウンロードして実行して下さい。
SendTo ディレクトリ



※ SendToフォルダを開くスクリプトの内容
Set obj = CreateObject("Shell.Application")
Set objFolder = obj.NameSpace( &h09 )
obj.Explore(objFolder.Self.Path)
Set obj = Nothing




posted by at 16:06 | Comment(0) | 開発用 | このブログの読者になる | 更新情報をチェックする


2010年08月18日


RegDiff をダウンロードしてアプリケーションのインストール前後のレジストリの差分をチェックするスクリプト

RegDiff というソフトは、レジストリのエクスポートファイルから差分を出力します。目的としては、アプリケーションのインストール前後によってレジストリがどう変わるかをチェックしたり、Windows の設定前後のレジストリの変化をチェックして、該当するエントリを探したりするのに使います。

ただ、ふつうに使うと結構面倒ですし、作業自体がたまにしか行わないので準備するのも少し面倒です。そこで、必要な時にスクリプトを実行するだけで、RegDiff そのものをダウンロードして一連の制御も同時に行います。


ブラウザでダウンロード


何かインストール(または設定)する前にこのスクリプトを起動しておきます。

Regdiff1


途中で実行が止まりますので、目的のインストール(設定)等を行います。
( 以下のメッセージボックスです )

Regdiff2


インストール(設定)が終了したら、OK をクリックして残りの作業を継続すると、その時点でのレジストリ情報をエクスポートした後に以下のダイアログが表示されます

Regdiff3


確認すると、RegDiff による比較が実行されます

Regdiff4


比較が終了すると、レジストリデータを削除するかどうかの確認です
( キャンセルで残す事もできます )

Regdiff5

最後に差分データをメモ帳で開きます
( スクリプトと同じディレクトリに作成されます )

Regdiff6




↓単独で使用した場合の実行


本来のダウンロードサイト



posted by at 12:50 | 開発用 | このブログの読者になる | 更新情報をチェックする


2009年08月21日


XN Resource Editor



ダウンロードサイト

( ※ 3.0.0.1 の日本語化されたものがあります )

使い道としては大きく分けて二つあります。

1) Visual Studio のような IDE を使わずに VC++ 用の画面を作る

【VC++】誰でもダイアログアプリケーション

2) 既存の .exe のリソースを変更する

後者では、日本語化などに使われたりしますが、以下のようにいろいろな使い道があります。

関連する記事

XN Resource Editor でシステムのプロパティを変更してみました
XN Resource Editor で guidgen.exe を日本語化してボタンをメニュー化改造



タグ:改造
posted by at 23:33 | 開発用 | このブログの読者になる | 更新情報をチェックする


2009年07月28日


EXE、DLL が依存している他の DLLの一覧と各 DLL 内の関数情報を表示する

Microsoft の Visual Studio に付属しているツールですが、どうも作成元は Microsoft では無いようで、現時点の最新版は、2.2.6 でこちらからダウンロードできます

Depends

上記画像は、SHLWAPI.DLL 内の StrToInt 関数をポイントしたものです。

日本語化パッチは ここにあります。
以下は日本語化したものです( もしバージョンが上がっても、XN Resource Editor で比較的簡単に日本語化はできそうです )

Depends_j

■ 関連する Microsoft のドキュメント

Visual C++ アプリケーションの依存関係の理解
Depends.exe ツール関連のサポートオンライン


タグ:DLL
posted by at 16:00 | 開発用 | このブログの読者になる | 更新情報をチェックする


2009年05月21日


PrimoPDF

ダウンロードサイト

オリジナルは、http://www.primopdf.com/ にありますが、途中からエクセルソフト(XLsoft)が日本でサポートするようになったみたいです。

要するに仮想プリンタドライバで、PDF 化が可能です。開発環境にプリンタが無い場合や、位置あわせ等何度も出力して試したい場合に最適です。

Primopdf

※ デフォルトは上書きですが、オプションで追加にする事ができます。
※ PDF の出力先は指定できますが、ファイル名は自動的に構成されます



posted by at 13:35 | 開発用 | このブログの読者になる | 更新情報をチェックする


Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

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

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

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

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


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

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

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

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

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