1 名前:デフォルトの名無しさん [2010/03/09(火) 17:13:46 ] HTABOXコアに関するご要望はこちらへお願いします
2 名前:hidebou mailto:sage [2010/03/09(火) 17:29:16 ] 現在ウインドウスタイルを操作するAPIの定義を検討中です。 ご意見を伺えれば助かります。
3 名前:デフォルトの名無しさん [2010/03/09(火) 18:11:41 ] exeと同じ名前のhta,htmlを読み込むって事だけど、index.htaとかを読み込む方が良いんじゃないでしょうか? 人によると思いますが、自分的に同じ名前を複数存在させるの嫌なんです・・・
4 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:19:28 ] ttp://kuroda.bglb.jp/htabox/
5 名前:hidebou mailto:sage [2010/03/09(火) 18:46:43 ] start.iniみたいな定義ファイルを導入して、柔軟な起動ができるように するというアイディアはどうでしょう?
6 名前:某330 mailto:sage [2010/03/09(火) 18:56:17 ] 残念ながら状況変わらず。 あと、F5 を押すと MSHTA 同等になるざます。 (メニューとか右クリックとかはそのままですが)
7 名前:hidebou mailto:sage [2010/03/09(火) 19:08:55 ] えぇ〜!!
8 名前:hidebou mailto:sage [2010/03/09(火) 19:11:52 ] 認識引数、絶対パス結果をMessageBoxで表示するバージョンを作りますので しばらくお待ちを。
9 名前:hidebou mailto:sage [2010/03/09(火) 19:23:19 ] URL上のLZHを置き換えました。 3回MessaeBoxが表示されると思うのですが、その結果を教えてください。
10 名前:hidebou mailto:sage [2010/03/09(火) 19:36:57 ] 起動ファイルがないよ状態でhelpからビルド日時も確認してくださいね。
11 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:17:27 ] R:\ 直下に test.exe と test.html を置いた場合。 開始初期CommandLine "R:\test.exe" 第一引数認識文字列 空 絶対パス結果文字列 空 ビルド情報 HTABOX Mar 9 2010 19:16:08 リリース
12 名前:hidebou mailto:sage [2010/03/09(火) 20:20:45 ] 起動はコマンドラインでしょうか?それともファイル名を指定でしょうか?
13 名前:hidebou mailto:sage [2010/03/09(火) 20:32:22 ] ファイル名を指定で実験したものですから、逆に通常起動で 引数を認識していませんね。明日までの宿題にさせてください。 ご迷惑をおかけします。
14 名前:hidebou mailto:sage [2010/03/09(火) 21:03:30 ] html->htlmのタイプミスがありました。LZHを入れ替えました。明日お暇な 時で結構ですから動作をご確認ください。
15 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 21:07:07 ] ファイラ (あふ) から起動した場合です。 エクスプローラからダブルクリックなどで起動した場合も同様。 コマンドプロンプトから実行した場合はメッセージボックスは一度だけ。 ファイル名を指定して実行の場合は r:\test r:\test.html 開始初期CommandLine "r:\test.exe" r:\test.html 第一引数認識文字列 r:\test.html 絶対パス結果文字列 r:\test.html で正常に起動しました。 引数を指定しない場合はファイラから起動した場合と同様です。
16 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 21:13:08 ] あー入れ違い。 だいたい正常に起動するようになりましたが、 コマンドプロンプトから引数指定の場合はうまく行きません。
17 名前:hidebou mailto:sage [2010/03/09(火) 21:26:25 ] 了解しました。さらに修正します。 お詫びに粗品として旧HTABOX256Kスペシャルバージョンを置きます。 ttp://kuroda.bglb.jp/htabox/HTABOX2.lzh
18 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 21:32:16 ] このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
19 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:48:38 ] 自分はhtmlからWIN32のGUIが呼び出しているというのに魅力を感じてて、それの機能追加を期待してる。 現状のメニューだけだとちょっとまだ使えないから何も出来ないけど、頑張って下さい。
20 名前:hidebou mailto:sage [2010/03/09(火) 23:34:29 ] ありがとうございます。 自分が使う為に作り始めて、こつこつ成長させてきたソフトなんですが、 書いてしまうと書く側のエゴが出てしまうんですね。ここでいろんなご意見 をうかがって、プログラムなんて書いたこと無い人が書いてみようかと思う 環境を作れたらいいなと思っております。
21 名前:hidebou mailto:sage [2010/03/10(水) 08:29:19 ] Windowスタイルなんですけど、動作途中で変更する必要はありませんよね。 だった起動時読み込みファイルという概念を導入して、 [STYLE_EX]hoge|hoge; [STYLE]hoge|hoge; で設定するだけというのが簡単でいいのではと、 あらゆるAPIは追加可能なんですが、 どっかの外人さんの書いたなんとかみたいに、 単にC++を遠まわしにやるだけっだら意味ないと思うのです。
22 名前:hidebou mailto:sage [2010/03/10(水) 08:35:15 ] 起動時のスタイル設定の理由はもうひとつあって、 HTABOXコアの場合APIを使えるのは起動後なんです。軽量なHTMLの場合既に 表示された後になるかも知れません。たとえ一瞬でも表示されたスタイルが 変更されるのは美しくないだろうという理由もあります。
23 名前:hidebou mailto:sage [2010/03/10(水) 08:45:12 ] start.ini(仮称)を導入すれば、最初にその存在を確認し、宣言してあればその HTMLを実行するとか、さまざまなオプションを付けることもできます。私は この方向で行こうと思っているんですが、異論のある方いらっしゃいますか?
24 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:17:40 ] これ純粋にhtmlパースも独自なの? windowsのコンポーネントに依存しないのなら他のプラットフォームでも稼働するのかな?
25 名前:hidebou mailto:sage [2010/03/10(水) 10:30:23 ] 実行ファイルの大きさから想像していただけると思いますが、独自パースは スクリプトのみです。HTMLも独自パースが理想ですが、IEと同じ大きさの 巨大なプロジェクトとなりますので個人では支えきれないと考えています。
26 名前:hidebou mailto:sage [2010/03/10(水) 10:35:13 ] 拡張子HTML関連のバグ、コマンドライン引数関連のバグを修正しました。 ttp://kuroda.bglb.jp/htabox/HTABOXCORE.lzh
27 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:37:31 ] >>25 速攻の回答ありがと そうか、他のシステムには移植できないのか。 ieコンポーネントは化け物だからしょうがないかもね(つかffとかもコンポーネントベースになればいいのに)
28 名前:hidebou mailto:sage [2010/03/10(水) 11:25:33 ] >>27 そのIEコンポーネントを制限無く扱える手法が無いと感じたものですから HTABOXコアが誕生したという経緯です。
29 名前:hidebou mailto:sage [2010/03/10(水) 12:45:30 ] 総務省消防庁の提供する「救急オフラインシステム」が出力するXMLから 任意な事案項目、傷病者項目をデータとして取り出したり、国表統計 月報統計を出力するサービスの準備を開始します。 HTABOXコアをこういったピンポイントなサービスを提供する手段として 捕らえていただければより深いご理解がいただけると思います。
30 名前:hidebou mailto:sage [2010/03/10(水) 15:15:32 ] 総務省が行政事務のクラウド化を推進するのは結構なことなのですが、自治体にはそれぞれのカラーがありますから、 単純にこの形式のデータを報告してくださいが行われた場合、2重にデータを作成し、突合するという本末転倒な状態 となります。かといって中央官庁が各自治体の御用聞きをおこなってシステムを設計するはずもありません。 私はこの隙間を埋めるソフトウエアサービスを提供することが自分に課せられた使命のひとつだと思っています。
31 名前:hidebou mailto:sage [2010/03/10(水) 15:42:18 ] 通常ならそんなことは個人では不可能です。 大きな力に押しつぶされるでしょう。 しかしHTABOXシステムはそれを可能にするために書かれたソフトです。
32 名前:hidebou mailto:sage [2010/03/10(水) 21:50:02 ] 皆さんもいろんな分野で活躍なさっていると思うのですが、その中で感じる矛盾 が、ソフトウエアで解決できるのであれば、どんどん開発して発表してください。 その業務のつらさを知っている人間だけがそこにフィットするソフトを書けるのです。 まだ生まれたばがりのHTABOXコアですが、そんなときの道具になれるよう努力してゆ きますのでご指導お願いします。
33 名前:hidebou mailto:sage [2010/03/11(木) 07:49:35 ] 独白スレッドになっていますがお許しください。 「どうしてソース隠すことにこだわるのか?」についてお話します。 答えは「書いた人のアイディアがお金にならなければ人は育たない」と考える からです。どんなに優れた発想でソフトを作っても大手企業さんがその拡張版 をすぐ出すようでは書いた人の苦労って水の泡ですよね。 もちろん、ソースを公開し共同開発して人類共通の英知とするっていうのも素 晴らしいとは思いますが、それは片手間にそんなことをしても食べていける人 の場合で、少なくとも私にそんな余裕はありません。
34 名前:hidebou mailto:sage [2010/03/11(木) 08:34:59 ] アイディアを思いついたユーザーがネイティブコンパイラを扱える方なら何も いらないのですが、そうじゃないユーザーのアイディアをいかに簡単に具現化 して、保護するかというテーマで考えた結果が「HTML Applicationでソース隠 蔽」だったわけです。 でも旧HTABOXではMSHTA.EXEの壁を越えられず、最終的に名前パイプ経由とい う消極的な手法しかとれませんでした。これはデバッガでこそ見えないものの オブジェクトの単純GETで関数コードが見えてしまいます。 MSHTA.EXEを自分で書ければその問題を解決できるのは明白でしたが当時の私 にそのスキルはありませんでした。
35 名前:hidebou mailto:sage [2010/03/11(木) 08:52:42 ] 旧HTABOXは、私にとって敗北の象徴となりました。最も目にしたくないもので あり、この世から消し去りたい事実となったのです。 HTABOXシステムとかHTABOXコアというネーミングはHTABOXという検索で旧HTABOX の事がヒットしないようにという単純な理由です。勿論、現状の隠蔽手法にも穴 が発見される可能性はありますが、だったらこうすればという対策を直ぐ発想で きるとこまで研究したつもりです。
36 名前:hidebou mailto:sage [2010/03/11(木) 14:34:19 ] 誰でもプログラムを書き始めた当初はソースさえ難解なら見えたところで簡単 には流用できないだろうと思うものです。しかし、十分に経験を積むとアルゴ リズムは無視して、結局「どのCOMまたはどのAPIを使っているのか」を見るだ けで内容が推察できるようになります。 そいう観点から見た場合ソースが長大で難解に書かれていたとしても目くらま しにはなりません。また、ネイティブコンパイラの場合リリース前に配布EXE をメモ帳で眺め、要所となる手続きが推察不能であることを確認すべきです。
37 名前:hidebou mailto:sage [2010/03/11(木) 14:54:36 ] HTABOXコアのエンコード機能で実現したいことは 「書いた人の汗が報われる」 というごく当たり前でフェアなルールを導入しましょうということです。
38 名前:hidebou mailto:sage [2010/03/11(木) 19:57:59 ] HTABOXサーバーを使わなくてもHTABOXコアだけで今までの概念を打ち破るソ フトの配布形態、ビジネスモデルを実現できることを説明します。 HTABOXコアでフレームアプリケーションを作成し、子フレームをURL上のもの とします。サーバーには認証を設定せず、フルスペックなフリーソフトとして Vectorに投稿します。サーバーのログを監視すればユーザーの利用状況が判り ます。リリース当初はユーザーからの報告でバグフィクスが必要となりますが サーバー上のファイルを更新するだけで即座に対応することができます。 つまり、リリースしながら手元にあるという状態を作り出すことができます。
39 名前:hidebou mailto:sage [2010/03/11(木) 20:12:10 ] 十分に広報活動が行われたと判断した場合、サーバー上の既存ファイルをスペ ックダウンさせ、フルスペックの機能が必要であれば別のソフトをダウンロー ドするように促します。別のソフトの内容は当初のフルスペックバージョンで あり、子フレームURLには認証を設定します。あとはアカウントを販売するだけ です。 従来の静的配布ではフルスペックを配布した後に制限を加えるなどということは できませんが、HTABOXコアならあたりまえのように実現できます。Vectorで何を 基準にソフトを審査しているのかは知りませんが、少なくとも一部をURL上の子 フレームとしている私のHTABOXエンコーダーが承認されていることは事実です。
40 名前:hidebou mailto:sage [2010/03/11(木) 23:32:44 ] 寝る前に一言書かせてください。 HTABOXコアはMSHTA.EXEとは比べ物にならないくらい自由度が高い環境です。 逆な観点から言えばそれを使用する側の強い倫理観が求められます。もし、 この技術が悪用されるなら個々のHTABOXコアにシリアルを埋め込んで名前を 固定し申請がなければ使用できない状態にせざるを得ないでしょう。 私は決してそんな日は来ないと信じています。
41 名前:hidebou mailto:sage [2010/03/12(金) 06:13:40 ] 長々と書いてしまいましたが、私がHTABOXコアに興味を持っていただいた方に 是非知っていただきたい事は書かせていただきました。 今一番重要なのは、実際にこの環境を使ったサービスが成功するのか否かです から、しばらくはHTABOXコアを使った具体的サービスプログラムの作成に重心 を置きたいと考えています。このスレッドに直ぐレスポンスできないかも知れ ませんがお許しください。 もっと荒れるかと思ったのですが、つまらないつぶやきにお付き合いいただい てありがとうございました。 ttp://kuroda.bglb.jp/
42 名前:デフォルトの名無しさん [2010/03/12(金) 16:34:03 ] プログラムの事は、殆どよくわからないのですが、hidebouさんの思い、 言葉を目にし、HTABOXコアがいかに魅力的なソフトであるかが伝わって きました。 HTABOXコアの誕生によって、多くのプログラマーの汗が報われる事を願って やみません。hidebouさんのサービスプログラムの成功を、心から期待して おります。
43 名前:hidebou mailto:sage [2010/03/12(金) 19:46:39 ] >>42 もう50才になろうとする爺ですが、爺になると開き直りの境地の達します。 万人からアホ呼ばわりされたとしても、たった一人の方の心に残る何かを 残せたらそれでいいじゃないかと... ですから少し泣かせてください。ありがとう!。
44 名前:hidebou mailto:sage [2010/03/13(土) 16:38:31 ] 今書いている「救急オフラインユーティリティー」に気が入らないのですこし つぶやかせてください。テーマは「C++とスクリプト」になるでしょうか。 バイナリの再利用というと響きはいいですが、要は他人の褌でいかに相撲をと るかの工夫なわけです。C++が一般的になる前は「関数」がライブラリを形成 していたわけですが、「クラス」という概念を導入し単一アドレスへの問い合 わせで他言語からもバイナリモジュールをコールできるようにしたのがCOMだと 理解しています。
45 名前:hidebou mailto:sage [2010/03/13(土) 16:50:41 ] ですからIDispatchのようなクラスをコールする動作でプログラムが形成され ていた場合、その実行速度はどんな言語でもほぼ同一となります。これは Microsoft Office系のオブジェクトをC++で操作したところで早くならないこ とから理解できると思います。こういう動作は主にスクリプトで書くべきです。
46 名前:hidebou mailto:sage [2010/03/13(土) 17:08:32 ] ただし、APIコールがループで繰り返されるようなケースでは個々のAPIがCOM でラップされていた場合「そういう名前あります?」「ああIDはこれですよ」 「じゃそのIDでInvokeしますね」が繰り返されるわけですから、膨大な時間 リソースを消費します。それはC++で書くべきでしょうとなるわけです。
47 名前:hidebou mailto:sage [2010/03/13(土) 17:33:09 ] 話は変わりますが、スクリプトよりC++の方がバグの発生率は少なくなります。 スクリプトではVARIANTのvtしか型を限定する要素がありませんが、C++では明 確な型宣言が必要ですので、勘違いがおこりにくいのです。久しぶりに目にす るソースファイルにたいしたコメントが無くても即座に修正作業に入れます。 C++でWIN32アプリを書くと痛感するのですがGUIの形成は地獄絵図になります。 「メインウインドウにボタンを一個置いてクリックしたらダイアログを表示し ましょう」というプログラムを書きながら「onclick="hoge()"」で済む世界が 天上の世界に思えるのです。
48 名前:hidebou mailto:sage [2010/03/13(土) 17:41:03 ] 一番楽なプログラミング環境はC++です。だけどGUI形成はDHTMLでささっと 済ませてしまいたい。という発想でHTABOXコアを眺めていただければ、狂気 乱舞する方がいらっしゃると思うんですが、だめですかね。
49 名前:hidebou mailto:sage [2010/03/14(日) 03:52:46 ] 寝てる時にふと思ったんですが、C++向けには Microsoft Script Control msscript.ocx:{0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC} の機能にプラスしてHTML解釈によりGUIが形成できるCOMDLLを提供すると 喜んでもらえるんでしょうか? HTABOXコアがやってる事の順番変えるだけで供給できるんですが。
50 名前:hidebou mailto:sage [2010/03/14(日) 04:16:11 ] Microsoft純正プログラム眺めていると、GUIはリソースのHTMLでささっと済ま せている場合が見受けられますよね。要はそれと同じ事をWIN32環境でできる ようにすれば.....ということはCOMDLLよりスタティックリンクできるライブ ラリの方がいいかも知れませんね。 今のところ余裕が無いのですぐ設計するわけにはいきませんが。
51 名前:hidebou mailto:sage [2010/03/14(日) 10:52:22 ] 話題が変わりますが、私が何よりも重大な問題だと考えていることについてお 話します。「プログラミング新規参入者の減少」についてです。 私の住んでいる田舎の場合、どこの書店でも売れない本は置きません。ここ数 年で開発言語系の書籍は激減しました。プログラミングしたいという人はWWW 経由で調べてるからという理由ならいいでしょうが、現実は違うと思います。
52 名前:hidebou mailto:sage [2010/03/14(日) 11:05:42 ] 私はシャープのポケコンでプログラミングに興味を持って現在に至るのですが 当時はそこでちょっとしたゲームとかを書くと、それは誰も見たことがない最 先端テクノロジーですので「凄い!」になるわけです。その後業務用OSである PTOSでBASICをいじり、MS-DOS、Windows、とプラットフォームが変化してゆく 歴史を目撃しているわけですが、今までいかに不自由だったかという理由を踏 まえると納得できる規格の変化も、いきなり新たな規格を突きつけられた人間 には理解できないという現象が生じています。
53 名前:hidebou mailto:sage [2010/03/14(日) 11:17:23 ] Windows以前、ひとつのプログラムはコンピューターを占有しました。つまり 他のプログラムは今動いているプログラムを停止しない限り起動できませんで した。その代わり、ディスプレイもキーボードも自分が好きなようにコントロ ールできますから、今のようにWindowsから肩を叩かれて動く配慮は必要なか ったのです。プログラム特に業務で使うものは現場で作るものという風潮が まだ残っていたと思います。事実私のような人間でもちょっと本を読めば実用 的なプログラムが書けたのです。
54 名前:hidebou mailto:sage [2010/03/14(日) 11:26:25 ] 同時に複数のプログラムを動かして、アクティブなタスクを切り替えたい。と いう欲求はごく自然な流れです。今までキーボードは直接のハードウェア割り 込みだったものが、そうは行かなくなります。CPUは結局ひとつのストーリー しか理解しませんから、常駐する親プログラムがキーボードを監視して、どの プログラム向けに入力されたものかを子プログラムへ通知する必要が生じるの です。これがWindowsメッセージです。
55 名前:hidebou mailto:sage [2010/03/14(日) 11:41:45 ] CとC++についても全く同じような事が言えます。Cは言語というよりもアセン ブラをもっと使いやすくしましょうという規格として存在しました。重要なの はこの時主導権を持っていたのはANSIという営利とは関係の無い協会であった ことです。規格が定まればバイナリのライブラリは共有できる資源となります ので、結果的にプログラマーはハードウェアを意識せず標準関数を使いプログ ラムが書けるのです。
56 名前:hidebou mailto:sage [2010/03/14(日) 11:51:47 ] Cの誕生は劇的に生産効率を向上させましたが、大規模なプロジェクトの場合 名前の衝突が頻繁に発生します。Cでの名前は最終的にただのアドレスに変換 されるマークなのですが、リンク中に名前の衝突が起これば致命的な破綻と なります。複数の人間がひとつのプロジェクトに関わる場合、自分が使える 名前の範囲をペーパーで確認するといった作業が必要になるわけです。 C++のクラス、名前空間はそれを解決する素晴らしい英知なわけですが、その 苦労を知っていない、若しくは想像できない人間にとって、これほど煩わしい ものは無いわけです。
57 名前:hidebou mailto:sage [2010/03/14(日) 12:03:08 ] javaの誕生は新たなステージの幕開けでした。仮想マシンという規格層を設け そこに向かって動的なバイナリモジュール呼び出しをしようとするものです。 実行時の名前解決ですので、ソースコードに名前情報が含まれ、ソースが暴か れるという欠点はあるのですが、人間も賢くなったものだなぁーと思いました。 Java裁判がおこるまでは...
58 名前:hidebou mailto:sage [2010/03/14(日) 12:20:22 ] 結局どんな理屈をこねようが、企業間の抗争の根底にあるのはマネーです。 Microsoft社のJava仮想マシンはSUNのそれを完全に凌駕していました。当然 Windowsには同社しか知りえない情報があるわけですから当然です。 悲劇は起こりました。正統な英知の集積であるJ++は息の根を絶たれることに なってしまいました。高速なJavaという夢はこれで終わったのです。
59 名前:hidebou mailto:sage [2010/03/14(日) 12:37:55 ] その後のWndowsにおけるプログラミング環境のグダグダはご存知のとおりです。 Microsoft社は所詮メインの開発プラットホームにはなり得ない仮想マシンを 意地になって開発し続けます。それにかかるコストを回収しようとあたかも 最高のものであるかのようにコマーシャルし続けます。結果的にユーザーは プログラミングそのものに失望し、現状に至っているというのが私的分析です。
60 名前:hidebou mailto:sage [2010/03/14(日) 12:50:43 ] 誰でも最初はプログラミングなんて何のことだか解りません。大切なのは私 がポケコンでゲームを書いた時のように、ちょっとした自作プログラムに自身 が感動できるか、友人が「凄い!」と言ってくれるかだと思います。 私の息子達もそうなのですが、プログラミング=ビデオゲームだと思ってい ます。また、WWWの発達によって何でも目にできますから地味なアプリケーシ ョンを見せても「何これ?」になるわけです。開発環境に対する情報はめちゃ くちゃ、苦労して書いても誰も見向きもしない。開発環境を誤ればソースコード は丸見え。これで「さあプログラミングしましょう」と声高に叫んでも、 若い人がついてくるわけありません。
61 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:54:48 ] 確かにWindows上でネイティブアプリ並に高速な Java VMが存在していたらならば かなり歴史は変わっていたでしょうねぇ .NET Frameworkが産まれなかったかも
62 名前:hidebou mailto:sage [2010/03/14(日) 13:07:41 ] HTABOXコアはそんな現状に対する私にとって精一杯の抵抗なんです。 大げさに聞こえるかも知れませんが、この国は若者たちの英知無しでは滅び ます。 どんな些細なプログラムでも自分が使って便利だと思えるツールは誰かが喜んで くれます。「ありがとう」という声は必ず作り手のパワーとなります。 いかにそれが虚しく空を切ろうが、私は死ぬまで叫び続けようと思います。 「さあプログラミングしましょう」
63 名前:hidebou mailto:sage [2010/03/14(日) 13:10:18 ] >>61 こんなスレに目をとめてくれてありがとう。
64 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:13:38 ] >>63 いえいえ、手軽にGUIを構築できるHTABOXには期待しています
65 名前:hidebou mailto:sage [2010/03/14(日) 23:51:36 ] ソースもバグだらけなら日本語も不自由なんですが、明らかに間違っているので 訂正させてください。 57:ソースコードに名前情報が含まれ->クラスファイルに名前情報が含まれ
66 名前:hidebou mailto:sage [2010/03/15(月) 01:57:42 ] 寝苦しくて起きてしまったので爺さんの戯言にお付き合いください。 「私が抱いている具体的な構想」についてです。 こんな環境を提供したところで、みんなが急にプログラム書き始めるとは思っ ていません。プログラムを発表できる場を提供することが絶対必要だろうと 考えています。今までの私の断片的な書き込みから想像できると思いますが、 「プログラムの100円ショップ」を実現したいんです。
67 名前:hidebou mailto:sage [2010/03/15(月) 02:12:29 ] 変な話ですけど皆さんの時給っていくらですか? 単純に労力が金額に換算できるとすれば、本来1時間かかる面倒な作業をその プログラムで回避できればその時給分の価値があるはずですよね。実際にオー ダーメイドの業務アプリケーションなら結果的にコストダウンだと判断されれ ば導入されるはずです。 日常のツールでそれを主張しても受け入れられないでしょうから「100円」が いいのではないかと考えています。
68 名前:hidebou mailto:sage [2010/03/15(月) 02:35:14 ] 本当にちょっとしたツール例えば「HTMLタグ名だけを全部小文字に統一」みた いなのが沢山あって、手作業じゃ面倒だし、安かったらお金で解決しちゃおう というニーズに答えるシステム作りをしたいんです。 HTABOXシステムは実行時のプログラム配布を実現できますので、場合によって は「使っただけ課金」というシステムにすることもできます。
69 名前:hidebou mailto:sage [2010/03/15(月) 02:51:43 ] 私はクラウドがもたらす本当の恩恵ってそういう事じゃないのかなって思うん です。従来は静的に配布される高機能なエディタの正規表現機能を使って小文 字に変換するしかなく、結局お金も時間もかかったわけですが、そういった用 途のためのツール群がオンライン上にあって必要な時にチョイスできる状態。 プログラムを投稿する側もエディタ全体を設計して競い合う必要はなく、自分 が得意とする分野のアクションで個性を発揮し、確実に収益が上がる状態。 私がおぼろげながらも、目指しているのはそんな未来なんです。
70 名前:hidebou mailto:sage [2010/03/15(月) 03:11:13 ] そこで才能を開花させる若者が出てきて、レクサスの一番高いのに乗って 「プログラム書くってステータスの高い仕事なんだ」と世間が気づけば 後に続く人も出て、私の仕事も一段落なのかなぁっと思っています。
71 名前:hidebou mailto:sage [2010/03/15(月) 03:26:27 ] 話がすごくあっちこっちに飛躍しちゃいましたが、このスレッド本来の目的 であることろの「HTABOXコアに対するご意見ご要望」を気兼ねなくお寄せく ださい。 「プログラムは書いたことがないんですが」という方のご意見ほど貴重な ものはないと考えております。そういう方をメインターゲットに書いたツ ールなんですから。
72 名前:デフォルトの名無しさん [2010/03/17(水) 01:54:05 ] プログラムはちょっとかじった程度なんやけどなんかすごいことしているようで まーなにはともあれ体壊さんようにがんばったってや〜
73 名前:hidebou mailto:sage [2010/03/17(水) 08:21:27 ] >>72 私は3年間このことだけ考えて、このことだけ見つめてきたわけですので、 どこか感覚がズレてないかをここで確かめたいという気がしてるんです。 暖かいお言葉ありがとう!
74 名前:hidebou mailto:sage [2010/03/17(水) 23:19:33 ] ちょっとだけスレ違いな話をさせてください。 テーマは「ソースコードの美しさとは」になるでしょうか。 私にとって至福な時間というのは、自身が書いたソースコードに見惚れてい るときです。決して動作にホレボレするのではなく、ソースコードなのです。 ただし、その美しさは「機能美」でなければなりません。美術彫刻は確かに 美しいわけですが、機能が存在しないという点で物足りなさを感じます。
75 名前:hidebou mailto:sage [2010/03/17(水) 23:34:09 ] 例えば「レーサー」とか「航空機」とか、ある目的のために研ぎ澄まされて 結果的に美しいという形の方に心を奪われます。プログラムで言えば「速度」 です。 世の中には「アーティスティックな美しいコード」のために存在する言語も あるそうですが、そういうことは「美術」か「文学」の世界で論じるべきこ とであって、最終的に情報処理の手段にすぎないプログラミングコードに 速度を犠牲にした美しさを求めるなどナンセンスです。 今夜は庄内平野も久しぶりに雪景色です。
76 名前:hidebou mailto:sage [2010/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 mailto:sage [2010/03/18(木) 11:30:14 ] 今までスクリプトしか書かなかった方はWM_SYSCOMMANDやSC_MAXIMIZEの定数が どこから出てきたのか不思議に思うかも知れませんが、WINUSER.Hにこの辺の 定数はずらりと書いてあります。ということは、無料版のVC++をダウンロード してWIN32SDKのヘッダを眺めているだけでもずいぶんと賢くなれることを意味 します。
78 名前:hidebou mailto:sage [2010/03/18(木) 12:10:45 ] 例えばこういう動作をwindow.Maximize()にして最初から実装すれば?という 意見が生じるのはごもっともなんですが、一旦決めた「規格」は動かしがた いものになります。 不親切に感じるかも知れませんが、できるだけWIN32APIのイメージのまま実装し、 各ユーザーの好みで、関数としてくくってもらう方が望ましいと考えています。
79 名前:hidebou mailto:sage [2010/03/18(木) 15:32:42 ] なぜJScriptしかサポートしないのかという理由は、C++のコードへ移植しやす いからです。アルゴリズムをスクリプトで考えてそのままVC++のソースへ貼り 付け、型宣言を変えることはよくやります。勿論その逆もありです。 なんでVBScriptはサポートしないの?っていう声があれば技術的には何の問題 もなくサポートできるんですが、VBScriptじゃないと書けないという方はいら っしゃるのでしょうか?
80 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:03:46 ] プログラム初心者です、プログラマー目指すまでの情熱はないですが エクセルVBAから入って、vb、vbscriptなどほんの少しかじりました 結構そういう方は多いのかなと思いますがどうなんでしょ? 最初にvb系から入ってしまうと、{}や行の最後の;などの表記のある言語に違和感を 覚えてしまいます
81 名前:hidebou mailto:sage [2010/03/18(木) 20:10:21 ] >>80 了解しました。改良点としてVBScriptでのエンコードを課題とします。
82 名前:hidebou mailto:sage [2010/03/18(木) 20:16:40 ] 現状で改善すべき課題と考えていることをまとめておきます。 「旧HTABOXのようにファイルを単一EXEにできること(リソース格納)」 「メインウインドウのスタイルをコントロールできるようにすること」 「VBScriptのスクリプトブロックでもエンコードできること」
83 名前:hidebou mailto:sage [2010/03/18(木) 21:22:18 ] IEにはDHTML Behaviorというのがあってあまり需要はないかも知れませんが GDIで単純な図形をスクリプトから描けたらいいかなぁと思っています。 LineTo(x, y)みたいな関数があって、描画結果をバッファリングで保持。 小学生なんかが喜んでくれるんじゃないかなぁっと思うんです。
84 名前:hidebou mailto:sage [2010/03/19(金) 04:05:36 ] IEにはVMLがあるのを忘れてました。あれをスクリプトで操作しやすいように ブリッジするものを作ればいいわけですよね。
85 名前:hidebou mailto:sage [2010/03/19(金) 04:32:02 ] 知っている人は知っているから今更なんですが、私がHTML Applicationを書く 手法を紹介します。「MSE7.EXEの活用法」です。 Microsoft Office2000以降にはスクリプトエディタが存在します。2000の場合 は確かMSE.EXEでそれ以降はMSE7.EXEですよね。ただし標準ではインストール されないので、完全インストールしてofficeがインストールされたフォルダを 眺めると必ずいらっしゃいます。
86 名前:hidebou mailto:sage [2010/03/19(金) 04:38:43 ] これは単独で起動できますので、ディスクトップにショートカットを作成しま す。また、WORDやEXCELのEXEがあるフォルダの親を見るとMseNewFileItemsと いうフォルダがありますが、ここにはMSE7がファイルを新規作成する場合の テンプレートが存在し、デフォルトではcharset=UTF-8のHTMLとなっています。
87 名前:hidebou mailto:sage [2010/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 mailto:sage [2010/03/19(金) 04:58:10 ] もう一度新規作成->ファイル->HTMLページを行います。今度は先ほどテンプレ ートを置き換えましたので、自分の望むキャラクタセットのHTMLなはずです。 HTMLの適当な位置にカーソルを置き、編集->スクリプトブロックの挿入->クライアント を行うとスクリプトブロックが挿入されます。作成されたスクリプトブロック 内にカーソルを置きCTRL + jを押してください。知らなかった人は感動の涙 にむせぶと思います。
89 名前:hidebou mailto:sage [2010/03/19(金) 05:08:21 ] 適当なスクリプトを書いて、ブレークポイント(停止したい位置)でF9を押し 行の左に赤丸が付いた状態とします。デバッグ->開始やF5でHTMLを開始します。 MSE7の場合は未保存だから保存しますか?ときかれるのでyesと答えます。 ソースコードはブレークポイントで停止しますので、デバッグ、クイックウォッチ 等で変数の状態や場合によってはdocumentと入力して全体の状態を確認します。 この画面を見て知らなかった人はもう一度涙を流すはずです。
90 名前:hidebou mailto:sage [2010/03/19(金) 05:14:15 ] 忘れてましたが、IEメニューからツール->インターネットオプション->詳細設定 ->スクリプトのデバッグを使用しない がデフォルトではオンですので、チェック をオフにしないと停止しませんから事前にオフにしておいてください。
91 名前:hidebou mailto:sage [2010/03/19(金) 05:22:39 ] また、デバッグで停止しているソースは基本的に変更できず、デバッグを停止 又は最後まで実行しないと、他のアプリが動かないほどリソースを消費する事 に注意してください。これでwindowやdocumentから芋ずる式に全てのオブジェ クトの状態を眺めているのと、手探りでコーディングしているのとではハイテ ク兵器と竹やりほどの差が生まれると思います。
92 名前:hidebou mailto:sage [2010/03/19(金) 05:34:22 ] HTABOXコアはTABLEのIDがMENUならWIN32メニューを生成しますが、この編集 画面上ではテーブルがそのまま行列に見えるので、メニューのイメージどお りなわけです。onclickが設定してWIN32APIを使わなければMSE7の状態でデバ ッグできます。 実はここでHTABOXコアをActiveXObjectするとWIN32APIが使えるのですが、 当然EXECOMサーバーとしてHTABOXコアをレジストリ登録しなければなりま せんので今のところ非公開機能としています。
93 名前:hidebou mailto:sage [2010/03/19(金) 06:07:02 ] IE8には標準でデバッガがついているようでしたが、自分の会社のMSDNも見れ ないブラウザでしたので、私はIE8そのものを使った事がありません。
94 名前:hidebou mailto:sage [2010/03/19(金) 07:06:08 ] MSE7.EXEはHTMLをデバッグする目的で存在しますので、ADSI関連のスクリプ トだったりするとインスタンスの生成そのものがエラーとなりますが、スク リプトをHTML中のブロックではなく単独JSとして作成し、開けばコードヘル パーが効いた状態となります。ブレークポイントはCSCRIPT.EXEの規則に則る 必要があるのですが、面倒なときはわざとエラー行を書くとMSE7.EXEがデバ ッガとして起動します。
95 名前:hidebou mailto:sage [2010/03/19(金) 07:24:04 ] MSE7.EXEは同じofficeのバージョンでもOSやIEのバージョンで振る舞いがすこ し違うことにも注意が必要ですから、ご自身の環境でファイルの拡張子をhta にしてみたりして動作を確認してください。 私が「HTML Applicationは生産性が高い」と考える最大の理由はこのMSE7.EXE が存在することなのです。「救急オフラインユーティリティー」は250Kほどの ファイルですが、MSE7.EXEが無かったらC++で全部書いた方がメンテナンスしや すいという判断をしたでしょう。
96 名前:hidebou mailto:sage [2010/03/19(金) 16:57:23 ] MSE7.EXEについて簡単な情報ページを ttp://www5a.biglobe.ne.jp/~javajava/ari/ に作成しました。もしMicrosoft Officeをお持ちの方でMSE7.EXEを使ったこと が無いという場合は一見していただければ概要を理解していただけると思います。 MSE7.EXEはHTML用のVisual Studioなんです。
97 名前:hidebou mailto:sage [2010/03/19(金) 22:31:04 ] 誤解がないように「単一EXE」手法について報告します。HTABOXコアはCD等の 書き込み不能媒体で配布されても動作することをガイドラインとしています。 したがって単一EXE格納はすべてリソース格納したres://経由とする予定です。 また、この機能はエンコードを同時に行われると考えています。
98 名前:hidebou mailto:sage [2010/03/20(土) 00:01:14 ] どうも書き込んだあとに日本語不自由なことに気づいてすいません。 ですから旧HTABOXのように何でもかんでも格納できるものにはなりません。 SRCでパスを指定するものなら格納してリソース参照に置き換えられると考 えています。
99 名前:hidebou mailto:sage [2010/03/20(土) 07:42:08 ] 現時点での構想では エンコード動作時にソースHTML、画像等、アイコンをリソース格納し、 エンコード済みのHTABOXコアは著作保護の為に再利用できないという ルールがいいのではないかと考えています。
100 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 11:10:47 ] ホームページのリニュアールおめでとうございます。興味深く読ませていただき ました。昨今、書店ではプログラムに関する書籍も減り、為になる書籍を手にす ることが少なくなりました。hidebouさんのホ-ムページは、とても参考になりました。
101 名前:hidebou mailto:sage [2010/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="www.w3.org/TR/REC-html40 "> は決まり文句みたいなので出来るだけ早く対応したいと思います。
102 名前:hidebou mailto:sage [2010/03/20(土) 21:33:33 ] こんな小さなモジュールでもリリースした時は、私のPCの上だけで幻を見ていて 「動かないよ!」「エラー後にPCが不調だよ!」「こんなん使えないよ!」の 嵐になるんじゃないかとうなされていたのですが、暖かく見守っていただいて ありがとうございます。 前職では若くしてお亡くなりになる方を多く見たものですから、この年まで生 きることができ、しかも私の書いたものに興味を持っていただける幸運に感謝 しております。
103 名前:hidebou mailto:sage [2010/03/21(日) 11:56:14 ] VML使用のHTMLエンコードに対応しました。バージョン1.30を呼称します。 ttp://kuroda.bglb.jp/htabox/htaboxcore.lzh サーバーが返すエンコードの仕様もやや変更されましたので バージョン1.20以前のエンコーダーはサポート外となります。
104 名前:hidebou mailto:sage [2010/03/21(日) 12:14:23 ] VMLはIEの独自規格のグラフィック描画規格ですが、HTML Applicationの場合 IE以外のエンジンで動かすことは無いわけですので積極的に使用すべきです。 FrontPageやMSWORDでHTMLをデザインすればワードアートやオートシェイプを 画像ファイル無しに使用することができます。
105 名前:hidebou mailto:sage [2010/03/21(日) 16:39:42 ] ん〜ん。せっかくFrontPageでワードアートのあるページを作成してもMSE7が 余計な変換を自動的に行うものですから痛し痒しのジレンマに陥りますね。 FronPage内のMSE7ならそれは起こらないのですが、今度はActiveXできない。 逆にMSE7でベースを作成し、最後の装飾としてワードアートを追加するのは ありかもしれません。
106 名前:hidebou mailto:sage [2010/03/22(月) 09:53:55 ] バージョン1.20ではHTMLタグのinnerHTMLだけをエンコードしていたのですが、 1.30ではソースコード全体をエンコードし<html encode='true'></html>の中 に保存しています。したがってVML等HTMLタグのアトリビュートが必要な場合 でも破綻しないことになります。また、HTMLタグの外に何かが書いてあった 場合もそのまま反映されます。
107 名前:hidebou mailto:sage [2010/03/22(月) 11:29:55 ] いよいよ兵糧が底をついたので、しばらくビジネスに専念します。 「救急オフラインユーティリティー」はあまりにベタな名称なので 「Medical information analysis system for ambulances」の頭文字をとって MIASAサービスと名づけました。HTABOXシステムはクライアントCPUで動く オンラインサービスを実現できますので20K程のGETにレスポンスするだけで 250Kを超えるスクリプトを認証付きでコントロールできるはずです。 ttp://kuroda.bglb.jp/miasa/index.htm
108 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 12:26:35 ] 疑問なのですが、どうして html タグをエンコード時に残しているのでしょうか。 そもそも、なぜテキストベースでバイナリデータではないのでしょうか。
109 名前:hidebou mailto:sage [2010/03/22(月) 17:12:31 ] >>108 「html タグをエンコード時に残している」のは<html xmlns:v="....をそのま ま再現する必要からです。 「バイナリデータではない」のはHTTP経由で破綻しないこと、HTML中のコメン トとしても破綻しないが要求されるからです。
110 名前:hidebou mailto:sage [2010/03/22(月) 17:18:03 ] 大変素晴らしい質問に、不自由な日本語でお答えしてすいません。 回答が的を得ていない場合は気兼ねなく質問してください。
111 名前:hidebou mailto:sage [2010/03/23(火) 10:27:44 ] 結局VMLがらみで私のとった選択は MSWORDにVMLを置きPNG代替オプションオンでフィルター後HTMLを出力し、 生成された画像フォルダからPNGをコピーしMSE7で<IMG>参照するという 先祖がえりした手法になりました。静的なVMLはこれが一番確実ですね。
112 名前:hidebou mailto:sage [2010/03/23(火) 23:35:19 ] HTABOXシステムは非力なネットワーク環境、非力なサーバーを有効活用しよう という思想の元に開発したのですが、>>38 で説明したようにHTABOXコアだけで も自宅サーバーでビジネスができます。 私なりの小規模サーバーに対する考え方を説明します。参考になる部分もある かも知れません。
113 名前:hidebou mailto:sage [2010/03/23(火) 23:39:26 ] 前職では通信関係つまり119番通報を受ける部署にいたこともあるのですが、 絶対に中断が許されない業務の場合「現有」「予備」という二重体制をしき ます。この場合「予備」は非常用ですのでやや能力が劣ってもかまいません。
114 名前:hidebou mailto:sage [2010/03/23(火) 23:46:59 ] 自宅でサーバーを運用する場合もビジネスであるなら必ず「現有」「予備」 の体制をしくべきです。私の場合はNECが投売りした14kのサーバーを迷わず 2台購入しました。若干のオプションを加えても50kにおつりがありました。 現在は実験機と本番機という扱いですが、将来は両者を定期的に同期し、 障害がなくとも切り替えて、有事に備えることになります。
115 名前:hidebou mailto:sage [2010/03/23(火) 23:54:25 ] 回線も二つ契約しています。ひとつは家庭用でひとつは業務用ですが、ルータ はNTT純正のものとし、プロバイダ、回線、ルータに障害が発生した場合は 単純につなぎ変えて80番を開ければ対応できるようにしています。こういった 柔軟な対応が可能なのはダイナミックDNSを選択しているからです。
116 名前:hidebou mailto:sage [2010/03/24(水) 00:07:47 ] サーバーでネットワークサービスを提供する場合、障害が発生した場合の シュミレーションは大変重要ですし、復旧にかかる時間を短縮する最も単 純で確実な手法が「安いのもを2つ用意する」ことだと考えています。
117 名前:hidebou mailto:sage [2010/03/24(水) 08:55:40 ] 蛇足になりますが、私は古い人間なので枯れたソフトしか使いません。 具体的には非.NETであることをガイドラインとしています。 オークションでWindows2000ServerやSQL2000Serverがあったら是非確保して 情報が存在するうちにその取り扱いを研究することをお勧めします。
118 名前:hidebou mailto:sage [2010/03/24(水) 22:28:39 ] ついでですから、私がなぜサーバーサイドからの動的なプログラムの配布にこ だわるのかについてお話します。テーマは「実行権は誰のものか?」です。 従来の静的に配布されたなアプリケーションの認証は、認証前と認証後のバイ ナリを比較検討されてしまえば、必ずクラックされる運命にあります。しかも WWWの普及によって、たった一人のクラッカーがそれを発見すれば、瞬く間に その手法は周知の事実となってしまいます。
119 名前:hidebou mailto:sage [2010/03/24(水) 22:41:02 ] 私が思うに、これを解決する方法は「サーバーのレスポンスがなければ完全な 実行体とならないプログラムを配布すること」だと考えます。 今までもソフトウエアの多くは「販売」ではなく「ライセンスの供与」だった わけですが、実際にその契約形態は絵に書いた餅でライセンスを供与した側が 「今日から使っちゃだめ!」と言ったところで意味を成さなかったわけです。
120 名前:hidebou mailto:sage [2010/03/24(水) 22:53:53 ] 「実行を許可」する権利を製作者が保持できなければ、本当の意味でのライセ ンス契約は成立しませんから、今後のソフトウエア配布は総てHTABOXコアのよ うなものになって行くと考えます。使う側からしてみれば息苦しく感じるかも 知れませんが、結局、いくばくかの収益が上がらなければソフトウエアは生ま れませんし、しつこいようですが、それを目指す「人」も育ちません。
121 名前:hidebou mailto:sage [2010/03/25(木) 01:54:55 ] やがてコンピューターにキーボードが付いていたという事が昔話になるでしょ う。そのこと自体は必然でしょうが、そのプログラミング環境規格は単に企業 の利害で決定されてしまうでしょう。中間言語やスクリプトでどんなに優れた アプリケーションを書いても、直ぐにそのエッセンスを横取りされるでしょう。 私がどんなにあがいてもそんな未来がそこまで来ています。
122 名前:hidebou mailto:sage [2010/03/25(木) 22:05:52 ] スクリプトでアプリケーションを書くときに最も重要な情報はCOMのタイプラ イブラリ情報です。通常はMSE7のオブジェクトブラウザでひとつの定数とか 関数を眺めるしかないわけですが、複数のオブジェクトが絡み合う場合、全体 像が見えないと混乱します。私は自分でタイプライブラリ解析ツールを書いて 結果をソースに貼り付けてスクリプトを書きます。scrrun.dllのデータです。 ttp://www5a.biglobe.ne.jp/~javajava/ari/Scripting.txt
123 名前:hidebou mailto:sage [2010/03/25(木) 22:20:56 ] Scripting.txtを見てもらえば解りますが、IDispatchインターフェースの継承 クラスには、GetTypeInfo(UINT as itinfo, UI4 as lcid, VOID as pptinfo) return VOID が存在します。スクリプトからこれを呼び出すことはできませんが、C++なら ITypeInfoポインターからこの情報を引き出すことができます。
124 名前:hidebou mailto:sage [2010/03/25(木) 22:36:58 ] 私はこの情報ファイル無しにスクリプトを書けません。これが無いと誰かのス クリプトを丸写ししてなんとか動くけど、その理由はさっぱり解らないという 状態になると思います。今書いているものが一段落したらタイプライブラリ解 析サービスも開始しようと考えています。 msxml3.dllです。眺めているとプログラムのアイディアが浮かんでくるかも? ttp://www5a.biglobe.ne.jp/~javajava/ari/MSXML2.txt
125 名前:hidebou mailto:sage [2010/03/26(金) 06:34:31 ] この2つのタイプライブラリはほとんど総てのアプリケーションに必須な存在 だと思います。特にXMLは劇的にスクリプトを設計しやすくします。 単純な例として自分のPCの全ファイル情報を一旦取得し、あるアプリケーショ ンがインストールされた後と比較するプログラムを書くとしましょう。
126 名前:hidebou mailto:sage [2010/03/26(金) 06:42:05 ] 通常は情報を構造体に保持して再帰的に検索したりするわけですが、作成途中 で、構造体が正しく情報を保持しているのかを確認したくなります。 この時設計の段階から構造体ではなくXMLDOMにデータを保存すれば、saveする だけで全情報を確認できますし、データの永続化にもなります。また、特定の 条件のファイルを検索する場合もXPathを指定した柔軟な条件設定ができます。
127 名前:hidebou mailto:sage [2010/03/26(金) 06:55:12 ] この辺の考え方やテクニックをこれからHTML Applicationを書き始める人向け に解説して公開することは重要だろうと考えています。正直そういった解説が なかったので、HTML Applicationは書きやすいはずなのに、情報が無くて使え ない手法。悪い言い方をすればアンダーグラウンドな手法と思われているのだ と思います。
128 名前: ◆grDYeooZwg mailto:sage [2010/03/26(金) 08:49:59 ] 一応、dojoで3D描画とかグラフを描画できるライブラリとかあるけど・・・。 3D svn.dojotoolkit.org/src/tags/release-1.4.3/dojox/gfx3d/tests/test_cube.html ドローソフト svn.dojotoolkit.org/src/tags/release-1.4.3/dojox/drawing/tests/ グラフ svn.dojotoolkit.org/src/tags/release-1.4.3/dojox/charting/tests/ Flashを使わないのがミソ。たしか、VMLやShilverLightを使っていたと思った。(FFではSVG) svn.dojotoolkit.org/src/tags/release-1.4.3/dojox/charting/tests/test_chart2d_updating.html アニメーションもできるぞ。
129 名前:hidebou mailto:sage [2010/03/27(土) 04:15:39 ] >>128 貴重な情報をありがとうございました。参考にさせていただきます。 それぞれの分野で突き詰めた研究をしている方もいるものだと改めて感心しま した。いつか子供たちがプログラミングに興味を持つきっかけとなるような簡 単なグラフィック命令系を追加できればと夢見ております。
130 名前:hidebou mailto:sage [2010/03/27(土) 04:28:03 ] 小学校の図書室にプログラミング入門みたいな本があったのですが、子供たち が数値演算や文字列置き換えなんかに興味を示すはずがありませんから、グラ フィック系の単純なプログラムを解説していました。しかしそれは既に絶滅した N88-BASICでのプログラミングだったのです。
131 名前:hidebou mailto:sage [2010/03/27(土) 04:34:03 ] 私はその事実を知っていろいろな事を考えさせられました。 教員に開発言語の推移を理解する能力があるのか?必要なのか? プログラミングという概念を理解するだけならその本は有益なのか? しかし、どう考えても実践不可能なサンプルを目を輝かせた子供たちが見るか と思うと、胸が痛みました。IEがあるかぎり有効な、単純なグラフィック命令 を作って子供たちに提供したいという想いはそんな動機なのです。
132 名前:hidebou mailto:sage [2010/03/27(土) 15:55:43 ] 私は辛辣な言葉で小学校におけるコンピューター教育の現状を批判する文字列 を書いて、投稿せず削除しました。理由は投稿しても意味が無いからです。 いつか子供たちが自分で作った落ちゲーやシューティングを友達とワイワイ 言いながら書き換えている姿を見たいと思いますし、それを可能にする環境 作りも私の使命だと考えています。
133 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:58:56 ] 初心者向け新言語 Small Basic スレ pc12.2ch.net/test/read.cgi/tech/1256536933/ これはまだ日本語版が無いしhidebou氏がお嫌いらしい.netベースだから難しいね
134 名前:hidebou mailto:sage [2010/03/28(日) 18:03:02 ] >>133 貴重な情報をありがとうございました。 いろんなアプローチがあることは大変いいことだと思います。 HTABOXコアは初心者がとっつきやすくという事と、玄人が使えるということを 両立させたいという方向性で考えています。これは難しいことなんですけれど 小窓からWIN32APIやCOMの仕組みが見える状態がいいのかなぁっと思います。
135 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:25:42 ] 昔はよかった… ttp://kmaebashi.com/zakki/lang0003.html いっその事この人みたいに新しい言語を作っちゃうのも面白いかも
136 名前:hidebou mailto:sage [2010/03/28(日) 21:07:17 ] >>135 とても興味深いサイトですね。 「言語から」という発想は魅力的ですが、最後はC++やってもらいたいなぁっと いうのが私のスタンスになるでしょうか。HTABOXコアの特色はWEBプログラミン グとローカルなプログラミングを融合させようという試みでもあります。 HTMLとJavaScriptを習得すればWEBページも書けますよね。最もずるい方法が これじゃないかなぁっと思うんです。
137 名前:hidebou mailto:sage [2010/03/29(月) 09:35:45 ] HTML Applicationは「ずるい」よりも「反則技」という表現が適当かも知れ ません。初期XPの「アプリケーションの追加と削除」はこれで書かれていた ほどOS機能の一部だったわけですが、書きやすく強力なものですから悪用さ れて今日に至っているわけです。
138 名前:hidebou mailto:sage [2010/03/29(月) 09:49:24 ] HTABOXコアはEXEの起動を基点としますが、「書きやすく強力」が再び「悪用」 につながる可能性が無いとは言い切れません。その場合Windows環境全体に及 ぼす被害は甚大なものになるだろうと予測されます。その意味からエンコード 動作は私のサーバーで制御できる状態としていますし、今後はアカウント登録 したユーザーのみが利用できるサービスとなる予定です。
139 名前:hidebou mailto:sage [2010/03/29(月) 14:38:21 ] また話題が変わってしまいますが、多くの書籍でC++を紹介する場合iostream を使ったプログラミングを行うわけですが、あれは入門者に混乱をもたらすだ けで、むしろ入門者を蹴落とすトラップに思えてしまいます。 C++は演算子を再定義して自分が使いやすい言語を作れる言語と表現すること ができると思います。iostreamの構造は確かに対称的で美しいのですが、私は 必要だと思った事はありません。誰かが作った一つの例とて眺めるだけです。
140 名前:hidebou mailto:sage [2010/03/29(月) 14:49:25 ] オブジェクト指向の解説に至っては殆どの書籍が間違っています。入門者が 抽象クラスを最初から設計できるはずがありません。まず「猫」というクラス を書き、次に「犬」というクラスを書きます。そこで同じ事を二度書いている 部分に気づくはずです。つまり複数の具象クラスを書いて、そのメンテナンス が容易ではないことを理解できれば、共通点である「哺乳類」クラスの必要性 を感じるはずです。
141 名前:hidebou mailto:sage [2010/03/29(月) 15:24:48 ] 抽象化とは単に同じ事を何度も書かない工夫と捕らえて差し支えないと思い ます。「哺乳類」クラスがあれば新たな「虎」クラスは最小限のコーディング で済みますし、すべての具象クラスに新たなメソッドを追加する場合でも基底 クラスが知りえる情報で処理可能ならば「哺乳類」クラスに追加するだけで 済むからです。
142 名前:hidebou mailto:sage [2010/03/29(月) 15:34:12 ] 今は貧乏暇無しで、そんな余裕はないのですが、仮称「逆説C/C++解説」みた いなサイトを書いてみたいと思っています。ちょっとした言い回しの違いで 本来労力やミスを軽減するために存在するC++の規格が難解で使いにくいもの と誤解されているケースがあるように思うからです。
143 名前:hidebou mailto:sage [2010/03/29(月) 19:53:41 ] どうも読み返すと意味が変なこと書いちゃってますね。 140:は「オブジェクト指向の解説」->「クラス継承の解説」です。 お詫びして訂正いたします。
144 名前:hidebou mailto:sage [2010/03/30(火) 09:24:55 ] 話のついでですから「オブジェクト指向」についてなんですが、これは難しく 考える必要は全く無くて「単にコピペしやすから」と考えれば素直に受け入れ られると思うんです。 個人のプロジェクトでクラス定義をヘッダファイルにして本体と分ける必要は ありませんからclass hoge{};の中に全部を書けば貼り付けることが容易です。
145 名前:hidebou mailto:sage [2010/03/30(火) 09:47:04 ] JScriptの場合、例えばファイル入出力オブジェクトを作れば、こまごまとし た関数を選んで貼り付けるよりもオブジェクトをコピペしてReadとかWriteな んていう直感的な名前のメソッドを呼んだ方が可読性が向上しますし、 オブジェクトのバグが発覚して修正を行った場合も、それを使用する他のプロ ジェクトへ貼り付け易いわけです。
146 名前:hidebou mailto:sage [2010/03/30(火) 10:05:10 ] プログラマーは「どれだけ横着ができるか」という事に貪欲でなければなら ないと思うんです。そうでないとコーディングテクニックは向上しませんし、 結局、長大なプロジェクトになった時、自分が作ったスパゲッティーで具合 が悪くなってしまいます。(多分に自戒の意味を込めて)
147 名前:hidebou mailto:sage [2010/03/31(水) 15:49:24 ] HTMLダイアログの表示でダイアログ自体の生成に時間がかかる場合、IEアイ コンがそのまま表示されてしまう現象を認識しました。サンプルにあるよう なそっけないダイアログでは発生しないようです。これはちょっと原因の 究明に時間がかかるかもしれませんが次のマイナーアップデートで対応した いと考えています。
148 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 17:13:19 ] C++はさぁ、一番最初に #include ... #include ... // この辺は簡単に理解できる using namespace std; // まったく理解不能 int main() // Cで関数の知識が無いと理解不能 { cout << "Hello World!" << endl; // いきなり行儀の悪い演算子オーバーロード、まったく理解不能。 // しかもまともな説明なしであっさり通り過ぎる } 初心者は拒絶反応起こすって
149 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 17:20:24 ] jsから入ったからmainとかはわかる includeも、そこにそのファイルの中身を挿入するんだろ? でもusing namespace std;はさっぱりわからんわ。
150 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 22:26:26 ] JavaScriptでWindowsアプリ作成というのはNILScriptと似てるな pc12.2ch.net/test/read.cgi/tech/1270139718/
151 名前:hidebou mailto:sage [2010/04/03(土) 08:40:44 ] test
152 名前:hidebou mailto:sage [2010/04/03(土) 08:56:34 ] いつもの接続プロバイダがアクセス禁止対象となっていたので面食らってし まいました。 using namespaceは文字通り「名前空間を使いますよ」なわけですが、私は本 番ソースコードでこれを使いません。例えばstd::stringと書いた方が読みや すいからです。名前の衝突が起こらなければそもそも名前空間を使う必要も ないわけですが、Cで大きなプロジェクトを書くと変数や関数に直感的な名前 を付けたつもりが、既に使われていて、新たな名前を作ることが可読性を低 下させる場合は便利な規格です。
153 名前:hidebou mailto:sage [2010/04/03(土) 09:18:40 ] >>150 私の欠点は自分が興味を持った事へはとことんダイブするんですが、他の方が 何を書いているのかを全く知らないことです。ここでこういう貴重な情報を教 えていただけると大変助かります。ありがとうございました。 NILScriptについてはこれから勉強させていただきます。 HTABOXコアのスタートはMSHTA.EXEの置き換えな訳ですが、歴代のMSHTA.EXE はそのサイズから想像できるように「Hello World」程度のことしかしていま せん。ならば「Hello World」プラスアルファ程度のコードでHTML Application をより自由なものにできるという実に横着な発想なわけです。
154 名前:hidebou mailto:sage [2010/04/03(土) 09:36:26 ] この横着には私なりの戦略がこめられていて、OSが変移しようがIEが存在すれ ば動くことを意味します。プログラムをリリースして、それがミドルウエアで ある場合、サポートする総てのOSを手元においてテストする必要があるわけで すが、MSHTA.EXEの為に用意されている環境プラスアルファなら枕を高くして 眠れるだろうという安直さで書かれています。
155 名前:hidebou mailto:sage [2010/04/03(土) 22:42:38 ] 今回はbiglobe山形がアク禁になった代わりにASAHIがアク禁解除になったので こうして書き込みできていますが、両方アウトならダンマリになってしまいま すね。私は携帯電話という物が大嫌いですから息子にでも頼んでここに事情を 報告するしかないでしょうね。 でもこうして他人のサーバーに好き勝手なことを書いて、多くの方が目を通し ていただけること自体には感謝しています。2chって素敵な文化だと思います。
156 名前:hidebou mailto:sage [2010/04/04(日) 23:49:42 ] これからWindows上でプログラミングを書こうと思っていらっしゃる方向けに 私が思う最短経路を説明したいと思います。勿論、遠回りがいけない事である とは思いません。私自身何年も遠回りをしたのでこういう意見を持つことがで きたのは事実ですから、いろいろな手法を体験し早期にその長所、短所を見抜 く事が理想ですが、老いぼれの独り言とお許しください。
157 名前:hidebou mailto:sage [2010/04/05(月) 00:02:13 ] アプリケーションはユーザーの操作を認識する手段を持たなければなりません。 そうでない物も存在しますが、多くの場合操作対象のファイルパスやURLや処理 におけるオプション等を実行前に指定してもらうためのユーザーインターフェ ースが必要です。これは皆さんが見慣れているメニューやボタンです。 これは多くの開発環境で見た目通りに部品をドラッグして作成できますが、一旦 作成したデータを再利用しようとすると、使いにくい事に気づきます。最悪の 場合、自動的に生成された位置情報データがクラッシュし、最初から作り直さ なければならない状況に陥ります。
158 名前:hidebou mailto:sage [2010/04/05(月) 00:11:18 ] かと言って、総てのコントロールをソフトウエア的にソースで生成しようとす ると一旦実行して見た目を確認し、数値を変化させてまた見た目を確認すると いう作業を総てのコントロールについて行わなければならず、これも非効率的 です。 HTMLエディタでWEBページとしてユーザーインターフェースを設計すればこの 問題をスマートに解決できます。
159 名前:hidebou mailto:sage [2010/04/05(月) 00:25:14 ] HTMLに関する知識は貴方が世界に向かって何かを発信する時に必ず必要になる 知識でもあります。なぜなら、貴方の作ったプログラムを実行する前にそれを 紹介する貴方のWEBページが評価されるからです。 HTMLに関する情報を収集する場合、情報の発信用に他のブラウザを対象とする のかアプリケーション用にIEのみを対象とするのかの判別をすることは重要で す。officeが完全インストールしてあれば\1041\HTMLREF.CHMが存在しますから ディスクトップにショートカットを作成して常に参照できるようにすべきです。
160 名前:hidebou mailto:sage [2010/04/05(月) 00:36:42 ] アプリケーションの動作を記述するのは多くの場合スクリプトで足ります。 「scd56jp.exe」で検索しWindows Script V5.6 ドキュメントを入手してく ださい。これも即座に参照できるようディスクトップにショートカットを 作成すべきです。 スクリプトに関する情報を収集する場合、HTTP経由の制約されたセキュリ ティー環境なのか、HTAやHTABOXコアのように自由にファイル入出力が許 されている環境なのかを認識することは重要です。
161 名前:hidebou mailto:sage [2010/04/05(月) 00:52:28 ] スクリプトはWindowsに存在するCOMコンポーネントを呼び出す事によって多く の複雑な処理を簡潔な記述で行う事ができます。ファイル入出力、XML、HTTP データベース、ADSI、メール送受信....etc この時、是非COMのタイプライブラ リを俯瞰してください。その情報を提供する努力を私も行います。
162 名前:hidebou mailto:sage [2010/04/05(月) 01:06:05 ] 最後に既存のCOMコンポーネントでは実現できない機能を必要とした場合、 オリジナルなCOMDLLをC++で作成してください。HTABOXコアの場合はレジス トリに登録する必要のないプライベートコンポーネントのDLLでも機能します。 C++のソースコードを不安なく書けるようになるには確かに時間が必要かも 知れませんが、速度や柔軟性の面において最良のパフォーマンスを発揮する ことができます。既存のCOMでは逆に考えれば「こういう機能が必要」と予測 されている領域から出ることができませんが、WIN32APIを探検すれば誰も 見たことの無いマジックを披露することもできるでしょう。
163 名前:hidebou mailto:sage [2010/04/05(月) 01:39:09 ] 最後に今後はアプリケーションをリリースする場合、サーバーをコントロール するテクニックが問われる時代となります。従来は一旦リリースしてしまえば 駟馬も追う能わずで製作者側が不利なものでも取り消しは効きませんでしたが サーバーに紐を付けた状態でリリースすれば、リアルタイムでコントロール可 能です。
164 名前:hidebou mailto:sage [2010/04/06(火) 09:14:06 ] 毎度の事ですが読み返すと不自由な日本語ですいません。 私ごとですが、スランプに陥っています。ただただ休みたいというのが本心で すが、それでは干上がってしまいますのでエンコード後のデバッグという辛い 作業をしなければなりません。何か私が考える以上にエンコード後には制約が 存在するようです。解りしだいご報告します。
165 名前:hidebou mailto:sage [2010/04/06(火) 11:10:13 ] まず、エンコード後にdocument.charsetがunicodeになってしまう問題の解決 策ですが、非エンコードスクリプトブロックで明示的にshift_jisを指定して ください。 <script language="javascript" onreadystatechange=""> document.charset = "shift_jis"; </script>
166 名前:hidebou mailto:sage [2010/04/06(火) 11:19:03 ] この問題を考えながら気づいたんですが、document.charsetはなぜか公式解説 であるHTMLREF.CHMには存在しませんね。この場合IE7のタイプライブラリを 確認することになりました。ちょとサイズ大きいのですがIE7のタイプライブ ラリを置きます。 ttp://www5a.biglobe.ne.jp/~javajava/ari/MSHTML.txt
167 名前:hidebou mailto:sage [2010/04/06(火) 14:03:12 ] このタイプライブラリにおける 「MSHTML.HTMLDocument」がdocumentのディスパッチです。ここに PROPERTYPUT HTMLDocument.charset return BSTR PROPERTYGET HTMLDocument.charset return BSTR が存在するので読み書き可能な文字列プロパティーとしてcharsetが存在する ことがわかります。
168 名前:hidebou mailto:sage [2010/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 mailto:sage [2010/04/06(火) 22:31:53 ] 現バージョンではデコード前にonreadystatechange=""を実施していますので デコード後に実施するように変更します。上記ソースのalert("ok");の部分を エンコードスクリプトブロック中の任意関数呼び出しに置き換える事ができる わけです。これによりユーザーの操作を待たずともグローバルに参照するオブ ジェクトを無警告でActiveXObject生成することができます。
170 名前:hidebou mailto:sage [2010/04/07(水) 16:17:14 ] 現状のエンコード規則は生成されたオブジェクトのvtが9の場合関数呼び出し 以外のInvokeを禁止しているのですが、これだと自由度がなくてコーディング しにくいですね。typeofでfunctionが返された場合のみ厳格にして全体に緩い 規則に変更しようと思います。 ところでVBScriptはmainという関数があってもalert(main)とできませんから もともとソース見えにくいという認識でよろしいのでしょうか?
171 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 17:04:17 ] >>160 WSHの最新バージョンは5.8なのにドキュメントが更新されてないって変だよなぁ
172 名前:hidebou mailto:sage [2010/04/07(水) 19:19:26 ] >>171 まったく個人的な推測ですが強力すぎるからWSHを使って欲しくないと考えて いるんだと思います。もっとおとなしい方法を使ってほしいんでしょうね。
173 名前:hidebou mailto:sage [2010/04/08(木) 10:51:21 ] ですからcscript.exe、wscript.exe、mshta.exeがWindowsに付属しなくなる日 が来てもおかしくないと考えています。HTABOXコアはその日に備えた対策という 意味もこめられています。
174 名前:hidebou mailto:sage [2010/04/08(木) 16:15:29 ] 隠蔽コード関数中にwindow.showModalDialogという表現をするとエラーとなり windowを省略したshowModalDialogという表現だとエラーとなりません。 美しくない仕様ですが、今のところ許容していただくしか無いようです。
175 名前:hidebou mailto:sage [2010/04/09(金) 06:30:18 ] ダイアログのスクリプトをエンコードした場合dialogArgumentsの扱いにミス がありました。再構築時に読み取り専用であるdialogArgumentsを退避させて 別名参照させる時に同名大文字変数としていましたが、この局面では大小の 文字は区別されていないので読み取り専用への書き込みと判断されて致命的 なエラーで停止します。ちゃんと別名にすることで解決できたようです。
176 名前:hidebou mailto:sage [2010/04/09(金) 06:46:39 ] ダイアログに関してもうひとつ注意点ですが、メインウインドウが非アクティブ になった原因がHTMLダイアログの表示であった場合HWNDを捕捉して制御すると いうアルゴリズムですから、ダイアログ中のActiveXで警告ダイアログが表示さ れた場合は非アクティブになった原因が警告ダイアログとなるので制御しません。 現時点でこれは仕様ということにします。
177 名前:hidebou mailto:sage [2010/04/09(金) 22:33:45 ] 174:の問題はIDispatchExのまま制御することで解決できそうです。 関数をIDispatchExのまま制御すればオブジェクト内の関数も同じ扱いで制御 できるので、従来オブジェクトの参照や列挙まで制限していたものを緩め、 関数コードのみを保護できそうです。
178 名前:hidebou mailto:sage [2010/04/10(土) 10:03:14 ] 隠蔽スクリプトブロックは隠蔽という目的以外にもActiveX警告ダイアログ を表示させない目的でも使えます。例えばエンコードスクリプトグローバル var FSO = new ActiveXObject("Scripting.FileSystemObject"); が評価されても警告ダイアログは表示されず、初期化された変数FSOへの参照 はあらゆるスコープから有効です。 ただし、button等のHTMLエレメントonclickで直接代入を行う変数は遅延出現 する前に解決されるので非エンコードブロックで宣言しなければなりません。 関数呼び出しの場合こういった配慮は必要ありません。
179 名前:hidebou mailto:sage [2010/04/10(土) 13:25:38 ] VBScriptはJavaやC++と同時に眺めるとめまいがするので一切書かない人だっ たのですが、改めて言語仕様を眺めてみるとなかなか興味深いですね。 特にClassのTerminateイベントは魅力的です。JScriptではデストラクタが書 けないのでこれは羨ましい。VBScriptにはソースを暴露するtoString()も無い わけですから私自身VBScriptを再評価すべきかもと思っています。
180 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 17:27:56 ] VBScriptのクラスはプライベートメンバーが使えるのもいいよね 継承をサポートしてないのが糞だけど元になったVBにも無いから仕方ない (VB.NETなら継承使える) JScriptは delete Function.prototype.toString; を最初に入れとけばソース表示されないよ
181 名前:hidebou mailto:sage [2010/04/10(土) 17:45:11 ] >>180 「継承できない」なるほど気づきませんでした。 delete Function.prototype.toString;も大変賢い方法だと思います。 別インスタンスからtoStringを復元されないかを実験したいと思います。
182 名前:hidebou mailto:sage [2010/04/10(土) 18:14:27 ] delete Function.prototype.toStringは宣言したHTML中では有効ですが攻撃者 がダイアログを追加し、有効なtoStringを追加するとソースを見ることができ るようです。実験に使用した用本体側HTMLとダイアログ側HTMLを書き込みます。
183 名前:hidebou mailto:sage [2010/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 mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/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 mailto:sage [2010/04/10(土) 19:49:59 ] ここでのポイントはダイアログ側での func.toString = Function.prototype.toString; な訳ですが、これをできなくしているのがHTABOXコアの隠蔽原理です。 toStringを踏み潰した後にDISPATCH_METHOD以外は無視するよう言い聞かせて おけばプロパティーの追加は不可能になるからです。
187 名前:hidebou mailto:sage [2010/04/10(土) 19:55:39 ] >>185 確かに実際には「delete文を削除」は有効ですが、エンコードされた後にと いうイメージで実験させてもらいました。ダイアログの追加は改編というよ り単なる追加で可能だからです。
188 名前:hidebou mailto:sage [2010/04/10(土) 20:03:14 ] >>185 HTABOXコアでは右クリックを無視していますが、右クリック動作を書いて メニューを表示させるというアイディアは思いつきませんでした。今後の 課題としたいと思います。
189 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 20:17:42 ] これってプロセスをサスペンドして全メモリ領域からスクリプトっぽい文字列を検索すればソースが読めちゃったりしないの?
190 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 20:41:15 ] >>188 HTML5はmenu要素でコンテキストメニューを作れるらしいね いつIEで使えるようになるかは知らないけど www.html5.jp/tag/elements/menu.html
191 名前:hidebou mailto:sage [2010/04/10(土) 20:53:36 ] >>189 とてもいい質問だと思いますが、詳しくお答えできないという立場をご理解 ください。 >>190 HTML5ならIE9で可能となるのかも知れませんね。私の眠っているVISTAを復活 させる必要があります。
192 名前:hidebou mailto:sage [2010/04/11(日) 09:54:26 ] エンコードスクリプトからダイアログを呼び出す場合、引数に具体的オブジェ クトを渡すよりもdocument全体を渡した方が安全のようです。 ダイアログ側で引数オブジェクトを変数格納する場合非エンコードブロックで var OBJ = dialogArguments.Script.OBJ; とScriptを介した参照で変数を作成し以降は当該変数への操作とするとエラー となりません。
193 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 17:07:19 ] プログラムのことはさっぱり分かりませんが、旧HTABOXを以前から見ていた者です。 スレが伸びているのを機に、HTAをゼロから覚えたいと思います。
194 名前:hidebou mailto:sage [2010/04/11(日) 17:47:40 ] >>193 HTML ApplicationはHTMLを書くという最も重要な技術をアプリケーションに 発展できる素晴らしい手法です。楽しみながら学習してください。 何か解決できない事があったらttp://kuroda.bglb.jp/の掲示板にでも書き込 んでいただければ、お力になれるかも知れません。
195 名前:hidebou mailto:sage [2010/04/11(日) 18:03:22 ] エンコーダー以外の実践的アプリケーションを書いていなかったものですから 実際にダイアログを使ったり、ソース内にオブジェクトがあったりするケース での煮詰めが甘かった事を痛感する日々でしたが、ここに呟いた留意点をドキ ュメントに追加してバージョン1.40をリリースする予定です。 1.40は「実践的なエンコードルールの確立」と位置づけています。
196 名前:hidebou mailto:sage [2010/04/11(日) 23:36:58 ] ダイアログのスクリプトグローバルに var SYSTEM_MENUE = true; が宣言されていた場合、最大化最小化ボタンを付加することとさせてください。 これをダイアログのスクリプトスコープから行おうとすると複数のWIN32関数 を追加しなければならず、取り扱いが煩雑になるという理由からです。
197 名前:hidebou mailto:sage [2010/04/11(日) 23:40:50 ] タイプミスがありました。 SYSTEM_MENUE -> SYSTEM_MENU です。いつもよく確認もせず書き込んですいません。
198 名前:hidebou mailto:sage [2010/04/12(月) 16:07:31 ] MSE7.EXEによるタイプライブラリの確認方法とActiveXドラッグによる自動 コード生成方法についての説明を追加しました。officeをお持ちでまだ利用 したことがない方は是非ご覧になってください。 ttp://www5a.biglobe.ne.jp/~javajava/ari/Page0002.htm
199 名前:hidebou mailto:sage [2010/04/12(月) 16:27:37 ] 実は今日の午前中はtdc.ocxが特定のパターンの時だけハングする現象に悩ま されました。原因はCharSetプロパティーはデフォルトで空であり適確な設定 例えば"shift_jis"が設定されていないと不安定であるという事実でした。 MSE7.EXEでコードをドラッグ生成するとデフォルト値を確認できますので原因 の究明がスムーズだったというわけです。
200 名前:hidebou mailto:sage [2010/04/13(火) 12:00:41 ] 本日中には1.40のドキュメントを書き上げてリリースしたいと思います。 モードレスダイアログをアプリケーションウインドウのように扱えますから よりプログラミングの自由度が増すのではないかと考えています。 しかし、毎回思うのですがプログラミングは楽しいのに説明を書くのは苦手 です。くどい説明がいらないようなプログラムを書くというのは理想ですが なかなかそうもいきません。解りにくかったらどんどんダメダシしてください。
201 名前:hidebou mailto:sage [2010/04/13(火) 15:53:02 ] バージョン1.40の準備が整いました。 ttp://kuroda.bglb.jp/htabox/htaboxcore.lzh ドキュメント(取説)が長くなってきたのでメニューを追加しました。変更点 は「ダイアログの表示」「ソース隠蔽実験」「エンコード時の留意点」を ご覧いただければ判るかと思います。また、sampleのtest4.htmにダイアログ へのシステムメニューを追加したデモがありますので是非ご覧ください。
202 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 17:13:53 ] >>200 仕様をあれこれ考えてる時も楽しいけど 実装する時にはいろいろ妥協が必要なこともあったり
203 名前:hidebou mailto:sage [2010/04/13(火) 17:42:05 ] >>202 自分のためのツールだったらとことん尖がっていてもいいんですが、リリース して使っていただくとなるとその妥協点を見出すことの連続になりますね。 こういったツールって「独りよがり」が一番の敵だと思っています。
204 名前:hidebou mailto:sage [2010/04/13(火) 19:36:12 ] XPのIE7環境で実験してるんですが、親のキャプションにモードレスを重ねて ダイアログをクローズすると親のキャプションの色が抜けてしまいますね。 WM_CLOSEで親へ再描画を促す処理を加えてみたいと思います。
205 名前:hidebou mailto:sage [2010/04/13(火) 20:11:29 ] 逆ですね。ダイアログが表示されても親がアクティブなのでおかしくなるとい う解釈が正しいようです。解決のためにすこし実験プログラムを書く必要があ りそうです。
206 名前:hidebou mailto:sage [2010/04/13(火) 20:29:11 ] ダイアログの加工が終わるまで一旦SW_HIDEしてSW_SHOWしていた事が原因でし た。気づいてみれば本来アクティブなダイアログを非表示としてしまえば親が アクティブになるという単純なミスでした。まもなくファイルを更新します。
207 名前:hidebou mailto:sage [2010/04/13(火) 21:11:14 ] ファイルを更新しました。結果としてダイアログの構築がもたつくと若干ちら つく事になりますが、その対策についてはまた考えたいと思います。
208 名前:hidebou mailto:sage [2010/04/13(火) 22:43:31 ] 再度ファイルを更新しました。ダイアログは構築後に表示されます。 一時的にWS_VISIBLEを剥奪するという手法が円満解決のポイントでした。
209 名前:hidebou mailto:sage [2010/04/14(水) 07:14:12 ] ダイアログにシステムメニューを付けるということはメニューも付ける可能性 があるわけで、WS_EX_CLIENTEDGEを付加しないとメニューとクライアント領域 がのっぺりしてしまいますね。将来は自由にウインドウスタイルを設定可能に したいとは思いますがダイアログのSYSTEM_MENUが宣言されていた場合に関し ては自動的にWS_EX_CLIENTEDGEを有効とさせてください。
210 名前:hidebou mailto:sage [2010/04/14(水) 07:38:10 ] ファイルを更新しました。SYSTEM_MENUが宣言されたダイアログはアプリケー ションウインドウとほぼ同じ3Dで窪んだ外観となります。アプリケーションの ように扱えますが、HTA用ウインドウではなくHTML Dialogですのでセキュリテ ィーの取り扱いに若干の制約があったと記憶しています。
211 名前:hidebou mailto:sage [2010/04/14(水) 09:55:02 ] 呼び出されたダイアログでのActiveX生成時の警告ダイアログについて実験し ていて気づいたのですが、フレーム構成でないアプリケーションはHTA扱いで すから、そこから呼ばれたダイアログもHTA扱いなんですね。 ただしフレーム構成とした場合は子がHTMLでなければなりませんから、そこ から呼ばれるダイアログもHTML扱いになりエンコードしないと警告が出ると いうごく自然な展開なわけです。
212 名前:hidebou mailto:sage [2010/04/14(水) 10:03:31 ] もしHTAが子フレームで構成されていて、子もHTA扱いとさせることができれば さらに自由度が上がることは明白ですが、今後の課題としたいと思います。
213 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:03:16 ] application属性は無効なの? msdn.microsoft.com/library/ms536474.aspx
214 名前:hidebou mailto:sage [2010/04/14(水) 21:10:46 ] >>213 <HTA:APPLICATIONという書き方でエラーとはなりませんがMSHTA.EXEと同様の 機能しか提供できません。作った本人も残念なのですがHTA:APPLICATION中で 使用する機能があれば実装しますので気兼ねなく書き込んでください。
215 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:34:45 ] いや、frameタグのセキュリティ属性のほうです。 <FRAME SRC="SUBFRAME.HTML" APPLICATION=YES >
216 名前:hidebou mailto:sage [2010/04/14(水) 21:43:16 ] >>215 すいません別の意味でしたね。恐らく The APPLICATION attribute can be used only in HTAs. という記述からすると同じ扱いになろうかと思いますが、初めて見る書き方 なので調べてみます。
217 名前:hidebou mailto:sage [2010/04/14(水) 21:59:33 ] 理解できました。有効ですね。子フレーム宣言を <frame name="top" src="page1.htm" APPLICATION="yes"> でセキュリティーがHTA扱いとなるのですね。こんな便利な機能を私はまった く知りませんでした。教えていただいてありがとうございました。
218 名前:hidebou mailto:sage [2010/04/15(木) 00:49:57 ] 極めて今更なんですが、HTA扱いだと何やっても警告出ないんですね。 実は長い間HTMLダイアログベースで同じ事をやろうと研究していた時期があっ たものですから頭こんがらがっていました。結局一人で出来ること、気づくこ とには限界がありますし、私は特にその容量が小さいので今回のようなご指摘 は値千金です。今後ともよろしくお願いします。
219 名前:hidebou mailto:sage [2010/04/15(木) 09:31:30 ] HTABOXコアのダウンロードファイルを更新しました。 exeはそのままですが、ドキュメントとサンプルの誤りを訂正しました。 お礼に差し上げるものも無いのでウインドウスタイル変更についてプロトを 作成したいと思います。HTML系のウインドウはFrameとDocumentにそれぞれ HWNDを持っていますので使いようによっては斬新なことができると思います。
220 名前:hidebou mailto:sage [2010/04/15(木) 09:47:41 ] まずHWNDの取得ですがダイアログの場合取得しにくいので一律に window.FRA_HWND、window.DOC_HWNDで常に参照できるものとします。 GetWindowLong、SetWindowLong、GetSystemMenu、SetWindowPos をWIN32名前空間に出現させればスタイルの変更が可能になるはずです。
221 名前:hidebou mailto:sage [2010/04/15(木) 13:14:36 ] ウインドウスタイルを変更するAPIを追加したサンプルを置きます。 ttp://www5a.biglobe.ne.jp/~javajava/ari/style_test.lzh 機能の追加は単純作業でしたが、適当なサンプルページを作るのに手間取り ました。サンプルではシステムメニュー上の最小化、最大化機能を制御して います。透けてるウインドウとかをサンプルにしたかったのですが、改めて ウインドウスタイル設定の難しさを思い知らされた格好となりました。
222 名前:hidebou mailto:sage [2010/04/15(木) 13:23:00 ] 補足ですが、当初window.FRA_HWNDとしていましたが、単にグローバル変数 FRA_HWND、DOC_HWNDとしています。 GetWindowLong、SetWindowLong、GetSystemMenu、SetWindowPos の各引数は本物と同じです。ただしスクリプトからのプロシージャ取得設定 は危険なのでWindowLong系のGWL_WNDPROCは無視しています。
223 名前:hidebou mailto:sage [2010/04/15(木) 18:29:32 ] ShowWindow関数を追加しその定数もサンプルスクリプトに加えました。
224 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:45:10 ] SetLayeredWindowAttributes もクレクレ
225 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 23:29:28 ] 自分はスキルが無いから、身体に気をつけて頑張って!という感謝の言葉しか思いつかない・・・
226 名前:hidebouの代理 mailto:sage [2010/04/16(金) 00:02:21 ] ついに両回線ともアク禁になってしまいました。1週間くらいは ROM状態でしょうか。書き込みに対するレスは ttp://kuroda.bglb.jp/post/index.htm に書きます。ご迷惑おかけします。hidebou
227 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 11:08:41 ] p2でも無理なの?
228 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 23:30:48 ] ブログでやればいいのに
229 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 15:06:06 ] 書き過ぎでアク禁食らったんじゃないかな。 もうちょっと抑えて書くといいね。 待ってます。
230 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 15:21:27 ] 過疎板だからといって、200レス/月でアク禁になるのかよw
231 名前:hidebou mailto:sage [2010/04/18(日) 11:33:16 ] test
232 名前:hidebou mailto:sage [2010/04/18(日) 11:41:07 ] ご迷惑おかけしました。片方の回線で書けるようになったようです。 ttp://www5a.biglobe.ne.jp/~javajava/ari/style_test.lzh のプロトタイプでは以下のAPIが使用可能です。 GetWindowLong、SetWindowLong、GetSystemMenu、SetWindowPos、ShowWindow SetLayeredWindowAttributes、AnimateWindow また、右クリックでのポップアップメニュー機能も追加してみました。特に このメニューの仕様についていいアイディアがありましたら助かります。
233 名前:hidebou mailto:sage [2010/04/18(日) 11:54:51 ] 通常メニューについてもポップアップメニューについても将来は構造化した 定義をスクリプトから行えるようにする予定ですが、HTMLタグによる宣言の 場合は単純で使いやすい仕様が望ましいと考えています。 プロトでは新たにTDのinnerTextが-(マイナス記号)だった場合セパレータと する規則を導入しましたが、これでいいのかな?と迷っています。
234 名前:hidebou mailto:sage [2010/04/18(日) 21:37:08 ] HTABOXコアという器も改良を続けて行くでしょうが、器の中の料理の作り方 を紹介する事にも力を入れていかなければと思っています。今のところHTML Applicationは知る人ぞ知るという情報であって、肝心のこれからプログラム を学習しようという人へ情報をいかに広報してゆくか、導けるかが課題にな ろうかと思います。
235 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 01:57:31 ] >>230 同一IPから連続で書くと、一日でアウトになるよ
236 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 20:25:13 ] >>235 1日じゃなくて1ヶ月だってばよ。
237 名前:hidebou mailto:sage [2010/04/19(月) 22:04:25 ] 本来なれば私のサイトで意見交換するというのが本筋なのですが、私として も何かと目に留まりやすい2chをあてにしてしまっていることろが悪いのです。 昨日、今日とFrontPageやASPとにらめっこして気軽にご意見をいただけるシス テム作りを行っております。書いた本人は直後にコメントを消せるルールなら 書き込みやすいかなぁーとか思っています。
238 名前:hidebou mailto:sage [2010/04/19(月) 22:29:42 ] もっと本質的な問題を言うとSEOに優れている2chのような場では逆に失言が未 来永劫残る危険性があって発言にブレーキがかかる気がするんです。かと言っ てメーリングリストのように閉鎖的なのは前時代的ですし、ブログやtwitter もいいでしょうけれど話題がプログラミングだけにソースをきれいに表示でき ることを考えると自分でそいう目的のシステムを作った方がいいかなぁっと考 えています。
239 名前:hidebou mailto:sage [2010/04/20(火) 05:54:09 ] 従来HTAやWSHは個人的に使うツールだった訳からとても趣味性の高い奥まっ た情報の交換が主だったと思うんです。「過去ログ見てから物を言え」的 ムードが参入者にとって障壁となっているのではと。これからという人が気 兼ねなく発言できる場が絶対に必要ですし、私自身その中で気づいてゆくこ とが多いと思っています。
240 名前:hidebou mailto:sage [2010/04/20(火) 06:04:39 ] とりあえずFrontPageのスレッド形式掲示板を使いやすく改良してそういった ニーズに答えられる努力をしていますが、HTABOXコアは特化されたブラウザと して使用することも出来るわけですから、twitterのように緩い結びつきで、 コミュニティーが形成されてゆく情報交換ルールを作ることも夢ではないと 思います。
241 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 16:49:17 ] プログラミングをしてみない? www.nicovideo.jp/mylist/7143440 こういう動画のHTA版があると面白いかもしれんが WSHと違ってHTMLの説明も書かなきゃいけないから大変そう
242 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 17:16:33 ] >>200 >プログラミングは楽しいのに説明を書くのは苦手です。 www.ruby-lang.org/ja/man/html/Ruby_CDD1B8ECBDB8.html#Document ソースがドキュメントだ。バグも完全に記述されている
243 名前:hidebou mailto:sage [2010/04/20(火) 18:44:19 ] >>241 まさしく情報の範囲として実に広範なものになりますから、細部までとなると 一人がどうこうしても追いつかない情報量になろうかと思います。 それぞれの分野で興味を共有しあって助け合える仕組みが必要だと思います。
244 名前:hidebou mailto:sage [2010/04/20(火) 18:49:50 ] 自身サイトの掲示板を改良しました。 ttp://kuroda.bglb.jp/post/index.htm せっかく訪れていただいてもお土産がないと失礼ですのでタイプライブラリス レッドを用意しました。タイプライブラリスレッドにリクエストをいただけれ ば可能なかぎりお答えしたいと思います。
245 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 19:56:07 ] OLE/COM オブジェクト ビューア msdn.microsoft.com/ja-jp/library/d0kh9f4c (VS.80).aspx これでよくない? と思ったけど定数は表示されないのかな
246 名前:hidebou mailto:sage [2010/04/20(火) 20:26:20 ] >>245 C++で利用するならおっしゃる方法も素敵ですし、私は#importした後に生成 される.tlhや.tliファイルを直接眺めたりもします。要はスクリプトにコメ ントとして貼り付けて必要な部分をコピペしやすい形式のファイルとしてい るだけです。
247 名前:hidebou mailto:sage [2010/04/20(火) 20:48:55 ] またCOMの全体像を把握したい場合も整形されたタイプライブラリが便利です。 FileSystemObject.CreateTextFile(.......) return ITextStream ですから 今度は後方からITextStream.で検索をかけITextStreamのメソッドやプロパテ ィーを確認するといった具合です。
248 名前:hidebou mailto:sage [2010/04/20(火) 23:45:30 ] HTML Applicationという手法の最大のメリットは「省力化」だと思っています。 生涯のテーマとして少数のアプリケーションを維持するだけなら全部C++で書く のが正解ですが、行きずりのテーマをささっと短時間でアプリケーションに 仕上げてしまうような状況でこそ本領を発揮するはずです。それを可能にして いるのが他人の褌であるCOMの利用なわけですから、その構造を短時間で理解 する工夫がなければHTML Applicationのメリットが削がれてしまうと感じてい ます。
249 名前:hidebou mailto:sage [2010/04/21(水) 09:57:57 ] 個人的には1週間で1本のアプリケーションをリリースする体制を目標にしています。 つまり年間で52本をリリースするわけです。「下手な鉄砲数打ちゃ当たる」を実践 するためにHTABOXコアを書きましたし、HTABOXコアを知らない人も短時間にどんど んリリースしてくる不思議な人間がいることに気づいてHTABOXコアの存在に気づく という展開になるんじゃないかと思います。
250 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 17:15:26 ] ゲーム作るのに joyなんたら〜な API がラップされると嬉しかったり。 www.geocities.jp/rasuxo/win32.html#mm_joy
251 名前:hidebou mailto:sage [2010/04/21(水) 17:51:32 ] >>250 ジョイスティック系のAPIがあることすら知りませんでした。 今後勉強して喜んでいただけるよう努力します。
252 名前:hidebou mailto:sage [2010/04/21(水) 18:27:25 ] >>250 ちらりとMSDN見たんですが、いよいよ構造体がらみになりそうですね。 いつかは構造体をスクリプトで定義、参照できる規格を決めなければと思っ ていましたので良いきっかけをいただいたと思います。JScriptならイメージ が沸くのですがVBSriptのclassインスタンスがC++からIDispatchExに見える のかというような実験を繰り返す必要がありますので、お時間をいただくこと になります。
253 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:55:48 ] 全くゼロから覚える場合、何をやったら良いか教えていただけますか? とりあえず、教育用言語とアルゴリズムは学生時代に習いました。 HTMLはスタイルシート以外は分かります。
254 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 01:05:47 ] やはり最初は Hello, World からでしょう。 ttp://msdn.microsoft.com/ja-jp/library/ms536496.aspx
255 名前:hidebou mailto:sage [2010/04/22(木) 03:16:39 ] >>254 HTMLでユーザーインターフェースを作ることを理解されていらっしゃるので したら自分の興味がある機能を提供してくれるCOMを使ったスクリプトを書い てみてはいかがでしょうか?私の知識の範疇にあれば使えそうなCOMを紹介し て簡単な導入部を書けるかも知れません。 HTML、Script、COM、C++と広範な技術を活用できますが、最も重要なのは書い てて得してる気分とか、楽しいとかだと思います。
256 名前:hidebou mailto:sage [2010/04/22(木) 03:37:42 ] >>254 私の経験で恐縮ですが、HTMLは単に表示されるだけと思っていた時に、結果を ファイルに書き出せるだけでとっても感動した記憶があります。scrrun.dllに 存在する"Scripting.FileSystemObject"はテキストファイル入出力機能を提供 してくれるCOMです。クォート内のワードで検索すれば数十万件ヒットしますの でサンプルは沢山あるはずです。
257 名前:hidebou mailto:sage [2010/04/22(木) 12:44:56 ] ねぼけまなこで書き込んだものですから>>254 ではなく、>>253 でした。 すいませんでした。
258 名前:hidebou mailto:sage [2010/04/22(木) 13:12:52 ] >>253 スクリプトを書くときにJScriptかVBScriptかで悩むかもしれませんが、HTML 中には両方書いてそれぞれグローバルな要素を参照できますので、両方を齧っ て自分のスタイルに合った方を使えばいいと思います。 JScriptはJavaScriptの拡張ですので、他のブラウザ用にHTMLを書くときにも 知識が生かせます。VBScriptはIE限定ですがoffice系のVBAをスクリプトへ移 植する際には僅かの書き換えで済みますから便利だと感じています。
259 名前:hidebou mailto:sage [2010/04/23(金) 10:07:56 ] HTML Application用いてMSWORDやEXCELを操作するメリットはマクロのセキュ リティー設定に関わりなくマクロと同等の動作を実行できることです。一見 回りくどいように思われるかも知れませんが、VBAをVBScriptでの外部呼出し に替えることは簡単ですし慣れればJScriptへの翻訳も問題ありません。
260 名前:hidebou mailto:sage [2010/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 mailto:sage [2010/04/23(金) 10:32:37 ] HTABOXコアはまだVBScriptを使用したスクリプトブロックのエンコードに対 応していませんが、対応後はマクロの記録でVBAを自動生成させ、少ない労力 でスクリプトへ移植し、1本のアプリケーションとしてリリースできる事をご 理解いただけると思います。これぞ究極の他人の褌でとる相撲だと思います。
262 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 18:49:51 ] >>252 >VBSriptのclassインスタンスがC++からIDispatchExに見えるのか Windows スクリプト コンポーネント msdn.microsoft.com/ja-jp/library/cc392140 (v=MSDN.10).aspx これとは違うんだよね よく分からん
263 名前:hidebou mailto:sage [2010/04/24(土) 19:59:18 ] >>262 C++側から見た場合、スクリプトから呼び出されたCOMの引数はVARIANTですが JScriptのObjectの場合はIDispatchExポインターを保持しています。VBSript のclassインスタンスもそうなら....という話です。
264 名前:hidebou mailto:sage [2010/04/24(土) 20:09:54 ] もしそうならC++側で要素を列挙できますから構造体の代わりに使えます。
265 名前:hidebou mailto:sage [2010/04/25(日) 01:08:36 ] 「柔軟に扱える」の方が適切な表現かも知れません。うまくいけば必要な要 素のみを宣言した「省略構造体」を引数として渡せばC++側が要素を追加して 「完全構造体」を返すというルールが作れるかも知れません。
266 名前:hidebou mailto:sage [2010/04/25(日) 22:10:59 ] 従来スクリプトから呼ばれるCOMを作成するためにはレジストリに登録する パブリックコンポーネントを作成しなければなりませんでした。全くのスク ラッチでこれを書くこともできますが事実上VC++のATLがないと困難でした。 HTABOXコアはその面倒を内部で処理し単純なDLLでもスクリプトから呼び出さ れるルールを実現しています。ATLなしでも書けるということは無料の2008で 十分だということです。
267 名前:hidebou mailto:sage [2010/04/25(日) 22:21:55 ] HTABOXコアのサンプルで使用しているCONSOLE.DLLのC++ソースを置きます。 単にWIN32DLLの環境を作りビルドしてください。 ttp://www5a.biglobe.ne.jp/~javajava/ari/sample.txt スクリプトとは何か?を理解する最も有効な方法はもっと低水準な観点から スクリプトを眺めてみる事です。
268 名前:hidebou mailto:sage [2010/04/27(火) 21:45:39 ] 最近ASPばかり眺めててHTABOXコアに手を付けられずせっかく作ったプロトも リリースしていなくてすいません。ASPを眺めていて不思議な現象を発見した ので話の種にさせてください。#include virtualで別WEBにあるASPを参照し 被参照側のグローバル変数を呼び出し側で<%=HOGE%>すると見えないんです。
269 名前:hidebou mailto:sage [2010/04/27(火) 21:53:55 ] いろいろ設定を変えてもだめでIIS5.0でもIIS5.1でも同じ状態なのです。 でも、ひょんな事からその対策を発見しました。両方同じ言語な場合のみこの 現象が発生しているのです。JSとVB又はVBとJSならこの問題は発生しません。 引き換えにユーザー定義系クラスは参照できませんが、改めてVBScriptの 存在に感謝したしだいです。
270 名前:hidebou mailto:sage [2010/04/28(水) 11:50:39 ] という訳でMSE7.EXE(Microsoft Script Editor)でVBScriptを書く機会が多く なっているのですが、複数行を一度にコメントアウトする場合面倒だったり します。VBA環境の場合はその機能があるのですがMSE7.EXEにはありません。 これは検索置き換えで正規表現を使えば簡単に解決できます。コメントアウト したい範囲を選択して行頭「^」を「'」に置き換えればいいのです。
271 名前:hidebou mailto:sage [2010/04/28(水) 12:10:05 ] 正規表現という手法はとっつきにくくて、各環境で微妙な差異があったりし ますが、使ってみると劇的に作業が楽だったり、ソースコードが簡潔になっ たりします。特にJScriptのreplaceでは置き換え文字列生成に関数を指定で きますので柔軟な置き換え結果を生成できます。
272 名前:hidebou mailto:sage [2010/04/29(木) 01:07:48 ] HTABOXコアではなくHTABOXサーバーの話題なのですが、IISで独自認証システ ムを構築する場合ISAPIフィルタDLLが必須となります。ASPは画像等のGET要 求を知り得ないからです。しかしISAPIフィルタDLLとASPはASPがIISインプロ セスで動作していない限り交信できません。つまりISAPIフィルタDLLはASPの セッション情報にアクセスできないというのが通説です。
273 名前:hidebou mailto:sage [2010/04/29(木) 01:24:50 ] HTABOXサーバーのアドバンテージはそれを実現している事です。IISプロセス とASPプロセスでそれぞれCOMをインスタンス化し、IISの保護されたプロセス 境界を突破する通信手段をCOM内に構築することでDLLとASPは連携できます。 勿論ASPは勝手気ままに消滅するかも知れませんから、DLL側のXMLインスタン スへ動作を報告し、DLL側は必要に応じてXMLを読むというからくりです。
274 名前:hidebou mailto:sage [2010/04/29(木) 01:42:49 ] ネットでプログラミング系の情報を見ている時に 「○○では○○したくてもできない」 というフレーズを見つけた時はチャンスだと思うんです。なぜならそれを実 現すれば確実にアドバンテージを得ることができると教えてくれているから です。
275 名前:hidebou mailto:sage [2010/04/29(木) 11:30:20 ] プログラミング業界の格言に「人のやっていないことはやるな」というのが あります。これは「万人がチャレンジしてだめな手法へチャレンジするな」 という意味です。決まった納期に仕様どおりの製品を納める仕事なら当然の ことですが、フリーランスプログラマーの場合は逆だと思います「人ができ ないからチャレンジする」でなければ新しいものは生まれません。
276 名前:hidebou mailto:sage [2010/04/29(木) 23:52:24 ] なんとかHTABOXサーバー側のシステムも営業稼動できる状態に漕ぎ着けたよ うです。技術的に可能か?が判明すると興味を失って実装部を煮詰めないの が私の欠点なのですが、霞を食って生きてはゆけないので睡眠時間の少ない 日々をすごしました。最終的に販売動作はサーバーが自動的に行い、私はコ ンテンツの充実のみに集中できるはずです。
277 名前:hidebou mailto:sage [2010/04/30(金) 00:19:56 ] プログラミングに限って言えばスキルとは頭の良さと無関係なものです。 要は「知っている」か「知らない」かの違いだけだと痛感しています。 私の家族に霞ではなくお米を食べさせなければならないので総てを無料閲覧 可能にはできませんが、実践的で理解しやすい情報を提供してゆく予定です。
278 名前:hidebou mailto:sage [2010/05/01(土) 03:33:49 ] 朝4時からですから24時間耐久になりましたがFrontPage Server Extensionsが 管理するDBと独自認証系DBとの良好な位置関係に結論をだすことができました。 これによって書きかけだった救急隊用医療情報分析システムをサーバーに組み 込む作業も終了し一般公開へ大きく前進できたと思います。
279 名前:hidebou mailto:sage [2010/05/01(土) 03:58:45 ] こいつはソースで250Kくらいになる退屈な構造のプログラムなのですが、HTA BOXコアがきちんと大きなボリュームに耐えられるのかのテストでもありました。 勿論パース中は若干もたつきますが、サーバーからの認証ダイアログに答える 必要があるので、それに気をとられてあまり気にならないという素敵な誤算も あるようです。
280 名前:hidebou mailto:sage [2010/05/08(土) 23:39:03 ] いまだサーバー側の独自認証システムコードから抜け出せずにいます。 FrontPageが生成するVBScriptコードを再利用するという発想がいやらしすぎ るらしく、最後に蹴られるという展開を何度も繰り返してしまいました。 まさに「策士策に溺れる」の展開なので、初心に帰って朴訥なコードを書き HTABOXコアのほうに手をつけれるようにしたいと思っています。
281 名前:デフォルトの名無しさん mailto:sage [2010/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 mailto:sage [2010/05/14(金) 18:55:11 ] 間違えた ×unknwon → ○unknown
283 名前:hidebou mailto:sage [2010/05/14(金) 21:37:14 ] >>281 私も同じような実験コードを何度か書きました。 Class HelloWorldが直接JScriptから参照できればもっと有機的な絡み方がで きるんですが、あくまでもNewしたインスタンスしか見えないようでした。 JScriptにVBという名前空間を、逆にVBScriptにJSという名前空間を出現させ 異なる言語の標準関数を使えるようにしたら面白いかも?という構想を持って います。
284 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 22:00:41 ] VBSは撲滅すべき
285 名前:hidebou mailto:sage [2010/05/14(金) 22:08:33 ] >>284 私はVBS初心者なんですが、どうも一旦ばかばかしいミスのコードを実行する と、その後正しいコードを書いてもエラーとなる気がしています。ひょっと するとVBSはJSよりWindowsシステムに近いところで動くのかも知れません。 だとすればJSよりちょっと高速に動くという推理をしています。
286 名前:hidebou mailto:sage [2010/05/27(木) 01:28:59 ] 本番サーバーの最終調整とセットアップドキュメント作成をやっています。 ひとつの目標として、私が書いたものでないHTABOXコアプラットホームの アプリケーションを販売できる体制作りを掲げています。そのためには認証 や登録を軽量でありながらも堅牢なものにしなければなりません。
287 名前:hidebou mailto:sage [2010/05/27(木) 01:40:47 ] 私のような年になると、未来への沸き立つ希望などは消えうせて、何かを次 の世代へ伝えられればという想いだけになります。これからこの世界を担う 方たちが希望をもって生きてゆける材料をひとつでも作っておければと、し ょぼくれた目をこすりながらIISと格闘しております。