SQLの窓

2009年06月29日


CLSIDで特殊フォルダを開く


REM マイ コンピュータ
Explorer /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

REM マイ ネットワーク
Explorer /e,::{208D2C60-3AEA-1069-A2D7-08002B30309D}

REM マイ ドキュメント
Explorer /e,::{450D8FBA-AD25-11D0-98A8-0800361B1103}

REM コントロールパネル
Explorer /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}

REM ごみ箱
Explorer /e,::{645FF040-5081-101B-9F08-00AA002F954E}

REM プリンタ
Explorer /e,::{2227A280-3AEA-1069-A2DE-08002B30309D}

関連する記事

Explorer.exe コマンドライン


posted by lightbox at 2009-06-29 00:26 | Windows | このブログの読者になる | 更新情報をチェックする

2009年06月28日


ディレクトリごと新しいファイルのみをコピーする

XCOPY は、データのバックアップをバッチ処理で毎日行うのに便利です。サーバーであれば、スケジューラにバッチファイルを登録するのが一般的です。
xcopy.exe "コピー元ディレクトリ" "コピー先ディレクトリ" /D /E /C /S /Y    

/D
コピー元の日付がコピー先の日付より新しいファイルだけをコピーします。

/E
ディレクトリまたはサブディレクトリが空であってもコピーします。

/C
エラーが発生してもコピーを続けます。

/S
空の場合を除いて、ディレクトリとサブディレクトリをコピーします。

/Y
既存のファイルを上書きする前に確認のメッセージを表示しません。


※ 詳細は、xcopy /? で

posted by lightbox at 2009-06-28 23:17 | コマンド : コマンド | このブログの読者になる | 更新情報をチェックする

2009年06月25日


"A,B,C" を配列に変換後 "A,B,C" につなぎなおす

一番簡単で有用な VBScript
VB系では、配列が () なのに注意です
str = "A,B,C"
aData = Split(str, ",")

result = ""

For I = 0 To Ubound(aData)
	If result <> "" Then
		result = result & ","
	End If
	result = result & aData(I)

Next

MsgBox( result )
Wscript.Echo result

しかし、VBScript は古めの言語なので、演算子として &= という
ものは使えません( VB.NET は OK )

ですから、以下のPHPはそのへんを忠実に書き換えていますが、
.= という書き方が可能です。
殆ど VBScript と同じですが、配列の数を取得するのに、PHPでは
直感的な count 関数を使用しているのに対して、VBScript では
配列の添え字の上限 を求める UBound 関数を使用します。
<?
$str = "A,B,C";

$aData = explode(",",$str);

$result = "";

for( $i = 0; $i < count($aData); $i++ ) {
	If ( $result != "" ) {
		$result = $result . ",";
	}
	$result = $result . $aData[$i];
}

print $result;

?>
さらに、VB.NET への移行は、VBScript より厳密になるので、
データの定義や型の明示が必要になります。

ここで注目なのは、Split メソッドの引数に文字列が使えてしまう事。
本来は、Char の配列でないといけないのですが、何故か動きます。
","c と同等なのかどうかは解りませんが、VBでの選択肢は結構多いのです
Public Class Form1

	Private Sub Button1_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles Button1.Click

		Dim str As String = "A,B,C"
		Dim aData As String()

		aData = str.Split(",")

		Dim I As Integer
		Dim result As String = ""

		For I = 0 To aData.Length - 1
			If result <> "" Then
				result &= ","
			End If
			result &= aData(I)

		Next

		MessageBox.Show(result)

	End Sub
End Class

C# では、Split メソッドの本来の使い方を実装しています。
というか、これでないとコンパイルは通りませんし。
private void button1_Click(object sender, EventArgs e)
{

	string str = "A,B,C";
	string[] aData = null;

	String delimStr = ",";
	Char[] delimiter = delimStr.ToCharArray();

	aData = str.Split(delimiter);

	int I = 0;
	string result = "";

	for (I = 0; I <= aData.Length - 1; I++)	{
		if (!string.IsNullOrEmpty(result)) {
			result += ",";
		}

		result += aData[I];
	}

	MessageBox.Show(result); 

}

タグ:VBScript VB.NET PHP C#
posted by lightbox at 2009-06-25 17:09 | プログラミング・仕様等 | このブログの読者になる | 更新情報をチェックする

2009年06月23日


WSH : VBScript から JavaScript の呼び出し

.wsf で、SCRIPT タグを使って VBScript と JavaScript を混在させる場合、呼ばれるほうは先に定義される必要があるようです。

つまり、以下はエラーになります。
<JOB>

<SCRIPT language=VBScript>

js()

</SCRIPT>

<SCRIPT language=JScript>

function js() {
	Wscript.Echo( "JS" )
}

</SCRIPT>

</JOB>


しかし、以下は正しく実行されます。逆の場合でも同じでした
<JOB>

<SCRIPT language=JScript>

function js() {
	Wscript.Echo( "JS" )
}

</SCRIPT>

<SCRIPT language=VBScript>

js()

</SCRIPT>

</JOB>


で、結局 encodeURIComponent を実行したかったのです
<JOB>

<SCRIPT language=JScript>

function js(str) {

	return encodeURIComponent( str );

}

</SCRIPT>

<SCRIPT language=VBScript>

MsgBox js("日本語をURLエンコードする")

</SCRIPT>

</JOB>





タグ:レア
posted by lightbox at 2009-06-23 18:06 | VBS + JavaScript | このブログの読者になる | 更新情報をチェックする

2009年06月22日


land.to で容量オーバに気付かず、Web Patioのログが消えた場合

こないだレスキューしたお話。

land.to は、容量100M なので、わりと簡単に超えてしまいます。
それに気づかずに、掲示板の書き込みをしたらトップの一覧が消えていました。

この掲示板は、:: KENT WEB - CGIスクリプト :: にある非常にポピュラーな掲示板で、
一覧は、現行が「index1.log」過去が「index2.log」です。
消えたと言っても、このログが消えただけで、本体は消えていません。
( 可能性として1スレッドは消えているかもしれませんが )

log ディレクトリにある数字のあるファイルがスレッドなので、そのスレッドぶんの
index1.log を作成し、一覧から順に更新していけば正しい index1.log が作成されます
( 多少面倒ですが )
2<><><>
2<>2<>0<>lightbox<><>lightbox<>1<>
1<>1<>0<>lightbox<><>lightbox<>1<>

( 先頭は最大スレッド番号と、最近の更新情報が入るので値が一致すればよい )

それぞれのフィールドの意味は未確認ですが、まあ復旧できれば良いので
スレッドの数と数字が一致しておれば他の掲示板のものでも良いので、
それをコピーしてもいいです。


別件ですが、この要領と同じく後から現行のログスレッド数を増やして、
過去ログから現行ログへ移動する事ができます


タグ:トラブル
posted by lightbox at 2009-06-22 23:37 | 記録 | このブログの読者になる | 更新情報をチェックする

Oracle : ディレクトリオブジェクト

前提条件
  • 該当ユーザでログインして、select * from USER_SYS_PRIVS で権限があるかを確認
  • 作成には CREATE ANY DIRECTORY 権限が必要
  • 既に権限を持つユーザで作成し、PUBLIC に対して利用権限を与えても良い
  • すべてのディレクトリは 1 つのネームスペースに作成される

権限のあるユーザで以下を実行して、ユーザに作成と削除の権限を与えます。
権限を与えるューザは、通常 SYSTEM で統一すると良いと思います。
権限が付与されたかどうかの確認は、そのユーザでログインして、
select * from USER_SYS_PRIVS を実行します
grant 
	CREATE ANY DIRECTORY 
	,DROP ANY DIRECTORY 
to ユーザ名


作成には、create or replace が使用できます。
ディレクトリオブジェクト名は、全体で重複できないので注意して下さい。
CREATE DIRECTORY ディレクトリオブジェクト名
   AS 'C:\user\php\plsql_builder\oracle'



作成は、SYSTEM で行って、権限のみユーザに与えます。
しかし、これでは SYSTEM ユーザでの作業が多くなるので、
ユーザ毎に作成権限を与えるか、ユーザ名を PUBLIC にします。
GRANT
	READ,WRITE
	ON DIRECTORY
	ディレクトリオブジェクト名 TO ユーザ名




関連する記事

ディレクトリオブジェクトの作成(1)
ディレクトリオブジェクトの作成(2)
ディレクトリオブジェクトの作成(3)

関連するOracleドキュメント

CREATE DIRECTORY



タグ:Oracle
posted by lightbox at 2009-06-22 10:58 | Oracle : 環境 | このブログの読者になる | 更新情報をチェックする

2009年06月19日


コマンドプロンプトからサービス開始

Service_name

コマンドプロンプトからサービスを開始するには、以下のどちらかを使用します
net start サービス名
net start "表示名"

同様に、停止する時は、
net stop サービス名
net stop "表示名"

です。

厳密には、サービス名 が正しいのですが、ツールとして上記のような利用方法に対応しているようです

※ 大文字小文字を区別しないようです
net start Spooler
net start spooler
net start "Print Spooler"
net start "print spooler"


関連する記事

WMIでローカルPCのサービス開始
WMIでリモートPCのサービス開始
ADSI による サービス開始

タグ:サービス
posted by lightbox at 2009-06-19 10:01 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2009年06月14日


SendToディレクトリ内のファイル属性

「送る」は、そこに置いたショートカットゆアプリケーションに
エクスプローラが引数としてファイルのパスを渡してくれるのですが、
ディレクトリを作成すると階層構造が作れ、しかも、ディレクトリや
ファイルの属性を「非表示」にすると、「送る」にも表示されなくなります。

※ 表示する対象は、基本はログインしているユーザのSendTo ディレクトリです。

■ 関連する記事
SendToディレクトリにあるファイルの表示・非表示を設定する
エクスプローラで選択されたファイルをテキスト形式でクリップボードにコピーして利用する
「送る」に入れる簡易ダンプ



タグ:送る
posted by lightbox at 2009-06-14 20:00 | Windows | このブログの読者になる | 更新情報をチェックする

2009年06月13日


IEのツールバーにアプリケーションを追加する

5E2A2467-75B4-42AD-95D5-1B7FA3B1B406 は、WSH : GUID取得 で取得します。Script では無く、Exec も使用できます。アイコンは、HotIcon がマウスカーソルが上に来た時のもので、.ico を使用したほうが無難です。一応、exe(dll),リソースIDで利用できるはずですが、確認していません

Ie_toolbar_button
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions\{5E2A2467-75B4-42AD-95D5-1B7FA3B1B406}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"Script"="C:\\laylaClass\\extensions\\menuex_location.htm"
"Default Visible"="Yes"
"ButtonText"="テスト"
"Icon"="C:\\laylaClass\\App.ico"
"HotIcon"="C:\\laylaClass\\App.ico"





posted by lightbox at 2009-06-13 21:50 | IE | このブログの読者になる | 更新情報をチェックする

2009年06月12日


IEのツールメニューにアドオンする

IE拡張メニューとほぼ近いものですが、現在表示されている
ページ全体に対して「何かをする」という機能に合っています。

「アドオンの管理」で表示・非表示も切り替えれるようです。
ブラウザでダウンロード
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{7D4A0D6B-9722-4106-8D10-6E3684F04594}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"MenuText"="テストメニュー"
"MenuStatusBar"="ステータスバーに表示される文字列"
"Script"="C:\\laylaClass\\extensions\\menuex_location.htm"


(HKEY_CURRENT_USER にするとユーザ単位です)
<SCRIPT language="VBScript">

	on error resume next
	' *************************************************
	' URLの表示
	' *************************************************
	str = external.menuArguments.location.href
	if Err.Number <> 0 then
		str = "URL を取得できませんでした"
	else
		' 取得できたらクリップボードにセット
		Call window.clipboardData.setData("Text",str)
	end if
	on error goto 0

	alert(str)

</SCRIPT>

これはあくまでサンプルなので、レジストリをインポートした後、
C:\laylaClass\extensions\menuex_location.htm を作成して、
上記 VBScript のコードを書き込む必要があります

Ie_toolmenu

上記は、IE6 で追加したものですが、IE7 でも同様です。

※ 2009/06/13
Windows2000 + IE6 でも動作を確認しましたが、「アドオンの管理」は無いみたいです。

※ 7D4A0D6B-9722-4106-8D10-6E3684F04594 は、任意のGUID なので、
WSH : GUID取得 で個別に作成します



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

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

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

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

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


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

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

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

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

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


Windows
container 終わり

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

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり