HTABOXコアat TECH
HTABOXコア - 暇つぶし2ch100:デフォルトの名無しさん
10/03/20 11:10:47
ホームページのリニュアールおめでとうございます。興味深く読ませていただき
ました。昨今、書店ではプログラムに関する書籍も減り、為になる書籍を手にす
ることが少なくなりました。hidebouさんのホ-ムページは、とても参考になりました。


101:hidebou
10/03/20 11:32:20
>>100
ありがとうございます。
VMLで思い出したのですが現状ではエンコードすると<html>タグをHTABOXコア
で生成するためVML無効になってますね。
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="URLリンク(www.w3.org)">
は決まり文句みたいなので出来るだけ早く対応したいと思います。

102:hidebou
10/03/20 21:33:33
こんな小さなモジュールでもリリースした時は、私のPCの上だけで幻を見ていて
「動かないよ!」「エラー後にPCが不調だよ!」「こんなん使えないよ!」の
嵐になるんじゃないかとうなされていたのですが、暖かく見守っていただいて
ありがとうございます。

前職では若くしてお亡くなりになる方を多く見たものですから、この年まで生
きることができ、しかも私の書いたものに興味を持っていただける幸運に感謝
しております。

103:hidebou
10/03/21 11:56:14
VML使用のHTMLエンコードに対応しました。バージョン1.30を呼称します。
URLリンク(kuroda.bglb.jp)
サーバーが返すエンコードの仕様もやや変更されましたので
バージョン1.20以前のエンコーダーはサポート外となります。

104:hidebou
10/03/21 12:14:23
VMLはIEの独自規格のグラフィック描画規格ですが、HTML Applicationの場合
IE以外のエンジンで動かすことは無いわけですので積極的に使用すべきです。
FrontPageやMSWORDでHTMLをデザインすればワードアートやオートシェイプを
画像ファイル無しに使用することができます。

105:hidebou
10/03/21 16:39:42
ん~ん。せっかくFrontPageでワードアートのあるページを作成してもMSE7が
余計な変換を自動的に行うものですから痛し痒しのジレンマに陥りますね。
FronPage内のMSE7ならそれは起こらないのですが、今度はActiveXできない。
逆にMSE7でベースを作成し、最後の装飾としてワードアートを追加するのは
ありかもしれません。

106:hidebou
10/03/22 09:53:55
バージョン1.20ではHTMLタグのinnerHTMLだけをエンコードしていたのですが、
1.30ではソースコード全体をエンコードし<html encode='true'></html>の中
に保存しています。したがってVML等HTMLタグのアトリビュートが必要な場合
でも破綻しないことになります。また、HTMLタグの外に何かが書いてあった
場合もそのまま反映されます。

107:hidebou
10/03/22 11:29:55
いよいよ兵糧が底をついたので、しばらくビジネスに専念します。
「救急オフラインユーティリティー」はあまりにベタな名称なので
「Medical information analysis system for ambulances」の頭文字をとって
MIASAサービスと名づけました。HTABOXシステムはクライアントCPUで動く
オンラインサービスを実現できますので20K程のGETにレスポンスするだけで
250Kを超えるスクリプトを認証付きでコントロールできるはずです。

URLリンク(kuroda.bglb.jp)


108:デフォルトの名無しさん
10/03/22 12:26:35
疑問なのですが、どうして html タグをエンコード時に残しているのでしょうか。
そもそも、なぜテキストベースでバイナリデータではないのでしょうか。

109:hidebou
10/03/22 17:12:31
>>108
「html タグをエンコード時に残している」のは<html xmlns:v="....をそのま
ま再現する必要からです。
「バイナリデータではない」のはHTTP経由で破綻しないこと、HTML中のコメン
トとしても破綻しないが要求されるからです。

110:hidebou
10/03/22 17:18:03
大変素晴らしい質問に、不自由な日本語でお答えしてすいません。
回答が的を得ていない場合は気兼ねなく質問してください。

111:hidebou
10/03/23 10:27:44
結局VMLがらみで私のとった選択は
MSWORDにVMLを置きPNG代替オプションオンでフィルター後HTMLを出力し、
生成された画像フォルダからPNGをコピーしMSE7で<IMG>参照するという
先祖がえりした手法になりました。静的なVMLはこれが一番確実ですね。

112:hidebou
10/03/23 23:35:19
HTABOXシステムは非力なネットワーク環境、非力なサーバーを有効活用しよう
という思想の元に開発したのですが、>>38で説明したようにHTABOXコアだけで
も自宅サーバーでビジネスができます。

私なりの小規模サーバーに対する考え方を説明します。参考になる部分もある
かも知れません。

113:hidebou
10/03/23 23:39:26
前職では通信関係つまり119番通報を受ける部署にいたこともあるのですが、
絶対に中断が許されない業務の場合「現有」「予備」という二重体制をしき
ます。この場合「予備」は非常用ですのでやや能力が劣ってもかまいません。

114:hidebou
10/03/23 23:46:59
自宅でサーバーを運用する場合もビジネスであるなら必ず「現有」「予備」
の体制をしくべきです。私の場合はNECが投売りした14kのサーバーを迷わず
2台購入しました。若干のオプションを加えても50kにおつりがありました。
現在は実験機と本番機という扱いですが、将来は両者を定期的に同期し、
障害がなくとも切り替えて、有事に備えることになります。


115:hidebou
10/03/23 23:54:25
回線も二つ契約しています。ひとつは家庭用でひとつは業務用ですが、ルータ
はNTT純正のものとし、プロバイダ、回線、ルータに障害が発生した場合は
単純につなぎ変えて80番を開ければ対応できるようにしています。こういった
柔軟な対応が可能なのはダイナミックDNSを選択しているからです。

116:hidebou
10/03/24 00:07:47
サーバーでネットワークサービスを提供する場合、障害が発生した場合の
シュミレーションは大変重要ですし、復旧にかかる時間を短縮する最も単
純で確実な手法が「安いのもを2つ用意する」ことだと考えています。

117:hidebou
10/03/24 08:55:40
蛇足になりますが、私は古い人間なので枯れたソフトしか使いません。
具体的には非.NETであることをガイドラインとしています。
オークションでWindows2000ServerやSQL2000Serverがあったら是非確保して
情報が存在するうちにその取り扱いを研究することをお勧めします。

118:hidebou
10/03/24 22:28:39
ついでですから、私がなぜサーバーサイドからの動的なプログラムの配布にこ
だわるのかについてお話します。テーマは「実行権は誰のものか?」です。

従来の静的に配布されたなアプリケーションの認証は、認証前と認証後のバイ
ナリを比較検討されてしまえば、必ずクラックされる運命にあります。しかも
WWWの普及によって、たった一人のクラッカーがそれを発見すれば、瞬く間に
その手法は周知の事実となってしまいます。

119:hidebou
10/03/24 22:41:02
私が思うに、これを解決する方法は「サーバーのレスポンスがなければ完全な
実行体とならないプログラムを配布すること」だと考えます。
今までもソフトウエアの多くは「販売」ではなく「ライセンスの供与」だった
わけですが、実際にその契約形態は絵に書いた餅でライセンスを供与した側が
「今日から使っちゃだめ!」と言ったところで意味を成さなかったわけです。

120:hidebou
10/03/24 22:53:53
「実行を許可」する権利を製作者が保持できなければ、本当の意味でのライセ
ンス契約は成立しませんから、今後のソフトウエア配布は総てHTABOXコアのよ
うなものになって行くと考えます。使う側からしてみれば息苦しく感じるかも
知れませんが、結局、いくばくかの収益が上がらなければソフトウエアは生ま
れませんし、しつこいようですが、それを目指す「人」も育ちません。

121:hidebou
10/03/25 01:54:55
やがてコンピューターにキーボードが付いていたという事が昔話になるでしょ
う。そのこと自体は必然でしょうが、そのプログラミング環境規格は単に企業
の利害で決定されてしまうでしょう。中間言語やスクリプトでどんなに優れた
アプリケーションを書いても、直ぐにそのエッセンスを横取りされるでしょう。
私がどんなにあがいてもそんな未来がそこまで来ています。




122:hidebou
10/03/25 22:05:52
スクリプトでアプリケーションを書くときに最も重要な情報はCOMのタイプラ
イブラリ情報です。通常はMSE7のオブジェクトブラウザでひとつの定数とか
関数を眺めるしかないわけですが、複数のオブジェクトが絡み合う場合、全体
像が見えないと混乱します。私は自分でタイプライブラリ解析ツールを書いて
結果をソースに貼り付けてスクリプトを書きます。scrrun.dllのデータです。
URLリンク(www5a.biglobe.ne.jp)

123:hidebou
10/03/25 22:20:56
Scripting.txtを見てもらえば解りますが、IDispatchインターフェースの継承
クラスには、GetTypeInfo(UINT as itinfo, UI4 as lcid, VOID as pptinfo) return VOID
が存在します。スクリプトからこれを呼び出すことはできませんが、C++なら
ITypeInfoポインターからこの情報を引き出すことができます。

124:hidebou
10/03/25 22:36:58
私はこの情報ファイル無しにスクリプトを書けません。これが無いと誰かのス
クリプトを丸写ししてなんとか動くけど、その理由はさっぱり解らないという
状態になると思います。今書いているものが一段落したらタイプライブラリ解
析サービスも開始しようと考えています。
msxml3.dllです。眺めているとプログラムのアイディアが浮かんでくるかも?

URLリンク(www5a.biglobe.ne.jp)

125:hidebou
10/03/26 06:34:31
この2つのタイプライブラリはほとんど総てのアプリケーションに必須な存在
だと思います。特にXMLは劇的にスクリプトを設計しやすくします。

単純な例として自分のPCの全ファイル情報を一旦取得し、あるアプリケーショ
ンがインストールされた後と比較するプログラムを書くとしましょう。

126:hidebou
10/03/26 06:42:05
通常は情報を構造体に保持して再帰的に検索したりするわけですが、作成途中
で、構造体が正しく情報を保持しているのかを確認したくなります。

この時設計の段階から構造体ではなくXMLDOMにデータを保存すれば、saveする
だけで全情報を確認できますし、データの永続化にもなります。また、特定の
条件のファイルを検索する場合もXPathを指定した柔軟な条件設定ができます。

127:hidebou
10/03/26 06:55:12
この辺の考え方やテクニックをこれからHTML Applicationを書き始める人向け
に解説して公開することは重要だろうと考えています。正直そういった解説が
なかったので、HTML Applicationは書きやすいはずなのに、情報が無くて使え
ない手法。悪い言い方をすればアンダーグラウンドな手法と思われているのだ
と思います。



128: ◆grDYeooZwg
10/03/26 08:49:59
一応、dojoで3D描画とかグラフを描画できるライブラリとかあるけど・・・。
3D
URLリンク(svn.dojotoolkit.org)
ドローソフト
URLリンク(svn.dojotoolkit.org)
グラフ
URLリンク(svn.dojotoolkit.org)

Flashを使わないのがミソ。たしか、VMLやShilverLightを使っていたと思った。(FFではSVG)
URLリンク(svn.dojotoolkit.org)
アニメーションもできるぞ。

129:hidebou
10/03/27 04:15:39
>>128
貴重な情報をありがとうございました。参考にさせていただきます。
それぞれの分野で突き詰めた研究をしている方もいるものだと改めて感心しま
した。いつか子供たちがプログラミングに興味を持つきっかけとなるような簡
単なグラフィック命令系を追加できればと夢見ております。

130:hidebou
10/03/27 04:28:03
小学校の図書室にプログラミング入門みたいな本があったのですが、子供たち
が数値演算や文字列置き換えなんかに興味を示すはずがありませんから、グラ
フィック系の単純なプログラムを解説していました。しかしそれは既に絶滅した
N88-BASICでのプログラミングだったのです。

131:hidebou
10/03/27 04:34:03
私はその事実を知っていろいろな事を考えさせられました。
教員に開発言語の推移を理解する能力があるのか?必要なのか?
プログラミングという概念を理解するだけならその本は有益なのか?
しかし、どう考えても実践不可能なサンプルを目を輝かせた子供たちが見るか
と思うと、胸が痛みました。IEがあるかぎり有効な、単純なグラフィック命令
を作って子供たちに提供したいという想いはそんな動機なのです。

132:hidebou
10/03/27 15:55:43
私は辛辣な言葉で小学校におけるコンピューター教育の現状を批判する文字列
を書いて、投稿せず削除しました。理由は投稿しても意味が無いからです。

いつか子供たちが自分で作った落ちゲーやシューティングを友達とワイワイ
言いながら書き換えている姿を見たいと思いますし、それを可能にする環境
作りも私の使命だと考えています。


133:デフォルトの名無しさん
10/03/28 16:58:56
初心者向け新言語 Small Basic スレ
スレリンク(tech板)

これはまだ日本語版が無いしhidebou氏がお嫌いらしい.netベースだから難しいね

134:hidebou
10/03/28 18:03:02
>>133
貴重な情報をありがとうございました。
いろんなアプローチがあることは大変いいことだと思います。
HTABOXコアは初心者がとっつきやすくという事と、玄人が使えるということを
両立させたいという方向性で考えています。これは難しいことなんですけれど
小窓からWIN32APIやCOMの仕組みが見える状態がいいのかなぁっと思います。


135:デフォルトの名無しさん
10/03/28 19:25:42
昔はよかった…
URLリンク(kmaebashi.com)

いっその事この人みたいに新しい言語を作っちゃうのも面白いかも

136:hidebou
10/03/28 21:07:17
>>135
とても興味深いサイトですね。
「言語から」という発想は魅力的ですが、最後はC++やってもらいたいなぁっと
いうのが私のスタンスになるでしょうか。HTABOXコアの特色はWEBプログラミン
グとローカルなプログラミングを融合させようという試みでもあります。
HTMLとJavaScriptを習得すればWEBページも書けますよね。最もずるい方法が
これじゃないかなぁっと思うんです。

137:hidebou
10/03/29 09:35:45
HTML Applicationは「ずるい」よりも「反則技」という表現が適当かも知れ
ません。初期XPの「アプリケーションの追加と削除」はこれで書かれていた
ほどOS機能の一部だったわけですが、書きやすく強力なものですから悪用さ
れて今日に至っているわけです。

138:hidebou
10/03/29 09:49:24
HTABOXコアはEXEの起動を基点としますが、「書きやすく強力」が再び「悪用」
につながる可能性が無いとは言い切れません。その場合Windows環境全体に及
ぼす被害は甚大なものになるだろうと予測されます。その意味からエンコード
動作は私のサーバーで制御できる状態としていますし、今後はアカウント登録
したユーザーのみが利用できるサービスとなる予定です。

139:hidebou
10/03/29 14:38:21
また話題が変わってしまいますが、多くの書籍でC++を紹介する場合iostream
を使ったプログラミングを行うわけですが、あれは入門者に混乱をもたらすだ
けで、むしろ入門者を蹴落とすトラップに思えてしまいます。

C++は演算子を再定義して自分が使いやすい言語を作れる言語と表現すること
ができると思います。iostreamの構造は確かに対称的で美しいのですが、私は
必要だと思った事はありません。誰かが作った一つの例とて眺めるだけです。

140:hidebou
10/03/29 14:49:25
オブジェクト指向の解説に至っては殆どの書籍が間違っています。入門者が
抽象クラスを最初から設計できるはずがありません。まず「猫」というクラス
を書き、次に「犬」というクラスを書きます。そこで同じ事を二度書いている
部分に気づくはずです。つまり複数の具象クラスを書いて、そのメンテナンス
が容易ではないことを理解できれば、共通点である「哺乳類」クラスの必要性
を感じるはずです。

141:hidebou
10/03/29 15:24:48
抽象化とは単に同じ事を何度も書かない工夫と捕らえて差し支えないと思い
ます。「哺乳類」クラスがあれば新たな「虎」クラスは最小限のコーディング
で済みますし、すべての具象クラスに新たなメソッドを追加する場合でも基底
クラスが知りえる情報で処理可能ならば「哺乳類」クラスに追加するだけで
済むからです。


142:hidebou
10/03/29 15:34:12
今は貧乏暇無しで、そんな余裕はないのですが、仮称「逆説C/C++解説」みた
いなサイトを書いてみたいと思っています。ちょっとした言い回しの違いで
本来労力やミスを軽減するために存在するC++の規格が難解で使いにくいもの
と誤解されているケースがあるように思うからです。

143:hidebou
10/03/29 19:53:41
どうも読み返すと意味が変なこと書いちゃってますね。
140:は「オブジェクト指向の解説」->「クラス継承の解説」です。
お詫びして訂正いたします。

144:hidebou
10/03/30 09:24:55
話のついでですから「オブジェクト指向」についてなんですが、これは難しく
考える必要は全く無くて「単にコピペしやすから」と考えれば素直に受け入れ
られると思うんです。

個人のプロジェクトでクラス定義をヘッダファイルにして本体と分ける必要は
ありませんからclass hoge{};の中に全部を書けば貼り付けることが容易です。

145:hidebou
10/03/30 09:47:04
JScriptの場合、例えばファイル入出力オブジェクトを作れば、こまごまとし
た関数を選んで貼り付けるよりもオブジェクトをコピペしてReadとかWriteな
んていう直感的な名前のメソッドを呼んだ方が可読性が向上しますし、
オブジェクトのバグが発覚して修正を行った場合も、それを使用する他のプロ
ジェクトへ貼り付け易いわけです。

146:hidebou
10/03/30 10:05:10
プログラマーは「どれだけ横着ができるか」という事に貪欲でなければなら
ないと思うんです。そうでないとコーディングテクニックは向上しませんし、
結局、長大なプロジェクトになった時、自分が作ったスパゲッティーで具合
が悪くなってしまいます。(多分に自戒の意味を込めて)

147:hidebou
10/03/31 15:49:24
HTMLダイアログの表示でダイアログ自体の生成に時間がかかる場合、IEアイ
コンがそのまま表示されてしまう現象を認識しました。サンプルにあるよう
なそっけないダイアログでは発生しないようです。これはちょっと原因の
究明に時間がかかるかもしれませんが次のマイナーアップデートで対応した
いと考えています。


148:デフォルトの名無しさん
10/04/01 17:13:19
C++はさぁ、一番最初に

#include ...
#include ... // この辺は簡単に理解できる

using namespace std; // まったく理解不能

int main() // Cで関数の知識が無いと理解不能
{
 cout << "Hello World!" << endl; // いきなり行儀の悪い演算子オーバーロード、まったく理解不能。
                  // しかもまともな説明なしであっさり通り過ぎる
}


初心者は拒絶反応起こすって

149:デフォルトの名無しさん
10/04/01 17:20:24
jsから入ったからmainとかはわかる
includeも、そこにそのファイルの中身を挿入するんだろ?

でもusing namespace std;はさっぱりわからんわ。

150:デフォルトの名無しさん
10/04/02 22:26:26
JavaScriptでWindowsアプリ作成というのはNILScriptと似てるな
スレリンク(tech板)

151:hidebou
10/04/03 08:40:44
test

152:hidebou
10/04/03 08:56:34
いつもの接続プロバイダがアクセス禁止対象となっていたので面食らってし
まいました。

using namespaceは文字通り「名前空間を使いますよ」なわけですが、私は本
番ソースコードでこれを使いません。例えばstd::stringと書いた方が読みや
すいからです。名前の衝突が起こらなければそもそも名前空間を使う必要も
ないわけですが、Cで大きなプロジェクトを書くと変数や関数に直感的な名前
を付けたつもりが、既に使われていて、新たな名前を作ることが可読性を低
下させる場合は便利な規格です。


153:hidebou
10/04/03 09:18:40
>>150
私の欠点は自分が興味を持った事へはとことんダイブするんですが、他の方が
何を書いているのかを全く知らないことです。ここでこういう貴重な情報を教
えていただけると大変助かります。ありがとうございました。
NILScriptについてはこれから勉強させていただきます。

HTABOXコアのスタートはMSHTA.EXEの置き換えな訳ですが、歴代のMSHTA.EXE
はそのサイズから想像できるように「Hello World」程度のことしかしていま
せん。ならば「Hello World」プラスアルファ程度のコードでHTML Application
をより自由なものにできるという実に横着な発想なわけです。

154:hidebou
10/04/03 09:36:26
この横着には私なりの戦略がこめられていて、OSが変移しようがIEが存在すれ
ば動くことを意味します。プログラムをリリースして、それがミドルウエアで
ある場合、サポートする総てのOSを手元においてテストする必要があるわけで
すが、MSHTA.EXEの為に用意されている環境プラスアルファなら枕を高くして
眠れるだろうという安直さで書かれています。

155:hidebou
10/04/03 22:42:38
今回はbiglobe山形がアク禁になった代わりにASAHIがアク禁解除になったので
こうして書き込みできていますが、両方アウトならダンマリになってしまいま
すね。私は携帯電話という物が大嫌いですから息子にでも頼んでここに事情を
報告するしかないでしょうね。

でもこうして他人のサーバーに好き勝手なことを書いて、多くの方が目を通し
ていただけること自体には感謝しています。2chって素敵な文化だと思います。

156:hidebou
10/04/04 23:49:42
これからWindows上でプログラミングを書こうと思っていらっしゃる方向けに
私が思う最短経路を説明したいと思います。勿論、遠回りがいけない事である
とは思いません。私自身何年も遠回りをしたのでこういう意見を持つことがで
きたのは事実ですから、いろいろな手法を体験し早期にその長所、短所を見抜
く事が理想ですが、老いぼれの独り言とお許しください。

157:hidebou
10/04/05 00:02:13
アプリケーションはユーザーの操作を認識する手段を持たなければなりません。
そうでない物も存在しますが、多くの場合操作対象のファイルパスやURLや処理
におけるオプション等を実行前に指定してもらうためのユーザーインターフェ
ースが必要です。これは皆さんが見慣れているメニューやボタンです。

これは多くの開発環境で見た目通りに部品をドラッグして作成できますが、一旦
作成したデータを再利用しようとすると、使いにくい事に気づきます。最悪の
場合、自動的に生成された位置情報データがクラッシュし、最初から作り直さ
なければならない状況に陥ります。


158:hidebou
10/04/05 00:11:18
かと言って、総てのコントロールをソフトウエア的にソースで生成しようとす
ると一旦実行して見た目を確認し、数値を変化させてまた見た目を確認すると
いう作業を総てのコントロールについて行わなければならず、これも非効率的
です。
HTMLエディタでWEBページとしてユーザーインターフェースを設計すればこの
問題をスマートに解決できます。

159:hidebou
10/04/05 00:25:14
HTMLに関する知識は貴方が世界に向かって何かを発信する時に必ず必要になる
知識でもあります。なぜなら、貴方の作ったプログラムを実行する前にそれを
紹介する貴方のWEBページが評価されるからです。

HTMLに関する情報を収集する場合、情報の発信用に他のブラウザを対象とする
のかアプリケーション用にIEのみを対象とするのかの判別をすることは重要で
す。officeが完全インストールしてあれば\1041\HTMLREF.CHMが存在しますから
ディスクトップにショートカットを作成して常に参照できるようにすべきです。

160:hidebou
10/04/05 00:36:42
アプリケーションの動作を記述するのは多くの場合スクリプトで足ります。
「scd56jp.exe」で検索しWindows Script V5.6 ドキュメントを入手してく
ださい。これも即座に参照できるようディスクトップにショートカットを
作成すべきです。

スクリプトに関する情報を収集する場合、HTTP経由の制約されたセキュリ
ティー環境なのか、HTAやHTABOXコアのように自由にファイル入出力が許
されている環境なのかを認識することは重要です。

161:hidebou
10/04/05 00:52:28
スクリプトはWindowsに存在するCOMコンポーネントを呼び出す事によって多く
の複雑な処理を簡潔な記述で行う事ができます。ファイル入出力、XML、HTTP
データベース、ADSI、メール送受信....etc この時、是非COMのタイプライブラ
リを俯瞰してください。その情報を提供する努力を私も行います。

162:hidebou
10/04/05 01:06:05
最後に既存のCOMコンポーネントでは実現できない機能を必要とした場合、
オリジナルなCOMDLLをC++で作成してください。HTABOXコアの場合はレジス
トリに登録する必要のないプライベートコンポーネントのDLLでも機能します。

C++のソースコードを不安なく書けるようになるには確かに時間が必要かも
知れませんが、速度や柔軟性の面において最良のパフォーマンスを発揮する
ことができます。既存のCOMでは逆に考えれば「こういう機能が必要」と予測
されている領域から出ることができませんが、WIN32APIを探検すれば誰も
見たことの無いマジックを披露することもできるでしょう。

163:hidebou
10/04/05 01:39:09
最後に今後はアプリケーションをリリースする場合、サーバーをコントロール
するテクニックが問われる時代となります。従来は一旦リリースしてしまえば
駟馬も追う能わずで製作者側が不利なものでも取り消しは効きませんでしたが
サーバーに紐を付けた状態でリリースすれば、リアルタイムでコントロール可
能です。

164:hidebou
10/04/06 09:14:06
毎度の事ですが読み返すと不自由な日本語ですいません。
私ごとですが、スランプに陥っています。ただただ休みたいというのが本心で
すが、それでは干上がってしまいますのでエンコード後のデバッグという辛い
作業をしなければなりません。何か私が考える以上にエンコード後には制約が
存在するようです。解りしだいご報告します。




165:hidebou
10/04/06 11:10:13
まず、エンコード後にdocument.charsetがunicodeになってしまう問題の解決
策ですが、非エンコードスクリプトブロックで明示的にshift_jisを指定して
ください。

<script language="javascript" onreadystatechange="">
document.charset = "shift_jis";
</script>

166:hidebou
10/04/06 11:19:03
この問題を考えながら気づいたんですが、document.charsetはなぜか公式解説
であるHTMLREF.CHMには存在しませんね。この場合IE7のタイプライブラリを
確認することになりました。ちょとサイズ大きいのですがIE7のタイプライブ
ラリを置きます。

URLリンク(www5a.biglobe.ne.jp)

167:hidebou
10/04/06 14:03:12
このタイプライブラリにおける
「MSHTML.HTMLDocument」がdocumentのディスパッチです。ここに
PROPERTYPUT HTMLDocument.charset return BSTR
PROPERTYGET HTMLDocument.charset return BSTR
が存在するので読み書き可能な文字列プロパティーとしてcharsetが存在する
ことがわかります。 




168:hidebou
10/04/06 22:22:41
エンコードスクリプトのデコード完了をソースでどう認識するかについて考
えました。onreadystatechangeで非同期にデコードしていますので内部から
イベントを発生させるには荷が重いので、デコード完了の証としてonreadystatechange
に空文字がセットされる規則としたいと思います。結果的に以下のソースで
デコードの完了を認識できる事になります。
<script language=javascript onreadystatechange="">
document.charset = "shift_jis";
window.onload = function()
{
//いずれかのスクリプトタグのonreadystatechangeにSYSTEM文字列が存在すれば0.5秒後に再検定
for(var c = 0; c < document.scripts.length; c++)
{
if(new String(document.scripts.item(c).onreadystatechange).indexOf("SYSTEM") != -1)
{
setTimeout("window.onload()", 500);
return;
}
}
alert("ok");
}
</script>

169:hidebou
10/04/06 22:31:53
現バージョンではデコード前にonreadystatechange=""を実施していますので
デコード後に実施するように変更します。上記ソースのalert("ok");の部分を
エンコードスクリプトブロック中の任意関数呼び出しに置き換える事ができる
わけです。これによりユーザーの操作を待たずともグローバルに参照するオブ
ジェクトを無警告でActiveXObject生成することができます。

170:hidebou
10/04/07 16:17:14
現状のエンコード規則は生成されたオブジェクトのvtが9の場合関数呼び出し
以外のInvokeを禁止しているのですが、これだと自由度がなくてコーディング
しにくいですね。typeofでfunctionが返された場合のみ厳格にして全体に緩い
規則に変更しようと思います。

ところでVBScriptはmainという関数があってもalert(main)とできませんから
もともとソース見えにくいという認識でよろしいのでしょうか?

171:デフォルトの名無しさん
10/04/07 17:04:17
>>160
WSHの最新バージョンは5.8なのにドキュメントが更新されてないって変だよなぁ

172:hidebou
10/04/07 19:19:26
>>171
まったく個人的な推測ですが強力すぎるからWSHを使って欲しくないと考えて
いるんだと思います。もっとおとなしい方法を使ってほしいんでしょうね。


173:hidebou
10/04/08 10:51:21
ですからcscript.exe、wscript.exe、mshta.exeがWindowsに付属しなくなる日
が来てもおかしくないと考えています。HTABOXコアはその日に備えた対策という
意味もこめられています。

174:hidebou
10/04/08 16:15:29
隠蔽コード関数中にwindow.showModalDialogという表現をするとエラーとなり
windowを省略したshowModalDialogという表現だとエラーとなりません。
美しくない仕様ですが、今のところ許容していただくしか無いようです。

175:hidebou
10/04/09 06:30:18
ダイアログのスクリプトをエンコードした場合dialogArgumentsの扱いにミス
がありました。再構築時に読み取り専用であるdialogArgumentsを退避させて
別名参照させる時に同名大文字変数としていましたが、この局面では大小の
文字は区別されていないので読み取り専用への書き込みと判断されて致命的
なエラーで停止します。ちゃんと別名にすることで解決できたようです。

176:hidebou
10/04/09 06:46:39
ダイアログに関してもうひとつ注意点ですが、メインウインドウが非アクティブ
になった原因がHTMLダイアログの表示であった場合HWNDを捕捉して制御すると
いうアルゴリズムですから、ダイアログ中のActiveXで警告ダイアログが表示さ
れた場合は非アクティブになった原因が警告ダイアログとなるので制御しません。
現時点でこれは仕様ということにします。


177:hidebou
10/04/09 22:33:45
174:の問題はIDispatchExのまま制御することで解決できそうです。
関数をIDispatchExのまま制御すればオブジェクト内の関数も同じ扱いで制御
できるので、従来オブジェクトの参照や列挙まで制限していたものを緩め、
関数コードのみを保護できそうです。

178:hidebou
10/04/10 10:03:14
隠蔽スクリプトブロックは隠蔽という目的以外にもActiveX警告ダイアログ
を表示させない目的でも使えます。例えばエンコードスクリプトグローバル
var FSO = new ActiveXObject("Scripting.FileSystemObject");
が評価されても警告ダイアログは表示されず、初期化された変数FSOへの参照
はあらゆるスコープから有効です。

ただし、button等のHTMLエレメントonclickで直接代入を行う変数は遅延出現
する前に解決されるので非エンコードブロックで宣言しなければなりません。
関数呼び出しの場合こういった配慮は必要ありません。

179:hidebou
10/04/10 13:25:38
VBScriptはJavaやC++と同時に眺めるとめまいがするので一切書かない人だっ
たのですが、改めて言語仕様を眺めてみるとなかなか興味深いですね。
特にClassのTerminateイベントは魅力的です。JScriptではデストラクタが書
けないのでこれは羨ましい。VBScriptにはソースを暴露するtoString()も無い
わけですから私自身VBScriptを再評価すべきかもと思っています。

180:デフォルトの名無しさん
10/04/10 17:27:56
VBScriptのクラスはプライベートメンバーが使えるのもいいよね
継承をサポートしてないのが糞だけど元になったVBにも無いから仕方ない
(VB.NETなら継承使える)

JScriptは
delete Function.prototype.toString;
を最初に入れとけばソース表示されないよ

181:hidebou
10/04/10 17:45:11
>>180
「継承できない」なるほど気づきませんでした。
delete Function.prototype.toString;も大変賢い方法だと思います。
別インスタンスからtoStringを復元されないかを実験したいと思います。


182:hidebou
10/04/10 18:14:27
delete Function.prototype.toStringは宣言したHTML中では有効ですが攻撃者
がダイアログを追加し、有効なtoStringを追加するとソースを見ることができ
るようです。実験に使用した用本体側HTMLとダイアログ側HTMLを書き込みます。

183:hidebou
10/04/10 18:15:12
<html>
<head>
<meta name="vs_targetSchema" content="HTML 4.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<title></title>
<meta NAME="GENERATOR" Content="Microsoft Visual Studio">
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=shift_jis">
</head>
<body>
<INPUT type="button" value="main" ID=Button1 onclick="main()">
<INPUT type="button" value="crack" ID=Button2 onclick="crack()">
<script language=javascript>
delete Function.prototype.toString;
function test()
{
alert("naisho");
}
function main()
{
alert(test);
}
function crack()
{
window.showModalDialog("crack.htm", test);
}
</script>
</body>
</html>


184:hidebou
10/04/10 18:16:22
<html>
<head>
<meta name="vs_targetSchema" content="HTML 4.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<title></title>
<meta NAME="GENERATOR" Content="Microsoft Visual Studio">
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=shift_jis">
</head>
<body>
<script language=javascript>
var func = dialogArguments;
func.toString = Function.prototype.toString;
alert(func);
</script>
</body>
</html>


185:デフォルトの名無しさん
10/04/10 19:49:44
それって本体側HTMLも改変しなきゃいけないんじゃ?
そんなことができるならdelete文を削除したほうが速そう

関係ないけど.htaってなんでコンテキストメニューに編集が無いの?
うっかり項目を追加するスクリプトを作っちまった
new ActiveXObject("WScript.Shell").RegWrite("HKCU\\Software\\Classes\\htafile\\shell\\edit\\command\\", "Notepad.exe %1", "REG_EXPAND_SZ");

186:hidebou
10/04/10 19:49:59
ここでのポイントはダイアログ側での
func.toString = Function.prototype.toString;
な訳ですが、これをできなくしているのがHTABOXコアの隠蔽原理です。
toStringを踏み潰した後にDISPATCH_METHOD以外は無視するよう言い聞かせて
おけばプロパティーの追加は不可能になるからです。



187:hidebou
10/04/10 19:55:39
>>185
確かに実際には「delete文を削除」は有効ですが、エンコードされた後にと
いうイメージで実験させてもらいました。ダイアログの追加は改編というよ
り単なる追加で可能だからです。

188:hidebou
10/04/10 20:03:14
>>185
HTABOXコアでは右クリックを無視していますが、右クリック動作を書いて
メニューを表示させるというアイディアは思いつきませんでした。今後の
課題としたいと思います。

189:デフォルトの名無しさん
10/04/10 20:17:42
これってプロセスをサスペンドして全メモリ領域からスクリプトっぽい文字列を検索すればソースが読めちゃったりしないの?

190:デフォルトの名無しさん
10/04/10 20:41:15
>>188
HTML5はmenu要素でコンテキストメニューを作れるらしいね
いつIEで使えるようになるかは知らないけど

URLリンク(www.html5.jp)

191:hidebou
10/04/10 20:53:36
>>189
とてもいい質問だと思いますが、詳しくお答えできないという立場をご理解
ください。
>>190
HTML5ならIE9で可能となるのかも知れませんね。私の眠っているVISTAを復活
させる必要があります。

192:hidebou
10/04/11 09:54:26
エンコードスクリプトからダイアログを呼び出す場合、引数に具体的オブジェ
クトを渡すよりもdocument全体を渡した方が安全のようです。
ダイアログ側で引数オブジェクトを変数格納する場合非エンコードブロックで
var OBJ = dialogArguments.Script.OBJ;
とScriptを介した参照で変数を作成し以降は当該変数への操作とするとエラー
となりません。

193:デフォルトの名無しさん
10/04/11 17:07:19
プログラムのことはさっぱり分かりませんが、旧HTABOXを以前から見ていた者です。

スレが伸びているのを機に、HTAをゼロから覚えたいと思います。


194:hidebou
10/04/11 17:47:40
>>193
HTML ApplicationはHTMLを書くという最も重要な技術をアプリケーションに
発展できる素晴らしい手法です。楽しみながら学習してください。

何か解決できない事があったらURLリンク(kuroda.bglb.jp)の掲示板にでも書き込
んでいただければ、お力になれるかも知れません。

195:hidebou
10/04/11 18:03:22
エンコーダー以外の実践的アプリケーションを書いていなかったものですから
実際にダイアログを使ったり、ソース内にオブジェクトがあったりするケース
での煮詰めが甘かった事を痛感する日々でしたが、ここに呟いた留意点をドキ
ュメントに追加してバージョン1.40をリリースする予定です。
1.40は「実践的なエンコードルールの確立」と位置づけています。

196:hidebou
10/04/11 23:36:58
ダイアログのスクリプトグローバルに
var SYSTEM_MENUE = true;
が宣言されていた場合、最大化最小化ボタンを付加することとさせてください。
これをダイアログのスクリプトスコープから行おうとすると複数のWIN32関数
を追加しなければならず、取り扱いが煩雑になるという理由からです。



197:hidebou
10/04/11 23:40:50
タイプミスがありました。
SYSTEM_MENUE -> SYSTEM_MENU
です。いつもよく確認もせず書き込んですいません。

198:hidebou
10/04/12 16:07:31
MSE7.EXEによるタイプライブラリの確認方法とActiveXドラッグによる自動
コード生成方法についての説明を追加しました。officeをお持ちでまだ利用
したことがない方は是非ご覧になってください。

URLリンク(www5a.biglobe.ne.jp)

199:hidebou
10/04/12 16:27:37
実は今日の午前中はtdc.ocxが特定のパターンの時だけハングする現象に悩ま
されました。原因はCharSetプロパティーはデフォルトで空であり適確な設定
例えば"shift_jis"が設定されていないと不安定であるという事実でした。

MSE7.EXEでコードをドラッグ生成するとデフォルト値を確認できますので原因
の究明がスムーズだったというわけです。

200:hidebou
10/04/13 12:00:41
本日中には1.40のドキュメントを書き上げてリリースしたいと思います。
モードレスダイアログをアプリケーションウインドウのように扱えますから
よりプログラミングの自由度が増すのではないかと考えています。

しかし、毎回思うのですがプログラミングは楽しいのに説明を書くのは苦手
です。くどい説明がいらないようなプログラムを書くというのは理想ですが
なかなかそうもいきません。解りにくかったらどんどんダメダシしてください。

201:hidebou
10/04/13 15:53:02
バージョン1.40の準備が整いました。
URLリンク(kuroda.bglb.jp)
ドキュメント(取説)が長くなってきたのでメニューを追加しました。変更点
は「ダイアログの表示」「ソース隠蔽実験」「エンコード時の留意点」を
ご覧いただければ判るかと思います。また、sampleのtest4.htmにダイアログ
へのシステムメニューを追加したデモがありますので是非ご覧ください。


202:デフォルトの名無しさん
10/04/13 17:13:53
>>200
仕様をあれこれ考えてる時も楽しいけど
実装する時にはいろいろ妥協が必要なこともあったり

203:hidebou
10/04/13 17:42:05
>>202
自分のためのツールだったらとことん尖がっていてもいいんですが、リリース
して使っていただくとなるとその妥協点を見出すことの連続になりますね。
こういったツールって「独りよがり」が一番の敵だと思っています。

204:hidebou
10/04/13 19:36:12
XPのIE7環境で実験してるんですが、親のキャプションにモードレスを重ねて
ダイアログをクローズすると親のキャプションの色が抜けてしまいますね。
WM_CLOSEで親へ再描画を促す処理を加えてみたいと思います。

205:hidebou
10/04/13 20:11:29
逆ですね。ダイアログが表示されても親がアクティブなのでおかしくなるとい
う解釈が正しいようです。解決のためにすこし実験プログラムを書く必要があ
りそうです。

206:hidebou
10/04/13 20:29:11
ダイアログの加工が終わるまで一旦SW_HIDEしてSW_SHOWしていた事が原因でし
た。気づいてみれば本来アクティブなダイアログを非表示としてしまえば親が
アクティブになるという単純なミスでした。まもなくファイルを更新します。

207:hidebou
10/04/13 21:11:14
ファイルを更新しました。結果としてダイアログの構築がもたつくと若干ちら
つく事になりますが、その対策についてはまた考えたいと思います。

208:hidebou
10/04/13 22:43:31
再度ファイルを更新しました。ダイアログは構築後に表示されます。
一時的にWS_VISIBLEを剥奪するという手法が円満解決のポイントでした。

209:hidebou
10/04/14 07:14:12
ダイアログにシステムメニューを付けるということはメニューも付ける可能性
があるわけで、WS_EX_CLIENTEDGEを付加しないとメニューとクライアント領域
がのっぺりしてしまいますね。将来は自由にウインドウスタイルを設定可能に
したいとは思いますがダイアログのSYSTEM_MENUが宣言されていた場合に関し
ては自動的にWS_EX_CLIENTEDGEを有効とさせてください。

210:hidebou
10/04/14 07:38:10
ファイルを更新しました。SYSTEM_MENUが宣言されたダイアログはアプリケー
ションウインドウとほぼ同じ3Dで窪んだ外観となります。アプリケーションの
ように扱えますが、HTA用ウインドウではなくHTML Dialogですのでセキュリテ
ィーの取り扱いに若干の制約があったと記憶しています。

211:hidebou
10/04/14 09:55:02
呼び出されたダイアログでのActiveX生成時の警告ダイアログについて実験し
ていて気づいたのですが、フレーム構成でないアプリケーションはHTA扱いで
すから、そこから呼ばれたダイアログもHTA扱いなんですね。

ただしフレーム構成とした場合は子がHTMLでなければなりませんから、そこ
から呼ばれるダイアログもHTML扱いになりエンコードしないと警告が出ると
いうごく自然な展開なわけです。

212:hidebou
10/04/14 10:03:31
もしHTAが子フレームで構成されていて、子もHTA扱いとさせることができれば
さらに自由度が上がることは明白ですが、今後の課題としたいと思います。

213:デフォルトの名無しさん
10/04/14 20:03:16
application属性は無効なの?
URLリンク(msdn.microsoft.com)


214:hidebou
10/04/14 21:10:46
>>213
<HTA:APPLICATIONという書き方でエラーとはなりませんがMSHTA.EXEと同様の
機能しか提供できません。作った本人も残念なのですがHTA:APPLICATION中で
使用する機能があれば実装しますので気兼ねなく書き込んでください。


215:デフォルトの名無しさん
10/04/14 21:34:45
いや、frameタグのセキュリティ属性のほうです。

<FRAME SRC="SUBFRAME.HTML" APPLICATION=YES >

216:hidebou
10/04/14 21:43:16
>>215
すいません別の意味でしたね。恐らく
The APPLICATION attribute can be used only in HTAs.
という記述からすると同じ扱いになろうかと思いますが、初めて見る書き方
なので調べてみます。




217:hidebou
10/04/14 21:59:33
理解できました。有効ですね。子フレーム宣言を
<frame name="top" src="page1.htm" APPLICATION="yes">
でセキュリティーがHTA扱いとなるのですね。こんな便利な機能を私はまった
く知りませんでした。教えていただいてありがとうございました。



218:hidebou
10/04/15 00:49:57
極めて今更なんですが、HTA扱いだと何やっても警告出ないんですね。
実は長い間HTMLダイアログベースで同じ事をやろうと研究していた時期があっ
たものですから頭こんがらがっていました。結局一人で出来ること、気づくこ
とには限界がありますし、私は特にその容量が小さいので今回のようなご指摘
は値千金です。今後ともよろしくお願いします。

219:hidebou
10/04/15 09:31:30
HTABOXコアのダウンロードファイルを更新しました。
exeはそのままですが、ドキュメントとサンプルの誤りを訂正しました。

お礼に差し上げるものも無いのでウインドウスタイル変更についてプロトを
作成したいと思います。HTML系のウインドウはFrameとDocumentにそれぞれ
HWNDを持っていますので使いようによっては斬新なことができると思います。

220:hidebou
10/04/15 09:47:41
まずHWNDの取得ですがダイアログの場合取得しにくいので一律に
window.FRA_HWND、window.DOC_HWNDで常に参照できるものとします。
GetWindowLong、SetWindowLong、GetSystemMenu、SetWindowPos
をWIN32名前空間に出現させればスタイルの変更が可能になるはずです。

221:hidebou
10/04/15 13:14:36
ウインドウスタイルを変更するAPIを追加したサンプルを置きます。
URLリンク(www5a.biglobe.ne.jp)
機能の追加は単純作業でしたが、適当なサンプルページを作るのに手間取り
ました。サンプルではシステムメニュー上の最小化、最大化機能を制御して
います。透けてるウインドウとかをサンプルにしたかったのですが、改めて
ウインドウスタイル設定の難しさを思い知らされた格好となりました。

222:hidebou
10/04/15 13:23:00
補足ですが、当初window.FRA_HWNDとしていましたが、単にグローバル変数
FRA_HWND、DOC_HWNDとしています。
GetWindowLong、SetWindowLong、GetSystemMenu、SetWindowPos
の各引数は本物と同じです。ただしスクリプトからのプロシージャ取得設定
は危険なのでWindowLong系のGWL_WNDPROCは無視しています。

223:hidebou
10/04/15 18:29:32
ShowWindow関数を追加しその定数もサンプルスクリプトに加えました。

224:デフォルトの名無しさん
10/04/15 21:45:10
SetLayeredWindowAttributes もクレクレ

225:デフォルトの名無しさん
10/04/15 23:29:28
自分はスキルが無いから、身体に気をつけて頑張って!という感謝の言葉しか思いつかない・・・


226:hidebouの代理
10/04/16 00:02:21
ついに両回線ともアク禁になってしまいました。1週間くらいは
ROM状態でしょうか。書き込みに対するレスは
URLリンク(kuroda.bglb.jp)
に書きます。ご迷惑おかけします。hidebou

227:デフォルトの名無しさん
10/04/16 11:08:41
p2でも無理なの?

228:デフォルトの名無しさん
10/04/16 23:30:48
ブログでやればいいのに

229:デフォルトの名無しさん
10/04/17 15:06:06
書き過ぎでアク禁食らったんじゃないかな。
もうちょっと抑えて書くといいね。
待ってます。

230:デフォルトの名無しさん
10/04/17 15:21:27
過疎板だからといって、200レス/月でアク禁になるのかよw

231:hidebou
10/04/18 11:33:16
test

232:hidebou
10/04/18 11:41:07
ご迷惑おかけしました。片方の回線で書けるようになったようです。
URLリンク(www5a.biglobe.ne.jp)
のプロトタイプでは以下のAPIが使用可能です。

GetWindowLong、SetWindowLong、GetSystemMenu、SetWindowPos、ShowWindow
SetLayeredWindowAttributes、AnimateWindow

また、右クリックでのポップアップメニュー機能も追加してみました。特に
このメニューの仕様についていいアイディアがありましたら助かります。

233:hidebou
10/04/18 11:54:51
通常メニューについてもポップアップメニューについても将来は構造化した
定義をスクリプトから行えるようにする予定ですが、HTMLタグによる宣言の
場合は単純で使いやすい仕様が望ましいと考えています。

プロトでは新たにTDのinnerTextが-(マイナス記号)だった場合セパレータと
する規則を導入しましたが、これでいいのかな?と迷っています。

234:hidebou
10/04/18 21:37:08
HTABOXコアという器も改良を続けて行くでしょうが、器の中の料理の作り方
を紹介する事にも力を入れていかなければと思っています。今のところHTML
Applicationは知る人ぞ知るという情報であって、肝心のこれからプログラム
を学習しようという人へ情報をいかに広報してゆくか、導けるかが課題にな
ろうかと思います。

235:デフォルトの名無しさん
10/04/19 01:57:31
>>230
同一IPから連続で書くと、一日でアウトになるよ


236:デフォルトの名無しさん
10/04/19 20:25:13
>>235
1日じゃなくて1ヶ月だってばよ。

237:hidebou
10/04/19 22:04:25
本来なれば私のサイトで意見交換するというのが本筋なのですが、私として
も何かと目に留まりやすい2chをあてにしてしまっていることろが悪いのです。

昨日、今日とFrontPageやASPとにらめっこして気軽にご意見をいただけるシス
テム作りを行っております。書いた本人は直後にコメントを消せるルールなら
書き込みやすいかなぁーとか思っています。

238:hidebou
10/04/19 22:29:42
もっと本質的な問題を言うとSEOに優れている2chのような場では逆に失言が未
来永劫残る危険性があって発言にブレーキがかかる気がするんです。かと言っ
てメーリングリストのように閉鎖的なのは前時代的ですし、ブログやtwitter
もいいでしょうけれど話題がプログラミングだけにソースをきれいに表示でき
ることを考えると自分でそいう目的のシステムを作った方がいいかなぁっと考
えています。

239:hidebou
10/04/20 05:54:09
従来HTAやWSHは個人的に使うツールだった訳からとても趣味性の高い奥まっ
た情報の交換が主だったと思うんです。「過去ログ見てから物を言え」的
ムードが参入者にとって障壁となっているのではと。これからという人が気
兼ねなく発言できる場が絶対に必要ですし、私自身その中で気づいてゆくこ
とが多いと思っています。

240:hidebou
10/04/20 06:04:39
とりあえずFrontPageのスレッド形式掲示板を使いやすく改良してそういった
ニーズに答えられる努力をしていますが、HTABOXコアは特化されたブラウザと
して使用することも出来るわけですから、twitterのように緩い結びつきで、
コミュニティーが形成されてゆく情報交換ルールを作ることも夢ではないと
思います。

241:デフォルトの名無しさん
10/04/20 16:49:17
プログラミングをしてみない?
URLリンク(www.nicovideo.jp)

こういう動画のHTA版があると面白いかもしれんが
WSHと違ってHTMLの説明も書かなきゃいけないから大変そう

242:デフォルトの名無しさん
10/04/20 17:16:33
>>200
>プログラミングは楽しいのに説明を書くのは苦手です。


URLリンク(www.ruby-lang.org)
ソースがドキュメントだ。バグも完全に記述されている

243:hidebou
10/04/20 18:44:19
>>241
まさしく情報の範囲として実に広範なものになりますから、細部までとなると
一人がどうこうしても追いつかない情報量になろうかと思います。
それぞれの分野で興味を共有しあって助け合える仕組みが必要だと思います。

244:hidebou
10/04/20 18:49:50
自身サイトの掲示板を改良しました。
URLリンク(kuroda.bglb.jp)
せっかく訪れていただいてもお土産がないと失礼ですのでタイプライブラリス
レッドを用意しました。タイプライブラリスレッドにリクエストをいただけれ
ば可能なかぎりお答えしたいと思います。

245:デフォルトの名無しさん
10/04/20 19:56:07
OLE/COM オブジェクト ビューア
URLリンク(msdn.microsoft.com)(VS.80).aspx

これでよくない?
と思ったけど定数は表示されないのかな

246:hidebou
10/04/20 20:26:20
>>245
C++で利用するならおっしゃる方法も素敵ですし、私は#importした後に生成
される.tlhや.tliファイルを直接眺めたりもします。要はスクリプトにコメ
ントとして貼り付けて必要な部分をコピペしやすい形式のファイルとしてい
るだけです。


247:hidebou
10/04/20 20:48:55
またCOMの全体像を把握したい場合も整形されたタイプライブラリが便利です。
FileSystemObject.CreateTextFile(.......) return ITextStream ですから
今度は後方からITextStream.で検索をかけITextStreamのメソッドやプロパテ
ィーを確認するといった具合です。

248:hidebou
10/04/20 23:45:30
HTML Applicationという手法の最大のメリットは「省力化」だと思っています。
生涯のテーマとして少数のアプリケーションを維持するだけなら全部C++で書く
のが正解ですが、行きずりのテーマをささっと短時間でアプリケーションに
仕上げてしまうような状況でこそ本領を発揮するはずです。それを可能にして
いるのが他人の褌であるCOMの利用なわけですから、その構造を短時間で理解
する工夫がなければHTML Applicationのメリットが削がれてしまうと感じてい
ます。

249:hidebou
10/04/21 09:57:57
個人的には1週間で1本のアプリケーションをリリースする体制を目標にしています。
つまり年間で52本をリリースするわけです。「下手な鉄砲数打ちゃ当たる」を実践
するためにHTABOXコアを書きましたし、HTABOXコアを知らない人も短時間にどんど
んリリースしてくる不思議な人間がいることに気づいてHTABOXコアの存在に気づく
という展開になるんじゃないかと思います。

250:デフォルトの名無しさん
10/04/21 17:15:26
ゲーム作るのに joyなんたら~な API がラップされると嬉しかったり。
URLリンク(www.geocities.jp)

251:hidebou
10/04/21 17:51:32
>>250
ジョイスティック系のAPIがあることすら知りませんでした。
今後勉強して喜んでいただけるよう努力します。



252:hidebou
10/04/21 18:27:25
>>250
ちらりとMSDN見たんですが、いよいよ構造体がらみになりそうですね。
いつかは構造体をスクリプトで定義、参照できる規格を決めなければと思っ
ていましたので良いきっかけをいただいたと思います。JScriptならイメージ
が沸くのですがVBSriptのclassインスタンスがC++からIDispatchExに見える
のかというような実験を繰り返す必要がありますので、お時間をいただくこと
になります。

253:デフォルトの名無しさん
10/04/22 00:55:48
全くゼロから覚える場合、何をやったら良いか教えていただけますか?

とりあえず、教育用言語とアルゴリズムは学生時代に習いました。
HTMLはスタイルシート以外は分かります。


254:デフォルトの名無しさん
10/04/22 01:05:47
やはり最初は Hello, World からでしょう。

URLリンク(msdn.microsoft.com)

255:hidebou
10/04/22 03:16:39
>>254
HTMLでユーザーインターフェースを作ることを理解されていらっしゃるので
したら自分の興味がある機能を提供してくれるCOMを使ったスクリプトを書い
てみてはいかがでしょうか?私の知識の範疇にあれば使えそうなCOMを紹介し
て簡単な導入部を書けるかも知れません。
HTML、Script、COM、C++と広範な技術を活用できますが、最も重要なのは書い
てて得してる気分とか、楽しいとかだと思います。

256:hidebou
10/04/22 03:37:42
>>254
私の経験で恐縮ですが、HTMLは単に表示されるだけと思っていた時に、結果を
ファイルに書き出せるだけでとっても感動した記憶があります。scrrun.dllに
存在する"Scripting.FileSystemObject"はテキストファイル入出力機能を提供
してくれるCOMです。クォート内のワードで検索すれば数十万件ヒットしますの
でサンプルは沢山あるはずです。


257:hidebou
10/04/22 12:44:56
ねぼけまなこで書き込んだものですから>>254ではなく、>>253でした。
すいませんでした。

258:hidebou
10/04/22 13:12:52
>>253
スクリプトを書くときにJScriptかVBScriptかで悩むかもしれませんが、HTML
中には両方書いてそれぞれグローバルな要素を参照できますので、両方を齧っ
て自分のスタイルに合った方を使えばいいと思います。

JScriptはJavaScriptの拡張ですので、他のブラウザ用にHTMLを書くときにも
知識が生かせます。VBScriptはIE限定ですがoffice系のVBAをスクリプトへ移
植する際には僅かの書き換えで済みますから便利だと感じています。

259:hidebou
10/04/23 10:07:56
HTML Application用いてMSWORDやEXCELを操作するメリットはマクロのセキュ
リティー設定に関わりなくマクロと同等の動作を実行できることです。一見
回りくどいように思われるかも知れませんが、VBAをVBScriptでの外部呼出し
に替えることは簡単ですし慣れればJScriptへの翻訳も問題ありません。


260:hidebou
10/04/23 10:20:01
ひとつ面倒な点があるとすればMSWORDやEXCEL固有の定数をスクリプト環境で
定義しなければならない事ですが、この問題を解決する目的でタイプライブ
ラリ解析システムが生まれたと言っても過言ではありません。
//WdNewDocumentType type enum
var wdNewBlankDocument = 0;
var wdNewWebPage = 1;
var wdNewEmailMessage = 2;
var wdNewFrameset = 3;
と宣言しておけばVBAでの定数名を書き換えることなくスクリプトへ移植でき
るからです。

261:hidebou
10/04/23 10:32:37
HTABOXコアはまだVBScriptを使用したスクリプトブロックのエンコードに対
応していませんが、対応後はマクロの記録でVBAを自動生成させ、少ない労力
でスクリプトへ移植し、1本のアプリケーションとしてリリースできる事をご
理解いただけると思います。これぞ究極の他人の褌でとる相撲だと思います。

262:デフォルトの名無しさん
10/04/24 18:49:51
>>252
>VBSriptのclassインスタンスがC++からIDispatchExに見えるのか

Windows スクリプト コンポーネント
URLリンク(msdn.microsoft.com)(v=MSDN.10).aspx
これとは違うんだよね よく分からん

263:hidebou
10/04/24 19:59:18
>>262
C++側から見た場合、スクリプトから呼び出されたCOMの引数はVARIANTですが
JScriptのObjectの場合はIDispatchExポインターを保持しています。VBSript
のclassインスタンスもそうなら....という話です。

264:hidebou
10/04/24 20:09:54
もしそうならC++側で要素を列挙できますから構造体の代わりに使えます。

265:hidebou
10/04/25 01:08:36
「柔軟に扱える」の方が適切な表現かも知れません。うまくいけば必要な要
素のみを宣言した「省略構造体」を引数として渡せばC++側が要素を追加して
「完全構造体」を返すというルールが作れるかも知れません。

266:hidebou
10/04/25 22:10:59
従来スクリプトから呼ばれるCOMを作成するためにはレジストリに登録する
パブリックコンポーネントを作成しなければなりませんでした。全くのスク
ラッチでこれを書くこともできますが事実上VC++のATLがないと困難でした。
HTABOXコアはその面倒を内部で処理し単純なDLLでもスクリプトから呼び出さ
れるルールを実現しています。ATLなしでも書けるということは無料の2008で
十分だということです。

267:hidebou
10/04/25 22:21:55
HTABOXコアのサンプルで使用しているCONSOLE.DLLのC++ソースを置きます。
単にWIN32DLLの環境を作りビルドしてください。
URLリンク(www5a.biglobe.ne.jp)
スクリプトとは何か?を理解する最も有効な方法はもっと低水準な観点から
スクリプトを眺めてみる事です。

268:hidebou
10/04/27 21:45:39
最近ASPばかり眺めててHTABOXコアに手を付けられずせっかく作ったプロトも
リリースしていなくてすいません。ASPを眺めていて不思議な現象を発見した
ので話の種にさせてください。#include virtualで別WEBにあるASPを参照し
被参照側のグローバル変数を呼び出し側で<%=HOGE%>すると見えないんです。

269:hidebou
10/04/27 21:53:55
いろいろ設定を変えてもだめでIIS5.0でもIIS5.1でも同じ状態なのです。
でも、ひょんな事からその対策を発見しました。両方同じ言語な場合のみこの
現象が発生しているのです。JSとVB又はVBとJSならこの問題は発生しません。
引き換えにユーザー定義系クラスは参照できませんが、改めてVBScriptの
存在に感謝したしだいです。

270:hidebou
10/04/28 11:50:39
という訳でMSE7.EXE(Microsoft Script Editor)でVBScriptを書く機会が多く
なっているのですが、複数行を一度にコメントアウトする場合面倒だったり
します。VBA環境の場合はその機能があるのですがMSE7.EXEにはありません。
これは検索置き換えで正規表現を使えば簡単に解決できます。コメントアウト
したい範囲を選択して行頭「^」を「'」に置き換えればいいのです。


271:hidebou
10/04/28 12:10:05
正規表現という手法はとっつきにくくて、各環境で微妙な差異があったりし
ますが、使ってみると劇的に作業が楽だったり、ソースコードが簡潔になっ
たりします。特にJScriptのreplaceでは置き換え文字列生成に関数を指定で
きますので柔軟な置き換え結果を生成できます。

272:hidebou
10/04/29 01:07:48
HTABOXコアではなくHTABOXサーバーの話題なのですが、IISで独自認証システ
ムを構築する場合ISAPIフィルタDLLが必須となります。ASPは画像等のGET要
求を知り得ないからです。しかしISAPIフィルタDLLとASPはASPがIISインプロ
セスで動作していない限り交信できません。つまりISAPIフィルタDLLはASPの
セッション情報にアクセスできないというのが通説です。

273:hidebou
10/04/29 01:24:50
HTABOXサーバーのアドバンテージはそれを実現している事です。IISプロセス
とASPプロセスでそれぞれCOMをインスタンス化し、IISの保護されたプロセス
境界を突破する通信手段をCOM内に構築することでDLLとASPは連携できます。
勿論ASPは勝手気ままに消滅するかも知れませんから、DLL側のXMLインスタン
スへ動作を報告し、DLL側は必要に応じてXMLを読むというからくりです。

274:hidebou
10/04/29 01:42:49
ネットでプログラミング系の情報を見ている時に
「○○では○○したくてもできない」
というフレーズを見つけた時はチャンスだと思うんです。なぜならそれを実
現すれば確実にアドバンテージを得ることができると教えてくれているから
です。

275:hidebou
10/04/29 11:30:20
プログラミング業界の格言に「人のやっていないことはやるな」というのが
あります。これは「万人がチャレンジしてだめな手法へチャレンジするな」
という意味です。決まった納期に仕様どおりの製品を納める仕事なら当然の
ことですが、フリーランスプログラマーの場合は逆だと思います「人ができ
ないからチャレンジする」でなければ新しいものは生まれません。

276:hidebou
10/04/29 23:52:24
なんとかHTABOXサーバー側のシステムも営業稼動できる状態に漕ぎ着けたよ
うです。技術的に可能か?が判明すると興味を失って実装部を煮詰めないの
が私の欠点なのですが、霞を食って生きてはゆけないので睡眠時間の少ない
日々をすごしました。最終的に販売動作はサーバーが自動的に行い、私はコ
ンテンツの充実のみに集中できるはずです。


277:hidebou
10/04/30 00:19:56
プログラミングに限って言えばスキルとは頭の良さと無関係なものです。
要は「知っている」か「知らない」かの違いだけだと痛感しています。
私の家族に霞ではなくお米を食べさせなければならないので総てを無料閲覧
可能にはできませんが、実践的で理解しやすい情報を提供してゆく予定です。

278:hidebou
10/05/01 03:33:49
朝4時からですから24時間耐久になりましたがFrontPage Server Extensionsが
管理するDBと独自認証系DBとの良好な位置関係に結論をだすことができました。
これによって書きかけだった救急隊用医療情報分析システムをサーバーに組み
込む作業も終了し一般公開へ大きく前進できたと思います。

279:hidebou
10/05/01 03:58:45
こいつはソースで250Kくらいになる退屈な構造のプログラムなのですが、HTA
BOXコアがきちんと大きなボリュームに耐えられるのかのテストでもありました。
勿論パース中は若干もたつきますが、サーバーからの認証ダイアログに答える
必要があるので、それに気をとられてあまり気にならないという素敵な誤算も
あるようです。


280:hidebou
10/05/08 23:39:03
いまだサーバー側の独自認証システムコードから抜け出せずにいます。
FrontPageが生成するVBScriptコードを再利用するという発想がいやらしすぎ
るらしく、最後に蹴られるという展開を何度も繰り返してしまいました。
まさに「策士策に溺れる」の展開なので、初心に帰って朴訥なコードを書き
HTABOXコアのほうに手をつけれるようにしたいと思っています。

281:デフォルトの名無しさん
10/05/14 18:43:04
<script language="VBScript">
Class HelloWorld
  Sub Print
    document.write "Hello, World"
  End Sub
  Function toString
    toString = "見せられないよ☆"
  End Function
End Class
Set hello = New HelloWorld
</script>
<script language="JScript">
alert(hello instanceof Object); //=> false
alert(typeof HelloWorld); //=> "undefined"
alert(typeof hello); //=> "object"
alert(typeof hello.Print); //=> "unknwon"
alert(typeof hello.toString); //=> "unknwon"
alert(hello); //=> "[object]"
alert(hello.toString()); //=> "見せられないよ☆"
</script>

VBScriptは難しすぎ

282:281
10/05/14 18:55:11
間違えた
×unknwon → ○unknown

283:hidebou
10/05/14 21:37:14
>>281
私も同じような実験コードを何度か書きました。
Class HelloWorldが直接JScriptから参照できればもっと有機的な絡み方がで
きるんですが、あくまでもNewしたインスタンスしか見えないようでした。

JScriptにVBという名前空間を、逆にVBScriptにJSという名前空間を出現させ
異なる言語の標準関数を使えるようにしたら面白いかも?という構想を持って
います。



284:デフォルトの名無しさん
10/05/14 22:00:41
VBSは撲滅すべき

285:hidebou
10/05/14 22:08:33
>>284
私はVBS初心者なんですが、どうも一旦ばかばかしいミスのコードを実行する
と、その後正しいコードを書いてもエラーとなる気がしています。ひょっと
するとVBSはJSよりWindowsシステムに近いところで動くのかも知れません。
だとすればJSよりちょっと高速に動くという推理をしています。

286:hidebou
10/05/27 01:28:59
本番サーバーの最終調整とセットアップドキュメント作成をやっています。
ひとつの目標として、私が書いたものでないHTABOXコアプラットホームの
アプリケーションを販売できる体制作りを掲げています。そのためには認証
や登録を軽量でありながらも堅牢なものにしなければなりません。

287:hidebou
10/05/27 01:40:47
私のような年になると、未来への沸き立つ希望などは消えうせて、何かを次
の世代へ伝えられればという想いだけになります。これからこの世界を担う
方たちが希望をもって生きてゆける材料をひとつでも作っておければと、し
ょぼくれた目をこすりながらIISと格闘しております。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch