SQLの窓 イラストAC フリー素材

2015年02月28日

AN HTTP Server Home Page( AN HTTPD / www.st.rim.or.jp/~nakata) のルートの HTML ファイルが全て消えている件

▼ WEB アーカイブ
http://web.archive.org/web/20150205213143/http://www.st.rim.or.jp/~nakata/

とりいそぎ、上のリンクからページを見る事はできますし、zip ファイルはまだあるようなのでダウンロードできました。

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

もちろん WEB アーカイブからもダウンロードできます。

2月5日には少なくとも存在した

http://web.archive.org/web/*/http://www.st.rim.or.jp/~nakata/



WEB アーカイブの最後のアクセスです。Google で検索しても、ルートの HTML に対する URL はヒットしないので、無くなってからそれなりの日時が経過していると思われるので、サーバーの問題では無く、リムネットとの契約の問題か、ご本人の意思か、悪意のある外部からのアクセスがいずれかでしょう。

第二階層のフォルダへのリンク(Google でヒットしました)はまだ残っているので良く解りません。

AN httpd FAQ
AN HTTP Server オプション



posted by at 2015-02-28 14:31 | Comment(0) | 資料 | このブログの読者になる | 更新情報をチェックする

2015年02月26日

VBScript(WMI) : システム環境変数の変更を監視する event_change_reg.wsf

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

RegistryValueChangeEvent class

Receiving a WMI Event

RegistryValueChangeEvent は、HKEY_CURRENT_USER をサポートしていません

以下のサンプルは、システム環境変数の PATH を変更した場合にメッセージが表示されます

event_change_reg.wsf
<JOB>
<OBJECT id="WshShell" progid="WScript.Shell" />
<SCRIPT language="VBScript">
Crun

' **************************************
' WMI
' **************************************
Set objWMIServices = GetObject("winmgmts:\\.\root\default")
Set objSink = WScript.CreateObject( "WbemScripting.SWbemSink","SINK_")

' **************************************
' WMI イベント登録
' **************************************
objWMIServices.ExecNotificationQueryAsync objSink, _
    "Select * from RegistryValueChangeEvent Where " & _
    "Hive = 'HKEY_LOCAL_MACHINE' and " & _
    "KeyPath = 'SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment' and " & _
    "ValueName = 'Path'"

WScript.Echo "イベント待機中..."

While True 
     WScript.Sleep 1000
Wend

' **************************************
' 終了確認
' **************************************
Wscript.Echo "処理が終了しました"

' **************************************
' WMI イベント
' **************************************
Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext) 
	WScript.Echo "レジストリが変更されました"
	WScript.Echo wmiObject.KeyPath
	WScript.Echo wmiObject.ValueName
	WScript.Echo WshShell.RegRead("HKLM\" & wmiObject.KeyPath & "\" & wmiObject.ValueName)
End Sub


' **************************************
' Cscript.exe で実行を強制
' Cscript.exe の実行終了後 pause で一時停止
' **************************************
Function Crun( )

	Dim str

	str = WScript.FullName
	str = Right( str, 11 )
	str = Ucase( str )
	if str <> "CSCRIPT.EXE" then
		str = WScript.ScriptFullName

		strParam = " "
		For I = 0 to Wscript.Arguments.Count - 1
			if instr(Wscript.Arguments(I), " ") < 1 then
				strParam = strParam & Wscript.Arguments(I) & " "
			else
				strParam = strParam & Dd(Wscript.Arguments(I)) & " "
			end if
		Next
		Call WshShell.Run( "cmd.exe /c cscript.exe " & Dd(str) & strParam & " & pause", 3 )
		WScript.Quit
	end if

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

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

End function
</SCRIPT>
</JOB>





タグ:VBScript WMI
posted by at 2015-02-26 00:31 | Comment(0) | VBScript | このブログの読者になる | 更新情報をチェックする

2015年02月23日

VBScript : スクリプトが存在するディレクトリをユーザ環境変数の PATH へ登録



スクリプトが存在するディレクトリを ユーザ環境変数の PATH へ登録します。もし、システム環境変数またはユーザ環境変数に既に同じパスがあれば登録しません。登録位置は、PATH 環境変数文字列の一番最後になります

登録直後、cmd.exe で PATH の内容を見ても反映されないので、最後にエクスプローラを再起動しています。
<JOB>
<OBJECT id="WshShell" progid="WScript.Shell" />
<OBJECT id="WshNetwork" progid="WScript.Network" />
<OBJECT id="Fso" progid="Scripting.FileSystemObject" />
<SCRIPT language="VBScript">

strTitle = "スクリプトが存在するディレクトリをユーザPATH環境変数に登録"

' **************************************
' PC 名と ユーザ名を取得
' **************************************
strUser = WshNetwork.UserName
strMachine = WshNetwork.ComputerName

' **************************************
' スクリプトが存在するディレクトリを取得
' **************************************
strScriptPath = WScript.ScriptFullName
Set obj = Fso.GetFile( strScriptPath )
Set obj = obj.ParentFolder
strScriptPath = obj.Path

' **************************************
' WMI
' **************************************
Set obj = GetObject("winmgmts:\\.\root\cimv2")

' **************************************
' システム環境変数のチェック
' **************************************
strValue = ""

Set objItems = obj.ExecQuery _
   ("select * from Win32_Environment where SystemVariable = True and Name = 'PATH'")

For Each objItem in objItems
	strValue = objItem.VariableValue
Next

if strValue <> "" then
	aData = Split( strValue, ";" )

	For I = 0 to Ubound( aData )
		if UCase(aData(I)) = UCase(strScriptPath) then
			Call Msgbox( "システム環境変数に既に登録されています", 0, strTitle )
			Wscript.Quit
		end if
	Next
end if


' **************************************
' ユーザ環境変数のチェック
' **************************************
strValue = ""

Set objItems = obj.ExecQuery _
   ("select * from Win32_Environment where SystemVariable = False and Name = 'PATH'")

For Each objItem in objItems
	if Ucase( objItem.UserName ) = Ucase(strMachine & "\" & strUser) then
		strValue = objItem.VariableValue
	end if
Next

if strValue <> "" then
	aData = Split( strValue, ";" )

	For I = 0 to Ubound( aData )
		if UCase(aData(I)) = UCase(strScriptPath) then
			Call Msgbox( "ユーザ環境変数に既に登録されています", 0, strTitle )
			Wscript.Quit
		end if
	Next
end if


' **************************************
' ユーザ環境変数を登録
' **************************************
strValue = strValue & ";" & strScriptPath

Set objEnv = obj.Get("Win32_Environment").SpawnInstance_

objEnv.Name = "PATH"
objEnv.UserName = strMachine & "\" & strUser
objEnv.VariableValue = strValue
objEnv.Put_

' **************************************
' エクスプローラを再起動
' ( ※ 登録されたパスを有効にします )
' **************************************
Set colProcessList = obj.ExecQuery _ 
	("Select * from Win32_Process Where Name = 'explorer.exe'") 
For Each objProcess in colProcessList
	on error resume next
	objProcess.Terminate() 
	on error goto 0
Next 

' 少し待ちます
Wscript.Sleep(500)
Call WshShell.Run( "explorer.exe" )


' **************************************
' 終了確認
' **************************************
Wscript.Echo "処理が終了しました"

</SCRIPT>
</JOB>


元となった Hey, Scripting Guy!

スクリプトを使用して環境変数を作成することはできますか


タグ:WMI VBScript
posted by at 2015-02-23 22:27 | VBScript | このブログの読者になる | 更新情報をチェックする

2015年02月05日

VBScript で GUID 生成

このコードは、VBScript のノウハウの詰まった『Hey, Scripting Guy!』に掲載されていたものです。

Scripting Guy さん、よろしくお願いします。スクリプトを使用して GUID を作成することはできますか。
Set TypeLib = CreateObject("Scriptlet.TypeLib")
WScript.Echo TypeLib.Guid
この記事では後半に、InternetExplorer.Application を使って GUID をクリップボードらコピーする方法が続きます。しかし、今の時代ではコマンドプロンプトで、clip.exe が使用できるので、そちらを使うのもいいかもしれません。
sCommand = "cmd /c echo Set TypeLib=CreateObject(""Scriptlet.TypeLib""):Wscript.echo TypeLib.Guid>%temp%\_.vbs&cscript.exe /NOLOGO %temp%\_.vbs | clip"

Set WshShell = WScript.CreateObject("WScript.Shell")
Call WshShell.Run( sCommand, 0, True )
WshShell.Run
0 : ウィンドウを非表示にし、別のウィンドウをアクティブにします
TRUE : プログラムの実行が終了するまでスクリプトの実行は中断



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

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

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

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

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


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

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

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

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

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


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX