HTABOXコアat TECH
HTABOXコア - 暇つぶし2ch1:デフォルトの名無しさん
10/03/09 17:13:46
HTABOXコアに関するご要望はこちらへお願いします

2:hidebou
10/03/09 17:29:16
現在ウインドウスタイルを操作するAPIの定義を検討中です。
ご意見を伺えれば助かります。



3:デフォルトの名無しさん
10/03/09 18:11:41
exeと同じ名前のhta,htmlを読み込むって事だけど、index.htaとかを読み込む方が良いんじゃないでしょうか?
人によると思いますが、自分的に同じ名前を複数存在させるの嫌なんです・・・


4:デフォルトの名無しさん
10/03/09 18:19:28
URLリンク(kuroda.bglb.jp)

5:hidebou
10/03/09 18:46:43
start.iniみたいな定義ファイルを導入して、柔軟な起動ができるように
するというアイディアはどうでしょう?

6:某330
10/03/09 18:56:17
残念ながら状況変わらず。

あと、F5 を押すと MSHTA 同等になるざます。
(メニューとか右クリックとかはそのままですが)

7:hidebou
10/03/09 19:08:55
えぇ~!!

8:hidebou
10/03/09 19:11:52
認識引数、絶対パス結果をMessageBoxで表示するバージョンを作りますので
しばらくお待ちを。

9:hidebou
10/03/09 19:23:19
URL上のLZHを置き換えました。
3回MessaeBoxが表示されると思うのですが、その結果を教えてください。

10:hidebou
10/03/09 19:36:57
起動ファイルがないよ状態でhelpからビルド日時も確認してくださいね。

11:デフォルトの名無しさん
10/03/09 20:17:27
R:\ 直下に test.exe と test.html を置いた場合。

開始初期CommandLine
"R:\test.exe"

第一引数認識文字列


絶対パス結果文字列


ビルド情報
HTABOX
Mar 9 2010 19:16:08 リリース

12:hidebou
10/03/09 20:20:45

起動はコマンドラインでしょうか?それともファイル名を指定でしょうか?





13:hidebou
10/03/09 20:32:22
ファイル名を指定で実験したものですから、逆に通常起動で
引数を認識していませんね。明日までの宿題にさせてください。
ご迷惑をおかけします。


14:hidebou
10/03/09 21:03:30
html->htlmのタイプミスがありました。LZHを入れ替えました。明日お暇な
時で結構ですから動作をご確認ください。

15:デフォルトの名無しさん
10/03/09 21:07:07
ファイラ (あふ) から起動した場合です。
エクスプローラからダブルクリックなどで起動した場合も同様。
コマンドプロンプトから実行した場合はメッセージボックスは一度だけ。

ファイル名を指定して実行の場合は
r:\test r:\test.html

開始初期CommandLine
"r:\test.exe" r:\test.html

第一引数認識文字列
r:\test.html

絶対パス結果文字列
r:\test.html

で正常に起動しました。
引数を指定しない場合はファイラから起動した場合と同様です。

16:デフォルトの名無しさん
10/03/09 21:13:08
あー入れ違い。
だいたい正常に起動するようになりましたが、
コマンドプロンプトから引数指定の場合はうまく行きません。

17:hidebou
10/03/09 21:26:25
了解しました。さらに修正します。
お詫びに粗品として旧HTABOX256Kスペシャルバージョンを置きます。
URLリンク(kuroda.bglb.jp)


18:デフォルトの名無しさん
10/03/09 21:32:16
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

19:デフォルトの名無しさん
10/03/09 22:48:38
自分はhtmlからWIN32のGUIが呼び出しているというのに魅力を感じてて、それの機能追加を期待してる。
現状のメニューだけだとちょっとまだ使えないから何も出来ないけど、頑張って下さい。

20:hidebou
10/03/09 23:34:29
ありがとうございます。
自分が使う為に作り始めて、こつこつ成長させてきたソフトなんですが、
書いてしまうと書く側のエゴが出てしまうんですね。ここでいろんなご意見
をうかがって、プログラムなんて書いたこと無い人が書いてみようかと思う
環境を作れたらいいなと思っております。

21:hidebou
10/03/10 08:29:19
Windowスタイルなんですけど、動作途中で変更する必要はありませんよね。
だった起動時読み込みファイルという概念を導入して、
[STYLE_EX]hoge|hoge;
[STYLE]hoge|hoge;
で設定するだけというのが簡単でいいのではと、
あらゆるAPIは追加可能なんですが、
どっかの外人さんの書いたなんとかみたいに、
単にC++を遠まわしにやるだけっだら意味ないと思うのです。


22:hidebou
10/03/10 08:35:15
起動時のスタイル設定の理由はもうひとつあって、
HTABOXコアの場合APIを使えるのは起動後なんです。軽量なHTMLの場合既に
表示された後になるかも知れません。たとえ一瞬でも表示されたスタイルが
変更されるのは美しくないだろうという理由もあります。

23:hidebou
10/03/10 08:45:12
start.ini(仮称)を導入すれば、最初にその存在を確認し、宣言してあればその
HTMLを実行するとか、さまざまなオプションを付けることもできます。私は
この方向で行こうと思っているんですが、異論のある方いらっしゃいますか?

24:デフォルトの名無しさん
10/03/10 10:17:40
これ純粋にhtmlパースも独自なの?
windowsのコンポーネントに依存しないのなら他のプラットフォームでも稼働するのかな?


25:hidebou
10/03/10 10:30:23
実行ファイルの大きさから想像していただけると思いますが、独自パースは
スクリプトのみです。HTMLも独自パースが理想ですが、IEと同じ大きさの
巨大なプロジェクトとなりますので個人では支えきれないと考えています。

26:hidebou
10/03/10 10:35:13
拡張子HTML関連のバグ、コマンドライン引数関連のバグを修正しました。
URLリンク(kuroda.bglb.jp)

27:デフォルトの名無しさん
10/03/10 10:37:31
>>25
速攻の回答ありがと
そうか、他のシステムには移植できないのか。

ieコンポーネントは化け物だからしょうがないかもね(つかffとかもコンポーネントベースになればいいのに)


28:hidebou
10/03/10 11:25:33
>>27
そのIEコンポーネントを制限無く扱える手法が無いと感じたものですから
HTABOXコアが誕生したという経緯です。


29:hidebou
10/03/10 12:45:30
総務省消防庁の提供する「救急オフラインシステム」が出力するXMLから
任意な事案項目、傷病者項目をデータとして取り出したり、国表統計
月報統計を出力するサービスの準備を開始します。

HTABOXコアをこういったピンポイントなサービスを提供する手段として
捕らえていただければより深いご理解がいただけると思います。


30:hidebou
10/03/10 15:15:32
総務省が行政事務のクラウド化を推進するのは結構なことなのですが、自治体にはそれぞれのカラーがありますから、
単純にこの形式のデータを報告してくださいが行われた場合、2重にデータを作成し、突合するという本末転倒な状態
となります。かといって中央官庁が各自治体の御用聞きをおこなってシステムを設計するはずもありません。

私はこの隙間を埋めるソフトウエアサービスを提供することが自分に課せられた使命のひとつだと思っています。

31:hidebou
10/03/10 15:42:18
通常ならそんなことは個人では不可能です。
大きな力に押しつぶされるでしょう。
しかしHTABOXシステムはそれを可能にするために書かれたソフトです。

32:hidebou
10/03/10 21:50:02
皆さんもいろんな分野で活躍なさっていると思うのですが、その中で感じる矛盾
が、ソフトウエアで解決できるのであれば、どんどん開発して発表してください。
その業務のつらさを知っている人間だけがそこにフィットするソフトを書けるのです。

まだ生まれたばがりのHTABOXコアですが、そんなときの道具になれるよう努力してゆ
きますのでご指導お願いします。



33:hidebou
10/03/11 07:49:35
独白スレッドになっていますがお許しください。
「どうしてソース隠すことにこだわるのか?」についてお話します。

答えは「書いた人のアイディアがお金にならなければ人は育たない」と考える
からです。どんなに優れた発想でソフトを作っても大手企業さんがその拡張版
をすぐ出すようでは書いた人の苦労って水の泡ですよね。

もちろん、ソースを公開し共同開発して人類共通の英知とするっていうのも素
晴らしいとは思いますが、それは片手間にそんなことをしても食べていける人
の場合で、少なくとも私にそんな余裕はありません。

34:hidebou
10/03/11 08:34:59
アイディアを思いついたユーザーがネイティブコンパイラを扱える方なら何も
いらないのですが、そうじゃないユーザーのアイディアをいかに簡単に具現化
して、保護するかというテーマで考えた結果が「HTML Applicationでソース隠
蔽」だったわけです。

でも旧HTABOXではMSHTA.EXEの壁を越えられず、最終的に名前パイプ経由とい
う消極的な手法しかとれませんでした。これはデバッガでこそ見えないものの
オブジェクトの単純GETで関数コードが見えてしまいます。

MSHTA.EXEを自分で書ければその問題を解決できるのは明白でしたが当時の私
にそのスキルはありませんでした。

35:hidebou
10/03/11 08:52:42
旧HTABOXは、私にとって敗北の象徴となりました。最も目にしたくないもので
あり、この世から消し去りたい事実となったのです。

HTABOXシステムとかHTABOXコアというネーミングはHTABOXという検索で旧HTABOX
の事がヒットしないようにという単純な理由です。勿論、現状の隠蔽手法にも穴
が発見される可能性はありますが、だったらこうすればという対策を直ぐ発想で
きるとこまで研究したつもりです。

36:hidebou
10/03/11 14:34:19
誰でもプログラムを書き始めた当初はソースさえ難解なら見えたところで簡単
には流用できないだろうと思うものです。しかし、十分に経験を積むとアルゴ
リズムは無視して、結局「どのCOMまたはどのAPIを使っているのか」を見るだ
けで内容が推察できるようになります。

そいう観点から見た場合ソースが長大で難解に書かれていたとしても目くらま
しにはなりません。また、ネイティブコンパイラの場合リリース前に配布EXE
をメモ帳で眺め、要所となる手続きが推察不能であることを確認すべきです。

37:hidebou
10/03/11 14:54:36
HTABOXコアのエンコード機能で実現したいことは
「書いた人の汗が報われる」
というごく当たり前でフェアなルールを導入しましょうということです。

38:hidebou
10/03/11 19:57:59
HTABOXサーバーを使わなくてもHTABOXコアだけで今までの概念を打ち破るソ
フトの配布形態、ビジネスモデルを実現できることを説明します。

HTABOXコアでフレームアプリケーションを作成し、子フレームをURL上のもの
とします。サーバーには認証を設定せず、フルスペックなフリーソフトとして
Vectorに投稿します。サーバーのログを監視すればユーザーの利用状況が判り
ます。リリース当初はユーザーからの報告でバグフィクスが必要となりますが
サーバー上のファイルを更新するだけで即座に対応することができます。

つまり、リリースしながら手元にあるという状態を作り出すことができます。

39:hidebou
10/03/11 20:12:10
十分に広報活動が行われたと判断した場合、サーバー上の既存ファイルをスペ
ックダウンさせ、フルスペックの機能が必要であれば別のソフトをダウンロー
ドするように促します。別のソフトの内容は当初のフルスペックバージョンで
あり、子フレームURLには認証を設定します。あとはアカウントを販売するだけ
です。

従来の静的配布ではフルスペックを配布した後に制限を加えるなどということは
できませんが、HTABOXコアならあたりまえのように実現できます。Vectorで何を
基準にソフトを審査しているのかは知りませんが、少なくとも一部をURL上の子
フレームとしている私のHTABOXエンコーダーが承認されていることは事実です。

40:hidebou
10/03/11 23:32:44
寝る前に一言書かせてください。

HTABOXコアはMSHTA.EXEとは比べ物にならないくらい自由度が高い環境です。
逆な観点から言えばそれを使用する側の強い倫理観が求められます。もし、
この技術が悪用されるなら個々のHTABOXコアにシリアルを埋め込んで名前を
固定し申請がなければ使用できない状態にせざるを得ないでしょう。

私は決してそんな日は来ないと信じています。



41:hidebou
10/03/12 06:13:40
長々と書いてしまいましたが、私がHTABOXコアに興味を持っていただいた方に
是非知っていただきたい事は書かせていただきました。

今一番重要なのは、実際にこの環境を使ったサービスが成功するのか否かです
から、しばらくはHTABOXコアを使った具体的サービスプログラムの作成に重心
を置きたいと考えています。このスレッドに直ぐレスポンスできないかも知れ
ませんがお許しください。

もっと荒れるかと思ったのですが、つまらないつぶやきにお付き合いいただい
てありがとうございました。

URLリンク(kuroda.bglb.jp)

42:デフォルトの名無しさん
10/03/12 16:34:03
プログラムの事は、殆どよくわからないのですが、hidebouさんの思い、
言葉を目にし、HTABOXコアがいかに魅力的なソフトであるかが伝わって
きました。
HTABOXコアの誕生によって、多くのプログラマーの汗が報われる事を願って
やみません。hidebouさんのサービスプログラムの成功を、心から期待して
おります。


43:hidebou
10/03/12 19:46:39
>>42
もう50才になろうとする爺ですが、爺になると開き直りの境地の達します。
万人からアホ呼ばわりされたとしても、たった一人の方の心に残る何かを
残せたらそれでいいじゃないかと...

ですから少し泣かせてください。ありがとう!。


44:hidebou
10/03/13 16:38:31
今書いている「救急オフラインユーティリティー」に気が入らないのですこし
つぶやかせてください。テーマは「C++とスクリプト」になるでしょうか。

バイナリの再利用というと響きはいいですが、要は他人の褌でいかに相撲をと
るかの工夫なわけです。C++が一般的になる前は「関数」がライブラリを形成
していたわけですが、「クラス」という概念を導入し単一アドレスへの問い合
わせで他言語からもバイナリモジュールをコールできるようにしたのがCOMだと
理解しています。

45:hidebou
10/03/13 16:50:41
ですからIDispatchのようなクラスをコールする動作でプログラムが形成され
ていた場合、その実行速度はどんな言語でもほぼ同一となります。これは
Microsoft Office系のオブジェクトをC++で操作したところで早くならないこ
とから理解できると思います。こういう動作は主にスクリプトで書くべきです。

46:hidebou
10/03/13 17:08:32
ただし、APIコールがループで繰り返されるようなケースでは個々のAPIがCOM
でラップされていた場合「そういう名前あります?」「ああIDはこれですよ」
「じゃそのIDでInvokeしますね」が繰り返されるわけですから、膨大な時間
リソースを消費します。それはC++で書くべきでしょうとなるわけです。


47:hidebou
10/03/13 17:33:09
話は変わりますが、スクリプトよりC++の方がバグの発生率は少なくなります。
スクリプトではVARIANTのvtしか型を限定する要素がありませんが、C++では明
確な型宣言が必要ですので、勘違いがおこりにくいのです。久しぶりに目にす
るソースファイルにたいしたコメントが無くても即座に修正作業に入れます。

C++でWIN32アプリを書くと痛感するのですがGUIの形成は地獄絵図になります。
「メインウインドウにボタンを一個置いてクリックしたらダイアログを表示し
ましょう」というプログラムを書きながら「onclick="hoge()"」で済む世界が
天上の世界に思えるのです。

48:hidebou
10/03/13 17:41:03
一番楽なプログラミング環境はC++です。だけどGUI形成はDHTMLでささっと
済ませてしまいたい。という発想でHTABOXコアを眺めていただければ、狂気
乱舞する方がいらっしゃると思うんですが、だめですかね。

49:hidebou
10/03/14 03:52:46
寝てる時にふと思ったんですが、C++向けには
Microsoft Script Control
msscript.ocx:{0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}
の機能にプラスしてHTML解釈によりGUIが形成できるCOMDLLを提供すると
喜んでもらえるんでしょうか?
HTABOXコアがやってる事の順番変えるだけで供給できるんですが。


50:hidebou
10/03/14 04:16:11
Microsoft純正プログラム眺めていると、GUIはリソースのHTMLでささっと済ま
せている場合が見受けられますよね。要はそれと同じ事をWIN32環境でできる
ようにすれば.....ということはCOMDLLよりスタティックリンクできるライブ
ラリの方がいいかも知れませんね。
今のところ余裕が無いのですぐ設計するわけにはいきませんが。

51:hidebou
10/03/14 10:52:22
話題が変わりますが、私が何よりも重大な問題だと考えていることについてお
話します。「プログラミング新規参入者の減少」についてです。

私の住んでいる田舎の場合、どこの書店でも売れない本は置きません。ここ数
年で開発言語系の書籍は激減しました。プログラミングしたいという人はWWW
経由で調べてるからという理由ならいいでしょうが、現実は違うと思います。

52:hidebou
10/03/14 11:05:42
私はシャープのポケコンでプログラミングに興味を持って現在に至るのですが
当時はそこでちょっとしたゲームとかを書くと、それは誰も見たことがない最
先端テクノロジーですので「凄い!」になるわけです。その後業務用OSである
PTOSでBASICをいじり、MS-DOS、Windows、とプラットフォームが変化してゆく
歴史を目撃しているわけですが、今までいかに不自由だったかという理由を踏
まえると納得できる規格の変化も、いきなり新たな規格を突きつけられた人間
には理解できないという現象が生じています。

53:hidebou
10/03/14 11:17:23
Windows以前、ひとつのプログラムはコンピューターを占有しました。つまり
他のプログラムは今動いているプログラムを停止しない限り起動できませんで
した。その代わり、ディスプレイもキーボードも自分が好きなようにコントロ
ールできますから、今のようにWindowsから肩を叩かれて動く配慮は必要なか
ったのです。プログラム特に業務で使うものは現場で作るものという風潮が
まだ残っていたと思います。事実私のような人間でもちょっと本を読めば実用
的なプログラムが書けたのです。

54:hidebou
10/03/14 11:26:25
同時に複数のプログラムを動かして、アクティブなタスクを切り替えたい。と
いう欲求はごく自然な流れです。今までキーボードは直接のハードウェア割り
込みだったものが、そうは行かなくなります。CPUは結局ひとつのストーリー
しか理解しませんから、常駐する親プログラムがキーボードを監視して、どの
プログラム向けに入力されたものかを子プログラムへ通知する必要が生じるの
です。これがWindowsメッセージです。

55:hidebou
10/03/14 11:41:45
CとC++についても全く同じような事が言えます。Cは言語というよりもアセン
ブラをもっと使いやすくしましょうという規格として存在しました。重要なの
はこの時主導権を持っていたのはANSIという営利とは関係の無い協会であった
ことです。規格が定まればバイナリのライブラリは共有できる資源となります
ので、結果的にプログラマーはハードウェアを意識せず標準関数を使いプログ
ラムが書けるのです。

56:hidebou
10/03/14 11:51:47
Cの誕生は劇的に生産効率を向上させましたが、大規模なプロジェクトの場合
名前の衝突が頻繁に発生します。Cでの名前は最終的にただのアドレスに変換
されるマークなのですが、リンク中に名前の衝突が起これば致命的な破綻と
なります。複数の人間がひとつのプロジェクトに関わる場合、自分が使える
名前の範囲をペーパーで確認するといった作業が必要になるわけです。

C++のクラス、名前空間はそれを解決する素晴らしい英知なわけですが、その
苦労を知っていない、若しくは想像できない人間にとって、これほど煩わしい
ものは無いわけです。

57:hidebou
10/03/14 12:03:08
javaの誕生は新たなステージの幕開けでした。仮想マシンという規格層を設け
そこに向かって動的なバイナリモジュール呼び出しをしようとするものです。
実行時の名前解決ですので、ソースコードに名前情報が含まれ、ソースが暴か
れるという欠点はあるのですが、人間も賢くなったものだなぁーと思いました。
Java裁判がおこるまでは...

58:hidebou
10/03/14 12:20:22
結局どんな理屈をこねようが、企業間の抗争の根底にあるのはマネーです。
Microsoft社のJava仮想マシンはSUNのそれを完全に凌駕していました。当然
Windowsには同社しか知りえない情報があるわけですから当然です。
悲劇は起こりました。正統な英知の集積であるJ++は息の根を絶たれることに
なってしまいました。高速なJavaという夢はこれで終わったのです。

59:hidebou
10/03/14 12:37:55
その後のWndowsにおけるプログラミング環境のグダグダはご存知のとおりです。
Microsoft社は所詮メインの開発プラットホームにはなり得ない仮想マシンを
意地になって開発し続けます。それにかかるコストを回収しようとあたかも
最高のものであるかのようにコマーシャルし続けます。結果的にユーザーは
プログラミングそのものに失望し、現状に至っているというのが私的分析です。



60:hidebou
10/03/14 12:50:43
誰でも最初はプログラミングなんて何のことだか解りません。大切なのは私
がポケコンでゲームを書いた時のように、ちょっとした自作プログラムに自身
が感動できるか、友人が「凄い!」と言ってくれるかだと思います。

私の息子達もそうなのですが、プログラミング=ビデオゲームだと思ってい
ます。また、WWWの発達によって何でも目にできますから地味なアプリケーシ
ョンを見せても「何これ?」になるわけです。開発環境に対する情報はめちゃ
くちゃ、苦労して書いても誰も見向きもしない。開発環境を誤ればソースコード
は丸見え。これで「さあプログラミングしましょう」と声高に叫んでも、
若い人がついてくるわけありません。


61:デフォルトの名無しさん
10/03/14 12:54:48
確かにWindows上でネイティブアプリ並に高速な
Java VMが存在していたらならば
かなり歴史は変わっていたでしょうねぇ
.NET Frameworkが産まれなかったかも

62:hidebou
10/03/14 13:07:41
HTABOXコアはそんな現状に対する私にとって精一杯の抵抗なんです。
大げさに聞こえるかも知れませんが、この国は若者たちの英知無しでは滅び
ます。

どんな些細なプログラムでも自分が使って便利だと思えるツールは誰かが喜んで
くれます。「ありがとう」という声は必ず作り手のパワーとなります。

いかにそれが虚しく空を切ろうが、私は死ぬまで叫び続けようと思います。
「さあプログラミングしましょう」

63:hidebou
10/03/14 13:10:18
>>61
こんなスレに目をとめてくれてありがとう。

64:デフォルトの名無しさん
10/03/14 13:13:38
>>63
いえいえ、手軽にGUIを構築できるHTABOXには期待しています

65:hidebou
10/03/14 23:51:36
ソースもバグだらけなら日本語も不自由なんですが、明らかに間違っているので
訂正させてください。
57:ソースコードに名前情報が含まれ->クラスファイルに名前情報が含まれ




66:hidebou
10/03/15 01:57:42
寝苦しくて起きてしまったので爺さんの戯言にお付き合いください。
「私が抱いている具体的な構想」についてです。

こんな環境を提供したところで、みんなが急にプログラム書き始めるとは思っ
ていません。プログラムを発表できる場を提供することが絶対必要だろうと
考えています。今までの私の断片的な書き込みから想像できると思いますが、
「プログラムの100円ショップ」を実現したいんです。


67:hidebou
10/03/15 02:12:29
変な話ですけど皆さんの時給っていくらですか?
単純に労力が金額に換算できるとすれば、本来1時間かかる面倒な作業をその
プログラムで回避できればその時給分の価値があるはずですよね。実際にオー
ダーメイドの業務アプリケーションなら結果的にコストダウンだと判断されれ
ば導入されるはずです。

日常のツールでそれを主張しても受け入れられないでしょうから「100円」が
いいのではないかと考えています。



68:hidebou
10/03/15 02:35:14
本当にちょっとしたツール例えば「HTMLタグ名だけを全部小文字に統一」みた
いなのが沢山あって、手作業じゃ面倒だし、安かったらお金で解決しちゃおう
というニーズに答えるシステム作りをしたいんです。

HTABOXシステムは実行時のプログラム配布を実現できますので、場合によって
は「使っただけ課金」というシステムにすることもできます。

69:hidebou
10/03/15 02:51:43
私はクラウドがもたらす本当の恩恵ってそういう事じゃないのかなって思うん
です。従来は静的に配布される高機能なエディタの正規表現機能を使って小文
字に変換するしかなく、結局お金も時間もかかったわけですが、そういった用
途のためのツール群がオンライン上にあって必要な時にチョイスできる状態。

プログラムを投稿する側もエディタ全体を設計して競い合う必要はなく、自分
が得意とする分野のアクションで個性を発揮し、確実に収益が上がる状態。

私がおぼろげながらも、目指しているのはそんな未来なんです。

70:hidebou
10/03/15 03:11:13
そこで才能を開花させる若者が出てきて、レクサスの一番高いのに乗って
「プログラム書くってステータスの高い仕事なんだ」と世間が気づけば
後に続く人も出て、私の仕事も一段落なのかなぁっと思っています。

71:hidebou
10/03/15 03:26:27
話がすごくあっちこっちに飛躍しちゃいましたが、このスレッド本来の目的
であることろの「HTABOXコアに対するご意見ご要望」を気兼ねなくお寄せく
ださい。

「プログラムは書いたことがないんですが」という方のご意見ほど貴重な
ものはないと考えております。そういう方をメインターゲットに書いたツ
ールなんですから。

72:デフォルトの名無しさん
10/03/17 01:54:05
プログラムはちょっとかじった程度なんやけどなんかすごいことしているようで
まーなにはともあれ体壊さんようにがんばったってや~

73:hidebou
10/03/17 08:21:27
>>72
私は3年間このことだけ考えて、このことだけ見つめてきたわけですので、
どこか感覚がズレてないかをここで確かめたいという気がしてるんです。
暖かいお言葉ありがとう!

74:hidebou
10/03/17 23:19:33
ちょっとだけスレ違いな話をさせてください。
テーマは「ソースコードの美しさとは」になるでしょうか。

私にとって至福な時間というのは、自身が書いたソースコードに見惚れてい
るときです。決して動作にホレボレするのではなく、ソースコードなのです。
ただし、その美しさは「機能美」でなければなりません。美術彫刻は確かに
美しいわけですが、機能が存在しないという点で物足りなさを感じます。


75:hidebou
10/03/17 23:34:09
例えば「レーサー」とか「航空機」とか、ある目的のために研ぎ澄まされて
結果的に美しいという形の方に心を奪われます。プログラムで言えば「速度」
です。

世の中には「アーティスティックな美しいコード」のために存在する言語も
あるそうですが、そういうことは「美術」か「文学」の世界で論じるべきこ
とであって、最終的に情報処理の手段にすぎないプログラミングコードに
速度を犠牲にした美しさを求めるなどナンセンスです。

今夜は庄内平野も久しぶりに雪景色です。

76:hidebou
10/03/18 10:52:00
スタート時にウインドウを最大化する場合のサンプルです。「救急オフラインユーティリティー」
の部分は各自のアプリケーションタイトルに置き換えてくださいね。

<script language=javascript onreadystatechange="">
window.onCreate = function()
{
var WM_SYSCOMMAND = 0x0112;
var SC_MAXIMIZE = 0xF030;

var Hwnd = WIN32.FindWindow("HTML Application Host Window Class", "救急オフラインユーティリティー");
if(Hwnd != 0) WIN32.SendMessage(Hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
}
</script>


77:hidebou
10/03/18 11:30:14
今までスクリプトしか書かなかった方はWM_SYSCOMMANDやSC_MAXIMIZEの定数が
どこから出てきたのか不思議に思うかも知れませんが、WINUSER.Hにこの辺の
定数はずらりと書いてあります。ということは、無料版のVC++をダウンロード
してWIN32SDKのヘッダを眺めているだけでもずいぶんと賢くなれることを意味
します。

78:hidebou
10/03/18 12:10:45
例えばこういう動作をwindow.Maximize()にして最初から実装すれば?という
意見が生じるのはごもっともなんですが、一旦決めた「規格」は動かしがた
いものになります。

不親切に感じるかも知れませんが、できるだけWIN32APIのイメージのまま実装し、
各ユーザーの好みで、関数としてくくってもらう方が望ましいと考えています。

79:hidebou
10/03/18 15:32:42
なぜJScriptしかサポートしないのかという理由は、C++のコードへ移植しやす
いからです。アルゴリズムをスクリプトで考えてそのままVC++のソースへ貼り
付け、型宣言を変えることはよくやります。勿論その逆もありです。

なんでVBScriptはサポートしないの?っていう声があれば技術的には何の問題
もなくサポートできるんですが、VBScriptじゃないと書けないという方はいら
っしゃるのでしょうか?

80:デフォルトの名無しさん
10/03/18 19:03:46
プログラム初心者です、プログラマー目指すまでの情熱はないですが
エクセルVBAから入って、vb、vbscriptなどほんの少しかじりました

結構そういう方は多いのかなと思いますがどうなんでしょ?

最初にvb系から入ってしまうと、{}や行の最後の;などの表記のある言語に違和感を
覚えてしまいます

81:hidebou
10/03/18 20:10:21
>>80
了解しました。改良点としてVBScriptでのエンコードを課題とします。

82:hidebou
10/03/18 20:16:40
現状で改善すべき課題と考えていることをまとめておきます。
「旧HTABOXのようにファイルを単一EXEにできること(リソース格納)」
「メインウインドウのスタイルをコントロールできるようにすること」
「VBScriptのスクリプトブロックでもエンコードできること」


83:hidebou
10/03/18 21:22:18
IEにはDHTML Behaviorというのがあってあまり需要はないかも知れませんが
GDIで単純な図形をスクリプトから描けたらいいかなぁと思っています。
LineTo(x, y)みたいな関数があって、描画結果をバッファリングで保持。
小学生なんかが喜んでくれるんじゃないかなぁっと思うんです。


84:hidebou
10/03/19 04:05:36
IEにはVMLがあるのを忘れてました。あれをスクリプトで操作しやすいように
ブリッジするものを作ればいいわけですよね。

85:hidebou
10/03/19 04:32:02
知っている人は知っているから今更なんですが、私がHTML Applicationを書く
手法を紹介します。「MSE7.EXEの活用法」です。

Microsoft Office2000以降にはスクリプトエディタが存在します。2000の場合
は確かMSE.EXEでそれ以降はMSE7.EXEですよね。ただし標準ではインストール
されないので、完全インストールしてofficeがインストールされたフォルダを
眺めると必ずいらっしゃいます。

86:hidebou
10/03/19 04:38:43
これは単独で起動できますので、ディスクトップにショートカットを作成しま
す。また、WORDやEXCELのEXEがあるフォルダの親を見るとMseNewFileItemsと
いうフォルダがありますが、ここにはMSE7がファイルを新規作成する場合の
テンプレートが存在し、デフォルトではcharset=UTF-8のHTMLとなっています。

87:hidebou
10/03/19 04:48:47
MSE7.EXEを起動します。新規作成->ファイル->HTMLページを行います。
HTML Page1.htmがメモリ上に作成されます。編集画面を右クリックすると
ページのプロパティーを変更するダイアログが表示されますので、私の場合
HTML3.2 -> HTML 4.0、UTF-8 -> shift-jis、VBScript -> JavaScript
に変更して先ほどのテンプレートファイルHTMLPAGE.HTMを上書きします。
一旦MSE7.EXEを終了して再度起動します。

88:hidebou
10/03/19 04:58:10
もう一度新規作成->ファイル->HTMLページを行います。今度は先ほどテンプレ
ートを置き換えましたので、自分の望むキャラクタセットのHTMLなはずです。

HTMLの適当な位置にカーソルを置き、編集->スクリプトブロックの挿入->クライアント
を行うとスクリプトブロックが挿入されます。作成されたスクリプトブロック
内にカーソルを置きCTRL + jを押してください。知らなかった人は感動の涙
にむせぶと思います。


89:hidebou
10/03/19 05:08:21
適当なスクリプトを書いて、ブレークポイント(停止したい位置)でF9を押し
行の左に赤丸が付いた状態とします。デバッグ->開始やF5でHTMLを開始します。
MSE7の場合は未保存だから保存しますか?ときかれるのでyesと答えます。
ソースコードはブレークポイントで停止しますので、デバッグ、クイックウォッチ
等で変数の状態や場合によってはdocumentと入力して全体の状態を確認します。
この画面を見て知らなかった人はもう一度涙を流すはずです。


90:hidebou
10/03/19 05:14:15
忘れてましたが、IEメニューからツール->インターネットオプション->詳細設定
->スクリプトのデバッグを使用しない がデフォルトではオンですので、チェック
をオフにしないと停止しませんから事前にオフにしておいてください。

91:hidebou
10/03/19 05:22:39
また、デバッグで停止しているソースは基本的に変更できず、デバッグを停止
又は最後まで実行しないと、他のアプリが動かないほどリソースを消費する事
に注意してください。これでwindowやdocumentから芋ずる式に全てのオブジェ
クトの状態を眺めているのと、手探りでコーディングしているのとではハイテ
ク兵器と竹やりほどの差が生まれると思います。

92:hidebou
10/03/19 05:34:22
HTABOXコアはTABLEのIDがMENUならWIN32メニューを生成しますが、この編集
画面上ではテーブルがそのまま行列に見えるので、メニューのイメージどお
りなわけです。onclickが設定してWIN32APIを使わなければMSE7の状態でデバ
ッグできます。

実はここでHTABOXコアをActiveXObjectするとWIN32APIが使えるのですが、
当然EXECOMサーバーとしてHTABOXコアをレジストリ登録しなければなりま
せんので今のところ非公開機能としています。

93:hidebou
10/03/19 06:07:02
IE8には標準でデバッガがついているようでしたが、自分の会社のMSDNも見れ
ないブラウザでしたので、私はIE8そのものを使った事がありません。

94:hidebou
10/03/19 07:06:08
MSE7.EXEはHTMLをデバッグする目的で存在しますので、ADSI関連のスクリプ
トだったりするとインスタンスの生成そのものがエラーとなりますが、スク
リプトをHTML中のブロックではなく単独JSとして作成し、開けばコードヘル
パーが効いた状態となります。ブレークポイントはCSCRIPT.EXEの規則に則る
必要があるのですが、面倒なときはわざとエラー行を書くとMSE7.EXEがデバ
ッガとして起動します。



95:hidebou
10/03/19 07:24:04
MSE7.EXEは同じofficeのバージョンでもOSやIEのバージョンで振る舞いがすこ
し違うことにも注意が必要ですから、ご自身の環境でファイルの拡張子をhta
にしてみたりして動作を確認してください。

私が「HTML Applicationは生産性が高い」と考える最大の理由はこのMSE7.EXE
が存在することなのです。「救急オフラインユーティリティー」は250Kほどの
ファイルですが、MSE7.EXEが無かったらC++で全部書いた方がメンテナンスしや
すいという判断をしたでしょう。

96:hidebou
10/03/19 16:57:23
MSE7.EXEについて簡単な情報ページを
URLリンク(www5a.biglobe.ne.jp)
に作成しました。もしMicrosoft Officeをお持ちの方でMSE7.EXEを使ったこと
が無いという場合は一見していただければ概要を理解していただけると思います。

MSE7.EXEはHTML用のVisual Studioなんです。

97:hidebou
10/03/19 22:31:04
誤解がないように「単一EXE」手法について報告します。HTABOXコアはCD等の
書き込み不能媒体で配布されても動作することをガイドラインとしています。
したがって単一EXE格納はすべてリソース格納したres://経由とする予定です。
また、この機能はエンコードを同時に行われると考えています。

98:hidebou
10/03/20 00:01:14
どうも書き込んだあとに日本語不自由なことに気づいてすいません。

ですから旧HTABOXのように何でもかんでも格納できるものにはなりません。
SRCでパスを指定するものなら格納してリソース参照に置き換えられると考
えています。


99:hidebou
10/03/20 07:42:08
現時点での構想では
エンコード動作時にソースHTML、画像等、アイコンをリソース格納し、
エンコード済みのHTABOXコアは著作保護の為に再利用できないという
ルールがいいのではないかと考えています。

100:デフォルトの名無しさん
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コアプラットホームの
アプリケーションを販売できる体制作りを掲げています。そのためには認証
や登録を軽量でありながらも堅牢なものにしなければなりません。


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