2009/03/30

あとは売価か・・・


・リード750MB/sの超高速SSDが4月中旬入荷 PCI Express接続、
1TBの大容量品も - AKIBA PC Hotline! [ 20090328 ]


・PhotoFast G-MONSTER PCIe SSD - MobileMode [ 20090326 ]


ようやく この次元に至ったか・・・
コレならシステムドライブやテンポラリドライブとしての使いデがありそうだ。

記事本文中にあったのだが、DRAM使用の商品でも達成できていない読み込み速度を実現しているらしい・・・
だが、そこで疑問なのはDRAM、同じ舞台に立った状況で比較されたコトがあるのだろうか? と云う点。
結局以前のアノ商品も、SATAを介しているので、その仕様以上の転送は無理だ。
明らかに、インターフェイスの転送速度がボトルネックとなり、DDR2の動作速度を生かせているとは到底思いがたい。
つまり、今回紹介されている商品のように、PCI-Expressに直接設置可能なDRAMドライブ機器でも出てこない限り、
完全な比較はできないと思う。

いずれにしても、Windowsのページングファイルを配置したり、
Adobe製品のテンポラリドライブとかには向いた商品だとは思う。

が、当座は 価格が問題になるのだろうな・・・(´ヘ`;)

ま、前述のような用途に使うなら、今安価なDDR3 4GB板を大量に載めるマザーボードを選択して、
32bitOSで扱えない余剰容量全てをRAMドライブ化したほうが、案外安上がりなのかも知れない・・・
システム自体の安定性がドウなるかは微妙だがw

2009/03/28

結局ココの・・・


・・・タイトル(ヘッダ)キャプションは、テンプレに直書きすることにした。
先のログのテンプレ抜粋中、9~11行の前後に
    <font class="test">キャプション</font>    
と、云う具合に文章を書き込む。至って単純。

なにせWYSIWYGでの入力だと、ブラウザ毎に文字位置ズレるので、使い物にならん(´ヘ`;)

また、日時表記も、くろむたんでは何故かOSのロケール設定が適用されなくて、
一部Gadgetが異なる見栄えになってしまっているし、
<pre></pre> も扱いが異なり、フォントサイズがエラく小さくなってしまっている・・・
IE8では、なんだかタイプライター状になってるし、どうしてこうも統一性がないのか・・・

何の対策もなく、全てのブラウザに、同一の見た目を提供するのなんて、ほぼ無理なんじゃナイのかな、カナ?

2009/03/26

マスコミ バカ臭せ・・・


たまたま 伊東家の~ を観てたが、
お約束で、端末の使い方説明で、ロマかな使いを教えてやがる。

キーボードには "かな"キー があるだろうが!!

なに毛唐カブれて ロマかな入力 するかな?
日本語キーボードの "かな"キー なんて、日本人以外ダレが使うってんだ?
日本人が使わないんだったら こんな規格のキーボードなんか要らんではないかっ!!!

局の連中も そのヘンちったぁ考えて番組ツクれよ、まったく・・・
いい加減にしろっっ!!!ってカンジだワ・・・(-_-#)

ほーんと バカばっか・・・
日本人なら黙って・・・ かなキーを使おう! ロマかな入力断固廃絶 大勢を敵に回してみるw>

タイトル処理改変・・・


ようやっと完了した。

そもそも、タイトルにアイコンを添えたかっただけなのだが、
既定の、文字でのタイトル表示では、ブラウザにより表示位置がズレ、画像と組み合わせられない。

安易に対応しようと、タイトルを画像として作成し、レイアウト設定でヘッダを、画像のみにしてしまうと、
ブログの説明キャプションが表示されなくなってしまう。

で、テキストのタイトルを透過させて対応しようとしたが、IE限定の拡張機能だった為、断念。

そこで、テンプレートHTMLのヘッダを構築する部分を見てみた。
以下は、その処理部を抜粋したもの。
    <div id="header-wrapper">     
<b:section class="header" id="header" maxwidgets="1" showaddelement="no">
<b:widget id="Header1" locked="true" title="おきつねさまのひまつぶし (Header)" type="Header">
<b:includable id="main">
<b:if cond="data:useImage">
<b:if cond="data:imagePlacement == "REPLACE"">
<!--Show just the image, no text-->
<div id="header-inner">
<a expr:href="data:blog.homepageUrl" style="display: block">
<img expr:alt="data:title" expr:height="data:height" expr:id="data:widget.instanceId + "_headerimg"" expr:src="data:sourceUrl" expr:width="data:width" style="display: block"/>
</a>
</div>
<b:else/>
<!--
Show image as background to text. You can"t really calculate the width
reliably in JS because margins are not taken into account by any of
clientWidth, offsetWidth or scrollWidth, so we don"t force a minimum
width if the user is using shrink to fit.
This results in a margin-width"s worth of pixels being cropped. If the
user is not using shrink to fit then we expand the header.
-->
<div expr:style=""background-image: url(\"" + data:sourceUrl + "\"); "+ "background-position: "+ data:backgroundPositionStyleStr + "; "+ data:widthStyleStr+ "min-height: " + data:height + "px;"+ "_height: " + data:height + "px;"+ "background-repeat: no-repeat; "" id="header-inner">
<div class="titlewrapper" style="background: transparent">
<h1 class="title" style="background: transparent; border-width: 0px">
<b:include name="title"/>
</h1>
</div>
<b:include name="description"/>
</div>
</b:if>
<b:else/>
<!--No header image -->
<div id="header-inner">
<div class="titlewrapper">
<h1 class="title">
<b:include name="title"/>
</h1>
</div>
<b:include name="description"/>
</div>
</b:if>
</b:includable>
<b:includable id="title">
<b:if cond="data:blog.url == data:blog.homepageUrl">
<data:title/>
<b:else/>
<a expr:href="data:blog.homepageUrl">
<data:title/>
</a>
</b:if>
</b:includable>
<b:includable id="description">
<div class="descriptionwrapper">
<p class="description">
<span>
<data:description/>
</span>
</p>
</div>
</b:includable>
</b:widget>
</b:section>
</div>
なるほど、

上記で5行目の
    <b:if cond='data:useImage'>    
で、タイトル画像の有無を分岐。

画像アリの場合は次行の
    <b:if cond="data:imagePlacement == "REPLACE"">     
で、ヘッダ中の文字列を排しているコトが判る。

そして、タイトルを除くキャプションの表示は
    <b:include name='description'/>    
で、処理している。

だったら、13行目にある
    <b:else/>    
の直前に、その1行を貼り付けて、処理的なトコロは解決。
タイトル画像の下に、キャプションが表示されるようになった。

元々タイトル画像はヘッダサイズに合わせたものだったので、このままではナンだか間延びして見える。
MSPaintでチョイと高さを低くして対応。

ココで判ったのは、タイトル部分の高さの設定が、HTML中には含まれていないと云うコト。
どうやらBloggerサイドでキャッシュしているようだ。・・・ソレがナンだ と云われそうだが、コレが結構重要で、
つまり、タイトル画像表示フレームのサイズをテキストレベルで指定できないのだ。
で、このまま高さを下げた画像で処理させると、フレームサイズにあわせ、高さが強制的に拡大されてしまう。

っても、対処は簡単、WYSIWYG(Bloggerのタイトル画像設定画面)で、タイトル画像を再度設定し直すと解決する。

つか、タイトルと説明キャプションを、ひとまとめでしか設定できないって時点で、どうなのかね?

そもそも、

・ページタイトル&キャプション表示・タイトル背景画像アリ/ナシ
・タイトル画像表示のみ表示

と云う、排他的指定しかできないから、こう云う不便が生じる。 GUIとしては かなり考えモノ・・・

・ページタイトル表示/非表示設定
・背景画像指定
・キャプション表示/非表示設定

これらは全く別個に設定できるようにするのが本筋だろう。

IE8.0にジェスチャツールを・・・


ロリちゃんや火狐さんで適用しているアドオン Grab and Drag・・・
ソレが当たり前になった感のある当方、お嬢でうっかり同様の操作をしてしまう・・・
すっかりパブロフの犬状態に・・・^_^;

で、ググるさんに聴いてみる・・・ IE7proですか、そうですか。 ・・・早速充ててみた。

どうだろう、絶対お嬢を使いたい向きでもない限りは、火狐さんのアドオン陣には到底及ばないと思う。
それは、機能毎バラバラに、自分で選んでインストールする手間はあるが、
欲しい機能やデザインのアドオンを、好き勝手に追加できる分、火狐さんに分があると云える。

あと、肝心のGrab and Drag機能に関しては、IE7proに付いてるものでは、カーソルがソレに固定されてしまう。
火狐さんアドオンのGrab and Dragのように、必要な時だけ機能させる細かい設定はないようだ。

まぁコレも結局 戸次さんなツール だったと云えるのかも知れない・・・w
つか、全く別のアプリケーションで、アドインですらナイし・・・

肝心の公開されているアドインにしても、なんかBloggerのショボいGadget程度のものしかない、使えねぇ。
Mozilla勢ほかが伸びてる背景ってのかな、全く理解できてないなMS・・・
あと、ブックマークっつか、ショートカット? お気に入り?
あれらも、未だに実フォルダ上で管理されてるってのも、今時ドウなのかね?
火狐さんみたく、XMLでブラウザに取り込む体のほうが良いと思うのだが、
ホント、学習してねぇワMS・・・

IE8.0、処理躓いてオチた後、再度起動させると、動き出すまでが異常に重い。

また、設定ほかのアイコンをすべて表示させてると、タブを大量に開きづらくなるので、
IE7の頃から、半分は非表示にしてあるのだが、IE8.0では、何故かコレらを表示させるのがバカ重い、
何故だろう?

どうやら・・・


IEで、スクリプトを表示させているフレームの、フォントが置き換わってしまう件、
原因は、ブラウザ云々と云うよりは、Bloggerのテンプレートにあるようだ。

その結論に至った検証の方法は極めて単純。
いつものようなスクリプトを紹介する体のテーブルを表示するだけのシンプルなHTMLファイルを作って、
それぞれのブラウザで表示させてみただけ。

そのHTMLファイルの内容は以下の通り、
    <?xml version="1.0" encoding="Shift_JIS"?>     
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html lang="ja" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type='text/css'>
.ScriptExp
{
background-color: #FFFFFF;
border: 0;
align: center;
color: #1e50a2;
line-height: 100%;
}
.ScriptComments
{
font-weight: normal;
color: #FFFFFF;
background-color: #288285;
border: 0;
}
</style>

</head>

<body style="background-color: #000088">
<table class="ScriptExp"><tr class="ScriptExp"><td><pre> Public Function iniLoader(iniFile, Control)
Dim nS
nS = Fs.GetFile(iniFile).size
If nS = 0 Then
iniLoader = Array(Fs.GetParentFolderName(iniFile))
Else
Dim iFile, lResult, strResults
Set iFile = Fs.OpenTextFile(iniFile,1) <a class="ScriptComments">'iniファイルを読み取りモードで開く</a>
WScript.Sleep 150
Do Until iFile.AtEndOfStream <a class="ScriptComments">'読み込み</a>
lResult = lResult & ";" & iFile.ReadLine & ";"
Loop
WScript.Sleep 150
iFile.Close <a class="ScriptComments">'Iniファイルを閉じる</a>
strResults = Replace(Replace(lResult,";;",","),";","")
If Control = 0 Then
iniLoader = Split(strResults, ",")
Else
iniLoader = strResults
End If
End If
End Function
</pre></td></tr></table>
</body>
</html>

ココで、スタイルシート宣言中でフォントを指定すると、困ったことに、
ロリちゃんのほうで、フォントの表示が欲しい結果にならなくなってしまうので、
Blogger上で使っているままの指定に留めた。

て、結果は、IE8でも全く問題なく、本来あるべき表示結果が得られた。
同じ処理をBlogger上に貼るとフォントが変わってしまうので、まぁ下手人てコトで間違いはなさそうだ。

が、整えたとは云え、あのテンプレートから原因を追うのは ちょっとイヤかも・・・(´ヘ`;)

2009/03/24

マジ勘弁・・・


お嬢の挙動に辟易・・・ ロリちゃんベースでタイトルに画像充てたら、
タイトルテキストと位置が合わなくなってしまった・・・ 火狐さんならズレないのに・・・

どうしたものか・・・ (´ヘ`;)


[20090325 0230]
とか云って、テンプレいじってたら壊してしまったw
バックアップも採らずにナニやってるのやら・・・

つっても、IE8だと表示できる・・・なんで?
しかし、書き換えたトコ戻しても直らないって・・・


[20090325 1200]
とりあえず、これから修復開始・・・


[20090325 1237]
スタイルシートのヘッダのトコ 間違って "{" を消してた^_^;
タイトルの件は まだ未解決だし、テンプレの元々の記述 なんか汚くて見辛いし、
取り敢えず、無駄な改行とスペースを消しまくるかな。


[20090325 1443]
ようやっと整理完了^_^; 適切にTabって整えると処理の追いやすさが違うよね。
しかし、もっと丁寧な記述のテンプレを用意してほしいものだ・・・
Widgetのほうも、記述がグタグタで、テキストレベルでのメンテナンスなんて全く考慮されてないね・・・
スクリプト描きとしては、聊か宜しくない傾向だと思うのだが、どうだろうか?

あとは、テキストのタイトルを透過させるとか対策しないとな・・・

いつのまにか・・・


先のログ、アイコンライブラリをタダで・・・ で、記述していたことは、全く無意味だった。
(ココのログで、意味があるものが、一体どのくらいあると云うのやらw)

・・・32bitアイコンが出始めた頃には、どのツールも未対応で、完全に諦めたまま過ごして来て、
VC++EEを利用する方法を使い始めたモノの、32bitビットマップも色々な記録形式があるようで、
前のログにある程には単純に行かなかった・・・

そこで、32bitのビットマップを、ico互換のデータ形式に変換するツールを探したら、
データ変換どころか、アイコンライブラリまで作成できるものがあったと云うオチが・・・

towofuさんトコの @icon変換
昔試用したトキには、他のエディタやコンバータに軍配が上がってしまう程度のモノだったのだが、
最近の版は打って変わって、ものすごく機能向上していた。
しかも、Photoshop形式(.psd)からの吸出しまでサポートしている! コレは使える!!

タダで・・・って云うなら、Photoshopは使わないにしても、24bitまでならMSPaintでファイル作成は可能、
そう云う意味では、@icon変換は、最強かもしれない・・・


アイコンライブラリ(.icl)を使って、フォルダ等へのアイコン適用を行う際にラクをするには、
拡張子を icl から ico ないし dll に変えておくと便利。
(変えたコトを覚えておかないとイタい目見るコトもあるがw)


しかしまぁ、リソース編集機能が省かれた Visual C++ ExpressEdition で、
簡単なコンソールプログラムやDLLに、多数のアイコンを同梱させる方法の検証ができただけでも、
前ログ作成にかけた時間は無駄ではなかったと云えるかねも知れんなぁ・・・

ただ、VC++で作成するアプリにアイコンを追加するには、アイコンライブラリ(.icl)ファイルは使えないので、
@icon変換で、アイコン毎 バラバラにファイルを出力しておく必要がある。

2009/03/23

成田空港、FedEx機着陸失敗・・・

[20090323 0710]
今 NHKで、墜落機の消火の様子が中継されている。

監視カメラで記録されていた着陸時の映像も放送されているが、
どうやるとああ云う挙動になるのだろうかと思うと同時に、
なんか、マンガ的に機体がハズんでる様に笑ってしまった。


[20090323 0727]
現場のA滑走路は閉鎖 って、まぁ当たり前やね^_^;
貨物機だが、搭乗員の安否は不明とか アレで生きてたらある意味スゴいが・・・

しかし、アレが建物のほうに行かなくて良かったよな・・・(´ヘ`;)

[20090323 0801]
警察 救出活動継続中って・・・ 御存命とは思いがたい状況だが?

つか、荷は積んでたのかねぇ? ・・・空だったらしい。そりゃ弾むワナww
[20090324 0230]
一応オマケ程度の荷はあったのだな、ただ引火性が強い液体っても、揮発性も高かったんだろうな、
で、ないと、消火にかかった時間、短か過ぎな気がするし・・・


姿勢を崩して失敗と云うが、映像から見るに、1度目は叩き付けられて弾んだようにも見えるから、
"強風に煽られて" 突風に "煽られて" って表現で あってるのかどうか、疑問でしかたナイ・・・


[20090323 1438]
昼頃には遺体を収容したらしいね。米人パイロット2名、どういう経歴が気になるカモ・・・

なんか、このニュースの情報って少ないらしくて、
大したこと書いてないココが結構閲覧されているコトがログから判った。
申し訳ないので、ググる手間を省く程度の情報は付け足しておこうかと・・・

------------------

事故発生時刻 0648

中国 広東省 広州白雲国際空港(CAN)~成田(NRT)行き FedEx 80便
McDonnellDouglas MD11F N526FE (←機番は、消火後の報道映像で確認できる)

最大離陸重量 285990kg / 航続距離 7242km / 巡航速度 約1050km/h
全長 61.21m / 翼幅 51.66m / 全高 17.60m / 搭載最大パレット数 26

エンジン 以下のいずれかのセット。機数は20060826時点でのFedEx所有機
 0機 - P&W PW4460 ターボファンエンジン 267 kN (60,000 lbf)×3
 3機 - P&W PW4462 ターボファンエンジン 276 kN (62,000 lbf)×3
 31機 - GE CF6-80C2D1F ターボファンエンジン 274 kN (61,500 lbf)×3

実機写真掲載サイト 12(画像からは機番確認できず)

搭乗員 2名死亡
 ケビン・カイル・モスリー機長(54)
 アンソニー・ステファン・ピノ副操縦士(49)

------------------
元米帝空軍のパイロットとかじゃないのかねぇ? 民間経歴のみのパイロットだったのかな?
と云うか、あの状況で無理やり機首下げするなんて、ゲーマーでもやらんと思うが・・・
・・・燃料の残りなかった?(なんか、思いの外あっさり消火できてたってのもあるし・・・)


[20090323 1600]
イヤ、もしかしてゴーアラかけた(一気にスロットルあげた)のかも知れんなぁ、
で、昔のF-14のエンジンよろしくオチたとかww
もしそうなら、VoiceRecoderに あの"EngineStall"っていう警告音声が記録されてたりしてな(´ヘ`;)

報道では、最大風速とか しきりに云ってるけど、空港というあれだけ広大な空間で強風が吹くのは当然のコト、
そういう程度ならなんら問題なかった。
むしろ、唐突に風向きが変化する気象タイプだったコトのほうが、余程問題なのだが、
ニュースとか聞いてるとマスコミのバカっぽさしか伝わってこない。


[20090323 1744]
WindShear や 突発的乱気流については、早々に報道に載り、前者の影響を多く語っているようだが、
あの映像見た瞬間感じたのは、どっちかというと後者の印象だったな。
Touchdown直前、Downburstに叩き付けられた ってのがホントのトコなんじゃね?
・・・迎角大きく取り過ぎて、剥離起こして揚力失った機体の挙動そのものってくらいの落っこち方だったような希ガス
機体に対する風向と風速によっては、同様の状況に陥るコトも考えられるし・・・


[20090324 0036]
しかし 思いのほか、事故発生直後から放送してたハズの、NHKニュースの動画、
高画質版のうpが全然ないっポイなぁ・・・ 削除られてんのかなぁ・・・(´ヘ`;)?
期待して、消火Liveだった番組、敢えて録画しなかったのだが・・・ つか、キャプチャ環境がナイし(;_;

ニコ動に低画質版ならあるが、ヘンなBGMが充てられているらしい。
当方環境では、メール着信時に美紗さんが騒がしいので、常時SoundMuteにしてるので、
内容は確認してないが、結構コメで叩かれてるので聴く価値はないだろう。
余計な加工するくらいなら、HDでうpして欲しいモノだ・・・(´ヘ`;


[20090324 0205]
つか、YouTubeには、結構な本数うpされてたね、画質はアレだけど・・・
はぁ・・・ 折角完徹明けで起きてたんだし、自分で録画すればよかった(後悔)

しかし、事故機が製造された時って、メーカーはどっちになってたんだろうね・・・

アイコンライブラリをタダで・・・

    このログの内容は、否定ログを掲載しました。    
別の意味では参考になる点があるやも知れませんが、
本題としては、コチラを参照してください。


アイコンの集合体であるアイコンライブラリ(.icl/.ico)ファイル作成には、
有償ツール Microangelo が著名なトコだろう。
昔、30日間試用期間アリのアレを使っていたコトがあるが、確かに機能的にも操作的にも かなり便利だった。
が、アイコンいじるだけで、$50近くするのは どうなんだろう・・・
こう云う向きのツールに金払ってまで と云う気もないし、余裕もない。
そもそも当方、海外モノは、イマイチ支払いに要領を得ないままでいる。
怪しいモノも多かったので 手を出さなかったとも云えるが、そのヘンは、好みの問題だろう。

また、フリーのアイコンエディタの一部には、ライブラリ化機能を持つものもあるようだが、
小さいアイコンや、24bitや32bitと云った色の深いモノには、対応していないと云うのが殆どのようだ・・・


先日、この件とは全く関係のない、フォルダへのアイコン割り当てやってて、
レジストリアイコンを、容易に使えなくなっているコトに気付いた。
Regedit.exe自体がsystem32フォルダ内から無くなってて、
動作はregedt32.exeが肩代わりしている状態になってる。

いったい何時からナイのか、他のフォルダにあるのか、
検索機能を、うっかり使い物にならないWindowsSearchに差し替えてしまった端末なので、調べるのも面倒・・・
実際使うには困ることもないし、無くなった理由を知りたい人は自分で調べてちょ
つか、regedt32しか使わんし、自分で消したか知らん・・・w

で、以前アイコンとして使う為にコピーを取っていた Regedit.ico と云うのを、
鯖の古いフォルダから見つけ出した(たまたまw)、拡張子を変えただけの Regedit.exe そのものだ。
コレから、アプリケーションからリソースを抜くフリーのツール ResouceHacker を使って、
リソースファイル(.rc)込みで、アイコンを抜いてみた。 なるほど案の定、バカっぽいホド単純な記述・・・
まぁ、そのおかげで、リソースファイルと、アイコンとの相関関係を把握できたのでヨシとする。

で、本題の、タダでアイコンライブラリをツクる方法、

注)
Visual C++ ExpressEditionを使っているコトを前提として記述している。試した環境は2008。
インストールしてない場合は、MSサイトからDLしてちょ、タダだしww

◆ アイコンファイルをツクる/集める。
  ビットマップ、アイコンとしての範疇であれば、サイズ、色の深さは、全く問わない。
  MS Paintで作った .bmpファイルなどで充分。32bit画像を扱う場合は、別の画像編集アプリを使えばいい。
  色深度ほかを気にせず取り敢えず集めたいだけなら、ICONめーかーなどのツールを利用するのもテ、ラクだしw
  (つか、その域でよいなら、ANIめーかーを使ったほうがラクかもねw)
  最終的に、拡張子を.icoに変えて、デスクトップで表示できれば問題なし。

◆ リソースファイルを作る。
  ● テキストファイルを作成する。ファイル名は任意で、拡張子は .rc に変える。
    よもや、アイコンファイルの中身までイジろうかって向きで、
    拡張子非表示のままエクスプローラ使ってる人間イナイよねw


  ● 出来た.rcファイルをテキストエディタで開いて、
    001 ICON "Icon_1.ico"    
002 ICON "Icon_2.ico"
003 ICON "Icon_3.ico"
004 ICON "Icon_4.ico"
005 ICON "Icon_5.ico"
006 ICON "Icon_6.ico"
007 ICON "Icon_7.ico"
    の、ように、対象となるIconの"ファイル名"を全て列挙する。
    アイコンライブラリ作りたいだけなら他には一切記述は必要ない。
    本来なら1行あけて列挙していくのが、行儀の良い記述らしいのだが、試したらナシでもウゴいたし、
    まぁ、結果がアイコンとして使えればいいだけなので、この際ドウでもいいってコトで・・・ww

◆ VC++EEで、プロジェクトが空の DLL を作成開始する。名称は任意で・・・

◆ 空のソースファイルを作る
  VC++EE画面の ソリュションエクスプローラ(se)内 [ソース ファイル]を右クリック、
  [追加]-[新しい項目]で、[C++ファイル(.cpp)] を選び、ファイル名に "main" と入れ、[追加]ボタンを押す。
  中身は一切書かなくていい。

◆ 用意したファイルを読み込む
  ● エクスプローラで、プロジェクトのフォルダに、使うIcon全てと、作成したリソースファイルを貼り付ける。
  ● VC++EE画面に戻り、se内 [リソース ファイル]を右クリック、
    [追加]-[既存の項目]で、貼り付けたファイルを全て読み込む。

◆ ビルドする。

これで、ReleaseかDebugフォルダが作成され、中に、"{任意の名称}.dll" が出来上がるので、
拡張子をiclなりicoなりに変えてもらえば終わり。気にしないならdllのままってのもありかもね。

一回準備すれば、フォルダをコピーするとかして使い回せるので、便利だと思う。

あと、イチイチ VC++EE って記述したのは、製品版を利用している向きへのアピール。
だってアレならリソースも編集できるし、ココの記述では一部操作が一致しないw
まぁ、既知とは思うケド 一応 念の為ね・・・^_^;

2009/03/22

IE8.0早々に試す・・・


端末がショボいので、正直IE7.xは使い物にならなかった、6.xもまた然り。
で、火狐さんに逃げたが、2.x系はともかく、3.x系は激重で使うに耐えん・・・
そんなワケで、いまだに2.x系互換の炉狐ちゃんを愛用している。

で、なんか、MSからメールが来てたので、IE8.0煎れてみた。

なるほど、前評判通り、確かに圧倒的に軽い。(7.x比) ウチの骨董端末でも、ソコソコ走る。
ロリちゃんに適用しているようなジェスチャアドインみたいなモノ充てれば、中々快適だとは思う。
ただ、残念なコトに、期待した程 そう云う向きのアドオンがナイっぽい・・・
なんか、俗物的なものばかり表示されて辟易したよ。
ま、お嬢に そんなに思い入れもナイし、このままロリちゃんでイクな。

つか なんか、IE8.0で見てみたら、このブログ、タイトルとかの文字位置がグダグダになってたネw
あのIE7.xのバカ娘、やたら重くてムカついたんで、あわせて調整する気、全く無かったのだよ。
でも、閲覧軽くなったし、画像処理周りも具合いいし、常用しないまでも、
体裁くらいは お嬢にも合せてもいいかな、カナ? とか思ったので、取り敢えずタイトルバーを直してみた。

コレで、お嬢でも火狐さまでもバッチリっ! とか思ったらサにあらず。
スクリプト表示部分、ワザワザTABをスペースに置換してまで体裁整えてある文字列が、なんでズレるのっっ!?
イミが判らんワっっ! (恐らくは、書式適用記述に無駄なスペースが含まれているのだと思う)
ロリちゃんでも、(負荷莫大とは云え)火狐さん3.xでも、ちゃんと表示してくれるのに・・・(;_;)

しかも、既定のフォントの処理が、火狐さん系と違うせいで、やたらとスクリプトが読み辛くなってるっ!?
もう、お嬢っ勘弁してっ!!

対策っても、StyleSheetで、Fontも指定する位しかないなぁ・・・
要は、ロリちゃんたちに甘えて放置していたのがマズかったと。
しかし、半角スペースでさえ ズレる現象ってのは、ドウにもならんな、こりゃ・・・

・・・つか、火狐さん、2.x系と3.x系で、ナンであんなに端末への負荷が違うかね・・・(´ヘ`;)
ま 云うて、ちゃんと表示してくれるだけ、お嬢たちよりは全然マシだケド・・・^_^;

2009/03/21

やっぱバカだろ・・・


富士通フロンテック、電子ペーパーを使った携帯端末「FLEPia」を発売 - IT Plus [ 20090318 1513 ]

この御時勢に値段高け~んだよ、しかも、モニタ外の淵面積大きすぎ、ダサくて使えん。
巷に出回ってる流行物のデザインとか、購買意欲低下とか、空気読めんモンかね・・・ いい加減終わったな富士通・・・
このメーカー、いっつも開発発表とかは早くて、しかも眼の付け所も良かったりするので、
商品化に向けてスゴく期待するんだけど、品物出るまで遅いワ、見た目ダサいワ、いっつも裏切られる・・・

ふと、当方の、ココ製品購入歴を思い返すに、FM-Towns20F と
当時450k円と高価だった5inchMOドライブ(メディア512MB(256MB×両面)が30k円)他、
2400k円(!?)掛けてフルセットシステム買って以後、購入対象になったコトの無いメーカー・・・
(あの頃は そう云う時代だったとは云え、i386機に幾ら掛けてるんだか・・・ とか、自分でも思う)

ケド、こうなってクると、金があっても、二度と手を出すことのないメーカーかもナ・・・

ExpressEditionでリソースを・・・


Microsoft Visual C++ ExpressEdition 使うと判るが、
コンソール(フォームを持たない)アプリケーション作成時には、アイコンを変更するGUIを持たない。

ググった情報によると その程度のコトなら、リソースの編集が行えればドウにかなるらしい・・・
が、それは、VC++製品版に限られた機能だった。

ソコからみても、リソースってので出来る設定は、本来はアイコン変更以上に重要な構成を行えるコトが想像できる。
ツマるトコ、うっかり、扱われたくないのだろう・・・ コチラとしてはアイコンを変えたいだけなのだが・・・ (´ヘ`;)

まぁソコで諦めるような性格はしていない、小一時間試行の末、
手間も無く、一度やれば使いまわしの利く、非常に簡単な方法を見つけたので報告しようと思う。


まず、VisualC++ ExpressEditionで、適当な名前でフォームアプリケーションを作成を開始する。


・・・実は、これだけで ほぼ完了w
アトは、エクスプローラで、出来たフォルダの中に作成されている
    resource.h     
app.rc
と、使いたいアイコンを任意のフォルダに保存し、
アイコンの名称を app.ico に変えるか、リソースファイル app.rc を、テキストエディタで開いて、
"app.ico" と、なっている部分を、任意のアイコン名に差し替えておく。

ココで必要となるアイコンは、デスクトップに表示されるサイズのモノだけでよい。

使い方も単純、それら3つのファイルを、コンソールアプリケーション作成しているフォルダへ貼り付け、

VC++画面上 [既存項目を追加] で、

 resource.h を ヘッダとして、
 任意のアイコンと、app.rc を リソースとして、

読み込むだけで完了・・・

コレでコンソールアプリのアイコン変更と云う目的は達成されたワケだが、
いくらExpressEditionが、ある種の試用版とは云え、この程度の機能くらいは付けてて欲しかった。
そうすれば、こんな載っ取りマガいな方法を講じずとも済んだのだが・・・(´ヘ`;)

まぁ云うて、リソースを一字一句間違えることなく書ける向きには、関係ないハナシかな、カナ?
ありゃダレでも書けるなw

2009/03/19

早速試用・・・


約10倍の速度向上、IgRemoteの後継ソフト「ZeroRemote」が公開 - マイコミ[ 20090318 ]
ZeroRemote 超高速リモートデスクトップ

つい先程、記事に気付いて試行してみた。
使用機器が、スペック的にDirectX系処理に弱いのだが、その割には良く動いている。

まず、マウス操作による縦横比固定の拡大縮小と云うのは、必須ではないだろうか?。
また、欲を言えば、デュアルモニタ構成の場合、サブスクリーン合成表示できれば尚良かったと思う。

現在、Win鯖2k3のリモートデスクトップ/RealVNC/UltraVNCなどを、その特徴に合せて、用途別に併用している。
このうち多用しているRealVNCに至っては、鯖への負荷はともかくとして、複数モニタの実物大合成転送をサポートし、
端末側が多少貧弱でも、殆ど負荷を感じるコトなく使えるのは特筆点だろう。

但し、これらには、音声をやり取りする機能はナイし、クリップボード転送も貧弱だ。
端末側の性能に難があり、鯖管理周りを行うリモート操作のみであれば、
これらのほうがまだ、分があると云える。

が、ゲームなどの音声を伴う必要のあるコンテンツをリモートする場合には、
ZeroRemoteのほうが、VNCほか前者など比べ物にならないPerformanceを発揮すると思う。
ただ、その用途としての使用予定は無く、それら機能の恩恵を受けることは無さそうだ・・・

ウチでは、(大した性能のない)鯖のほうで処理の重たい、写真(RAW)現像やDVDオーサリングを処理させている。
上記RealVNCほかではシステム負荷が非常に大きい為、それら処理と同時に常駐と云うのは、かなりムリがあり、
それらでは、対象アプリの初期操作が完了したら、VNCサービスをイチイチ落として対処している。
が、それでは処理終了がリモート側で判らない・・・

この場合、鯖側負荷の非常に小さいZeroRemoteを利用すれば、
それらの終了が、手元の端末で確認できるようになりそうだ。

ただ、やはり端末側、DirectX系処理弱い画像石では辛いね・・・

VBScriptでラクをする そにょ2b・・・


Script to HTML 改訂しました。

   s2Hcnv.zip    
▲ を、右クリックしてファイルとして保存してください。
以前のログのアーカイブも、コチラの版に更新しています。
ただ、サイト上のテキストソースはそのままなので、旧版が欲しい場合は、そっちからコピペして使ってください。

仕上がりをスグにみたいのに、以前の版では HTMLとして最低限の記述すら追記しない為、
ブログに貼るか、Head情報を追記するかしないと、確認できなかったので、
今回は、それらを追記するよう応急処置を施し、
出力ファイルを、ブラウザでそのまま検証できるようにしました。

    '***** ↓↓↓ScriptTitle↓↓↓ *********************************************************     
' Script to HTML Converter
'- Created by LazwardFox -

' スクリプト(VBS/JS)/ini/テキストファイル中の、
' [Tab]を4つのスペースに置き換える / コメントに書式を充てる
' ▼
' HTMLファイルを作成後、エディタで開く。

' Update 20090318 2125 Hedderほか、HTML最低限の記述出力を追加
' 出力ファイルをブラウザで確認できるように・・・
' Update 20090317 1424 font設定が正しく適用されないBlogger対策
' Update 20090317 1311 JavaScript→HTML変換に対応
' Update 20090317 0928 コメント処理修正
' Update 20090317 0201 Tab to 4 Space Converter から名称変更
' Update 20090317 0201 本文中の"'"を無視するよう変更
' Update 20090317 0146 Headder/Footerを追記し、
' コメント部分に書式を割り当てる処理を追加。
' Update 20090315 2053
' Release 20090313 1855 発行
' DevStart 20090313 1736

'***** ↓↓↓ ObjectDecralations ↓↓↓ *************************************************
Dim Parameters, WSHShell, Fs

Set Parameters = WScript.Arguments 'パラメーター取得
If Parameters.Count <= 0 Then
Wscript.Quit
End If
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set Fs = WScript.CreateObject("Scripting.FileSystemObject") 'ファイル操作

'***** ↓↓↓Decralations↓↓↓ *********************************************************
Const vbWq = """"
Dim vbSp, vbTc, vbCt, vbWt, vbTs, vbCs
Dim sDt, iC, nS, rF, tN, tE, tSep, sF, tFile, sFile, rFile
Dim sHs, sHe, sTops, sHeadders, sUnders
Dim hColor, fColor, rL,ltc, sltc, fQp, iQp, isQp, isQpc, lrL, nrL, rrL, wL

vbSp = " "
vbTc = vbTab & vbCrlf
vbCt = vbCrLf & vbTab
vbWt = vbWq & vbTab
vbTs = String(2,vbTab)
vbCts = vbCrLf & vbTs
vbCs = String(2,vbCrLf)
ltc = Split("&,l,t,;",",")
sltc = Join(ltc,"")

sHs = "<html>" & vbCt & "<head>" & vbCts & "<link rel=" & vbWq & "stylesheet" & vbWq & " type=" & vbWq & "text/css" & vbWq & " href=" & vbWq & "http://www.okitsunesama.com/Okitsunesama.css" & vbWq & ">" & vbCts & "<!-- <link rel=" & vbWq & "stylesheet" & vbWq & " type=" & vbWq & "text/css" & vbWq & " href=" & vbWq & "OkitsunesamaLabo.css" & vbWq & "> -->" & vbCts & "<title>おきつねさまのろぐてすと "
sHe = "</title>" & vbCt & "</head>" & vbCt & "<body class=" & vbWq & "CatalogView" & vbWq & ">" & vbCrLf
sTops = vbCrLf & "<table class=" & vbWq & "ScriptExp" & vbWq & "><tr class=" & vbWq & "ScriptExp" & vbWq & "><td><pre>"
sUnders = "</pre></td></tr></table>" & vbCrLf & vbCt & "</body>" & vbCrLf & "</html>"

hColor = "<a class=" & vbWq & "ScriptComments" & vbWq & "><font color=" & vbWq & "#ffffff" & vbWq & ">"
fColor = "</Font></a>"

'***** ↓↓↓MainRoutine↓↓↓ *********************************************************
For iC = 0 To Parameters.count - 1
tFile = Parameters(iC)
If Fs.FileExists(tFile) then
sDt = iDT(""," ","",0)
nS = Fs.GetFile(tFile).size
If nS < 1 Then
Else
tE = Ucase(Fs.GetExtensionName(tFile))
If tE = "VBS" or tE = "TXT" or tE = "INI" or tE = "JS" Then ' or tE = "HTML" or tE = "HTM" then
If tE = "JS" Then
tSep = "//"
'ElseIf tE = "HTML" or tE = "HTM" Then
Else
tSep = "'"
End If
rF = Fs.GetParentFolderName(tFile)
tN = Fs.GetBaseName(tFile)
sF = Fs.BuildPath(rF,tN & " t2H " & sDt & ".html")
sHeadders = sHs & tn & "." & Lcase(tE) & sHe & sTops
Set sFile = Fs.OpenTextFile(tFile,1) 'Sourceファイルを読み取りモードで開く
Set rFile = Fs.CreateTextFile(sF,0) 'Resultファイルを追記モードで開く
WScript.Sleep 200
Do Until sFile.AtEndOfStream
rL = sFile.ReadLine '行読み込み
rL = Replace(rL,"<",sltc) '不等号 < を HTMLコードに置き換え
fQp = InStr(1,rL,tSep) '最左クォーテーション(以後q)位置
iQp = 0
isQp= 1
isQpc = 1
If fQp > 0 Then '行内のq有
If fQp = 1 Then '行頭にq
rL = hColor & rL & fColor
Else '行頭以外にq
Do
iQp = InStr(isQp + 1,rL,tSep)
isQp = InStr(isQpc + 1,rL,vbWq & tSep & vbWq) + 1 '文字列表記のq有無
If isQp = 0 Then
Exit Do
End If
isQpc = isQp
Loop While iQp = isQp
If iQp > 0 Then
lrL = Left(rL,iQp - 1)
nrL = Len(rL) - iQp
rrL = Right(rL,nrL + 1)
rL = lrL & hColor & rrL & fColor
End If
End If
End If
If sHeadders <> "" And rL = "" Then
Else
wL = sHeadders & " " & Replace(rL,vbTab,vbSp) & " "
rFile.WriteLine wL
sHeadders = ""
End If
Loop
rFile.WriteLine sUnders
WScript.Sleep 200
sFile.Close 'Sourceファイルを閉じる
rFile.Close 'Resultファイルを閉じる
TextViewer tTV
If tTV = "NotSetting" Then
MsgBox "Converted",vbYesNo,"Script to HTML Converter"
Else
WSHShell.Run tTV & vbWq & sF & vbWq, 1
Wscript.Sleep 1000
End If
End If
End If
End If
Next
Set Parameters = Nothing
Set Fs = Nothing
Set WSHShell = Nothing
Wscript.Quit

'***** ↓↓↓Functions↓↓↓ *********************************************************
'------------------------------------
'TextViwer - テキストファイルを開く既定アプリケーションをフルパスで返します。
'- Created by LazwardFox -

' Release 20090315 2053
' DevStart 20090315 0938

Function TextViewer(ResultKey)
Dim sTV
Const RegKey = "HKCR\txtfile\shell\open\command\"
sTV = WSHShell.RegRead(RegKey)
sTV = Replace(sTV, " " & vbWq & "%1" & vbWq, "")
If Fs.FileExists(sTV) Then
ResultKey = sTv & " "
Else
ResultKey = "NotSetting"
End If
End Function

'------------------------------------
'iDT - 日時文字列 ないし 日/時配列取得 for VBScript
'- Created by LazwardFox -

' Update 20090228 0458 変数宣言変更
' Update 20090223 0959 時刻桁処理変更
' Update 20090223 0253 Len記述忘れ修正
' Update 20090223 0135 変数宣言忘れ修正
' Update 20090210 0218
' Update 20090210 0115
' Release 20090209 2035

' iDT (
' dSplitter - DateSplitString (Normal - "/")
' ,dtSeparater - Date/Time SepaleteString (Normal - " ")
' ,tSplitter - TimeSplitString (Normal - ":")
' ,Control - 文字列 0 or 配列 1 (Default - 1)
' )

Public Function iDT(dSplitter,dtSeparater,tSplitter,Control)
Dim nX, nD, nS, strHMS, sResult 'Update 20090228 0458
nX = Now()
nD = FormatDateTime(Date(),0)
nS = ":" & Split(CStr(FormatDateTime(nX,3)),":")(2) 'Update 20090223 0951
strHMS = FormatDateTime(nX,4) & nS 'Update 20090223 0951
If tSplitter = ":" Then
Else
strHMS = Replace(strHMS,":",tSplitter)
End If
sResult = Cstr(Replace(nD,"/",dSplitter)) & "*" & strHMS
If Control = 1 Then
iDT = Split(sResult,"*")
Else
iDT = Replace(sResult,"*",dtSeparater)
End If
End Function


また、今、コレとは別に、HTMLファイルで JavaScript/VBScript混在ソースを、同様に処理でき、
Hedder/Footer/コメント書式をiniファイルから取得するよう、更なる改訂を行っています。
<そのまま使えるVBscript VBScript JavaScript Tab 注釈 HTML 変換>

2009/03/17

VBScriptでWSE そにょ2・・・


WindowsScriptEncoderを便利に・・・のスクリプト、更新しました。
アーカイブも差し替えました。

・jsファイルのエンコードにも対応させました。
・変換済みファイルが既存の場合、Renameして保護した後、新規にエンコードファイルを作成します。
 それに伴い、変換実行承認画面は廃しました。
・全体の実行開始確認と、終了報告メッセージを追加し、大量変換や操作ミス回避等にも対応させました。

なにぶん当然過ぎたので、結構肝心な説明と思わしきコトが抜けてたんだけど、
WindowsScriptEncoderは、アーカイブに含めるコトができません。
自身で、MSサイトからゲトしてください。 Windows使ってれば無料だし・・・

   VBSEncodeConnection.zip    
▲ を、右クリックしてファイルとして保存してください。

    '***** ↓↓↓ScriptTitle↓↓↓ *********************************************************     
'VBSEncodeConnection
'- Created by LazwardFox -

'パラメータ指定、ないし、vbs/jsファイルドロップで、
'同一フォルダ上にエンコード済みファイル(.vbe/.jse)を作成する。
'このスクリプトのショートカットに対してドロップしても有効。
'テキストエディタなどのマクロに登録しての利用も可

'単独起動 - 無効

' Update 20090317 2103 ScriptEncodeConnection完成までの暫定版として仕上げ
' Update 20090317 1822 JavaScriptへの対応、
' オートバックアップ機能追加(確認画面廃止)
' Update 20090309 1901 発行向けに調整
' Update 20090210 0109
' Release 20050112 1213
' DevStart 20050111 2117

'***** ↓↓↓ ObjectDecralations ↓↓↓ *************************************************
Dim Args, Wsh, Fs

Set Args = WScript.Arguments 'パラメーター取得
If Args.Count <= 0 Then
Set Args = Nothing
Wscript.Quit
End If
Set Wsh = WScript.CreateObject("WScript.Shell")
Set Fs = WScript.CreateObject("Scripting.FileSystemObject") 'ファイル操作

'***** ↓↓↓Decralations↓↓↓ *********************************************************
Dim sTitle, vbSp, vbTc, vbCt, vbWt, vbTs, vbCs
Dim tFile, bE, bF, tR, rE, sF, cF, rF, oF, pTarget

Const vbWq = """"
Const Enc = "C:\Program Files\Windows Script Encoder\screnc.exe"
sTitle = Fs.GetBaseName(Wscript.ScriptName)
Start = Wsh.PopUp("ConvertStart?",15,sTitle,33)
If Start = -1 Or Start = 2 Then
Set Args = Nothing
Set Fs = Nothing
Set Wsh = Nothing
Wscript.Quit
End If

vbSp = " "
vbTc = vbTab & vbCrlf
vbCt = vbCrlf & vbTab
vbWt = vbWq & vbTab
vbTs = String(2,vbTab)
vbCs = String(2,vbCrLf)

'nDT = iDT(""," ","",0)

'***** ↓↓↓MainRoutine↓↓↓ *********************************************************
For iC = 0 To Args.count - 1
tFiles = Args(iC)
If Fs.FileExists(tFiles) then
bE = Lcase(Fs.GetExtensionName(tFiles))
If bE = "vbs" Or bE = "js" Then
bF = Fs.GetBaseName(tFiles) 'NameOnly
tR = Fs.GetParentFolderName(tFiles) 'RoorFolder
rE = "." & Left(bE,2) & "e" 'NewExt
sF = vbWq & tFiles & vbWq 'vbs/js
cF = Fs.BuildPath(tR,bF & rE) 'vbe/jse
If Fs.FileExists(cF) Then
rF = bF & " " & iDT(""," ","",0) & rE
'rF = bF & " " & nDT & rE
Set oF = Fs.GetFile(cF)
oF.Name = rF
Set oF = Nothing
End If
pTarget = vbWq & Enc & vbWq & " " & sF & " " & vbWq & cF & vbWq
Wsh.Run pTarget, 0
End If
End If
Next
Set Args = Nothing
Set Fs = Nothing
Wsh.PopUp "Encoded",5,sTitle
Set Wsh = Nothing
Wscript.Quit

'***** ↓↓↓Functions↓↓↓ *********************************************************
'------------------------------------
'iDT - 日時文字列 ないし 日/時配列取得 for VBScript
'- Created by LazwardFox -

' Update 20090228 0458 変数宣言変更
' Update 20090223 0959 時刻桁処理変更
' Update 20090223 0253 Len記述忘れ修正
' Update 20090223 0135 変数宣言忘れ修正
' Update 20090210 0218
' Update 20090210 0115
' Release 20090209 2035

' iDT (
' dSplitter - DateSplitString (Normal - "/")
' ,dtSeparater - Date/Time SepaleteString (Normal - " ")
' ,tSplitter - TimeSplitString (Normal - ":")
' ,Control - 配列化 0 or 1 (Default - 1)
' )

Public Function iDT(dSplitter,dtSeparater,tSplitter,Control)
Dim nX, nD, nS, strHMS, sResult 'Update 20090228 0458
nX = Now()
nD = FormatDateTime(Date(),0)
nS = ":" & Split(CStr(FormatDateTime(nX,3)),":")(2) 'Update 20090223 0951
strHMS = FormatDateTime(nX,4) & nS 'Update 20090223 0951
If tSplitter = ":" Then
Else
strHMS = Replace(strHMS,":",tSplitter)
End If
sResult = Cstr(Replace(nD,"/",dSplitter)) & "*" & strHMS
If Control = 1 Then
iDT = Split(sResult,"*")
Else
iDT = Replace(sResult,"*",dtSeparater)
End If
End Function
<そのまま使えるVBscript WindowsScriptEncoder 容易 使い方>

やってもうた & しんどい・・・


結局、ココにうpしたブツの体裁整えるのに、連続15時間以上費やしてしまった・・・
もう、背中がイタい^_^;

・・・先の追加分スクリプトをうp向けに修正して、ソレで古いものを見やすく変換したアト 対象を差し替え、
更にコメ書式充て機能付けたので、また変換して差し替えて、途中、貼り先間違えたり・・・
ソレを直したと、思ったら、今度はBloggerのヘンなクセに振り回され再修正・・・
また再度全てを差し替える・・・

つか先日、コメント書式充て機能が付く前のブツで変換したモノも、
差し替えたときに、貼り付け先間違えてて、今朝まで そのままになってたし~m(_ _)m

んで、ようやっと整った次第・・・
まぁ今後は、スクリプトモノのうpは楽になるワナ^_^;

VBScriptでラクをする そにょ2・・・


VB/JavaScript作成は、フリーのテキストエディタ VxEditorを利用させてもらっている。
拡張子毎に、表示条件を設定できるのも便利だ。
ちなみに当方のVBScript向け設定は、以下アーカイブ内のファイルで再現できる。

   VxEditor - VBScript.zip    
▲ を、右クリックしてファイルとして保存してください。


また、記述の際、自分で処理を追いやすくする為、Tabを結構多用する。コメントもまた然りだ。
それらをVXの見た目のまま サイトうpするのには、手作業では結構手間だ。

そもそもBloggerでは、Tabがスペースに置換されてしまうし、
ああいったコードを使うのは、閲覧者サイドの環境にも依存してしまう・・・

で、少し前に、Tabを4つのスペースに置き換えるだけのスクリプトを組んだ。
ドロップすれば、日時付きファイル名で、処理済ファイルが出来た。

だが、コメント部分に書式を割り当てたいと欲が出た。
しかし、これも手作業では結構難だ・・・

そこで、今しがた、前述のスクリプトを改良して出来上がったのが、
   s2Hcnv.zip    
▲ を、右クリックしてファイルとして保存してください。

実のトコ、デバッグ中に、思わぬ難があった。
まず、' クォーテーション、VBScriptでのコメントを表すアレだ。
コイシをInStrで単純走査した結果で書式充てを処理したら、
実行処理内の文字列としてのクォーテーション"'"でまで、コメント向け書式を充ててしまう結果に・・・(-_-;)
結局Do~Loopで、' と "'" を探す処理を繰り返して、差異を検知して回避した。

次に変換ソース、スクリプトを主にターゲットとして作成したとは云え、
文字列としてHTMLタグが入る可能性は大きい、つか、今回のモノがそうだった・・・(´ヘ`;)
で、試行錯誤の後、対策として、< を HTMLコードに置換するように変えてみた・・・ 一見スゴく良かったのだが、
逆に、このHTMLコード自体を、そのままの見た目で必要とする部分に表記できない と云うジレンマが・・・(゚Д゚;)

今回は、このスクリプト自身も完全に変換できるようにしたいっっ! と、云うコトで、
少し無駄だが、変数宣言部に
    ltc = Split("&,l,t,;",",")     
sltc = Join(ltc,"")
を、追加して対応、目的達成と相成った。

また、このスクリプトを利用して作成されたテキストを利用する際には、
対象となるサイトに、以下のようなスタイルシートの記述が必要になる。
(様式は任意で変更してもらってイイと思う)
    <style type="text/css">     

.ScriptExp
{
background-color: #FFFFFF;
border: 0;
align: center;
color: #1e50a2;
line-height: 100%;
}
.ScriptComments
{
font-weight: normal;
color: #FFFFFF;
background-color: #288285;
border: 0;
}

</style>



今回も、既出でない関数を追加した
レジストリから、既定のテキストエディタのパスを取得するだけのモノ・・・
    '------------------------------------     
'TextViwer - テキストファイルを開く既定アプリケーションをフルパスで返します。
'- Created by LazwardFox -

' Release 20090315 2053
' DevStart 20090315 0938

TextViewer(
ResultKey 既定のテキストエディタのパスをレジストリより取得し返します。
任意の変数を割り当ててください。
)

確かに、こんな面倒な手順を踏まなくとも、rundll32 url.dll で、処理すれば、
適切なアプリケーションで勝手に開いてくれるのだが、前ログのフォルダの例も含め、
通常開くアプリケーションを変更している向きには、意外に使いが悪い場合もあったり、
その逆もまた然り だったりで、こういう処理方法のほうが適切な場合が多い。
なので少し面倒だが、レジストリから読み出すことにした。

と、前置きが長かったが、本体ソースは以下参照。今まで通り アーカイブのvbsファイルの内容そのもの。
    '***** ↓↓↓ScriptTitle↓↓↓ *********************************************************     
' Script to HTML Converter
'- Created by LazwardFox -

' スクリプト(VBS/JS)/ini/テキストファイル中の、
' [Tab]を4つのスペースに置き換える / コメントに書式を充てる
' ▼
' HTMLファイルを作成後、エディタで開く。

' Update 20090317 1424 font設定が正しく適用されないBlogger対策
' Update 20090317 1311 JavaScript→HTML変換に対応
' Update 20090317 0928 コメント処理修正
' Update 20090317 0201 Tab to 4 Space Converter から名称変更
' Update 20090317 0201 本文中の"'"を無視するよう変更
' Update 20090317 0146 Headder/Footerを追記し、
' コメント部分に書式を割り当てる処理を追加。
' Update 20090315 2053
' Release 20090313 1855 発行
' DevStart 20090313 1736

'***** ↓↓↓ ObjectDecralations ↓↓↓ *************************************************
Dim Parameters, WSHShell, Fs

Set Parameters = WScript.Arguments 'パラメーター取得
If Parameters.Count <= 0 Then
Wscript.Quit
End If
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set Fs = WScript.CreateObject("Scripting.FileSystemObject") 'ファイル操作

'***** ↓↓↓Decralations↓↓↓ *********************************************************
Const vbWq = """"
Dim vbSp, vbTc, vbCt, vbWt, vbTs, vbCs
Dim sDt, iC, nS, rF, tN, tE, tSep, sF, tFile, sFile, rFile
Dim sHeadder, sFooter, hColor, fColor, rL,ltc, sltc, fQp, iQp, isQp, isQpc, lrL, nrL, rrL, wL

vbSp = " "
vbTc = vbTab & vbCrlf
vbCt = vbCrlf & vbTab
vbWt = vbWq & vbTab
vbTs = String(2,vbTab)
vbCs = String(2,vbCrLf)
ltc = Split("&,l,t,;",",")
sltc = Join(ltc,"")
sHeadder = "<table class=" & vbWq & "ScriptExp" & vbWq & "><tr class=" & vbWq & "ScriptExp" & vbWq & "><td><pre>"
sFooter = "</pre></td></tr></table>"
hColor = "<a class=" & vbWq & "ScriptComments" & vbWq & "><font color=" & vbWq & "#ffffff" & vbWq & ">"
fColor = "</Font></a>"

'***** ↓↓↓MainRoutine↓↓↓ *********************************************************
For iC = 0 To Parameters.count - 1
tFile = Parameters(iC)
If Fs.FileExists(tFile) then
sDt = iDT(""," ","",0)
nS = Fs.GetFile(tFile).size
If nS < 1 Then
Else
tE = Ucase(Fs.GetExtensionName(tFile))
If tE = "VBS" or tE = "TXT" or tE = "INI" or tE = "JS" then
If tE = "JS" Then
tSep = "//"
Else
tSep = "'"
End If
rF = Fs.GetParentFolderName(tFile)
tN = Fs.GetBaseName(tFile)
sF = Fs.BuildPath(rF,tN & " t2H " & sDt & ".html")
Set sFile = Fs.OpenTextFile(tFile,1) 'Sourceファイルを読み取りモードで開く
Set rFile = Fs.CreateTextFile(sF,0) 'Resultファイルを追記モードで開く
WScript.Sleep 200
Do Until sFile.AtEndOfStream
rL = sFile.ReadLine '行読み込み
rL = Replace(rL,"<",sltc) '不等号 < を HTMLコードに置き換え
fQp = InStr(1,rL,tSep) '最左クォーテーション(以後q)位置
iQp = 0
isQp= 1
isQpc = 1
If fQp > 0 Then '行内のq有
If fQp = 1 Then '行頭にq
rL = hColor & rL & fColor
Else '行頭以外にq
Do
iQp = InStr(isQp + 1,rL,tSep)
isQp = InStr(isQpc + 1,rL,vbWq & tSep & vbWq) + 1 '文字列表記のq有無
If isQp = 0 Then
Exit Do
End If
isQpc = isQp
Loop While iQp = isQp
If iQp > 0 Then
lrL = Left(rL,iQp - 1)
nrL = Len(rL) - iQp
rrL = Right(rL,nrL + 1)
rL = lrL & hColor & rrL & fColor
End If
End If
End If
If sHeadder <> "" And rL = "" Then
Else
wL = sHeadder & " " & Replace(rL,vbTab,vbSp) & " "
rFile.WriteLine wL
sHeadder = ""
End If
Loop
rFile.WriteLine sFooter
WScript.Sleep 200
sFile.Close 'Sourceファイルを閉じる
rFile.Close 'Resultファイルを閉じる
TextViewer tTV
If tTV = "NotSetting" Then
MsgBox "Converted",vbYesNo,"Script to HTML Converter"
Else
WSHShell.Run tTV & vbWq & sF & vbWq, 1
Wscript.Sleep 1000
End If
End If
End If
End If
Next
Set Parameters = Nothing
Set Fs = Nothing
Set WSHShell = Nothing
Wscript.Quit

'***** ↓↓↓Functions↓↓↓ *********************************************************
'------------------------------------
'TextViwer - テキストファイルを開く既定アプリケーションをフルパスで返します。
'- Created by LazwardFox -

' Release 20090315 2053
' DevStart 20090315 0938

Function TextViewer(ResultKey)
Dim sTV
Const RegKey = "HKCR\txtfile\shell\open\command\"
sTV = WSHShell.RegRead(RegKey)
sTV = Replace(sTV, " " & vbWq & "%1" & vbWq, "")
If Fs.FileExists(sTV) Then
ResultKey = sTv & " "
Else
ResultKey = "NotSetting"
End If
End Function

'------------------------------------
'iDT - 日時文字列 ないし 日/時配列取得 for VBScript
'- Created by LazwardFox -

' Update 20090228 0458 変数宣言変更
' Update 20090223 0959 時刻桁処理変更
' Update 20090223 0253 Len記述忘れ修正
' Update 20090223 0135 変数宣言忘れ修正
' Update 20090210 0218
' Update 20090210 0115
' Release 20090209 2035

' iDT (
' dSplitter - DateSplitString (Normal - "/")
' ,dtSeparater - Date/Time SepaleteString (Normal - " ")
' ,tSplitter - TimeSplitString (Normal - ":")
' ,Control - 文字列 0 or 配列 1 (Default - 1)
' )

Public Function iDT(dSplitter,dtSeparater,tSplitter,Control)
Dim nX, nD, nS, strHMS, sResult 'Update 20090228 0458
nX = Now()
nD = FormatDateTime(Date(),0)
nS = ":" & Split(CStr(FormatDateTime(nX,3)),":")(2) 'Update 20090223 0951
strHMS = FormatDateTime(nX,4) & nS 'Update 20090223 0951
If tSplitter = ":" Then
Else
strHMS = Replace(strHMS,":",tSplitter)
End If
sResult = Cstr(Replace(nD,"/",dSplitter)) & "*" & strHMS
If Control = 1 Then
iDT = Split(sResult,"*")
Else
iDT = Replace(sResult,"*",dtSeparater)
End If
End Function


しかし、JavaScript使いには向かないモノになってるっポイ。
と云うのも、文字列を表すときにシングルクォーテーション使われたらドウにもナリません(´ヘ`;)
元々、VBS向けに作成したワケだし・・・
当方みたく、JSでも、ダブルクォーテーション使うって向きなら問題ナシ。

まぁ、このスクリプト中の 検出用のクォーテーションを // に差し替えればJSでも使えるケド・・・
アトで その機能追加しようカナ、拡張子で分岐して・・・


結局、スグに拡張してしまった^_^;
多分問題なく動く・・・ハズw
<そのまま使えるVBscript スクリプト HTML 公開化 変換 pre>

VBScriptでラクをする そにょ1・・・


ショートカット1クリックで複数フォルダを開けたら…
しかも、当日フォルダがあれば、そっちを見つけて開くとか勝手に出来ないものか・・・
ヒトの手を抜きたいという欲望には限りがないw

そう云う向きに使えるスクリプトなど・・・

   DateFolderOpener.zip    
▲ を、右クリックしてファイルとして保存してください。

ファイル名を任意に変えて、同名iniファイルを同じフォルダに配置して利用するのは、今まで紹介したモノと同様。
iniファイルも、単純に
   C:\WINDOWS
C:\WINDOWS\system32\GroupPolicy
と、云う具合に、フォルダを列挙するだけ。

但し、その配下が、
   [指定したフォルダ]
└ yyyy
└ mm
└ dd
と云うカタチの構成の場合で、当日を指すフォルダがあれば、ソチラを優先で開き、
それ以外の指定フォルダは、エクスプローラで ただ開くだけとなる。

下のソースを見てもらえば判ると思うが、コイツは今、うっかり間違って
自身へ フォルダ(複数可)をドロップしても動作するようになってる。
ただエクスプローラで開くだけなので、機能としては、ほぼ無意味。
なのでココは、ini自分で書くのも面倒になってきたってのもあるので、
ini他を自動作成するよう、処理差し替えようかとか考えている。

    '***** ↓↓↓ScriptTitle↓↓↓ *********************************************************     
'DateFolderOpener
'- Created by LazwardFox -

'パラメータ指定/iniファイル記述で、複数の同日日付フォルダを同時に開く。
'単独起動 - 処理なし

'注) 20090223 0300 タスクマネージャ動作時、直接指定の場合、パラメータ指定不可

' Update 20090315 2240 lnkChk機能拡張
' Update 20090315 1958 複数ドロップ、ショートカットドロップに対応。
' Release 20090315 1431
' DevStart 20090315 0812

'***** ↓↓↓ ObjectDecralations ↓↓↓ ************************************************
Dim Parameters, WSHShell, Fs

Set Parameters = WScript.Arguments 'パラメーター取得
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set Fs = WScript.CreateObject("Scripting.FileSystemObject") 'ファイル制御

'***** ↓↓↓ Decralations ↓↓↓ ******************************************************
Const vbWq = """"
Dim win, Explorer, arTargets, iTargets, pTargets(), iRoot, nDT, tFolder, tExec
win = WSHShell.ExpandEnvironmentStrings("%systemroot%")
Explorer = Fs.BuildPath(win,"Explorer.exe") & " /e,"

'***** ↓↓↓MainRoutine↓↓↓ *********************************************************
'ParameterCheck BaseSet -----
If Parameters.Count = 0 Then
iTargets = arIni()
ElseIf Parameters.Count = 1 Then
iTargets = Split(Parameters(0),",")
ElseIf Parameters.Count >=2 Then
For Pc = 0 To Parameters.Count - 1
Redim Preserve pTargets(Pc)
pTargets(Pc) = Parameters(Pc)
Next
iTargets = pTargets
Else
Wscript.Quit
End IF
lnkChk iTargets, 1, arTargets '0 - .url無効化
'----------------------------
nDT = iDT("\"," ","",1)(0)
For Each iRoot In arTargets
If iRoot = "" Then
ElseIf Fs.FolderExists(iRoot) Then
tFolder = Fs.BuildPath(iRoot,nDT)
If Fs.FolderExists(tFolder) Then
Else
tFolder = iRoot
End If
tExec = Explorer & tFolder
WSHShell.Run tExec, 1
Wscript.Sleep 500
End If
Next
Set Fs = Nothing
Set WSHShell = Nothing
Wscript.Quit

'***** ↓↓↓Functions↓↓↓ *********************************************************
'------------------------------------
'lnkChk with scGet
'- Created by LazwardFox -

'パラメータがショートカットファイル(.lnk/.url)を指す場合、
'リンク先フルパスに差し替えて配列を返す。

' Update 20090315 2240 Control処理拡張
' Release 20090315 1958
' DevStart 20090315 1634

'lnkChk(
' SourceArray 配列での入力に限定されます。
' ,Control 0 - .urlファイル(インターネットショートカット)は無効化
' 1 - ショートカット内URL有効化 / 2 - 無条件
' ,ResultArray 処理結果を配列で返します。無効な配列は削除されています。
' )

Function lnkChk(SourceArray,Control,ResultArray)
Dim Pc, iSA, eSA, cSA, lPass, ePass, rSAs()
Pc = 0
For Each iSA in SourceArray
eSA = Ucase(Fs.GetExtensionName(iSA))
cSA = (eSA = "LNK") or ((eSA = "URL") And Control > 0)
If cSA Then '-- lnk/url TargetGet
scGet iSA, lPass
ePass = Ucase(Fs.GetExtensionName(lPass))
If ePass = "" Then '-- Folder True
ElseIf Control >= 2 Then '-- All True - NoLimit
ElseIf ePass = "HTML" And Control >= 1 Then '-- URL True
Else '-- BadTarget
lPass = ""
End If
ElseIf eSA = "" Then '-- Folder
lPass = iSA
Else '-- lnk/url Cancel
lPass = ""
End If
If lPass = "" Then '-- NullSkip
Else '-- ArraySet
Redim Preserve rSAs(Pc)
rSAs(Pc) = lPass
Pc = Pc + 1
End If
Next
ResultArray = rSAs
End Function

'------------------------------------
'scGet - ショートカットファイル(.lnk/.url)のリンク先フルパスを返す。
'- Created by LazwardFox -

'Update
'Release 20090315 1958
' DevStart 20090315 1634

' scGet(
' scSource ショートカットファイルのフルパスを指定
' ,scResult ショートカット内のリンク先を返します。
' 任意の変数を割り当ててください。
' )

Function scGet(scSource, scResult)
Dim tSc
If Fs.FileExists(scSource) Then
Set tSc = WSHShell.CreateShortcut(scSource)
scResult = tSc.TargetPath
Set tSc = Nothing
Else
scResult = ""
End If
End Function

'------------------------------------
'iDT - 日時文字列 ないし 日/時配列取得 for VBScript
'- Created by LazwardFox -

' Update 20090228 0458 変数宣言変更
' Update 20090223 0959 時刻桁処理変更
' Update 20090223 0253 Len記述忘れ修正
' Update 20090223 0135 変数宣言忘れ修正
' Update 20090210 0218
' Update 20090210 0115
' Release 20090209 2035

' iDT (
' dSplitter - DateSplitString (Normal - "/")
' ,dtSeparater - Date/Time SepaleteString (Normal - " ")
' ,tSplitter - TimeSplitString (Normal - ":")
' ,Control - 配列化 0 or 1 (Default - 1)
' )

Public Function iDT(dSplitter,dtSeparater,tSplitter,Control)
Dim nX, nD, nS, strHMS, sResult 'Update 20090228 0458
nX = Now()
nD = FormatDateTime(Date(),0)
nS = ":" & Split(CStr(FormatDateTime(nX,3)),":")(2) 'Update 20090223 0951
strHMS = FormatDateTime(nX,4) & nS 'Update 20090223 0951
If tSplitter = ":" Then
Else
strHMS = Replace(strHMS,":",tSplitter)
End If
sResult = Cstr(Replace(nD,"/",dSplitter)) & "*" & strHMS
If Control = 1 Then
iDT = Split(sResult,"*")
Else
iDT = Replace(sResult,"*",dtSeparater)
End If
End Function

'------------------------------------
'arIni with iniLoader
'- Created by LazwardFox -

'スクリプトと同名のiniファイルがあれば、内容を配列で取得
'対象フォルダを取得、iniファイルがあれば優先する。戻り値は配列

' Update 20090223 0550 変則的フォルダ名回避のため修正
' Release 20090223 0509

Public Function arIni()
Dim sNFull, rFolder, sN, iniFile
sNFull = Wscript.ScriptFullName
rFolder = Fs.GetParentFolderName(sNFull)
sN = Fs.GetBaseName(sNFull)
iniFile = Fs.BuildPath(rFolder,sN & ".ini")
If Fs.FileExists(iniFile) Then
arIni = iniLoader(iniFile,0)
Else
arIni = Array(rFolder)
End If
End Function

'------------------------------------
'iniLoarder - 対象をiniファイルより取得。
'- Created by LazwardFox -

' Update 20090223 0550 戻り値可変 [ 0 - 配列 ] [ 1 - カンマ区切り文字列 ]
' Release 20090223 0509

Public Function iniLoader(iniFile, Control)
Dim nS
nS = Fs.GetFile(iniFile).size
If nS = 0 Then
iniLoader = Array(Fs.GetParentFolderName(iniFile))
Else
Dim iFile, lResult, strResults
Set iFile = Fs.OpenTextFile(iniFile,1) 'iniファイルを読み取りモードで開く
WScript.Sleep 150
Do Until iFile.AtEndOfStream '読み込み
lResult = lResult & ";" & iFile.ReadLine & ";"
Loop
WScript.Sleep 150
iFile.Close 'Iniファイルを閉じる
strResults = Replace(Replace(lResult,";;",","),";","")
If Control = 0 Then
iniLoader = Split(strResults, ",")
Else
iniLoader = strResults
End If
End If
End Function


関数毎にバラバラに管理してたファイルから寄せ集めたので、
クレジットまでダブってしまっているのは御愛嬌ってコトで・・・^_^;
<そのまま使えるVBScript 日付 フォルダ 作成 自動化 複数 ルートフォルダ 指定可能>

2009/03/14

日本の電池メーカ オワタ?・・・


こう云う成果をUSAで出されると、国内メーカにとってはイタいよね・・・ しかもMITって・・・

充電時間が最大36分の1になる画期的なリチウムイオン充電池が登場 - Gigazine [ 20090313 1238 ]

SIGMA SD14専用のリチウムイオンバッテリー BP-21 で云うと、3分30秒前後で充電完了するワケだ・・・
同じ大きさ(バッテリー容積)なら、撮影時間も延びるってコトだろうな・・・

そうなると、のて機でも、便利になるだろうが、結局、
(長時間使える)小型燃料電池と どっちが先に世に出るかで、市場における力関係が決まるだろうな・・・
実用化2~3年後とか云ってたら、まぁアウトだね。 安全性ってのもあるだろうが、Limit1yearってトコかな。
MITも、撃沈したくはナイだろうし、国内に拘らず日本メーカーと結託するコトを激しく推奨するよ。

2009/03/13

VBScriptで鯖管理 そにょ2・・・


このログのスクリプトは以後のログで更新しました。[ 20090411 1839 ]

鯖ってより、Windows(NT系2k以降)端末全般に云えるコトかも知らんが、
Windows起動時のアプリケーション自動起動・・・
[スタート]メニュー、[プログラム]配下の[スタートアップ]に登録したり、
レジストリの
   [HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run]    
に登録したりと、やり方は様々だろう。

ただ、残念なことに、これらでは起動順序を指定できない。

唯一その機能を持つレジストリキー RunOnce も、既知と思うが、
システムレベルのファイル更新向けなので、初回起動時にのみ動作し、設定が消去される。

スタートアップ起動させたいが、起動タイミングがカブると具合の悪いものも、意外に少なくはナイようだ。
しかも、スタートアップフォルダ登録では、ログオン時にしか機能しない。

ココで 紛らわしいので一応の解説を入れると、[スタートアップ]フォルダ登録での起動と云うのは、
Windowsのブート後、ログオン画面が表示され、
  (オートログオンを設定している場合は少し違うが、実際は同じ。
   マシンがショボいと、一瞬ログオン画面が見えることがあるので判る)
ユーザーがログオンした後の自動起動をサポートしている。
で、グループポリシーで云うトコロの"スタートアップスクリプト"と云うのが動作するタイミングは、
前述にあるWindowsブートの後半で実行される、
つまり、ログオンより、スタートアップのほうが先行動作する・・・ なんて紛らわしい・・・

で、チョイと判ってるヒトなら、グループポリシーで、スタートアップ/ログオンスクリプトに
実行させたい対象を設定して、起動順序をある程度、制御下においてみることも試みていると思う。
本来はスクリプトを登録するのがスヂっポイのだが、実行ファイルも直接置けるし、パラメータの指定も出来る。

で、そのグループポリシーのスクリプト登録、スタートアップ/ログオン/ログオフ/シャットダウン
それぞれ、分けて設定できる、RAMドライブのような変り種利用者だったら、この意味は判るだろうし、
中々に嬉しい機能だろう。
ただ残念ながら、起動順は設定できるようだが、次の処理までの移行時間までは設定できないと見える・・・

しかしまぁ、ココでもVBScriptが使えるってコトで、だったら・・・とチョイっと作って実働させている。

   sScriptor.zip    
▲ を、右クリックしてファイルとして保存してください。


   {sScriptor}.vbe

名称変更 - 拡張子以外 可
iniファイル無しでの単独起動 - 無効
パラメータ - ナシ


   {sScriptor}.ini

名称変更 - 拡張子以外 可

iniファイル内 行書式)

{アプリケーションフルパス};{Parameter};{CallType DDE or 省略};WindowType 0 or 1;{mSec(Interval)};[Title(Memo)]


{アプリケーションフルパス} 起動したいアプリケーションをフルパスで指定
{Parameter} アプリケーションに対するパラメータを記述
{CallType} rundll32.exeほかを使用したアプリケーション起動時には DDE それ以外は指定不要
{WindowType} 0(非表示) or 1(通常)
{mSec(Interval)} 次の処理平衡するまでの時間を1/1000Sec単位で指定
[Title(Memo)] 機能には影響しない、タイトルなどのメモを記述

行頭に;セミコロン配置で、非実行行。



iniファイル例)
   C:\Applications\System Tools\ProcessorManegements\CrystalCPUID\CrystalCPUID.exe;/F22 /P1 /E;;1;4000;[CrystalCPUID]    
C:\Applications\System Tools\Desktop Extension\IconPositionControl\KH Software Factory\KH DeskKeeper\deskkeep.exe;;;1;2500;[KH DeskKeeper]
C:\Applications\System Tools\HardwareControls\Monitor Extension\CoolMonitorOff\cmoff.exe;;;;2000;[CoolMonitorOff]
C:\WINDOWS\system32\SxgTkBar.exe;;;1;3000;[SxgTkBar]
C:\Program Files\Microsoft Office\Office10\OSA.EXE;-b -l;;1;1500;[Microsoft Office]
C:\Applications\System Tools\FEP Extension\XLangBar\XLangBar.exe;;;1;1500;[X LangBar]
C:\Program Files\Windows Defender\MSASCui.exe;-hide;;;5000;[Windows Defender]
C:\Program Files\LSoft Technologies Inc\Active@ Hard Disk Monitor\DiskMonitor.exe;hide;;1;3000;[DiskMonitor]
C:\Applications\Maintenance Tools\Status Uty\Processor Information\ClockSpeed_D\ClockSpeed_D.exe;;;1;1500;[ClockSpeed D]
C:\Program Files\Common Files\Adobe\Calibration\Adobe Gamma Loader.exe;;;;2000;[Adobe Gamma Loader]
C:\WINDOWS\system32\rundll32.exe;shell32.dll,Control_RunDLL desk.cpl,,3;DDE;1;2500;[MonitorProperty DDE]
;C:\WINDOWS\system32\taskmgr.exe;;;1;2000;[TaskManeger]


ちなみにグループポリシーで登録するファイルは、

C:\WINDOWS\system32\GroupPolicy
├ Machine
│ └ Scripts
│ ├ Startup
│ └ Shutdown
└ User
└ Scripts
├ Logon
└ Logoff
に、保存するのが本来らしい、が、そうでなくても機能する。
しかし、[スタートアップ]フォルダのように、ココに直接ファイルを置いただけでは機能しない。
[管理ツール]-[グループポリシー (グループ ポリシー オブジェクト エディタ)]内の、

 [コンピュータの構成]-[Windowsの設定]-[スクリプト(スタートアップ/シャットダウン)]
 [ユーザーの構成]-[Windowsの設定]-[スクリプト(ログオン/ログオフ)]
 
に対し、任意の処理へGUIを使って登録する必要がある。
また、前述のように、既定フォルダ以外に配されている場合は、フルパスでの登録が必要となる。
って、設定がGUIになってるので、心配はナイが・・・

で、以下に、その設定画面の画像を並べてみたので参考にしてほしい。








なんか、このログ作るのに、また新たな副産物が出来てしまった・・・
おかげで、ソースを作ったままの見た目で うp出来るようになった。
と、云うのも、Bloggerの余計な処理のおかげで、preタグが思うように機能しなくてね(-_-;)

んで、今回分のソースなど・・・
    '***** ↓↓↓ScriptTitle↓↓↓ *********************************************************     
' Startup/ShoutdownScripting with out TestMode
'- Created by LazwardFox -

' Update 20090313 1709 パラメータ省略によるエラー処理を訂正
' Update 20090311 1634 inArray を inArrays に差し替え、必須の lArray を追加
' iniLoaderを合せて修正
' Update 20090226 1908 テストルーチン排除
' Update 20090226 1202 DDE式の記述にフラグで対応へ変更
' Update 20090226 1025 DDE式の記述に、通常呼び出しを""で囲んで対応
' Update 20090226 0630 テストモード追加
' Update 20090226 0605 ウィンドウタイプの指定と、インターバルタイム設定可能に。
' Release 20090226 0451
' Update 20090226 0346 iniファイル仕様に変更
' DevStart 20090226 0235 単純動作のみ機能

'***** ↓↓↓ ObjectDecralations ↓↓↓ *************************************************
Dim WSHShell, Fs
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set Fs = WScript.CreateObject("Scripting.FileSystemObject") 'ファイル制御

'***** ↓↓↓Decralations↓↓↓ *********************************************************
Dim sTitle, artargets, iExe, sWq, rTarget, wType, sSec
Const vbWq = """"
sTitle = Fs.GetBaseName(Wscript.ScriptName)

'***** ↓↓↓MainRoutine↓↓↓ *********************************************************
arTargets = arIni(";")
If IsEmpty(arTargets) Then
Else
For Each iExe In arTargets
If IsEmpty(iExe(0)) or iExe(0) = "" Then
ElseIf iExe(0) = "" Then
ElseIf Fs.FileExists(iExe(0)) Then
sWq = vbWq
If IsEmpty(iExe(2)) or iExe(2) = "" Then
ElseIf Ucase(Cstr(iExe(2))) = "DDE" Then
sWq = ""
End If
rTarget = sWq & Cstr(iExe(0)) & sWq
If IsEmpty(iExe(1)) or iExe(1) = "" then
Else
rTarget = rTarget & " " & sWq & Cstr(iExe(1)) & sWq
End If
If IsEmpty(iExe(3)) or iExe(3) = "" Then
ElseIf IsNumeric(iExe(3)) Then
wType = Cint(iExe(3))
Else
wType = 0
End If

WSHShell.Run rTarget, wType
If IsEmpty(iExe(4)) or iExe(4) = "" Then
ElseIf IsNumeric(iExe(4)) Then
sSec = Cint(iExe(4))
WScript.Sleep sSec
Else
sSec = 0
End If
End If
Next
End If
Set Fs = Nothing
Set WSHShell = Nothing
Wscript.Quit

'***** ↓↓↓Functions↓↓↓ *********************************************************
'------------------------------------
'arIni - スクリプトと同名のiniファイルがあれば、内容を配列で取得
'- Created by LazwardFox -

' Update 20090226 0330
' Update 20090223 0550 変則的フォルダ名回避のため修正
' Release 20090223 0509

Public Function arIni(lS)
Dim sNFull, rFolder, sN, iniFile
sNFull = Wscript.ScriptFullName
rFolder = Fs.GetParentFolderName(sNFull)
sN = Fs.GetBaseName(sNFull)
iniFile = Fs.BuildPath(rFolder,sN & ".ini")
If Fs.FileExists(iniFile) Then
arINI = iniLoader(iniFile,lS,0)
End If
End Function

'------------------------------------
'iniLoader - 対象をiniファイルより取得、既存iniファイルのみ指定可。
'- Created by LazwardFox -

' Update 20090311 1650 inArraysに合せて修正
' Update 20090226 1025 DDE式の記述に対応
' Update 20090226 0855 データ内にコンマを利用可能に
' Update 20090226 0356 多重配列向けに修正
' Update 20090223 0550 戻り値可変 [ 0 - 配列 ] [ 1 - lSplitterで指定した区切り文字で連結された文字列 ]
' Release 20090223 0509

Public Function iniLoader(iniFile, lSplitter, Control)
Dim nS
nS = Fs.GetFile(iniFile).size
If nS = 0 Then
iniLoader = Array(Fs.GetParentFolderName(iniFile))
Else
If IsEmpty(lSplitter) Then
lSplitter = ","
End If
Dim iFile, lResult, strResults, rL, iniLoaded
Set iFile = Fs.OpenTextFile(iniFile,1) 'iniファイルを読み取りモードで開く
WScript.Sleep 150
Do Until iFile.AtEndOfStream '読み込み
rL = iFile.ReadLine
lResult = lResult & "**" & rL & "**"
Loop
WScript.Sleep 150
iFile.Close 'Iniファイルを閉じる
strResults = Replace(Replace(lResult,"****","*"),"**","")
If Control = 0 Then
inArrays strResults, "*" & lSplitter, iniLoader
Else
iniLoader = Replace(strResults,"*",lSplitter)
End If
End If
End Function

'------------------------------------
'inArrays - 多次元配列構築
'- Created by LazwardFox -

'配列 及び 文字列から、区切り文字を指定して多重配列を作成し返す。

' Update 20090228 1248 strLimitters指定に、区切り文字 ~(チルダ)不要に。
' Update 20090228 0833 配列のほか、文字列もソースに適用可能に。
' Update 20090223 0917

'inArrays(
' tSources - 区切り文字を含む文字列 ないし、それらで構成された配列
' ,strLimitters - 区切り文字を順番に並べた文字列を指定
' ,arReturn - 戻り値が代入されます。
' )

Function inArrays(tSources, strLimitters, arReturn)
Dim arSources, arLimitters, iLimitter, arInArrays, iSource, Pc
arSources = tSources
lArray strLimitters, arLimitters '< Update 20090228 1248
For Each iLimitter In arLimitters
If VarType(arSources) = 8 Then
arInArrays = Split(arSources,iLimitter)
Else
Pc = 0
ReDim arInArrays(0)
For Each iSource in arSources
ReDim Preserve arInArrays(Pc)
arInArrays(Pc) = Split(iSource,iLimitter)
Pc = Pc + 1
Next
End If
arSources = arInArrays
arInArrays = Null
Next
arReturn = arSources
End Function

'------------------------------------
'文字列を1文字ずつバラし、配列として返す
'- Created by LazwardFox -

' Release 20090228 1246

' lArray(
' strLetters - 分解したい文字列
' ,rArray - 戻り値が代入されます。任意の変数名を指定
' )

Function lArray(strLetters, rArray)
Dim Pc, rLetters()
Set objADO = CreateObject("ADODB.Stream")
With objADO
.Type = 2
.Open
.WriteText strLetters
Pc = 0
.Position = 0
Do Until .EOS
ReDim Preserve rLetters(Pc)
rLetters(Pc) = .ReadText(1)
Pc = Pc + 1
Loop
End With
rArray = rLetters
objADO.Close
Set objADO = Nothing
End Function


ウチの鯖タンでは、
[HKEY_USERS\.DEFAULT] や [HKEY_CURRENT_USER] 他の
[Software\Microsoft\Windows\CurrentVersion\Run] の中身を全部移行して利用している。

コイツを使って、最速起動に繋がるBoot時のスタートアップパターンとか、見つけてみるのも一興かとw

・・・ただ、タスクマネージャだけはヤメといたほうがイイよ、最小化指定で起動すると、
起動自体は出来るケド、ウインドウとして開かなくなるからww

PowerBar(のて機やUPS接続機以外では不要)は、ココには"身"の記述無かったので、触れていない。
Dr.ワトソンも、敢えて触れずにおいている。(存在忘れてたってのが正しいが・・・)
<そのまま使えるVBscript 鯖管理 起動順序 グループポリシー スタートアップ ログオン ログオフ シャットダウン>