JavaScript Windowsクライアントアプリケーション

ネイティブ Windows GUIを使用してJavaScriptアプリケーションを作成する1つの興味深い方法についてお話します。



一般に、WindowsベースのJavaScriptアプリケーションを作成するためのさまざまなオプションがあります。

  1. HTAとWSH- HTMLアプリケーションとWindows Script Hostは、おそらく最もよく知られているテクノロジーです。 HTAは、実際にはシステム内の拡張された権限を持つHTMLページです。ネットワークに登り、レジストリを破壊し、ファイルシステムを作成し、ActiveXをこれらの問題に接続する機能です。 HTAを使用して、Windows自体の多くのコンポーネントが作成されます。
  2. .NET Framework-MSILのみが結果である場合、それはドラムに書き込むものです。 おそらく、JScript.NETとWindows.Formsにより、誰かがネイティブのWindowsインターフェイスのように感じることがあります。 個人的に、彼らは私をまったく喜ばせません-視覚的でもスピードでもありません。
  3. MozillaのXULRunnerフレームワークは、IEの代わりにGecko、COM / ActiveXの代わりにXpCOMを提供します。 これはわずか20メガバイトのオーバーヘッドです。
  4. wxJavascript-よく知られているクロスプラットフォームライブラリwxWidgetsもJavaScript用になりました。 これはすべて、Mozilla SpiderMonkey JSエンジンと1人のベルギー人の努力のおかげです。 ところで、この親愛なる人はApacheのmod_jsの作者です。


上記のすべてが退屈で扱いにくく、研究が必要であるという事実のため、別のオプション-WSOを検討することを提案します。



著者を引用する:

WindowSystemObject (WSO)は、COMアーキテクチャに基づいてWindowsウィンドウサブシステムへのアクセスを提供し、スクリプト(スクリプト)言語で書かれたプログラム、および他の言語や他のプログラミングシステムで書かれたプログラムでウィンドウインターフェイスを作成するためのユニバーサルソフトウェアパッケージです。 WSOを使用すると、JScript、VBScript、Perl、Pythonでウィンドウインターフェイスを簡単に作成できます。


これらの言葉の後、アレクサンダー・ボリソヴィッチ・ヴェレテンニコフに多大な感謝を捧げます。あなたは言いません。



繰り返しになりますが 、WSO機能に関する引用

  • WSOは、ウィンドウの描画やすべての組み込みWindowsコントロールのサポートなど、ウィンドウシステムのすべての機能へのフルアクセスを提供します。
  • WSOは、Internet ExplorerやWindows Media PlayerなどのActiveXコントロールの使用をサポートしています。
  • WSOは、 すべての一般的な画像ファイル形式での作業をサポートしています。
  • WSOは、COMオートメーションインターフェイスをサポートするプログラミング言語から利用できます。
  • WSOは、このドキュメントで説明する直感的なオブジェクトモデルを使用してアクセスします。 Windowsのウィンドウプログラミングに精通しているプログラマは、新しいことを学ぶ必要がないことにすぐに気付くでしょう。
  • WSOは、ウィンドウ要素からのイベント処理を完全にサポートします。
  • WSOを使用すると、Windowsのウィンドウプログラミングで採用されている定数シンボル名を使用でき、数値の影響を受けません。
  • WSOは、Windowsの最新バージョン、つまり98SE、ME、NT 4、2000、XP、および2003で動作します。




すべてが素晴らしいです! JavaScriptのネイティブGUIから私たちを隔てる唯一のものは、WSOコンポーネントの登録です。 ご存じのように、Windowsではコンポーネントを使用する前に、コンポーネントのCOM / ActiveXレジストリに登録する必要があります。 システム管理者権限が必要なため、これは重大な制限です。 それにもかかわらず、レドモンドはすでにこの問題に遭遇しており、XP SP2以降、マニフェストアプリケーションですべてのActiveXのインターフェイスを記述するだけで十分です。

それで、JavaScript + WSOでスタンドアロンプ​​ログラムを構築するために必要なものは何ですか:

  1. WSO.dll自体。 商用アプリケーションでも無料でダウンロードして使用できますが、Alexander Borisovichを称賛してください。
  2. JavaScript コード例はこちら
  3. MS ScriptControlを接続してJSを解釈するapp.exe ブートローダー (実際、wscript.exeに類似しています)。 あなたはそれを自分で書くか、記事の終わりに準備する必要があります。 私のバージョンでは、これらはDelphiの10行です。ScriptControlに関する記事からコピーして貼り付けてください。
  4. アプリケーションマニフェスト app.exe.manifestは、WSOコンポーネント、他のActiveX(必要に応じて)への依存関係を指定すると同時に、XPスタイルのテーマのサポートを有効にする必要があるマニフェストです。 次のように手動で作成されます。



     <?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
     <assembly xmlns = "urn:schemas-microsoft-com:asm.v1" manifestVersion = "1.0">
     <assemblyIdentity
      タイプ= "win32"
       name = "client"
      バージョン= "1.0.0.0" />
       <依存性>
       <!-WSOを接続する->
               <dependentAssembly>
                   <assemblyIdentity
                      タイプ= "win32"
                       name = "WSO.sxs"
                      バージョン= "1.0.0.0" />
               </ dependentAssembly>
       </ dependency>
       <依存性>
       <!-XPテーマのサポート->
    	 <dependentAssembly>
    		 <assemblyIdentity
    		  タイプ= "win32"
    		   name = "Microsoft.Windows.Common-Controls"
    		  バージョン= "6.0.0.0"
    		   publicKeyToken = "6595b64144ccf1df"
    		  言語= "*"
    		   processorArchitecture = "x86" />
    	   </ dependentAssembly>
       </ dependency>
     </アセンブリ>
    


  5. WSOのマニフェストはWSO.sxs.manifestで、ActiveXコンポーネントインターフェイスを記述しています。 このマニフェストは素晴らしいプログラムregsvr42.exeによって生成されます。 コンポーネントの登録時にレジストリに対して行われるすべてのエントリをインターセプトし、それらをマニフェストとして保存します。 使用するすべての外部コンポーネントに対して同様の操作を行う必要があります。


ここに私が得たものがあります:WSO_demo.zip(573 Kb) slil.ru | onlinedisk.ru | rapidshare.de

demo.exeローダーは、グローバルWSOオブジェクトを作成し、main.jsからmain()関数を実行します。

もちろん、マニフェストを忘れずに実行可能ファイルの名前を変更し、リソースマネージャーでアイコンを挿入できます。



All Articles