コンピューターのことなどを綴ったメモ (旧:目から鱗 w/SQLite)

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

ScriptControl用WScriptオブジェクト [プログラミング]

2008年7月13日

Oyagameを、Registration-Freeで使うのにScriptControlを利用するやり方は、Oyagameに限定したツールにするよりも、汎用ツールとしてすべてのCOMに対応できるようにしたほうがよさそう。

先の記事でも問題にしたが、WScriptオブジェクトをこのツールで供給すれば、かなり汎用性が出るはず。しかも、XP, Vistaだけでなく、2000, NTでも使える方法を見つけてあるので、ほとんどのケースで問題ないだろう(95/98/MEでも使えるかどうかは、不明)。

このWScriptオブジェクトの供給方法について、ほぼ出来上がったので、バックアップの意味も兼ねてメモ。

Nucleusの乗っ取り、その1:スキン変数を自由にマネージする。 [Nucleus]

2008年7月11日

久しぶりに、Nucleusネタ。乗っ取るといっても、クラッキングのことではなくて、プラグインを用いてコアの機能を大幅に変更してしまう話。

ある方とPMでやりとりしていたときに思いついたプラグインがあって、眠らせておくにはもったいないアイデアなのでここで紹介。

Nucleusのスキン変数は、コアで用意されているものと、プラグインで用意されているものと2種類ある。プラグインで用意できるものは、プラグイン名から『NP_』を除いた残りの名前だけ。

また、コアで用意されているものをプラグインでオーバライドすることはできない。例えば、NP_blog という名のプラグインを作成しても、スキン変数<%blog%>ではコアのコードが呼び出されてしまう。

コアの変更はせずに、これらを何とかしようという話。

ScriptControlの利用 [プログラミング]

2008年7月4日

先日とりあげた、wscript.exe用のマニフェストを書く方法に加えて、ScriptControlを利用する方法も試してみた。とりあえず、VB(VB5)を用いて簡単に作成したプログラムのソースコードは次のとおり。

registration-free COMをWSHで使う [プログラミング]

2008年7月1日

OyagameやSFC-miniは、インプロセスCOMサーバ(ActiveX-DLL)をregsvr32.exeを使ってレジストリに登録するという古い方法を使って、WSH(VBScript/JScript)でDLLにアクセスすることを可能にしている。WSH自身がすでに古くなりつつある技術なので、こういった古い技術に頼るのは仕方の無いところ。

一方で、こういった資産を生かそうという仕組みがWindows XP以降ではサポートされているようで、これを使えば、レジストリへの登録無しに、COMサーバが使える。したがって、管理者権限が無くても、COMサーバが供給するオブジェクトにアクセスすることができるようになる。

Oyagameを使うようなケースではこれは朗報で、作成したプログラムを配布する時の制限が無くなる事は大きい。

oyagame 0.1.0β [プログラミング]

2008年6月1日

初めてのベータバージョンになる、oyagame 0.1.0βを公開しました。

βバージョンとしたことで、基本的な仕様はこれで行くことになります。メソッド呼び出しの際、アルファベットの大文字小文字を区別するかどうかの判断がまだ先送りになっていますが、現在の仕様では区別しないようにしています。ここの部分でのスピードが全体のスピードに影響することはほとんど無いのではないかというのがその理由です。今後も、スピードにはあまりこだわらずに開発してゆくことになるでしょう。それでも、構造体へのアクセスなど、スピードを若干意識した部分もありますが。

SDLの入門用としての需要が出れば良いなと思っています。もっと本格的にSDLを使いたい人は、C/C++を使ってもらえれば…というところです。

oyagame 0.1.0 βは、ここからダウンロードできます。

この配布に伴って、SFC mini の公式ページの運用開始を宣言します。

http://sfcmini.sourceforge.jp/

公式ページは、Nucleus::subSilverを用いて構築しています(ちょっと勇み足的なところもあるけれど)。多分、閑古鳥が鳴く状況が続くと思いますが、温かく見守っていただければと思います。

oyagameで日本語を使う [プログラミング]

2008年5月30日

oyagameで日本語を表示するのは、意外と簡単であることが分かった。これに気がつくのを難しくしていた原因は、私の今のPC環境でShift-JISがうまく使えなかったことにあった。

OSで日本語がちゃんと使える環境になると、oyagameでの日本語表示は簡単。

もしもし亀よ

ADODB.Stream [プログラミング]

2008年5月27日

さまざまなエンコードおよびバイナリが扱えるCOMオブジェクト、ADODB.Streamに関する備忘録。

MSDNにおける、ADODB.Streamの解説は、ここ

これのCharsetプロパティのところで、

システムが認識できる文字セット文字列の一覧については、Windows レジストリの HKEY_CLASSES_ROOT\MIME\Database\Charset のサブキーを参照してください。

と言っている。調べてみると、以下のエンコードが使えるらしい(使用中のVistaの場合)。

Windows-1250
Windows-1251
_iso-2022-jp$ESC
big5
euc-jp
gb2312
ibm852
ibm866
iso-2022-kr
iso-8859-1
iso-8859-2
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
koi8-r
ks_c_5601-1987
shift_jis
utf-7
utf-8
windows-1252
windows-1255
windows-1256
windows-874

oyagameでADODB.Streamを扱うようにすれば、それほどソースコードを肥大化させること無く、日本語が表示できるようになるはず。おそらく、20-50行ほどのコード追加で十分だろう。

(追記)
iso-2022-jpも使える。上記リストは可能なすべてをピックアップしたものではないので、他にも使えるエンコードはあるかも。

速報サイトの工夫 [コンピューター・その他]

2008年5月22日

今、両国国技館で大相撲五月場所が行われている。毎回楽しみにしている。放送はカリフォルニア時刻の夜11時もしくは12時からで、打ち止めは夜1時か2時前。なので、録画して翌日の夜に観る。

この、大相撲が行われる2週間の間、asahi.comなどの新聞サイトを見るのが大変なのだ。スポーツ欄は見ないようにしなければ、録画したビデオが100%楽しめない。今日も見てしまった。

『琴欧洲、力の四つ相撲 白鵬を一蹴』

ああ、琴欧洲が全勝を守ったのかぁ。

これ、何とかならないものかな。例えば、クッキー設定をすると特定のタグのついた内容は表示されないとか。色々考えたけれど、大手の新聞サイトではサーバー負担軽減のために何らかのキャッシュを入れているだろうし、簡単にはできなさそう。私が思いつく唯一の可能性は、JavaScriptで特定の記事内容をスタイル変更でhiddenにしてしまうということ。

何とかなりませんか? → 新聞社の方々。

aliens.vbs [プログラミング]

2008年5月17日

先日配布の、oyagameを利用したゲーム、aliensのコードを少しばかり解説。

'''''''''''''''''''''''''''''''''''''
' The license of this script is GPL '
'                                   '
'''''''''''''''''''''''''''''''''''''
option explicit
dim SDL,IMG,Mix,i

set SDL=CreateObject("sfcmini.oyagame")
execute SDL.ConstVBS
call SDL.Init(SDL_INIT_EVERYTHING)
set IMG=CreateObject("sfcmini.oyagame")
call IMG.LoadLibrary("SDL_image.dll","IMG_")
set Mix=CreateObject("sfcmini.oyagame")
call Mix.LoadLibrary("SDL_mixer.dll","Mix_")

まず、ライセンスはGPL。これは、CでできたオリジナルのaliensがGPLであることによる。

oyagame 0.0.3.2α [プログラミング]

2008年5月15日

微調整をかねて、SDLのゲームをoyagameに移植。選んだのは、aliensという非常にシンプルなゲーム。ソースコードの大きさが手ごろだったのでこれを選び、VBScriptに移植した。下の画像は、oyagame/VBScriptでの実行画面。

aliens
<<前の記事   後の記事>>