2009年10月31日土曜日

【自作】Sleipnir別ブラウザ表示スクリプトインストーラ 「exBrowserSleipnir」

この投稿で書いた、
Sleipnirでのアクティブページを別のブラウザで開くスクリプトを、
ダウンロードしインストールする、インストーラを作成しました。
その名も「exBrowserSleipnir」。
以下からダウンロード及び実行出来ます。
詳しい利用方法は、zip内の「Readme.txt」を参照して下さい。
exBrowserSleipnir Ver1.00 ダウンロード exBrowserSleipnir_v100.zip 直接起動はこちら。 exBrowserSleipnir.vbs
この投稿で書いていたのはFirefoxに関してですが、 このインストーラを利用すると、Chrome用も同時にインストールされます。 当然、Sleipnir及びFirefox、Chromeがインストールされていない場合、 エラーと共に終了することになります。 主に自分用なので、細かなエラーチェックもしていないのが特色(?)です。 インストーラを実行し終了した後、「スクリプトの再読み込み」を行うと、 「スクリプト」内へ以下の様に表示されます。

Sleipnir APIを利用したアクティブページ別ブラウザ表示

Sleipnirを利用している人には分かることなのですが、
標準でいくつかのスクリプトが用意されています。
その中には、内部でSleipnirAPIを使用しているモノもあります。
SleipnirAPIに関してはこちら。
タブブラウザ Sleipnir オンラインデータベース(Sleipnir.API リファレンス)

で。
SleipnirAPIを利用して、アクティブページのURLを取得し、
別のブラウザで表示するスクリプトを作成したので、以下にまとめます。

まずはソースを。
そんなに難しい内容ではないです。
' ******************************************************
' FirefoxでSleipnirアクティブページを表示
' ******************************************************
Option Explicit

Dim Pnir, WshShell, Url

' SleipnirAPI呼び出し
Set Pnir = CreateObject("Sleipnir.API")

' 現在開いているページのURL取得
Url = "firefox "
Url = Url & Pnir.URL

' 非同期で呼び出し
Set WshShell = WScript.CreateObject("WScript.Shell")
Call WshShell.Run( Url )
ソースはFirefoxで開いていますが、Chromeでも確認済です。 「名前を指定して実行」出来るブラウザに対してはいけるはずです。 ブラウザを変える場合には、12行目のブラウザ名を変更してください。 以下が使用準備・方法となります。 Sleipnirのメニューバー「スクリプト」内のスクリプトが実行出来ない場合は、 「ツール」→「Sleipnirオプション内」から、 スクリプト実行を許可する必要があります。 スクリプトが利用できるようになると、 「スクリプト」内の「スクリプトの整理」を選択できるようになるので選択。 Sleipnirのスクリプトディレクトリが表示されるので、 「Firefoxで開く.vbs」を作成し、上のソースをそのまま貼り付けて保存。 Sleipnirに戻り、先ほど作成したスクリプトファイルを表示するために、 「スクリプト」内の「スクリプトの再読み込み」を行います。 「Firefoxで開く.vbs」が表示されるので選択。 Sleipnirで開いているページが、Firefoxで表示されれば完了です。 なお、当然ながらFirefoxで開くので、 インストールされていない場合にはエラーが発生します。 何しろエラーチェックしていないもので・・・。

2009年10月29日木曜日

VB.NET Enter時フォーカス遷移

昨日の続きで、試験で使用するソースについてメモ。

基本的にフォーカスを遷移する際にはTABを使うので、
遷移順位を付ける「タブオーダー」で並べ替えておきます。
ですが、一つの画面で複数の項目を素早く入力する場合には、
入力後の「Enter」で次のテキストボックスやボタンに遷移しておくべきです。

というわけで、その為のソースです。
2通りの方法がありますが、好きな方を選ぶと良いと思います。

1つ目:「KeyDown」での取得・遷移。
' ******************************************************
' Enter時フォーカス遷移 / KeyDown
' ******************************************************
Private Sub TextBox1_KeyDown(ByVal sender As System.Object, _
  ByVal e As System.Windows.Forms.KeyEventArgs) _
  Handles TextBox1.KeyDown

  ' Enterの場合
  If e.KeyCode = Keys.Enter Then

    ' ビープ音を鳴らさないようにする
    e.SuppressKeyPress = True
    ' 次のTextBoxへフォーカスを当てる
    Me.TextBox2.Focus()

  End If

End Sub
「KeyDown」時に「どのキーが押されたか」をチェックします。 「Keys.Enter」で無くとも、Enterのキーコードである「13」でも可能です。 2つ目:「KeyPress」での取得・遷移。
' ******************************************************
' Enter時フォーカス遷移 / KeyPress
' ******************************************************
Private Sub TextBox2_KeyPress(ByVal sender As System.Object, _
  ByVal e As System.Windows.Forms.KeyPressEventArgs) _
  Handles TextBox2.KeyPress

  ' Enterの場合
  If e.KeyChar = Chr(Keys.Enter) Then

    ' ビープ音を鳴らさないようにする
    e.Handled = True
    ' 次のTextBoxへフォーカスを当てる
    Me.TextBox1.Focus()

  End If

End Sub
「KeyPress」時に「押されたキーはどれか」をチェックします。 「Chr(Keys.Enter)」は、 Chr関数によって「Keys.Enter」をそのまま「Enter」として返しています。

2009年10月28日水曜日

VB.NET テキストボックスでの入力制限

去年の春から授業でVB.NETを学び始め、それが今年も続いています。
当然年度ごとに大きな課題があり、
頭を悩ましながらかつ、みんなと協力しながら作り上げていきます。

そんな年度末の課題で使用した、テキストボックスの入力制限を、
今年の課題でも使う時が来たので、見て思い出せるようにメモ。

VB.NETとタイトルでは一言で書いてありますが、
生憎授業及び自宅での開発環境はVS2005ですので、
もしかしたらそれ以前、以降の環境ではダメかも知れないので注意。
' ******************************************************
' キー入力制限 / 数字+BackSpaceのみ
' ******************************************************
Private Sub TextBox1_KeyPress(ByVal sender As Object, _
  ByVal e As System.Windows.Forms.KeyPressEventArgs) _
  Handles TextBox1_KeyPress

  If (e.KeyChar < "0"c Or e.KeyChar > "9"c) _
   And e.KeyChar <> vbBack Then

    e.Handled = True

  End If

End Sub
入力制限は、TextBox1のKeyPressイベント発生時に行います。 このサンプルはコメントにも書いてある通り、「数字+BackSpace」のみです。 判断文字をしている際の「"0"c」などは、Char型へキャストしています。 この事に関しては、Microsoftのリファレンスに書かれていますね。 文字型 (Char) もし数字以外を入れたり(日付のための「/」など)する場合には、 判断にその文字を入れる必要があります。

2009年10月26日月曜日

Exifデータ抹消ソフト 「JPEG & PNG Stripper」

最近のデジカメって、凄い高画質なんですよね。
つい6年ぐらい前は、300万画素レベルのデジカメが数万したのに。
今じゃデフォルトが1000万画素だし、
ケータイでもそのくらいのレベルが採用されてるっていうのが凄い。

そうやって撮った綺麗な画像の中には、
「Exifデータ」という、画像に関しての情報が格納されています。

デジカメの型番から、もうわけのわからないデータまで。
デジカメによっては、どの場所で撮ったかなども分かるみたいです。

で。
その画像をそのままWeb上に上げてしまうのは、
何かこう、嫌な感じがします。えぇ。
なので、Exifデータを削除するソフトを使って、サクッと消してしまいます。
検索して真っ先に見付かったソフトです。

「JPEG & PNG Stripper」
作者サイトはこちら(英語)。
Home - www.SteelBytes.com
よくわかる解説サイトはこちら。
JPEG & PNG Stripper - k本的に無料ソフト・フリーソフト

使い方は簡単で、JPGもしくはPNGのファイルを、
ウインドウ内にドラッグ&ドロップするだけです。
ソフト下に結果が表示され、エラー無く終了すると、
ファイルのExifデータが見事に消えているはずです。


本当はこういったソフトが前から欲しくて、作ろうと思ったのですが、
検索してすぐに引っかかったのでまぁいいやと。

2009年10月24日土曜日

iPhone用にBluetoothヘッドセット購入

iPhoneは一応電話なので、対応しているイヤホンのボタンから、
音楽の再生/停止や電話に出たりなど出来るのですが、
以前からイヤホンの調子が悪くて、その機能が使えないままでした。
さらに、イヤホンを挿したまま根本をグリグリした結果、
根本付近が崩壊し、中のコードが見えてしまう始末。

どうせだからと、Bluetoothのヘッドセットを買うことにしました。
購入したのは、SonyEricssonの「HBH-DS205」です。
SONY ワイヤレスヘッドセット DS205 HBH-DS205


届いて箱を出してみたの図。
たかがヘッドセットなのに箱が大きいなぁと開けてみると、
なるほど、専用充電器が大きいんですね。

円筒状のものがレシーバーです。
こいつを服に付ければ、煩わしいコードともオサラバです。

iPhoneとのペアリングも、説明書通り行えば問題無く出来ました。

Bluetoothで音楽を聴いてみたの図。
ヘッドセットで聴いている間は、下に接続対象が表示されるようです。
右下のBluetoothアイコンをタップすると、スピーカーと切り替えができます。

まだ外に出て歩いたりしていないのですが、
ズボンにiPhoneを入れて聴いても、音ズレも音飛びもありませんでした。
普通のイヤホンとの違いは無い感じがします。
でも、外に出て電波やら他のBluetoothが居たら途切れたりするんだろうなぁ。

PS3にも繋げてみましたが、こちらも問題なし。
あくまでもヘッドセットなので、音楽などは聴けません。
ただ、ボイスチェンジャーなどで遊べます、一人で。

2009年10月23日金曜日

ほるめすメモ帳にCSSを反映しました

usamimi.infoに借りた「ほるめすメモ帳 - 暫定」には、
作っているサンプルやメモなど、地味に少しずつまとめています。
iPhoneでも見やすいようにシンプルに書いていたものの、
そろそろ縦に長く伸びてきた事とPCからでは質素に見えてしまうので、
PCとiPhoneでCSSを切り替えて反映してみました。

作ってみたものはこれです。
ほるめすメモ帳 - 暫定

PCとiPhoneとのCSSの切り替えは、
以前調べたOS判別を利用し、<HEAD>内で行っています。
<script type="text/javascript">
  if( navigator.userAgent.search(/iPhone/) != -1 ){
    document.write('<link href="css/iphone.css" rel="stylesheet" type="text/css"/>');
  }else{
    document.write('<link href="css/pc.css" rel="stylesheet" type="text/css"/>');
  }
</script>
PC版CSSでは、以下の様にグループ分けしています。 グループ分けを行い、「float」を行うことで、 左右にグループを表示することが出来ますが、 IE以外でのブラウザでは、そのままでは表示がおかしくなります。 この問題を解決するために1日も悩んでしまいました。 原因は、floatを行うことによる高さ(height)の消失です。 また、対策として「clearfix」という処理があります。 詳しくは以下の参考サイトで。 今回は、一番上のサイトのサンプルをそのまま使用させて頂きました。 ただ、仕様が厳密に違うのか、横幅(width)などが綺麗に反映されなかったので、 .clearfix:after時に、横幅と背景色を指定し直しています。 「:after」などに関しては、以下のページが参考になりました。 CSS: 宣言 Webページの世界は奥が深いんだなぁと、 Webプログラミングする時以上に実感しましたね。

2009年10月21日水曜日

Googleの「Table」を使ったブログ投稿一覧

※補足:文章にまとめる能力が枯渇しているため、非常に読みづらいです。Google Visualization API」がすごいと聞いたので、
せっかくだからと投稿一覧を表示してみることにしました。
実際に使用したのは、「Google Visualization API」のTableです。
以下を参考にしました。


まずは、できあがったものですね。
ほるメモいんぶろ - 投稿一覧
ブラウザ内に文字が大量に表示されるので、
文字羅列アレルギーの方は注意して下さい。

内容としては、先日iPhone用の一覧を作成した時にまとめた、
【まずはBloggerAPIで投稿一覧表示】
【iPhone Blogger投稿一覧に更新日表示】
を、バージョンアップしたような感じになります。


忘れそうになるので、「Blogger API」から取得出来るデータをまとめます。
基本的には、Google GData APIの「google.gdata.blogger」にあるものは、
全て取得出来るはずです。
ただ、試してみた時に取得出来ないもの(カテゴリなど)もありました。
それに関しては、ただ単に僕が把握しきれていない上、
記述ミスの可能性もあるので、一概にそうとは言い切れません。
今回取得出来たデータは以下の様なものです。
  • getUpdated().getValue().getDate(); :更新日時
  • getTitle().getText(); :投稿タイトル
  • getHtmlLink().getHref(); :投稿アドレス
  • getContent().getText(); :投稿内容
上の項目で取得出来る更新日時について。 iPhone用一覧を作成した時に、更新日時を日本風に書き換えましたが、 IEではうまく処理されずに、 「23:52:20/09/30(水) UTC+0900」のような不思議なカタチになります。 それは、ブラウザごとの更新日時の取得内容が異なるためです。 iPhone,Safali,Firefoxなどの、 「Tridentエンジン」を使用していないブラウザの場合は、 「Sat Oct 17 2009 22:34:27 GMT+0900」と取得し、 IEでは「Sat Oct 17 22:34:27 UTC+0900 2009」というように、 項目を取得する順番が入れ替わってしまいます。 対処は・・・どうしようかなぁ。 するなら、ブラウザ判別して処理を分けるぐらいしか思いつかないです。 取得した投稿内容について。 iPhoneのあれの時には使用していませんでしたが、 実はリファレンスをちゃんと読めば載っていたんですね。 ひとまず引っ張ってくることには成功しましたが、問題点が。 HTMLで戻ってくるのは嬉しいのですが、 <pre></pre>で囲って投稿を書いているおかげで、 各行に改行が挿入されないのです。 その結果、改行要素が含まれるタグ以外では改行されずに、 横に長々と文章が表示されるようになります。 ページ内で表示する際には、途中で折り返す処理が必須になります。 「Table」の初期ソートについて。 参考元サンプルをそのまま使うだけでは、 初期表示の際にどの列もソートされていない状態です。 初期表示の際にソートする場合には、 テーブル領域にデータを反映する際にパラメータを渡すことで行えます。
visualization.draw(data,
       {showRowNumber: true
        , sortColumn:0
        , sortAscending:false
        , cssClassNames: {
          tableCell: 'myVtd',
          headerCell: 'myVhtd'
        }
      });
これに関しては、以下のドキュメントに詳しく書かれています(英語)。 Visualization: Table - Google Visualization API - Google Code

2009年10月17日土曜日

「Google Chrome Frame」って何なのよ

GoogleのAPIを試せる「AJAX APIs Playground」へ久々に行ってみたものの、
下のような警告をされました。

つまりは、「そろそろIEに対応できないので、プラグインを入れろ」と。

じゃあ「Google Chrome Frame」は何者なの?と。

さっぱり書くなら、指定されたmetaタグが埋め込まれているページを、
Chromeと同じように動作表示する、ということでいいのかな?
直接的に、GoogleのAPIやHTML5の技術に触れられるという感じ?

それなら入れておいて損はしないんだろうなぁ、と思うけれど、
否定的な意見もあるみたいで。

プラグイン作動によるセキュリティの問題や、
ブラウザ自体を否定する様な扱いだ、というような感じ。

結局、IEを使い続けるかどうかはユーザ次第で、
ユーザがストレス無く新技術に触れられるのなら良いのかなぁとは思います。
ひとまず入れておくことにします。

VBScript fakepath回避選択ファイルパス取得サンプル

IEditorを作成した時に、
程よく使いやすいサンプルが出来たのでメモ。

ソースが長いので、見づらい場合には閉じて下さい。
▼ソースを開く/たたむ
' **********************************************************
' ファイル選択ダイアログを表示し、ファイルパスを取得する
' **********************************************************
Function GetFilePath()

  ' 変数宣言
  FilePath = "" ' ファイルパス
  ExtName = "exe" ' 拡張子判断用

  ' 初期メッセージ
  Msgbox("パスを取得するファイル(." & ExtName & ")を選択して下さい。")

  ' IEオブジェクトを用意
  Set Ie = CreateObject("InternetExplorer.Application")
  Ie.Navigate( "about:blank" )
  Ie.document.getElementsByTagName("BODY")(0).innerHTML = _
    "<INPUT id=FilePath type=file><TEXTAREA id=Text></TEXTAREA>"
  Ie.document.getElementById("FilePath").click

  ' 選択ファイルパス格納
  FilePath = Ie.document.getElementById("FilePath").value

  ' 選択ファイルパスチェック
  If FilePath = "" then
    ' ファイルが選択されなかったので終了
    Msgbox("ファイルが選択されなかったので終了します。")
    Wscript.Quit
  end If

  Set Fso = CreateObject( "Scripting.FileSystemObject" )
  If Fso.GetExtensionName( FilePath ) <> ExtName then
    ' 実行ファイル(.exe)が選択されなかったので終了
    Msgbox("選択されたファイルが実行ファイル(." & ExtName & ")で無いので、終了します。")
    Wscript.Quit
  End If

  ' IE8の場合はセキュリティの関係上、
  ' 「C:\fakepath」となるので、別処理取得
  If InStr( FilePath, ":\fakepath\" ) = 2 Then
    ' コピー&ペースト用定数用意
    Const OLECMDID_COPY = 12
    Const OLECMDID_PASTE = 13
    Const OLECMDID_SELECTALL = 17 '(&H11)
    Const OLECMDEXECOPT_DODEFAULT = 0
    ' FilePathの内容をコピーし、Textへペースト
    Ie.Document.all.FilePath.focus
    Ie.ExecWB OLECMDID_SELECTALL,OLECMDEXECOPT_DODEFAULT
    Ie.ExecWB OLECMDID_COPY,OLECMDEXECOPT_DODEFAULT
    Ie.Document.all.Text.focus
    Ie.ExecWB OLECMDID_PASTE,OLECMDEXECOPT_DODEFAULT
    FilePath = Ie.Document.all.Text.value
  End If

  ' Ie破棄
  Ie.Quit
  Set Ie = Nothing

  ' 最終的にファイルパス取得
  GetFilePath = FilePath

End Function
以下参考メモ。 ソースの大本は、以下を参考にしました。 ファイル選択ダイアログを開く:SQLの窓 IEオブジェクトを作成した際にエラーチェックしていませんが、 「IEの入っていないWindows環境」を見たことがないのに加え、 Vista+IE8でも問題無く通過しているので、様子見の状態です。 このサンプルでは、 ファイルを選択した際に拡張子を判別しています。 別に無くても良いのですが、IEオブジェクトを使用するという仕様上、 ファイル選択ダイアログ時に拡張子を限定することが出来ないため、 仕方無くファイルを選択した後の判断となります。 IE8の場合、<INPUT>に格納されるファイルパスを取得した際に、 セキュリティの問題上「C:\fakepath\」となります。 その回避として、 何度も紹介させて頂いている以下のサイトを参考にしました。 IE8で、input type=fileの.valueがc:\fakepath\filenameを返す。(その2): Windows Script Programming

2009年10月16日金曜日

【更新】「IEditor Ver1.12」

さらに対象レジストリを削除するように、更新しました。
詳細は「IEditor Ver1.00」の情報を見てもらえればわかると思います。

これでひとまず、登録/修正/設定削除が行えるようになったので、
大方の機能としては完了かと。
IEditor Ver1.12 ダウンロード IEditor_v112.zip 直接起動はこちら。 IEditor.vbs

【更新】「IEditor Ver1.11」

※追記:最新版は「Ver1.12」ですので、以下からダウンロードして下さい。
【更新】「IEditor Ver1.12」
実は、Vista+IE8で開発したので、
ちゃんとした動作確認をしていませんでした。
学校のPC(XP+IE6)で見てみると、別の場所に書き込んでいました。
ちゃんと確かめればいいのに・・・。

それに対応したVer1.11へアップデートです。
IEditor Ver1.11 ダウンロード IEditor_v111.zip 直接起動はこちら。 IEditor.vbs

【更新】「IEditor Ver1.10」

※追記:最新版は「Ver1.12」ですので、以下からダウンロードして下さい。
【更新】「IEditor Ver1.12」
よく考えてみると、テキトーなバージョン管理です。
機能を一新したからといって、
バージョンを0.1も上げてしまっていいのでしょうか。

というわけで、先ほど投稿した内容を含めてのバージョンアップ版です。
IEditor Ver1.10 ダウンロード IEditor_v110.zip 直接起動はこちら。 IEditor.vbs
今回もまた、Readme.txtに詳しいことが書いてありますが、軽く。 Ver1.00時には、ただ登録するだけのツールでしたが、 IEオブジェクトによるファイル指定によって、 別エディタを登録・変更することが可能となりました。 IE8は相変わらず対象外ですが、 IE8で行われた場合の「C:\fakepath」回避も搭載しました。 以下のサイトを再び参考にさせて頂きました。 この場でなんですが、ありがとうございます。 IE8で、input type=fileの.valueがc:\fakepath\filenameを返す。(その2): Windows Script Programming IEオブジェクトを利用しての、IE8対応ファイルパス取得コードは、 また時間がある時にまとめます。

IE8 【C:\fakepath】って何なのよ

今月14日に上げた「IEditor」をバージョンアップしようと思い、
先生のサイトの「ファイル選択ダイアログを開く」を参考に、
ローカルファイルを参照しようと思ったのですが、思わぬエラーが発生です。

IE8の環境で、
「InternetExplorer.Application」を利用してパスを取得すると、
「C:\fakepath\TeraPad.exe」というパスを取得しました。
また自分のソースをちゃんと読まないクセのせいか、と思って見直しても、
もちろんそんな内容が含まれたサンプルじゃありません。

Googleで検索してみると、どうやらIE8のセキュリティ対策のようです。

リンク先の情報によれば、以下の様な対処法があるようです。
  • IEのセキュリティレベルを下げる。
  • 「信頼するサイト」に登録する。
  • ファイルパスの取得方法を変更する。
セキュリティレベルを下げるのは困りものですし、 上で挙げた、ファイル選択のための仮ページを「信頼するサイト」に登録できるわけでもなく、 パスの取得方法を変える以外、方法はなさそうです。 まぁ、今回のツールに関してのIE8は対象外なので、 そもそもIE8の場合は処理しなければ、それはそれで良いのですが。

2009年10月14日水曜日

IE8 ソースエディタを変更する

IE6,7では、指定された場所にレジストリを書き込むことによって、
ソースを表示する際のエディタを変更出来ますが、
IE8になった際に、その方式が変更になりました。
IEから変更出来るようになったのは良いものの、分かりづらいわけですね。

というわけで、以下が手順。

IE8を起動し、コマンドバー「ツール」から「開発者ツール」を選択。
IE8から搭載された(?)「開発者ツール」を表示します。

「ファイル」→「internetExplorerソースの表示のカスタマイズ」内が、
「メモ帳」となっているはずなので、「その他」を選択し変更します。

僕のVistaはIE7から8へ上げましたが、元からTerapadになっていたので、
もしかしたらIE8セットアップ時に自動的に判別してくれるのかも知れません。

【自作】IEソースエディタ登録ツール 「IEditor」

※追記:最新版は「Ver1.12」ですので、以下からダウンロードして下さい。
【更新】「IEditor Ver1.12」
InternetExplorerの標準ソースエディタはメモ帳ですが、
そもそもメモ帳は使いにくい上に、
Shift-JIS以外の文字コードだと化けて使い物になりません。
OSを新しく入れた際などに、IEのソースエディタを変更することが、
もうすでに自分の中でのデフォルト作業と化しています。

ということで、その手間を省くために、
IEのソースエディタに別のエディタを登録するためのツールを作成しました。
その名も「IEditor」。
以下からダウンロード出来ます。

また、本体は.vbsなので、直接「開く」ことで実行することも出来ます。
直接の場合は以下から。


zipファイルに含まれている「Readme.txt」に細かい事が書かれているので、
以下には軽く説明を。

すでに書いた通り、このツールはIEのソースエディタを「登録」するものです。
現時点(Ver1.00)では、決めうちでTerapadを対象として登録します。
さらに、Terapadでもインストーラによってインストールされたものに限ります。

IE8ではソースエディタの設定が変更になったので、IE6,7が対象となります。
すでにソースエディタが登録されている場合には、処理が終了します(何も無し)。

VBScriptでのレジストリ操作の勉強がてらに作ったので、
所々にコメントをちりばめてあります。
中身を編集して使用する場合には参考にどうぞ。
以下が「IEditor.vbs」のソースです。
' **********************************************************
' 【IEditor / IEソースエディタ登録ツール】
'
' 詳しくはReadme.txtを参照。
' エディタパスは、11行目を変更して下さい。
' **********************************************************

' WshShellオブジェクト用意
Set WshShell = WScript.CreateObject("WScript.Shell")
' エディタパス用意
EditorPath = "C:\Program Files\TeraPad\TeraPad.exe"
' レジストリパス/データ型用意
RegCheckPath = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\View Source Editor\Editor Name\"
RegType = "REG_SZ"

' 対象レジストリ存在チェック
On Error Resume Next
WshShell.regread( RegCheckPath )
If Err.Number = 0 Then
  ' 存在するので終了
  Msgbox("すでに登録済なので、終了します。")
  Wscript.Quit
Else
  ' ソースエディタ登録確認
  cMsg = MsgBox( _
      "パス【" & EditorPath & "】として、" & VbCrLf & "IEのソースエディタを登録しますか?" _
      , vbYesNo _
      , "IEditor - IEソースエディタ設定" _
    )
  If vbNo = cMsg then
    ' 登録しないので終了
    Wscript.Quit
  Else
    ' 対象レジストリ書き込み
    WshShell.RegWrite RegCheckPath, EditorPath, RegType
    Msgbox("ソースエディタを登録しました。")
  End If
End If

2009年10月13日火曜日

Accsess/MDB 日付リテラルまとめ

今日、授業内で使用することがあったのでメモ。

授業で使用しているDBにはAccess/MDB以外に、
Oracle、MySQLがあります。
Javaで作成したプログラム内でOracle用に作成したSQL文を、
MDBに転用しようとするとエラー発生。
ちなみに、その時のSQL文は以下のもの。
select * 
 from 社員マスタ 
 where 氏名 like '%浦%' 
   and 性別 = 0 
   and 作成日 between '2005/01/01' 
   and '2007/12/31'
最初は、列名に「[]」が無いせいなのかと思いましたが、反応無し。 仕方がないので調べてみると、MDB特有の日付リテラルに行き着きました。 MDBでのBETWEENについて ※リンク先を間違えていたので修正。 つまりは、MDBでは「'2005/01/01'」という書式が、 日付型でなく文字列型で扱われるということですね。 なので、「between a and b」など日付を扱う場合には、 「#2005/01/01#」とし、型変換する必要があります。 以下が処理成功時のSQL文です。
select * 
 from 社員マスタ 
 where 氏名 like '%浦%' 
   and 性別 = 0 
   and 作成日 between #2005/01/01# 
   and #2007/12/31#
正直分かりづらいなぁ、と。

2009年10月12日月曜日

Vista スタートメニューの高さ変更

Vistaでは、スタートメニューの「すべてのプログラム」を、
XPとは違い大きく広げて表示出来ないと言う、
ある意味設計ミスに思える仕様があります。

おかげで、「すべてのプログラム」をパッと全て見ることが出来ず、
いちいち必要なフォルダへスクロールして選択する必要があります。

ということで、出来る限り多くのフォルダを表示するために、高さを変更します。
とは言えども、高さをどう設定すればいいのか分からないので、
実質的には物量作戦になります。
タスクバーを右クリック→「プロパティ」から、
「タスクバーと[スタート]メニューのプロパティ」を表示。
「[スタート]メニュー」タブ内の、
「[スタート]メニュー」選択時の「カスタマイズ」を選択。

「スタートメニューのサイズ」内の数字を変更してOK。
「タスクバーと[スタート]メニューのプロパティ」へ戻り、OK。


高さが変わっていれば完了です。

2009年10月7日水曜日

Vista 「一つ上のフォルダ」への3つの方法

Vistaを使用する際にはあまり気にしていなかったので、
昨日の授業中に先生から言われるまで気付かなかったのですが、
Vistaではウィンドウに「一つ上のフォルダ」のアイコンが無いんですね。
XPではいつも使ってるのに、何故気付かなかったのか・・・。

と言うことで、
「一つ上のフォルダ」への3つの方法をまとめます。

まず1つ目。
VistaのアドレスバーはXPとは違い、基本パスが表示されません。
それぞれ潜ってきたフォルダ名ごとにボタンのような表示になります。

ですので、一つ前のフォルダを選択すれば上がります。
XP使いにはピンと来ないと思いますが、一番簡単な方法です。

2つ目。
Vista テクニックVol.01に書いてある通り、
Altキーを押して表示するメニューバーから表示する方法。

「表示」→「移動」→「一つ上の階層へ」で上がります。
常にメニューバーを表示する方法もありますが、
いちいち開いていくのはXPからすると、正直面倒ですね。

3つ目。
上の画像にもある通り、ショートカット「Alt+↑(上矢印)」を使用する方法。
キーをポンと押すだけでいけますが、
キーボード右のAltキーじゃ無理でした(キーボードに依る?)。
なので、ほぼ両手で押さなければいけないことになり、
結果としてマウスから手を離す羽目に。
それなら1つ目の方法で充分ですね。

なんで「一つ上のフォルダ」アイコンを消しちゃったんでしょう?
やっぱりアドレスバーをそういう仕様にしたからなのでしょうか。

2009年10月5日月曜日

牛丼キングを食べてきました


牛丼キングは、すき家の「キングメニュー」のひとつであり、
2ヶ月ほど前に販売開始されたのですが、
今日食べる機会があったので食べてきました。

左にあるのが「炭火やきとり丼」で、右が「牛丼キング」です。
「炭火やきとり丼」が小さく見えるおかげでおかしく感じますが、れっきとした並です。
食べてみた感想としては、普通大盛りは途中で飽きてしまうのが、
これも例外なく、残り1/3の時点で満腹中枢と重なりました。
そこから頑張ってみたものの、19/20つまり95%を食べた時点でダウン。
残りはお友達に食べてもらいました。

肉やタマネギにつゆが染みてておいしいのですが、
よっぽどのすき家ファンか超空腹時でないと完食は無理な気がします。

IISの仮想ディレクトリを追加する「iis vdir creater」

Vectorへ、ソフトウェアをひとつ追加しました。
Vector:iis_vdir_creater (WindowsNT/2000/XP/Vista / ユーティリティ) - ソフトの詳細

ページに詳しいことが書かれていますが、
IIS(7.0以前)の仮想ディレクトリへ、スクリプトが存在しているディレクトリを追加します。
仮想ディレクトリを登録すると同時に、PHPの実行パスを追加することが出来ます。
PHP実行パスを登録し仮想ディレクトリを追加した場合には、
「phpinfo();」を含めた「test.php」を仮想ディレクトリ内に生成し、
きちんとPHP実行パスが通っているかを確認することが出来ます。

Vistaでは動作確認をしていませんが、
そもそもVistaはIIS7.0のはずなので使用できません。
あくまでも、「XP + IIS6.0 + IE6」での環境でテストしましたので、
IIS7やVistaでの対応は、おいおいしていくかもしれません。

2009年10月1日木曜日

時間が空いたので東京観光

追記:お夕食です。



追記:流石に3時間近く歩いていると疲れました。


内定式も無事に終わり、 予定よりも2時間早く終わった結果、 4時間もの自由時間が出来ました。 今回も秋葉原からですけれど、 この時間なら他にも回れますね。 --iPhone--