HTAをもっと流行らせる計画 Part2
おつかれさま HTAとかをexe化するソフトはなんて名前だっけ? prototype.jsみたいなライブラリをHTAで使いたいけどそのままじゃ使えない。何かいい方法ないかなあ。 オレサマヨウメモ <meta http-equiv="MSThemeCompatible" content="yes"> 前スレのhttp://pc11.2ch.net/test/read.cgi/tech/1124559962/950 ですが WIN32API.TXTのSFCmini+Javascript用への完全な変換が完了しました。 おかげさまで当初の予定よりもいいものができたので win32api.jsとして公開しました。 よかったら使ってみて下さい。 JavascriptでWin32APIが利用しやすくなる『win32api.js』 http://itmst.blog71.fc2.com/blog-entry-139.html * win32api.jsはWIN32API.TXTをSFCmini+Javascript用に変換したもの * win32api.jsをインポートするとWin32APIで定義されている 定数、構造体クラス、API関数がグローバル変数として展開される * 現在定義されているのは 定数:6315個 / 構造体クラス:412個 / API関数:2007個 >>8 べ、別に好きだから気になっているんじゃないんだからね! http://www.microsoft.com/japan/msdn/workshop/author/hta/overview/htaoverview.aspx HTML Applications 概要 Internet Explorer が持つすべてのパワー(オブジェクト モデル、パフォーマンス、レンダリング機能、 プロトコル サポート、チャネル ダウンロード テクノロジ)を結集したもの、それが HTA です。 しかも厳格なセキュリティ モデルやブラウザのユーザー インターフェイスを強制しません。 >>16 HelloWorldのサンプルプログラムいいなぁw これがHTMLだと、うざい標準化団体に邪魔されてここまでシンプルには書けない。 ここの人的にAdobe Airってどうよ?コンセプトは似通ってると思うが。 >>19 ランタイムのインストールがある時点で別物だと思う OSに依存していない部分はうらやましいが HTAいいよね。 仕事で前にかかわっていたプロジェクトの内部ツールでファイル監視ツールや メーラーとか作ったなぁ。 ローカルのファイルを操作できるってだけでいろいろGUI付きアプリを手軽に作れるもんね。 Microsoftにはもっと強化したり、宣伝してもらいたい。あんまり知られてないようでもったいないと思う。 ガジェットはひたすらかっこよくなければいけない。 HTAは自分が満足すればそれでよし。 (でもボタンが豪華になったくらいどうでもいいよな…) (いや、見栄えは結構大事だぞ。時には中身より重要だったりする。) インターフェイスは大事だよ! お前らだって脳にケーブル繋ぎたくなった事は一度や二度じゃないだろ いつまでも基本GUI部品(ボタンとかテキストボックスとか)に縛られるのはつまらないと思うんだ。 …つってもアイデアがあるわけじゃなし。 でもゲームとかFLASHとかで偶に「おお!」と思わせるGUIってあるよね。 何スレ違い?すまん。 > いつまでも基本GUI部品(ボタンとかテキストボックスとか)に > 縛られるのはつまらないと思うんだ。 そう思う人は、HTA に縛られる必要もないと思うんだ。 そんな人は流行りのSilverlightとかJavaFXとかやればいいとおもうんだ Win2K とか言うオチじゃないよな。 まあ、俺のことなんだが。 おまいらデータバインド使ってますか? 表示だけならいい感じだけど、更新とかワケ分からんっす csvのビュワに使ってる ソートやfilterが使えて便利 更新するならexcelじゃないの ADODB.Recordsetをデータバインド <html><head><script> function listup() { window.event.returnValue = false; var cnnString = "provider=Search.CollatorDSO.1;EXTENDED PROPERTIES=\"Application=Windows\";"; var sql = fm.query.value.replace(/["'\\\%\*"]+/g, " "); sql = (sql.replace(/\s/, "") == "") ? "" : " AND FREETEXT('" + sql + "')"; sql = "SELECT TOP 20 System.ItemURL, System.ItemDate, System.ItemPathDisplayNarrow FROM SystemIndex" + " WHERE System.FileExtension<>'.lnk' " + sql + " ORDER BY System.ItemDate DESC"; var cnn = new ActiveXObject("ADODB.Connection"); var rs = new ActiveXObject("ADODB.Recordset"); cnn.Open(cnnString); rs.CursorType = 3; // adOpenStatic rs.CursorLocation = 3; // adUseClient rs.Open(sql, cnn); dco.SourceRecordset = rs; rs.Close(); cnn.Close(); } </script></head><body> <object id="dco" classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" width=0 height=0></object> <form id="fm" onsubmit="listup()"><input id="query" style="width:60%"/><input type="submit" value="Search"/></form> <table datasrc="#dco" border> <thead><tr><th>Path</th><th>Date</th></tr></thead> <tr> <td><a datafld="System.ItemURL"><span datafld="System.ItemPathDisplayNarrow"></sapn></a></td> <td><span datafld="System.ItemDate"></sapn></td> </tr> </table></body></html> spanで開いてsapnで閉じるのが21世紀に生きる大人のたしなみ。 <html> <hta:application id="Word2008" scrollflat="yes" innerborder="no" navigable="yes" border="thick" borderstyle="raised" /> <head> <title>Word 2008</title> </head> <body style="width:100%;height:100%" contenteditable="true"> Word 2008 リリース 使いにくかった機能をなくしました。 </body> </html> 使いにくいけど便利な機能までなくさないでください そんなのがあるかどうか知らないけど 今までsetRequestHeaderでReferer書き換えできたのに 急にできなくなったよ。 前スレで触れられてるけど >>804 :デフォルトの名無しさん:2008/05/23(金) 03:59:44 >>>>494 の辺で言ってた「Refererでユーザー名漏れてね?」だけど >>vista SP1ならRefererちゃんと変える事が出来た >>httpoj.setRequestHeader("Referer", "ほにゃらら"); >> >>早速変えておこう の通り、Vista SP1ではReferer書き換えて出力できたのに、 11/12のwindows updateのせいかRefererが送信自体されなくなった。 もしかしてオワタ? 俺も確認した。確かに送信されてない Microsoft XML コア サービス 4.0 Service Pack 2 用セキュリティ更新プログラム (KB954430) 更新プログラムの種類: 重要 Windows ベースのシステムのセキュリティを悪意のあるユーザーが侵害して、そのシステムを制御できるというセキュリティの問題が XML コア サービス (MSXML) に発見されました。この更新プログラムをインストールすると、お使いのコンピュータを保護できます。 インストール後には、コンピュータの再起動が必要になる場合があります。インストールすると、削除することはできません。 詳細情報: http://go.microsoft.com/fwlink/?LinkId=128803 これか? >インストールすると、削除することはできません。 オワタ なんかhta全体の挙動が変ってるな ローカルPC用のhtaで確認 httpoj.setRequestHeader("Referer","http://www.geocities.jp/ "); new XMLHttpRequest(); Referer:無し new ActiveXObject('Msxml2.XMLHTTP.5.0') htaのフルパス new ActiveXObject('Msxml2.XMLHTTP.4.0') htaのフルパス new ActiveXObject('Msxml2.XMLHTTP.3.0') Referer:無し new ActiveXObject('Msxml2.XMLHTTP') Referer:無し new ActiveXObject('Microsoft.XMLHTTP') Referer:無し 他になんかあるっけ しゃーないから自鯖のphpにやらせる事にした ああ汚い >>53 Mozilla Prismがわりとそんな感じ。 普通に自分自身の副ストリームに情報を書き込めるんだ… こりゃ設定ファイルを不要に出来る予感 いまさらHDDにNTFS以外を使ってることもないだろうけど USBメモリに設定ごとコピーできないとか動かないとかの 余計なトラブルを招くから、個人利用でSUGEEEEする以外には正直微妙。 これとserializeにはもっと早く気がつくべきだった ちょっとした変数をどんどん保存出来る フォームのinnerHTMLをそのまま保存。 少々荒っぽいがとっても楽チン、オヌヌメ。 mixiツール使ってるんだが、Sleipnirでは正常にログイン出来てページが表示されるのに new XMLHttpRequest();では未ログイン状態のページが取得されちゃう それでかなり悩んでいたんだが、IEで直接ページを開いたらログインされてなかった IEでログインしたら無事ログイン状態のページを取得出来たんだが Sleipnirのログイン情報はどこに記録されていたんだろう TridentだからSleipnir=mshtaだと思っていたが、そうとは限らないとは知らなかった 「Web技術をディスクトップアプリケーションにも」というコンセプトで、 ローカルファイル操作専用のJavaScriptフレームワーク「io.js」(ググッて)を作ってるけど、 今のところ、IE部のファイル操作はScripting.FileSystemObject(fso)で処理してる。 ところが、FireFoxやAir、widget.system(WFile経由)ではバイナリ操作ができるらしいので、 fsoを使うと処理の統一性に問題が生じる。(面倒だからUTF-8で統一したいし) そこで、ADODB.Streamを使うべきだと思うんだけど、 var ado = new ActiveXObject( "ADODB.Stream" ); やるとVistaでは、はじかれる。 原因と解決法のヒントは、http://www.vector.co.jp/soft/winnt/prog/se417469.html に 書いてあったけど、VBSで書かれていてよくわからなかった。 見た様子だとCreateObject.WSCを読み込ませてGetObjectでオブジェクトを生成しているようだけど、JavaScriptでこれと同じ処理はできないかなぁ。 ほかにも、レジストリのサブキー一覧を取得する処理で、 http://www.bosagami.net/jshelp/?page=%83T%83%93%83v%83%8B%81F%83%8C%83W%83X%83g%83%8A%82%CC%83T%83u%83L%81%5B%8E%E6%93%BE を見つけたけど、うまくうごかなかった。応用範囲が広そうなだけに残念。 JscriptでADODB.Stream関連 - http://www.google.co.jp/search?q=ADODB.Stream+jscript で結構見付かるな JavaScript の文字コード処理に関する覚書 - JavaScript によるバイナリデータ操作 (参照) 、 (データの作成) ttp://seantw.spaces.live.com/blog/cns!4D90655A95AC394E!121.entry JScript・WSHで、UTF-8でファイルの読み書きをする方法 (ADODB.Streamで文字コード変換するサンプルコード) ttp://d.hatena.ne.jp/language_and_engineering/20090203/p1 jscriptで utf8なファイル出力 ttp://passing.breeze.cc/mt/archives/2008/05/jscript-utf8.html JavaScriptでファイルの書き込みをUTF-8で行う(htaまたは、wsh用) - BOM関係 ttp://d.hatena.ne.jp/sukesam/20070922/1190400851 - ろくに読んでないし、解説はエロい人にまかせる /* おまけ vbs2js ttp://www.clockworksoftware.com/asp/Products/vbs2js.asp ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list119.shtml ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list137.shtml */ htmlファイル内にスクリプト書いているなら,拡張子を.htaに変更してみれば? IE7のズーム機能を抑制したいんだけど、根本的に切る方法はあるんでしょうか? onkeypressとかを監視して撥ねるしかない? Ctrl+マウスホイールのことか? たしかonmousewheelとかいうイベントがあった そんときにCtrlキー押されてるか見れば? >>69 ごめん、やってみたら無理でした。 >>70 ありがとう、マウスホイールの方の抑制はできました。 objHTA.commandLineだけど、"の有無に関わらず渡されたファイルのパスを返すには objHTA.commandLine.match(/("[^"]+" |[^ ]+ )/g); これでいいのかな c:\program" "files\hoge c:\"program files"\hoge >>75 文字化けしてるから &ht; を > に変換、かつ、 </p> <p> を 改行 に変換すればそれらしくなる 自分で動かしたいとは思わないスクリプトなので動作確認まではしてない IE8入れた人、mshtaのバージョンなんか変化あった? 7.00.5730.13 (longhorn(wmbla).070711-1130) onclickでondblclickをどうすれば除外できる? window.onclick=function(){window.ondblclick=function(){};}; か、onclickでalert()とかすると、二回目のクリックが無効に なるから、結果ondblclickを除外したことになる NNだとevent.detailのクリックカウントで区別できるが、IEやHTAでは無理 onclick、ondblclickの順、つまり未来予測になるからできないよ できるよ 長押しハンドリングできるから ttp://builder.japan.zdnet.com/member/u503061/blog/2009/03/25/entry_27021331/ TimeOut値以内ならはじけくようにいじれば可能 ondblclick、onclickの順に変えればできるよ ローカルのhtaを実行して表示されたウィンドウの右クリック→ソースを見るを選択すると 普通はテキストエディタでそのhtaファイルが開くと思うんだけど 何故かC:\Users\username\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\〜〜〜のtempフォルダのデータを表示するようになってしまった これを解消する方法知ってる方居たら教えて下さい OSはVistaのhome pro mshtaのバージョンは8.00.6001.18702 サイズは45568byte IEのバージョンは8 ですが http://www.ugtop.com/spill.shtml をnew XMLHttpRequest();で取得すると、UAが Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.1.4322) で、IE7のままになっています プロセスのコマンドラインの段階からTemporaryフォルダを指定しちゃってます はい。mshtaのコマンドラインは "C:\windows\system32\mshta.exe" "C:\hoge.hta" で、ちゃんと"で括ってる document.write()してるんじゃまいか 中身が <HTA:APPLICATION ID="objHTA"> だけのhtaでも同じなんです 引数を省略するとき、VBScriptだと hoge a,,b ですが、JScriptだと、 hoge(a,,b) がエラーになります。どう書けばよいのでしょうか? それHTAに何の関係があるの? 単にJScriptの質問じゃない? >>97 hoge(a,'',b) 引用符だけでも入れてやれ それは長さ0の文字列(VBSで言うところのvbNullString)を渡してるだけで 引数を省略しているわけではないぞw >>100 ヘルプ嫁 vbNullString 値 0 を持つ文字列 長さ 0 の文字列 ("") とは異なります。外部プロシージャを呼び出す場合に使用します。 内部的には同じだよ MsgBox vbNullString = "" MsgBox TypeName(vbNullString) = TypeName("") MsgBox VarType(vbNullString) = VarType("") ポインタ参照すれば違うけど、VBSもJSもポインタ参照出来ないし 内部的に同じというより、VBやVBSの中でvbNullStringを使おうとすると 自動的に""に変換されてしまうというのが自分の認識。 まあどうでもいいことだが。 undefinedでも入れとけばいいよ。 これも空要素とは違うけど気にしない >>102 > 内部的には同じだよ はぁ? ひょっとして、COM とか使ったことないのか? undefinedではIsMissing()がTrueにならんよ >>106 ごめん、君には理解できなかったようだな。 そう思い込むことで精神的安定を図るのですね。解ります。 >>113 そのまま返すよ。 まあ、>>102 で偉そうに書いた手前引っ込みつかなくなってるだけだろうけど。 この辺にしておくんじゃ・・・ 引っ込みつかなくなってるだけかな? > (粘着君が) この辺にしといてほしいが。 > (>>115 が) この辺にしておくんじゃ・・・ もしかして日本語も不自由なのか? そもそも >>112 に書いた URL のリンク先見れば、>>102 が間違いなのは 明らかなんだからいい加減無駄なレスはやめた方がいいと思うんだけど、 引っ込みつかなくなっちゃてるんだろうな。(w >>112 の記事って割と最近じゃん。 やっぱ皆、VBScript 書くときはシステムハンガリアン使ってんのかな。 >>109 VT_ERRORを渡せばよい しかしJScriptやVBScriptでVT_ERROR作れる? 作れるかと言われると反論したくなるのが人の性 一応 JScript から VarType は 10 になってるけど、これでいいのか? <html><head><script language="JScript"> var missing = null; var obj = {} obj.passError = function(p1, p2) { missing = p1; } obj.print = function(s) { alert(s); } var sc = new ActiveXObject("ScriptControl"); sc.Language = "VBScript"; sc.AddObject("jsobj", obj); sc.AddCode("Sub Hoge(o): Jsobj.print CStr(VarType(o)) & \": \" & TypeName(o) : End Sub\n"); sc.ExecuteStatement("Jsobj.passError ,0"); sc.Run("Hoge", missing); //sc.ExecuteStatement("Hoge Null"); //sc.ExecuteStatement("Hoge Empty"); //sc.ExecuteStatement("Hoge Nothing"); window.close(); </script></head><body></body></html> VistaにないScriptControl使わんでも いや、見れば分かるとおり冗談なんだけど… それより、自分は Vista で確認してるんで、少なくとも Ultimate では ScriptContorl 使えることは確かだと思うんだけどバージョンによって使えないってこと? HTA含め、その周辺のCOMコンポーネント技術は.NETより環境に依存しない ところがいいと思ってたんだけど、本当にそんなレベルで非互換があるようなら困ってしまう しまった入れ違い よかった Server 2008でもOKというなら大丈夫かな 念のため調べるけど ScriptControlが使えないとしたらHTAではなくHTMLでセキュリティの設定によって弾かれたくらいしか理由が思いつかない。 そもそも存在しないというのは有り得ないだろう。 それはつまりWSHがきちんとインストールされていない状況ということになるので。 伝聞 ttp://blog.livedoor.jp/akf0/archives/51386179.html あれ?Script ControlってWSHの一部だと思っていて、別途配布もされているとは知らなかった。すまん。 ttp://internet.watch.impress.co.jp/cda/special/2009/04/08/23047.html 最後、htaが大活躍!・・・(´・ω・`) 考えてみれば.jsを間違って開くとWSHが起動するとか 危険極まりないよな mshta.exe http://www 〜って有効なのか… 恐ろしい〜 >>129 何か面白い処理してるかと思ってわざわざ探して中身見てみたが時間の無駄だった。 ただ、スクリプトエンコーダ通してあったからデコード方法を調べたんだけど http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list137.shtml ここで開発されてた方法にはワロタ うわつまんねぇスクリプト <META http-equiv="refresh" content="0; URL=ほにゃらら"> <title>動画を再生するページ</title> <Script Language="VBScript"> 'ウィンドウのサイズ設定 winwidth = 600 winheight = 400 'ムービーのサイズにあわせてリサイズ window.resizeTo winwidth,winheight '画面下中央に移動 positionX = ( screen.availWidth - winwidth ) / 2 + 50 positionY = ( screen.availHeight - winheight ) / 2 + 25 window.moveTo positionX, positionY </Script> </head> <body> <HTA:APPLICATION APPLICATIONNAME="Princessmovie" ID="pri" VERSION="1.0" SINGLEINSTANCE="yes" SHOWINTASKBAR="no" NAVIGABLE="yes" WINDOWSTATE="normal" BORDER="none" INNERBORDER="no" BORDERSTYLE="normal" CONTEXTMENU="no" SELECTION="no" SCROLL="no" SCROLLFLAT="no" CAPTION="no" ICON="" SYSMENU="no" MAXIMIZEBUTTON="no" MINIMIZEBUTTON="no" /> Princessmovieでググッたらグロアニメが出てきたが、なんか関係がある? CPU使用率だけをウインドウのタイトルにリアルタイムで表示させたいです。 させればいいじゃん 別に誰もダメとは言わないだろう topmostが欲しいなぁ mshtaって最後にバージョンアップしたの何時だろう >>139 確かにhtaのオプションとして欲しいね 標準環境で可能とは言え、わざわざ外部の関数(dll)呼ぶのは面倒だ >>144 Excelは無くても出来る だってExcelはWin標準じゃないじゃん あと、それはそれで透明度とか指定できて便利なんだが 別ファイル作るのが好きじゃないので早い遅い以前に最前面表示だけのためには使いたくない >>145 最新のIE入れればそれで最前面になるの? XP+IE6なうちでは何も起こらないが >>146 教えてくれよ ちなみに>>145 はvista+IE7でも変化無し 大昔のネットスケープとかはできたな〜。IEも最初は出来たっけ? ネットスケープってMSHTAの動作と関連性有るの? 仕事で使うならExcelWordは標準装備って考えていいと思うよ。 OOoとか使うならそもそもWindows使うなよって感じだしね。 > 仕事で使うなら HTAが仕事でしか使わないものじゃない以上、その前提に意味はない。 >>153 仕事以外で使うならExcelWordは標準装備って考えちゃ駄目でしょ。 そのかわり、DLLとか好きなだけインストールし放題だけどね。 >>152 サーバー用に HTA 使うとかは考えたこともないのか? サーバー管理者なら必要なソフトぐらい使えるだろ。 どんだけ末端なんだよ。 サーバーでTOPMOSTかよ。 どんだけ有頂天なんだよ。 なぜ鯖でIEみたいなどこに穴が開いてるかわからんゴムを使った結果妊娠しました どうしますか?(Yes/All) >>160-162 Windows 鯖使ったことないだろ。 なるほど、君が狭い視野で >>152 の発言してることがよくわかったよ。 ウィンドウのフラグ変えるだけだから、mshtaをはっくしてぱっちすれば? >>171 アナルはアヌス(肛門)の形容詞で、レイパー(レイプ)を修飾している。 ふひひ、このカキコは最高に面白いぜ! などと思いつつ書き込んでるんだろうな。 HTAアプリ作ってみて少し分かったこと 基本、拡張子.htmlのままでも機能は同じだが、 標準ブラウザをFireFoxとかにしててもIEのエンジンを使ってVBScriptを実行できること。 ようするにIE使うんなら別に.htmlのままでいいんじゃないかと >>177 拡張子htmlだと、ActiveXの使用に制限があるだろ。 jQueryが流行ってもHTAはバーニングのかけらもなかったな IE嫌いのWEBの連中にはちっとも魅力的にみえないHTA Sctipting.FileSystemObjectを使うためにhta FileSystemObjectはUACではじかれて使えない Shell.Applicationなら大丈夫 TCP通信するのにocxとか必要なのがうっとおしい ActiveScript(VBSやJS、Active***など)は ActiveXコンポーネント(dllやocxやexe)を使うための言語なんだから 必要とする機能に応じて、その機能を有するActiveXコンポが必要になるのは当然だろ? 嫌なら違う言語使えばいいさ。普通のプログラム言語に移ってもいいし GUI作れるインタプリタ言語だって他にいろいろあるし。 htaめっちゃ便利ですね。 事務仕事で使う端末に、無許可のexeを導入してはいけないって 縛りがあるんで、ちょっとしたツールをhtaで作ってます。 mshtaなら元から入ってるから文句言われない、はず。。 同じような環境の人って結構居ると思うんですけど 流行ってないみたいで。 他に良い解決方法でもあるんでしょうか? WSHだけでも書きますけど、UI弱くて。 exeはダメでもhtaはokなんだろうかw まぁ言い訳は出来るだろう 自分用ツールで完結してる人がほとんどじゃない? わざわざ後悔するほどのものじゃない、つーか 俺の場合ローカルネタすぎて応用が利かない。 >>190 むしろ公開するためにデフォで使えるHTAを選んだんだけど。 いや、画面が使えるのが理由かな。 Webインターフェースだから予定してなかったポップアップも簡単に実装出来ちゃって使いやすくなったよ。 ttp://karimofu.org/dlp/mofu1_6055.zip.php 標準ZIP DLパス:siberia 2ちゃんスレ読みはdat直読みだけど、投稿にはIEを使ってるんです。 IEを使ってる部分をXMLHTTPで直接通信してp2proxy通そうかと思ってるんだけど・・串+bbs.cgiのコーディングがなんかわかんなくて。 とりあえず串通さないやり方はなんか紹介してあったんだけど、串通るのかなあと。 p2串スレで質問中だけどいまんとこスルーされてる。 > 無許可のexeを導入してはいけない ってところは結構あるが、そういう条件を定めているまともな会社は WSHもHTAもデジタル署名受けてないVBAも普通は全部ダメだな。 まあ底辺の弱小企業は、exeだけ規制して対策したつもりになり 他であぼーんするってオチになるわけだが。 はてな htmlファイルは作らなくてもいいし objectやscriptはwsh側に持てば制限に掛からないし はてな 192のWSHもHTAも禁止されてる環境って話を受けての話題じゃないのか? だったら「wshで、ui部分だけieを駆動する方法もある」から何だってんだ? なんだ、全然解ってない人だったのか。 ゴメン、ゴメン。 なんだ、192が無視されて悔しかったのか。 ゴメン、ゴメン。 いや、自分が勘違いしてるってことに気付いてくれればそれでいいさ。 たしかにデフォルトで通信くらいまではサポートしててほしかった たしかにデフォルトでpinvokeくらいまではサポートしててほしかった xmlコアシステムのアップデート来ないな… リフェラ送れないのはキツい HTAが良いのは知ってるけど、開発環境がないのはちょっと・・・ 大抵の人はテキストエディタ使ってると思うけど MS謹製:HTA Helpomatic ttp://www.microsoft.com/downloads/details.aspx?FamilyId=231D8143-F21B-4707-B583-AE7B9152E6D9&displaylang=en ・過去スレで出てたのは - (officeが入ってるなら)Microsoft Script Editor (MSE) - InterDev - 補助用?でWebFormDesigner (ttp://www.webformdesigner.com/download.html)なんかも挙がってたな ・はてダでHTAのエディターもどき公開してる人もいる ・シェアウエアでもいいなら HtaEdit(ttp://www.htaedit.com/) - 使ってないから詳細不明 デバッグは… ・Script Debugger使う ・Microsoft Script Editor (MSE) 使う ・(VSとかの)デバッガでmshta.exeにアタッチ …とか? 参考:wsf(WSH)のデバッグ - ttp://social.msdn.microsoft.com/Forums/ja-JP/vwdexpressja/thread/eb13d7de-a6c1-4ed5-83d1-ccf159871525 /* おまけ What editor do you use? ttp://www.visualbasicscript.com/m_27156/tm.htm ScriptingAnswers.com Forums: generates htas from scratch, with all available options explained. ttp://www.scriptinganswers.com/forum2/forum_posts.asp?TID=1702 ScriptingAnswers.com Forums: hta sampler ttp://www.scriptinganswers.com/forum2/forum_posts.asp?TID=1772 hta site:www.visualbasicscript.com - Google 検索 ttp://www.google.com/search?as_sitesearch=www.visualbasicscript.com&q=hta */ ネタがない。のでこんなの作ったぜ自慢 mixiのマイミクのログイン時間を5分おきにチェックして記録するツール んでもXMLHttpRequestではIEのクッキー情報送信するマシンとしないマシンがあるから、不特定多数に配布する事が出来ない IEのどっかの設定が影響してるのかな。知ってる人教えて。 デフォ設定が不確定だろうと、XMLHttpRequest側で任意に選択できるんだからどうでも良い 自分で使う場合はデフォ設定利用しても、配布する場合はデフォ設定使わなきゃ良いだけの話 お前のログイン時間が常に「5分以内」になるがいいのか。 廃人だと思われるぞ。 自分は普通にアクセスするだけでログイン状態のhtml持ってこれるのに 配布バージョンは自力でクッキーフォルダ探して読み込んで…ってしないといけないのめんどいやん でも最低一日、出来れば一週間は動かすことオススメするよ 休憩時間とか就寝時間とかバッチリ出て面白いくらい 更新チェックは新しいリクエスト発行を必要とする。 リクエスト毎に、自分のログイン時間が更新される。 ってことじゃね? mixiで表示されるログイン時間って、 いわゆるログインした時刻ではなくて ページ移動や更新等の 最新リクエスト発行時刻だべ? 「何勘違いしてるの?」と勘違いしてる人はとりあえず そのツール起動した上で一度 マイミクか誰かに自分のログイン時間見てもらうといいんじゃない? ミクシィのログイン時刻の更新については、トップ(home.pl)踏まなきゃ大丈夫とか ミクシィ内のページならどこ踏んでもダメ、とかいろいろ情報が錯綜している感じ。 仕様変更とかもあるだろうし、どれが最新の情報なのやら。 おいらは垢持ってないので確認出来ないや。 どっちにしろ>>223 はストーカー気質の犯罪予備軍臭がするくらいキモい >>232 IEがHTML5対応になったときには できるんだろうか? IEでログイン出来ているのに、XMLHttpRequest()でログイン済みのhtmlが取得出来たり出来なかったりするのはどうにかならんか 対処法。つまりIEと同じソースを確実に取得する方法知ってる人教えて下さいな HTTPリクエスト(リクエストヘッダやSendデータなど)についてきちんと勉強してください HTTPリクエスト(リクエストヘッダやSendデータなど)についてちゃんと知ってるけど、それとmshta関係無いでしょ XMLHttpRequestを使っておきながらHTTPリクエストが関係ないとな!? 何が関係有って何が関係無いのかすら把握できてないレベルなんだよ HTTPリクエストとmshtaが関係無いって言ったのに XMLHttpRequestとHTTPリクエストが関係無いって言ったみたいに見えている方がいらっしゃるようです 自分の発言に含みを持たせて安全な所からチクチク針を投げ合うのはやめようぜ? セッションやクッキー含めた全てのリクエストヘッダがIEと同じHTTPリクエストを送信する方法を教えて下さい >>247 IEのCOMオブジェクトを使えばいい。 UWSCのシェアウェア版についてるRecIEで操作を記録すれば簡単にスクリプト作れる。 M$のHTA Developers Center(ja)のLast-Modifiedが Sun, 09 Aug 2009 01:44:47 GMT どこ更新しとんねん^^ 大抵のサーバなんて正しくlastModified取得できないだろ なら逆に、正しく設定してるサーバを教えて頂きたいくらいだ FileSystemObjectのMoveFileで、ファイルの作成日時が書き換わることがあるんだが 再現性が無くて困っています。詳細知っているかた教えて下さい。 こんな関数を使って、ファイルをどんどん移動させると、2/3くらいの確立でファイル作成日時が変っていることがあった function MoveFile(from,to){ fso = new ActiveXObject('Scripting.FileSystemObject'); var moto,ato,kekka; moto = new Date(fso.GetFile(from).DateCreated).getTime(); fso.MoveFile(from,to); ato = new Date(fso.GetFile(to).DateCreated).getTime(); kekka=""; kekka+="\""+from+"\"を\n\""+to+"\"にリネームしました。\n"; if(moto==ato){kekka+="タイムスタンプは変更ありません。"; }else{kekka+="タイムスタンプが\n"+moto+"\n↓\n"+ato+"\nに書き換わっています!な、なんで…"; } alert(kekka) } 同じドライブ →変わらない 異なるドライブ→変わる 解決した。 えと、ドライブは同じ、フォルダも同じで名前だけ変えてもタイムスタンプは変っちゃった。 んでそのファイル名のパターンに問題があったらしくて "ほげ.txt"→"temp_0.txt" "temp_0.txt"→"ほげ.txt" "かげ.txt"→"temp_0.txt" "temp_0.txt"→"かげ.txt" "まげ.txt"→"temp_0.txt" "temp_0.txt"→"まげ.txt" みたいにリネームしてた。んで、"temp_0.txt"にリネームする時に 前回のファイルのタイムスタンプが何故か反映されちゃったみたい。数字をランダムに変えたら大丈夫になった。 という訳でした。 ウィンドウのタイトルを変更するには、どうしたらいいの? document.titleだけどマジで言ってんの? ありがとう。 window.titleでも受け付けてくれれば良いのに。 >>269 COM呼び出し: <object id="statusBar" width="100%" height="20" classid="CLSID:8E3867A3-8586-11D1-B16A-00C0F0283628"></object> みたいな。 // 環境依存だっけ? 未確認。 @秘密工場さんとこのCOMコンポーネント: Tray Control とか。 ttp://hyons.hp.infoseek.co.jp/soft/trayctrl.shtml 擬似ステータスバー: table要素とかをステータスバーに見立てて styleで position:absolute で、とか。 >>270 おおおおおこれは凄いtopmostやホットキーが出来るのか!!!! しばらくはHTAでいいや >>270 擬似ステータスバーどっかで見たよな〜 … って探してみた WSH Lab. 掲示板 記事検索プログラム (WshLab.hta) 参考になるかも なんでhtaにステータスバーを最初から入れなかったのかな? >メニューバー 付いて無いものはしょうがないしねぇ。 代替手段としては MS Officeが入ってるなら 簡単なツール バーを HTA に追加する ttp://www.microsoft.com/japan/technet/scriptcenter/topics/activex/toolbar.mspx とか HTC使うとか PSDKの Samplesディレクトリにある \Web\behaviors\library\coolbar みたいな // 余談だけどPSDKの \Samples\Web\behaviors\library\ には他にもHTCのサンプル(menuとか)色々あるね あ、あと前スレでXML使ったライブラリとか紹介されてたっけ。 あとは YUIやJQueryなんか使う方法とか、か。 >>275 メニューバーの代替で "coolbar"とか "簡単なツール バーを" とかちょっと強引過ぎたか こっちの方がいいかも JSLook Menu Bar, Tool Bar, Status Bar ほかWindowsアプリケーションのようなUI、 HTA向きの(というか流用できそうな)javascript製GUIライブラリ。 //まだ開発中みたいだし、ライセンスもよく分からないし、紹介していいものかどうか迷ったんだけど //学習用にも使えそうだし、とりあえず取扱注意ってことで URLは…ググル先生に聞いて下さい。 //中級者以上の人は自分で実装する人も少なくないだろうし //方法は他にも色々あるけど、とりあえずここまで 連投スマソ <hta:application>の閉じタグってどうするのが実装的には正しいのか気になった 閉じない、<hta:application />、</hta:application>のどれだろう msdnのHTA Developers Centerでは閉じてないんだけど、みんなはどうしてる? >>277 リファレンスには " The HTA:APPLICATION element requires a closing tag. <HTA:APPLICATION ... > ... </HTA:APPLICATION> Because the HTA:APPLICATION element is an empty tag, it can also be closed using the following shortcut. <HTA:APPLICATION ... /> " ってあるね HTA:APPLICATION Object ttp://msdn.microsoft.com/en-us/library/ms536495(VS.85).aspx タグなんだから閉じるのは当たり前だろうga もしかして<br>や<pr>は閉じちゃだめとか思ってないか? >>278 ありがとう これからは</hta:application>で閉じるようにするよ >>280 閉じなければならないけど、sgmlのDTDによっては「閉じは"省略"しなければならない」だね 語弊があってスマソ >>283 いやいや 別に省略形で構わないんじゃないの? <HTA:APPLICATION ... /> みたいに。 HTAはHTML Applicationであって、XHTMLではないとか、そんな話じゃね いやだからリファレンスに "〜it can also be closed using the following shortcut.〜" ってあるんだから 閉じタグの</hta:application> 使っても省略形の <hta:application ... /> でも好きな方使えばいいじゃん。 XHTMLとかは関係ないでしょ、この場合。 一応断っておくけど >>280-282 は俺とは別の人ね // ID出ない板は面倒くさいな 岡田外務大臣キタ━━━━━━(゚∀゚)━━━━━━ !!!!! http://qb5.2ch.net/test/read.cgi/saku2ch/1256630318/1 早く記念カキコしないと埋まっちゃうwww 最初のスレからGUI関係の情報サルベージしてきた (『YUIやJQueryなんか』以外) MAKOTO3.NET - dhtml samples - 154,157 「oncontextmenuイベント」 ttp://www.makoto3.net/dhtml_ie/dhtml_ie_top.html dhtmlgoodies - DHTML List based context menu(javascript) ttp://www.dhtmlgoodies.com/index.html?whichScript=context_menu dhtmlgoodies - Menu Scripts (ついでに追加) ttp://www.dhtmlgoodies.com/index.html?page=menuScripts DHX - DHML GUI部品色々 ttp://scbr.com/docs/products.shtml JavaScript DHTML examples - GUI Components ttp://www.java2s.com/Code/JavaScript/CatalogJavaScript.htm jshtaframework - GUI関係ではMenuとかStatusBarとかToolBarとか ttp://code.google.com/p/jshtaframework/ HTALite Framwork, rev b - GUI関係ではToolbarとかStatusBarとかPopUp(tooltip?)とか ttp://www.scriptinganswers.com/vault/Misc%20VBScript%20or%20WSH/ MSDNから追加 Behaviors Library ttp://msdn.microsoft.com/en-us/library/ms531433%28VS.85%29.aspx こういうのもありかな? CSS Menu, CSS Menu Generator - Horizontal, Vertical, Drop Down, DHTML CSS Menu ttp://www.mycssmenu.com/ Licenseはそれぞれのサイトで確認よろ WindowsPE3.0にHTA実行環境が追加できるらしいね。 データ復旧をするときに自作ツールが使えて便利かも。 ttp://www.computerworld.jp/topics/mws/165609-5.html WinPE-HTA-Package:HTAアプリケーションのサポート WinPE-MDAC-Package:MDAC(Microsoft Data Access Component)のサポート WinPE-Scripting-Package:WSHのサポート WinPE-WMI-Package:WMIのサポート WinPE-XML-Package:Microsoft XML Parserのサポート Windows7のインストーラにはメモ帳がついてるんだけど、ペイントもつけてくれてればよかったのにな。 エラーのときとか画面を保存できるし。 ふつうに作ったhta、 Windows7でも問題なく動いてます? htt関連のコントロールが使えないのが地味に痛い。 ガジェットと統合してくれたらいいのになあ、と思うが絶対にないだろう。 IE8みたいに、システムのDPIに合わせて自動的にズームする機能つかないかなあ <hta:application autozoom="yes"> とか 120DPIだと画面が小さい小さい・・・ ずっと巡回してたのに明けてないのにまだ気付かなかったw >>289 別にJQueryとかYUIでよくないか? ちょっと釣られてみるか HTAで使うようなStatusBarなんかの需要があった場合、選択肢は色々あるってだけの話 >>289 にも(『YUIやJQueryなんか』以外)ってあるだろ? 誰もJQueryとかYUIを使っちゃ駄目なんていってないんだから使いたきゃどんどん使えよ 何が釣られてみるだカスが わざわざそんな誰も使ってないようなの出さなくていいんじゃないのって事 誰も使用感すらレポしてねえし あーレポね。んじゃ>>289 の中から少しだけ。 ・HTALite Framwork コンポーネントとしてHTCファイルが一つのシンプルなフレームワーク、UIもシンプル、HTA作る時の雛型として使ったりする。 - 最初からToolbar、StatusBarが使える。 - JQuery,YUIにはHTCないので>>299 的にいえばその辺で選択肢が広がるか。 ・menuはdhtmlgoodiesのを使った事があるくらいかな。他のは試してない。 ・もう一つのフレームワーク、jshtaframeworkもまだ試してない。 ・dhtmlgoodiesみたいなサイトは手抜きしたい時なんかにワンポイントで必要なものを探すのに見たりするかな。 //最近HTA書いてねー身なんでこれ以上はやめとく どっちにしてもHTAは色んな使い方がされてんだから情報も色々あっていいんじゃね、って思うけどね。スレタイ的に。 何年か前にHTABOXというツールを書いた者です。 HTAという機構は素晴らしいのですが結局MSHTA.EXE経由では自由度が低かったものですから MSHTA.EXEに代わる実行EXEをフリーソフトとしてリリースしました。 「HTABOXコア」 ttp://www.vector.co.jp/soft/winnt/util/se481957.html まだサーバーの準備が整っていないのでエンコード機能を提供できるのは後日になりますが お暇な時に遊んでいただいてご意見をいただければ助かります。 正真正銘のメニューいいですのう topmostを希望します。 メニューはちゃんとアクセレータも使えるんですね! って、本物なんだから当たり前か。でも凄い お試しいただいてありがとうございます。 メニューについては本当に基本的な部分しか記述していなくて、お恥ずかしいのですが いままでのHTAには不足していた部分ですので、喜んでいただいて励みになります。 正直なところMSHTA.EXEを置き換えていいものなのかについて今更ながら悩んでいます。 その先に何が起こるのかについて怯えていると言っていい状況です。 これを実現するのが夢でしたが、私は私自身を支えきれなくなりそうです。 ありがとうございます。それは危険だというご意見もあろうかと思うのですが、 エンコーダーのリリース準備を進めさせていただきます。 HTABOXコア、個人的にはプログレスバーとスクロールバーとツリーボックスと… あぁキリが無いやw この辺のオブジェクトの増加に力を入れて欲しいです。 ご要望ありがとうございます。 ツールバーとツリービューに関しては開発過程で実験済みですので、スクリプトから 簡便に呼び出せるオブジェクトに仕上げて追加したいと考えておりますが、本体XEが 複雑になるのは避けたいので、スクリプトから各種コモンコントロールを扱うDLLを 設計する手法になるだろうと思います。 最も望ましいのは私以外の方がそういうライブラリをどんどん発表できる受け皿として HTABOXが認知されてゆくことだとも考えております。 ご迷惑かけて申し訳ありません。 今夜、自身のURLにご意見をいただけるよう整備いたします。 えー他スレ見るのめんどいからこのスレに逐一報告してよ ぐうたらでサーバーの整備を遅らせた私が悪いわけですから、背中を押していただいた 気持ちで、本番サーバーへの移行を行っています。 サーバーの準備が整いました。 ttp://kuroda.bglb.jp/htabox/ がHTABOXのトップページです。同ページからHTBOXコア1.10のLZHをロードできます。 このLZHにはエンコーダーであるhtabox.htmが含まれます。この動作を見ればHTABOX の全体像をご理解いただけるのではと考えております。サイト各ページの最下部にスレッド 形式掲示板へのリンクを置きましたので、お気軽にご意見をお寄せください。 今時lzhは無いわー、と思った。zipでいいじゃん。 補足させてください。 名前を引き継ぎましたので旧HTABOXと同じ隠蔽手法と思っている方もいらっしゃるでしょうが、 まったく別の原理でソースが見えない状態を作っていることを付け加えます。 起動に必要なファイル(hta,html,icon等)を単一EXEにして実行出来るようにするの出来ないですか? EXEアイコンも好きなのにしたいんですが・・・。 その質問に理由を説明しながらお答えすると長くなり、不快に思う方もいらっしゃる かも知れませんので、319:にあるURLの掲示板で回答をいたします。 >>321 具体的には秘密? >>313 こいつ、この世に存在しなければよかったのに。 >>324 秘密どころか、原理と実験ソースを当サイトで公開しています。 拡張子 html と引数指定の時に拾ってくれないのですが…… あと、メニューは <tr> <td>めにゅー1</td> <td>めにゅー1-1</td> <td>めにゅー1-2</td> </tr> のほうが直感的ではないでしょうか。 さらに言えば ul とかで階層メニューを作れるとうれしい。 「拡張子 html と引数指定の時に拾ってくれないのですが…… 」 の意味をもう少し具体的に いやulでもメニューのほうがいいかな?悩んでいます >>327 test.exe と test.html を同じディレクトリに置いたり、 コマンドラインから test.exe data.html とか入力して実行しても ファイルを発見できないときの表示になるということです。 また、 > <hta:application>で唯一有用な機能である とか言われると他の項目を使っている人は悲しくなると思うのですが、 ウィンドウスタイルを変更したりする API は実装される予定はあるのでしょうか。 ついでに、自分自身のウィンドウハンドルはできれば window オブジェクトのメソッドとかで取得できると 楽チンでうれしい。 >>330 起動時の不具合をこちらでも確認しました。同じディレクトリに自身と同じ 名前のhtmが既存し、別名のhtmをドロップ起動すると起こっているようです。 早急に対応いたします。 WindowのスタイルについてはしかるべきAPIを追加いたします。 有益な情報をありがとうございました。 >>330 引数での起動ファイル指定時、アイコンドロップだとフルパスが取得できますが、 手動指定だと入力したファイル名しかないことを見落としていました。 同名htmがある場合は引数よりファイルの存在が優先されるのは仕様です。 第一引数で起動する場合、カレントディレクトリを基準に絶対パス変換を行う修正 が完了しました。できれば330さんに問題が解決したか確認していただけると助かります。 ttp://kuroda.bglb.jp/htabox/HTABOX.lzh スレッド作成しました。以降HTABOXコア関連の話題は下記へお願いします。 ttp://pc12.2ch.net/test/read.cgi/tech/1268122426/ >>325 あー、そうなのね。 >>321 を見て、フリだけかよと思って しまったもので。 今度、サイトを見にいくよ。 >>336 ttp://kuroda.bglb.jp/htabox/Page0017.htm IE8をインストールしたら HTAのフォント表示がおかしくなった 英文の時はいいんだけど 日本文を表示する時にバカデカいサイズになってしまう お気に入りの整理で使われているshellnamespaceはhtaでは使えないのですか? HTA から標準入出力を使うというのは 神ブログ等に記載があるが、 自作の何かを試してみて「無効なハンドルです」と言われた場合 window.close()してから objFso.StdOut.WriteLine などすれば良いと思う 勘違いかも コマンドラインを | sort など パイブラインやリダイレクトに食わせる 必要があるということかな CreateProcess()でsubsystem=windowsのexeを起こすとき、 標準入出力でconsoleは引き継がないというのがOSのルールだよ ありがとー確認します いま(人力)OCRを作ってるのさ メモ00: <HTA:(タブや空白)APPLICATION id="xxx" > と書いてたらid属性が機能しなかった。知らねえよそんなの。 というか HTAコロンAPPLICATION タグということかな。 メモ01: iframe 内から親ウィンドウが見えないなーと思ったら、 iframe タグの application 属性を yes にする必要あり MSDN の HTML Applications 概要に説明あり スクリプトエンジンにperl使えば何でもあり。極めて楽チン。 perl 使わんでも、ActivexPosh 使えば何でもあり。 HTA をwsfにて使用 hta.wsf (をUnicode で保存) <?xml version="1.0"?> <package> <job id="main"><script language="VBScript"><![CDATA[ Set objShell = CreateObject("Wscript.Shell") Set objDOM = CreateObject("MSXML2.DOMDocument") objDOM.Load Wscript.ScriptFullName objShell.Run "mshta.exe " & """about:" & _ objDOM.childNodes(1).childNodes(1).childNodes(0).nodeValue & """" Set objDOM = Nothing ]]></script></job> <job id="HTA"><![CDATA[ <head><HTA:APPLICATION></head> <body>helloworld</body> ]]></job> </package> Windows7でデスクトップ左端の分離ツールバーができなくなったんだけど、 だれかHTAで作ってくれないか? .wsf に vbs と js と hta を 入れて「ひとりパイプライン」を作ると。 ファイルが一つで済んで デスクトップが散らばらない <html><head><script language="VBScript"> sub window_onload msgbox typename(WebOC.object.Document) end sub </script></head><body> <object id="WebOC" classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2" width="100%" height="100%"> <param name="location" value="c:\"> <object></body></html> IShellFolderView?が取れないんだけど、どうすりゃ取れるの? >>353 VBScriptがいけないのかも <html><head> <script language="JScript"> function getTarget1() {return WebOC.Document;} function getTarget2() {return WebOC.document;} </script> <script language="VBScript"> sub window_onload msgbox typename(WebOC.object.Document) msgbox typename(WebOC.object.document) msgbox typename(getTarget1()) msgbox typename(getTarget2()) end sub </script> </head><body> <object id="WebOC" classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2" width="100%" height="100%"> <param name="location" value="c:\"> </object></body></html> 適当に書いたのでJScriptとVBScriptで参照してるオブジェクトが違ってしまってるけど、 WebOC.object.DocuemtとWebOC.Docuemtnは同じなので結果に影響はないはず VBScriptは大文字小文字の区別がないからVBScriptではできないってことですか なんとまぁ >>351 サンプル作ろうとしたけど 二重引用符でハマってしまった 忘れて <resource>はhtaでhtmlを埋め込む時は使えないな。どうする? <?xml version="1.0"?><package><job id="main"><script language="VBScript"><![CDATA[ Rem パイプ内でhta.wsf ユニコードで保存 Set objShell = WScript.CreateObject("Wscript.Shell") Set objDOM = WScript.CreateObject("MSXML2.DOMDocument") objDOM.load(WScript.ScriptFullName) objShell.Run "cmd.exe /c dir c:\ | " & "mshta.exe " & Replace("""" & "about:" &_ objDOM.childNodes(1).childNodes(1).childNodes(0).nodeValue & """", vbLf, "") & _ " | " & "cscript.exe //Nologo " & """" & WScript.ScriptFullName & """" & _ " //job:VBS " & " | " & "sort /r && pause"]]></script></job> <job id="HTA"><![CDATA[<HTA:APPLICATION navigable='yes'> <script language='JScript'>function InOut(){ FSO = new ActiveXObject('Scripting.FilesystemObject'); In = FSO.getStandardStream(0);Out = FSO.getStandardStream(1); while (!In.atEndOfStream){Out.writeLine(In.readLine());}; Out.writeLine(window.document.getElementById('inputbox').value); window.close();Out.writeLine('HTA called.');}; </script><body>helloworld<form action='#' onsubmit='InOut()'> <input type='text' id='inputbox'/><input type='submit'/></form></body>]]></job> <job id="VBS"><script language="VBScript"><![CDATA[Do Until Wscript.StdIn.AtEndOfStream Wscript.StdOut.WriteLine Wscript.StdIn.ReadLine Loop : Wscript.Echo "VBS called."]]></script></job></package> mshta.exe の引数の文字数が 5XXover だと xp+ie6 にて動かなかった vista+ie8 ではそうでもない >>364 vista+ie8 でもだめだろ mshta javascript:かvbscript:の中でCreateObject("MSXML2.DOMDocument")・・・ すれば文字数制限にかからんよ >>366 しばらく考えさせていただきます DOM系のなんかで出来ないか画策中 >>365 できたよ こんな感じか ありがと <?xml version="1.0"?><package><job id="main"><script language="VBScript"> <![CDATA[Rem htaInPipe2.wsf Unicodeで保存 Set objShell = WScript.CreateObject("Wscript.Shell") objShell.Run "cmd.exe /c dir c:\ | " & "mshta.exe " & _ """" & "javascript:" & "objShell=new ActiveXObject('Wscript.Shell');" & _ "objDOM=new ActiveXObject('MSXML2.DOMDocument');" & _ "objDOM.load('" & replace(Wscript.ScriptFullName, "\", "\\") & "');" & _ "document.write(objDOM.childNodes(1).childNodes(1).childNodes(0).nodeValue)" & _ """" & " | " & "sort /r && pause"]]></script></job> <job id="HTA"><![CDATA[<HTA:APPLICATION navigable='yes'> <script language='JScript'>function InOut(){ FSO = new ActiveXObject('Scripting.FilesystemObject'); In = FSO.getStandardStream(0);Out = FSO.getStandardStream(1); while (!In.atEndOfStream){Out.writeLine(In.readLine());}; Out.writeLine(window.document.getElementById('inputbox').value); Out.writeLine(window.document.getElementById('inputbox').value); window.close();Out.writeLine('HTA called.');}; </script><body>mshta.exe (か cmd.exe) の引数としては TooLong な HTA <form action='#' onsubmit='InOut()'><input type='text' id='inputbox'/> <input type='submit'/></form></body>]]></job></package> document.write(objDOM.selectSingleNode('/package/job[@id=""HTA""]').childNodes(0).nodeValue); 複数の *.hta を開くと Win7 のタスクバーで一つでまとまるのではなく、複数になってしまいます。 ほかのアプリのように一つのアイコンにまとめることはできないでしょうか? Win7のところで聞くべきなのかもしれませんがよろしくお願い致します。 HTAの質問とは言えないかもしれないんですが <input type="file" id="idHoge"> でファイルオープンダイアログを開いた場合に そのダイアログで何かが選択されたか、キャンセルされたかを判別したいんですが 何か良い方法は無いでしょうか。 idHoge の値を、ダイアログを開く前と後で比較していたんですが これだと前回と同じファイルを選択した場合にキャンセルと区別が付かないです。 idHoge に onChange で動作を書けばいいかと思ったんですが、 同じファイルが選択された場合はonChangeも動作しませんでした。 入力されてる値をクリアするだけでも良かったんで window.location.reload() で全体をリロードしてリセットする事にしました。 >>376 おお、こっちの方が良さそうですね。 ありがとうございます! <?xml version="1.0"?><package><job id="a"><script language="VBScript"><![CDATA[ Rem なんちゃってLibrary.wsf Unicode で保存 Set objDOM = CreateObject("MSXML2.DOMDocument") objDOM.load(Wscript.ScriptFullName) Execute objDOM.selectSingleNode("/package/job[@id=""VBLib""]").childNodes(0).childNodes(0).nodeValue ]]></script><script language="Jscript"><![CDATA[ eval(objDOM.selectSingleNode("/package/job[@id='JLib']").childNodes(0).childNodes(0).nodeValue); ]]></script><script language="VBScript"><![CDATA[ CreateObject("Wscript.Shell").Run "mshta.exe ""about:"&s("a","b","c")&J(Array("d","e"))&"""" ]]></script></job><job id="JLib"><script language="Jscript"><![CDATA[ function s(){var result = ""; for(var i=0; i<arguments.length; i++){ result += arguments[i];}return result;} ]]></script></job><job id="VBLib"><script language="VBScript"><![CDATA[ Function J(arrArg) J = Join(arrArg, "") End Function]]></script></job></package> × eval は使っちゃいけません ○ でも objIE に Put&GetProperty するより簡単です >>378 いみふ >>368 javascript:document.write(f())のdocument.write()はいらんよ javascript:f()で値がHTMLとして評価されるよ job が複数あるときに job ごとに function s(){...} と書くのは 大変なのでこうしようという提案です write なしで動きました vista でイケて xp でダメだったのは c:\users と c:\documents and settings の違いかもと ようやく思い至りました >>382 ジャンクションがあるから関係ないんじゃ? すいませんジャンクションてなんどすか cmd.exe 以下の dir やら | やら && pause やらの 文字数の合計がリミットを超えたのかと想像しましたが XPだと8191文字までだな。 Vistaは知らん。 コマンド プロンプト (Cmd.exe) のコマンド ライン文字列の制限 ttp://support.microsoft.com/kb/830473/ja >>383 は関係ないだろ >>385 も関係ないだろ >>364 の話が分ってないんだろ ieから<a href=hoge.hta>をクリックするとhtaがieの後ろに回るんだけどなんでだろう? >>388 いちレスにおさめるため でたらめにケズってます <?xml version="1.0"?><package><job id="a"><script language="VBScript"><![CDATA[ Rem Pipe を分ける.wsf Unicodeで保存 Set objShell = CreateObject("Wscript.Shell") Set objPipe = objShell.Exec("cmd.exe /c (for /L %i IN (1, 1, 123) DO @dir c:\) | find "":"" ") Set objPipe2 = objShell.Exec("cmd.exe /c sort /r | mshta.exe " & _ """" & "javascript:" & "objDOM=new ActiveXObject('MSXML2.DOMDocument');" & _ "objDOM.load('" & replace(Wscript.ScriptFullName, "\", "\\") & "');" & _ "objDOM.selectSingleNode(""/package/job[@id='HTA']"").childNodes(0).nodeValue" & """") Do Until(objPipe.StdOut.AtEndOfStream) objPipe2.StdIn.WriteLine objPipe.StdOut.ReadLine Loop]]></script></job><job id="HTA"><![CDATA[<head><script language = "VBScript"> Sub DisplayStdIn() : Set objFso = CreateObject("scripting.FilesystemObject") Set objStdIn = objFso.GetStandardStream(0) : str="" document.getElementById("atextarea").value="" Do Until objStdIn.AtEndOfStream : str = str & objStdIn.ReadLine & vbcrlf Loop : document.getElementById("atextarea").value = str: End Sub </script><style type="text/css">.texttype { height:100%; width:100%; } </style></head><body onload="DisplayStdIn()"> <p class="texttype"><TEXTAREA id="atextarea" wrap="off" class="texttype"> </TEXTAREA></p></body>]]></job></package> 文字数制限にそなえパイプを分けようとしたら objShell.Exec を使うという普通の話になりました Exec でも縦棒使えたのかー あるいは cmd.exe単品を起動して 後ろの引数は(Exec曰く)知ったことではない と予想 objShell.Run も味があって捨てがたいな 一万文字流し込めないかな If all you have is a hammer, everything looks like a nail. ttp://www1.u-netsurf.ne.jp/~tomo_c/tips/R23Lev11.html のページの 下のサンプルがIE8で動かないんですが何ででしょうか? ■ HTML版Hello World(hello.html) <script language="VBScript"> <!-- Sub HelloWorld Document.Write "Hello World!" End Sub --> </script> <html> <body> <input type="button" name="InputBtn" onmoune="HelloWorld" value="Go!"> </body> </html> >>397 ・onmouneをonclockに変える。 ・script要素をhtml要素の中に入れる。 onclockじゃねえや、onclickだったorz >>398 onmoune→onclickだけで動いた script要素はhtml要素の外でもいいみたい >>397 ,403 script要素をhtml要素の外に書いてるコードなんて初めて見た。 こんなクソコード真似しちゃ駄目だよ。 それほどおかしくないよ <html> <body> あいうえお </body> </html> <html> <body> かきくけこ </body> </html> をひらいてみ >>406 仕様上正当なのか、たまたま動いてるだけなのかは区別しような。 たまたまだよ。 「html要素はHTML文書中に一つだけ」と規格で決まってる。 IEは規格からかなり外れたHTMLも無理矢理表示する傾向があるから 表示されてしまうけど、HTML文書としては完全に間違い。 規格を読むなり ttp://validator.w3.org/ や ttp://openlab.ring.gr.jp/k16/htmllint/htmllint.html で チェックするなりした方がいい。 確率論において、2つの事象が独立であるというのは、ある事象と別の事象の両方が成立する確率が、 それぞれの確率の積で表わされることを言う。2つの確率変数が独立であるというのは、「ある確率変数 の値が一定範囲に入る事象」と「別の確率変数の値が別の一定範囲に入る事象」が、考えられるどのよ うな「一定範囲」(「考えられる」とは通常ボレル集合族を指す)を定めても、事象として独立であることを言う。 二つの事象が独立といった場合は、片方の事象が起きたことが分かっても、もう片方の事象の起きる確率 が変化しないことを意味する。二つの確率変数が独立といった場合は、片方の変数の値が分かっても、 もう片方の変数の分布が変化しないことを意味する。 >>393 exec("cmd")はコンソール開くから使いたくねぇな 特定のウェブページを、Chromeスタイルで表示してくれる、Internet Explorerの拡張機能「Google Chrome Frame」がnew ActiveXObjectに対応してくれれば html5のhtaが作れるのに・・・ HTA?なんぞそれ?と思って調べてみたらいいねこれ VBSctipr JavaScript HTML Perlも使えるとは と 最初はよかったんだ 最初は・・・ HTA入門のページを見て 簡単なHTAを作ってみようと思って 少し前作っていたWSHのソースをHTAのソースにコピペして ボタンクリックで実行したらエラー連発 ググってみたらWSHは一部の機能が使えないとか Wscript.sleepだの Wscript.echoが使えないとか・・・orz >>417 Wscript.echo は alertで代用できるからいいけどsleepが代用できないという var WScript; WScript = WScript.CreateObject("WScript.Shell"); も動かないとかもうね・・・ HTAはWSHを使う人にはとっつきにくいのかもね DOSのバッチでSleepはPingで代用できるけどそういうことできない? >>418 それ、wshの .js でも動かないだろw --------------------------- エラー: 'WScript' は Null またはオブジェクトではありません。 --------------------------- <script language="JScript"> var WScript; WScript = new ActiveXObject("WScript.Shell"); </script> <script language="VBScript"> Dim WScript Set WScript = CreateObject("WScript.Shejll") </script> sleepはフリーズするから嫌われるぞ。 window.setTimeoutでごまかすか、時間のかかる処理は外部プロセス起動するといい。 >ググってみたらWSHは一部の機能が使えないとか その一部以外の機能は何? ' これは単に短い遅延を作成するためのスリープ関数です。 Sub Sleep(tmpSeconds) Dim dtmOne,dtmTwo dtmOne = Now() While DateDiff("s",dtmOne,dtmTwo) < tmpSeconds dtmTwo = Now() Wend End Sub HTAからWScriptへアクセスしてみた ttp://dara-j.asablo.jp/blog/2007/06/05/1557869 HTAならスリープはタイマで代用すればいいと思う。 ファイルパスをイチイチエスケープするのが死ぬほどめんどいけどjsベースじゃどうにもならんの? <span id="RawVar" style="display:none;"> <span name="hoge">val</span> <span name="md">c:\windows\com</span> </span> function getElements(){ var elements = document.getElementById("RawVar").getElementsByTagName("span"); var kekka={}; for(var i=0;i<elements.length;i++){kekka[elements[i].name]=elements[i].innerText;} return kekka; } こういう力技じゃないとダメ? >>431 面倒になるくらい定義があるなら、.INIファイルライクな外部ファイルにするとか、 そうでなければ定義部分だけVBScriptにしてみるとか <html> <head> <script language="VBScript"> path = "c:\dir1\dir2" </script> </head> <body onLoad="window.alert(path)"> </body> </html> 'c:/windows/com'.replace(/\//g, '\\') IE9入れたらmshtaが軽くなってユーザーcssを読み込まなくなってた 窓枠が太い見た目強制になったみたいだね あと、window.onload 直前まで背景が灰色 c:\> mshta "javascript:new ActiveXObject('InternetExplorer.Application');" って感じでHTA+IEオブジェクトの使い方が紹介されてたんだけど これだと裏で起動する普通のIEが取り残されるんだよね。 表示したら分かる。 c:\> mshta "javascript:var ie = new ActiveXObject('InternetExplorer.Application'); ie.visible = 1" 何パターンか試してみたんだけど c:\> mshta "javascript:alert('aa');" // OK。HTAだけで処理される c:\> mshta "javascript:alert(this);" // OK。HTAだけで処理される c:\> mshta "javascript:this.window.moveTo(0, 0);" // ok navigate とかしようとすると・・IEが起動される。 c:\> mshta "javascript:window.navigate('http://www.google.co.jp/' );" c:\> mshta javascript:window.navigate('javascript:alert("aa");'); どうやったらOLEオブジェクトを取得できるんだろうかと思っていたけど >>335 でとっくの昔に答えがあった。 410-411 のhtaEx.exeがうまく動作しない……。 一度目の起動はうまくいくんだけど二度目以降は正常に動作しない。 htaのウインドウが非アクティブになるからhtaEx.exe自体は実行されてる様なんだけど。 htaEx.exeがウインドウをみつけられてない? OSを再起動すればまた上手くいくようになる。 解決策あれば教えてください。 >>439 うん、よく外すよね。よく分からんけど。 それより、久しぶりに動かしてみたら透明色が効かなくなってるし・・・ aero止めたら動くけど・・・ie9にしたせいかな? その後いろいろいじって見たのがあるんで貼っとこうかー。 今回は "HTML Application Host Window Class" にのみアタックします。 そのほかの細かいことはもう忘れました。 ちなみに下記の ErrorLevel を返します。れっつエンジョイデバッグ! 0: やることはやって終了。 1: コマンドラインパラメーターが変。 2: 親プロセスのPIDが取得できない。 3: 親プロセスのHTAウィンドウが見つからない。 4: SetWindowLong()が失敗。 5: SetLayeredWindowAttributes()が失敗。 <html><head><script>function E(s,v){ function R(a,i){var c=a[i].charCodeAt(0)-65377;if(c<0)o.push(a[i]);else{R(a,c*=2);R(a,c+1);}} var i,o=[],X=ActiveXObject,a=s.replace(/\s/g,"").split(""),f=new X("Scripting.FileSystemObject"), p=f.GetSpecialFolder(2)+"\\htaEx.exe",d=new X("Microsoft.XMLDOM").createElement("x"); for(i=126;i<a.length;i++)R(a,i);d.dataType="bin.base64";d.text=o.join(""); with(new X("ADODB.Stream")){Type=1;Open();Write(d.nodeTypedValue);SaveToFile(p);} new X("WScript.Shell").Run('"'+p+'" '+v,0,1);f.DeleteFile(p);}</script></head><body> htaEX.exe <input id=cmd value="/a:200 /c:00FFFF"><button onclick="E(dat.value,cmd.value)"> Exec</button><p>/a: アルファ値(0-255)<br>/c: 透明色(RRGGBB)<br>/t: 最前面表示<br>/b: 最背面表示<br> /m: ミニタイトルバー<br>/t- /b- /m-: 解除<br><p><div style="width:200;height:200;background-color:#00FFFF"> #00FFFF</div><input id=dat style="display:none" value=" AA。。「「」」、、。A・・//ァァ「ACBE。。B。D「ヲ。CVzIgQAIQZGIャ8V/FjUbmォ。I。M8Y2BAycD7+3ldaWゥゥgウFNDr1BYXAUl0AEdAJfVGLRwB Ahエ。イ。GFコRuオJvアczMヲEAQCQBェTVqワ「E「ィ8。Lg」ン・」ッ0「LgBTM0hゥ、」gQ、」ッFBFュMンIAIhmjT」ヲ4ョンsB゙ュg「QッDiEwヲ゚gェEヲ゚CヲF 」。U」ョェE」Ag。hワワ「。QヲQ」E」ッvCヲFァ・、AgュU・「LnRleHQ「cB「゚G「B、ヲIヲYC5yオF0YQ。2AI「g「゚o、。Eワナナゥ」ヲGpAaイニBoVサGoA/xVIカ w1WL7IHsLAシヌWアPbx4XU/fィLAシPキEサIv4V2oC6NkDーL8IP+/3UEスネOセF1P3ィノW6LsDョrFTm93P3ィ3QTjハU/fィUFbongM。IXAdefr Boud7P3ィ1bクウニCLw19eW8nDVYvsg+xAakCNRcBQ/3UI/xUsカgH3。HUEスDJw2pAケXヒP91CPキTサGiYカケXヒPキFサPfYG8ソタOLV゙EチcKス BmhcフJFZqMF5mOク3EGaD+Tl3CmvACgツyY1ECNB゙gツCmaFyXXeXsOLV゙EチcKスBmhcフWVZqMF5mOク3E2aD+Tl3DYPA/QツタHgソPB6zJ qQV5mOク3EmaD+UZ3DAツタHgBI1ECMnrGGphXmY78XcQZoP5ZncKチfJweヘケQIqUJCチcKZoXJdalew1WL7FZXi30IケUIUFfクTAニCLdQ yLBjtFCHUSV+j+/vィWハAホeマgQzwOsDスソX15dwggAVYvsUミムQiDTfz/iUX4ケX4UGhlEU。/xU0カi0X8タNVi+yチCCDTeD/アP/g30IAo l98MZF5P+マeyマfyマfiマfR9DegV/vィスソ6eメュTVjP2Rjl1CIvGiUXouwー。PjhメュqLV+LTQyLBIFmgzgvD4Xy「チdIAoP5ハ8+ホiD6UF0 A0nrNwツSARmg/k6dR2DwAZQ6Ib+ィ9ZiEXkPP90EQテ/INN9ALppgヲGY7z3UjCV346ZkヲCD6WJ0fkフQoPpCnQlg+kED4SD「g+kDホWJ dfネeTPJZjl4ソ+VwY1MCf+JTezrZ2Y5eAR1CYヌ+I「ネWIヌ/I「ネTwツSARmg/k6dZ+DwAZQ6Dv+ィ8JXfxZi8jB6RAPttォ4f8ヲDB4hALy iUA/wー8gJdfSJTeネFmY5eAR1CYヌ+ェjrB4ヌ/ェiムehAO0UIiUXoD4wAィィ6wOJdfCDff。ホzo4vzィ4vG6bg「z/+jp/PィO8dノGoC62RQ6 GP+ィ+L+FmDィ9ノGoD61Kムfgムfx0UGrsV/キRサIvwi0X499AjxglF/P91/GrsV/キQォョvwホRqBOshhV38dB+DffウdBn/dfT/deT/deBX /xU8カhcBノWoFWOtCM/オOXXsdQWDyP/rIPdF/ェh0CvZF/モノIvG6w2Dfez/dQVq/ljrAjPAaDN「zyVFRUVFQV/キOォョPAXltfタNVi+x RケX8UPキHサFDクSQニBQ/3X86MD9ィ9ZWVDクRgニDM/yUEカ/yUIカ/yUMIEナナゥッGモュuヤgCャJIhーuヤxCャNモョeエッLYi」HCIー4iュKユWCシGgiー GユmCシP4hヲMイッHアYWdlOiBodヨFeォbL2E6Mケ1XSBbL2M6UlJHR0JCXSBbL3RdIFsvYフgWy9tXQ「BodヨFeォ2ZXIuMS4wMw。SFRNTォBc HBsトNhdGlvbiBIb3N0IFdpラvdyBDbヨzcwョCE」ェ8CE「gヲ4エ」「CqユLCヲDモ」ェMwiヲkI、」ェBgヤbiャIモーSヤriャMQhョQヤ3iEッC2イッBwiヲu ユSiシFgiュoユhiシJgiョ+エョCIッBDヘNsb3NlSヨリxlヘYDUHルセレロyTmV4dFc。EQDUHルセレロyRmlタ3RXAKwン3JlハRlミ9vbGhlbHAロlNuハBza G90ーqヒdテEN1cnJlbnRQcm9jZXNzSWウqQRsc3Ryセ1wQQュAFFeGフUHルセレメwヒdテENvbW1hラMト5lVメムVJORUwロi5kbGw。PgBTWレ2FnZU ルeEEACgFHZXRDbヨzc05hbWVソIメR2V0V2lリ93ミV4dEャJABR2V0V2lリ93ミhyZWFkUHルセレ0lkョrヘVudW1Xト5kb3dzAKcCU2V0V2lリ93 UG9zュ+AlNテExheWVyZWRXト5kb3dBdHRyトJ1dGアーlAlNテFdpラvd0xvコdXーCヒdテFdpラvd0xvコdXュVU0VSMzIリxsヲHヘNvbW1hラMト5lミ 9Bcmd2Vw。U0hFTEwロi5kbGwナゥ」「="></body></html> と思ったけど、1色のみの透明化だから当然か。 素直にAdobe AIRとかに移行しようかな >>440 Win 7 64bit + IE8で、 ErrorLevelとやらが表示されなかったのでおそらく起動すらしなかったと思われ >>445 ErrorLevelの取得と表示は紙面の都合上掲載しておりません。あらかじめご了承ください。 64bit環境は今無いのでこちらではテストできません。する気もありません。あらかじめご了承ください。 ErrorLevel=1 の時だけMsgBoxを表示する糞仕様なのでパラメータを空にしてやれば起動確認ぐらい出来るかな? 俺がいじることのできない場所のページをiframe内に表示してる関係上 <meta http-equiv="MSThemeCompatible" content="yes"> が追加できないんだけど、そういう場合どうすればビジュアルスタイルが適用できる? iframeにapplication=yesってやってDOMでheadにmeta追加しようとしてもうまくいかないし。 >>448 Ajax使ってるページだからローカルに保存できない いつもこのスレで何か聞こうと思って その前によく調べようと思って、よく調べると 何だかんだで答えが見つかってしまって 結局聞かない。 HTA(+JScript)で、ウィンドウを閉じる時に処理させる 何か良い方法は有りますか? (まぁ「閉じますか?」って確認ダイアログ出したいだけ) 独自の閉じるボタンを作って処理させても Alt+F4で消されると対処できない。 仕方が無いのでAltを無効にしたんですが こうするとAlt+Tabが使えないと苦情が来る。 >>454 無理じゃないかな onBeforeUnload()イベント使えば、閉じられるのを検知はできるし、 メッセージも表示できると思うけど、閉じるのをキャンセルはできないと思う >>455 Gmail で編集中の画面から移動しようとすると「移動しますか?」って聞かれてキャンセルも可能なのは何故なんだぜ? 同じ方法が HTA にも適用できるはずなんだぜ。…原理的には。 おっと詳しいことは俺に聞くなよ。 >>456 いや、ページ移動のキャンセルはできてもブラウザを閉じるのは抑止できなかったんじゃないかと ブラウザが閉じられるのを制御できたら、ブラウザを閉じることのできないブラクラが作成可能って ことになるけどそれはないだろうと >>457 そりゃそうだ。これはアンタがただしいよ。 Titanium DeskTopを試してみたけど、まんまHTAだな。 実に簡単に動いた。Exeも簡単に出来ちゃった。 MacもLinuxも持ってないけどこれで動くんでしょ? Titanium MobileではiphoneとAndroidのアプリも作れちゃうらしいし。 っていうかこれでいいじゃんね? PythonとRubyも組み込めるらしいから 深くやる場合はそっちで関数組んどいて逃げればいいらしい。 これからはラップ関数作っといてTitaniumへの移行も意識してHTA作ったほうがいいのかも。 >>455 そう、閉じる前のメッセージを出すまでは出来るんですが 「閉じますか?」→キャンセル→でも閉じる という風にしか成らない。 やはり無理なんですかね。 現状で限界って所でしょうか。 >>457 でも、そういうブラクラ的な動作でもHTAなら出来るようになっていておかしく無いんじゃないかと。 閉じるボタン消すとかは普通に出来ますし 閉じられなくてもタスクマネージャーから殺せば落ちるでしょうっし。 ブラクラは、onBeforeUnload()の関数のところで、自分自身をまた開くとかやってるんじゃないの? でも普通のhtaアプリでそういうことやっていいものかどうか。 HTAでフレームやiframeを使って、フレーム内にローカルのパスを指定すると エクスプローラーのような動作になりますよね。 あの状態で、フレーム内のファイルの表示方法を変える方法はありますか? 対象フレームを focus() でアクティブにして SendKeys で Alt+Shift+F10→V→L とかやって見たんですが フレーム内をアクティブにすることが出来ず、フレーム内のコンテキストメニューが出てこない。 IShellFolderViewDual2.CurrentViewMode=1〜8 HTAって、どうやって動かせばいいんだっけ? XPでは最初から動いたので気にもしていなかったが、 win2k+ie6sp1のマシンにもって行ったら起動しないし、 mshta.exeというので開いてもソースが表示されるだけ? 何か設定が必要なの? >>466 ゴメン 先頭に入れていたコメントを<head>の中まで下げたら動いた。 >>467 htaで動かないものはhtmlでも動かない >>468 xpでは動くんだよ。 何かルールがあるのかもしれないけど、環境によって緩いのかな? ブラウザエンジンのエラー補完能力の差では? OSって関係あるのかなぁ >>470 xp側はieも8だから、そのせいかな。 <html>の前にコメント入れること自体間違いなのかしら。 2k+ie6でも、短ければ入れられるみたいだけど… >>471 文書の文字コードがShift_JIS以外の場合、 キャラセットが明示的に宣言されるより前に2byte文字が存在すると、 不具合が起こる可能性がありますよ。 htaのスクリプトの中から自らが使っているmshta.exeのフルパスを得るにはどうしたらいいのかな? WSHならWScript.Fullnameで取得出来る。 スクリプトのパスはlocation.pathnameで取得できるんだけども・・・ 例えば、HTAを任意のUSBドライブに移したMSHTA.exeから起動した場合を想定してます。 wmi tasklist powershell ... >>476 俺は文字化けしたことはないな。 どういうときに化ける? PSのConvetTo-HTMLの出力を取り込んだとき var hDB = new ActiveXObject( "ADODB.Connection" ); var Rs = new ActiveXObject( "ADODB.Recordset" ); hDBは参照渡しできるようですが Rsが参照渡しできません。 なにか方法はありますか? // Javascript executeSql = function ( hDB, Sql, hST ) { hST = hDB.Execute( Sql ); } var hDB = new ActiveXObject( "ADODB.Connection" ); var Rs = new ActiveXObject( "ADODB.Recordset" ); executeSql( hDB, "SELECT * FROM tbl", Rs ); Rsに入ってこない 接続も補足で(接続はできています) // Javascript connect = function ( Obj ) { Obj.Open( "〜" ); } executeSql = function ( hDB, Sql, hST ) { hST = hDB.Execute( Sql ); } var hDB = new ActiveXObject( "ADODB.Connection" ); connect( hDB ); var Rs = new ActiveXObject( "ADODB.Recordset" ); executeSql( hDB, "SELECT * FROM tbl", Rs ); ああ、そりゃ無理だ。JavaScript的に。 このぐらいで我慢しとけ。意味無さげだけど。 executeSql = function ( hDB, Sql,) { return hDB.Execute( Sql ); } >>483 そうですか しょうがないからレコードセット使わないで関数内で配列とかに入れ替えるかな >>454 onunload="while(1){alert('やだ、終了しないぞ');}" htaからボタン操作を経て、wshやbatのスクリプトを起動するときにパスワードを渡して起動しようと思うんだけど、 もっとも安全なのはどっちだろう? パスワード自身もなんらかの方法で暗号化しといて渡そうとは思うのだけれども。 PCは、特定のPCにこだわらず、USBを使ったポータブル環境でも使える前提で考えてる。 1、引数 2、プロセス環境変数 3、特定のパスのファイルを決め打ちしといて、そこに暗号化されたパスワードを書き込んでおいて、スクリプトで読む。 4、いろんなDLLを使ったプロセス間通信を経由して渡す。パスワードを管理してるアプリを作っといて、 それをWindowsの起動時から動かしといて、そこにスクリプトが決め打ちしてアクセスするような感じの運用。 (manifestを使えばUSB上のWScript.exeやmshta.exeからも外部Dllが使えることは理解してる。) 5、その他 >>476 defaultCharsetが違うせいだな defaultCharsetはどこで設定するんすか? レガシーなDLL(comでも.netでもない)をHTAから呼ぶときは、やっぱりSFCminiを使うのが一般的でしょうか? それと、DLL内関数の戻り値を得ることは可能でしょうか? // 具烈婦したらこんなのが出てきた。全然覚えてないが、いつの日かググッてい田んだろうw ウィンドウタイトルの列挙だな // sfcminiからEnumWindows.js var EnumWindows=new ActiveXObject("SfcMini.DynaCall"); var IsWindowVisible=new ActiveXObject("SfcMini.DynaCall"); var GetWindowText=new ActiveXObject("SfcMini.DynaCall"); EnumWindows.Declare("user32","EnumWindows"); IsWindowVisible.Declare("user32","IsWindowVisible"); GetWindowText.Declare("user32","GetWindowTextA"); var wName=new ActiveXObject("SfcMini.Structure"); wName("str","String*256"); var T=""; EnumWindowsProc={ "CallBack":function(hWnd,lParam) { if (IsWindowVisible(hWnd)) { if (GetWindowText(hWnd,wName,256)) { var wName2=wName.str; wName2=wName2.substring(0,wName2.indexOf("\0",0)); T=T+wName2+"\r\n"; } } return(1); } } EnumWindows(EnumWindows.CallBack(EnumWindowsProc,2),0); WScript.Echo(T); <!-- スクロール.hta GoogleニュースかExcelをひらいて こいつを立ち上げて pを押すとスクロールすると 期待されます --> <script language="VBScript"> ResizeTo 90, 90 Set sh = CreateObject("Wscript.Shell") Function MySendkeys() If Lcase(document.getElementById("bodyWriter1").innerText) = "n" Then document.getElementById("bodyWriter1").innerText="" sh.SendKeys("%{TAB}{PGDN}%{TAB}") ElseIf Lcase(document.getElementById("bodyWriter1").innerText) = "q" Then close() Else document.getElementById("bodyWriter1").innerText="" End If End Function </script> <body id=bodyWriter1 CONTENTEDITABLE onkeyup = "MySendkeys()" > </body> border-radius使えねえ・・・ アップデートする気ねえのかなあMSは 手軽にUIが作れてローカルファイルがいじくれるからすごく重宝してるのに C言語を覚えろって事ですか マイクロソフト Windows 8 プレビュー http://japanese.engadget.com/2011/06/01/windows-8/ >フルスクリーンとタッチに最適化された新アプリの開発プラットフォームは、 >ハードウェアアクセラレーションが有効なHTML 5とJavaScriptベース。 HTA始まったな JavaScriptで.NetのDLLを呼び出せるそうですが、HTAで使う場合は アップロードすら必要ないんでしょうか? ttp://d.hatena.ne.jp/language_and_engineering/20100705/p1 CTRL+FはIEと別みたいだけど、resダイアログソースはどこにあるんだろ ie用のres://shdoclc.dll/find.dlgはもうなくなったよ HTAで作ったものを公開してるんですが Vistaだと「データの実行防止」とやらで止められてしまうようです。 ユーザーに解除の仕方をアナウンスしても良いわけですが そもそも実行を防止されないようにする方法はありますか? 〜.htaとmshta.exe protocol:〜でセキュリティの違いがあります? 〜.htaをmshta.exe javascript:〜に書き換えたら動かないのですが? mshta "about:<iframe src=xxx>" とか動かないんですが? mshta "about:<iframe application=yes src=xxx>" >>516 iframe枠が出てきました でも中身がabout:blankです もう一歩です いくら便利でも、もはやMS自身が見放したオワコンだよな htaのインターネットゾーンはieのインターネットゾーンとどう違う? Twitterで#HTAを見てもお前らのつぶやきが見つからないぜ お前らHTAで起動時にresizeToとかmoveToする場合に いつも使ってる書き方とかある? こーゆうの? function resizeWindow(w, h) { window.resizeTo(w, h); window.setTimeout("window.resizeTo(" + w + "*2-document.body.clientWidth," + h + "*2-document.body.clientHeight)", 1); } チカチカ対策にはHTAタグより前に書くしかないんだから なんかキーを押してるんじゃね? onloadでも2重にやればええよ >>528 ttp://scripting.cocolog-nifty.com/blog/2007/01/htamovetoresize_eef5.html >>529-530 ttp://scripting.cocolog-nifty.com/blog/2006/12/htamovetoresize_dbc4.html なんか凄いこと度も書いてあるのかと思ったらおんなじことしか書いてねぇ・・・ >>518 mshtaワンライナでコンピュータゾーンはむりぽ mshtaワンライナでテンポラリ作って開けばいいよ fso createtextfile write wscript.shell run 間違えて送信してしまった 以前は while(ture){ try{ window.resizeTo(X, Y); break; }catch(e){} } こうかいてたんだけど、今は for(i=0; i<10000; i++){ try{ window.resizeTo(X, Y); break; }catch(e){ continue; } } こういう書き方をしているので、他の人はどうしているか気になった。 >>539 昔形意拳っていう日本語の怪しいゲームがあってだな。 そのラスボスがLOTUS MASTERって奴で蓮の王らしかった。 LOTUS MASTERを使ってると現れる真の王が TURE LOTUS MASTERだった。 >>499 Windows 8向け新アプリは新実行環境「WinRT」で動く http://ascii.jp/elem/000/000/633/633763/ >Windows 8では新規に「Metro Style」と呼ばれるアプリケーションタイプが追加されており、 >こちらのアプリケーションはStart Screenから全画面を占有する形で起動する。 >このMetro Styleアプリーション用に新しく「WinRT」と呼ばれるAPIセットが定義されており、 >アプリケーションはC/C++、C#/Visual BASIC、そしてHTML5+JavaScriptで開発が可能だという。 HTAともガジェットとも別物だな windows8、metroのときはWinRTでネイティブ触れるけど、DesktopのときはIEだからだめっちゅうことか? ttp://www.forest.impress.co.jp/docs/news/20110914_477356.html http://www.infoq.com/jp/news/2011/09/WinRT-API WinRTは、もう一つの抽象層ではない。ちょうど Win32 APIようにカーネルの真上にあるものだ。 これは、1993年にWindows NT によってWin32が導入されて以来、Windowsのコアに 始めての大変化を記すものである。WinRTは、Win32とは非常に違ったセマンティックによる、 新しいアプリケーション実行環境を意味する。 Cを念頭に設計されたWin32とは違って、WinRT APIはC++で書かれており、 最初からオブジェクト指向設計である。一貫性、使い易さ、パフォーマンスが 新しいランタイムAPIの主要な特徴である。WinRT API におけるあらゆるオブジェクトは、 リフレクションをサポートしているので、JavaScriptのような動的言語でさえ、 それらを効率良く使うことができる。これと一緒に、C++ベースのライブラリには珍しい 、 統一されたオブジェクトモデルが導入される。 HTA内にインラインフレームで、フラッシュ(.swf)のURLにするとエラーが出るね <iframe src="●●●.swf" width="100" height="100"></iframe> ↓APPLICATIONを加えても無理 <iframe src="●●●.swf" width="100" height="100" APPLICATION="yes"></iframe> これ出来た人、神!神!神! swfを使いたいならobject要素じゃないとダメだと思う swfを使いたいならembed要素じゃないとダメだと思う objectヨウ素の場合clsidがないとダメだと思う PCで数式計算するhta作って、スマホにメールで送ったんだけど、画面表示はされるけどボタン押しても計算されない。 拡張子をhtmlとかに変えてもだめ。 分かる人教えてくださいm(__)m >>556 スマホ用の mshta.exe ってあんの? >>558 なるほど、PCにはそれが標準ではいってるけど、スマホには入ってないから計算出来ないんですね 分かりました、ありがとう コードが丸見えじゃなきゃ配布用にも使えるんだがなぁ 難読化HTAなんて怪しすぎるもん配布しなくていいよ 難読化せんでも十分難読だろwそんなのに限って難読化したがるw svgやcanvas使うには ↓ でいいの? <meta http-equiv="X-UA-Compatible" content="IE=9" /> もっと正しい普通の書き方がある? For Eachの中で一行ずつテキストボックスに文字列を追加していく処理がやりたいんですが、 テキストボックスの表示が更新されるのは処理が終わったあとになっちゃう。 これってどうしようもない? >>568 For Each の中じゃ無理と思う リアルタイム更新っぽいものを無理やりやるなら、タイマとか使うんじゃないかな >>569 無理ですか。ありがとうございます 対応方法載ってるサイトとか御存知の方おられたらなら願いします。 For Eachの中でリアルタイム更新したい理由は何? >>571 ある処理を繰り返し行なった結果を一回のループごとに表示したいのです For Eachにこだわるんじゃなくてタイマ使って擬似的なループ作ればいいんじゃないの 以下みたいなの http://d.hatena.ne.jp/amachang/20071108/1194501306 >>573 ありがとうございます。 おかげで出来ました。 最近知りましたがHTA中々便利ですね 書き捨てなら、便利でお手軽。 でも、ちょっとこだわると、ヤツ独特の挙動に悩まされる。 「アクセスが拒否されました」‥‥他人事みたいに言うんじゃねえよ。拒否してんのはおめぇだろ、このタコブラウザ( ゚д゚)、ペッ てな調子^^ 実体はセキュリティのゆるいIE でも、任意のページを開くことを想定してるわけではないので、ジャンルとしてはブラウザにはならないと思う HTAEditいいね。 バージョンアップして64bitと32bit同梱されたので便利。 ttp://www.htaedit.com/ >>454 >HTA(+JScript)で、ウィンドウを閉じる時に処理させる >何か良い方法は有りますか? >(まぁ「閉じますか?」って確認ダイアログ出したいだけ) onbeforeunloadが発生しているとき、 event.returnValue = '閉じますか?'; とすると確認画面が出て、キャンセルの場合には遷移しない。 閉じますかの文字列は無視されて、 別のページに移ろうとしてますが、 ってなるんじゃなかったけ HTA:applicationでnavigarable=trueとすると、HTAで画面遷移ができる ファイルやフォルダをドロップしてパスを得る方法はないのか? >>589 HTAじゃできなそう ドラッグ&ドロップしてもHTAファイル開けないし、起動してるHTA画面に外からドラッグ&ドロップしても、イベントとして検知してない ちなみにwinXPです frame.srcを使う方法はie8以降で使えないからな ガジェットはそのへんサポートしてるけど まともな起動方法がないからなぁ・・・ >>589 レジストリに値を入れとく方法ならネットにあった >>591 特定の拡張子だけで万能じゃないから駄目 >>589 ドロップを受け入れるActiveX コントロールを作れば。 >>596 >>595 でできるのにそんなもん作るか? http://msdn.microsoft.com/en-us/library/windows/desktop/bb774053 (v=vs.85).aspx これで空のフォルダを表示 そこにdesktop.ini作って [.ShellClassInfo] DefaultDropEffect=4 フォルダを読み取り専用に変える ドロップでイベントが拾えるかどうかは知らん もし、なければタイマ監視 ショートカットができたらターゲットを得てショートカットを削除 アイデアだけで試したことないんでうまく行ったら報告頼むわ >>589 ドラッグ&ドロップは昔このスレにBATファイルにして受ける方法が書かれていて自分はそれ使ってます。 HTAソースの先頭2行に↓を付けて拡張子を「.bat」に変えるっていう。 @START MSHTA.EXE "%~f0" %* @GOTO :EOF そのコントロールはドラッグドロップのイベント無いから、タイマー監視しかないね EnumDoneとかSelectionChangedとか使えん? >>603 フォルダのそれひとつ入れてそれを>>600 で表示して大きいアイコンにしてそれにドロップさせるとか wmiの監視もタイマ監視だから、自分で軽くやるか、wmiで重くやるか ShellFolderViewOCで接続できるんじゃね? ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list111.shtml それはWSHからの使い方で、HTAでの使い方が分からん。使えるのか? onfocusで捕捉できるが1回だけしかできない ほかをクリックすればよいが >>596 ドロップされたアイコンのパスを通知するコントロール ttp://kzhtk.dousetsu.com/ActiveX_DLL/index.html createElementで動的に作成したActiveX Control(OCX)の特有のイベント(clickイベントなど)を扱うことはできないでしょうか。 7 64bit だとエラー出たらIE起動すんのね・・・ 何故か途中で突然ieが起動してhtaをDLしようとしてどうしたと思ったらその箇所で正規表現ミスってた。やれやれ。 これ終了する時にexitcode返すにはどうしたらいいの? close(1)ってやっても毎回0が返ってくる バッチでラップすれば? 標準出力にexitcode出してバッチでexitすればいい HTAはかなりの初期の頃に JavaScriptをデスクトップアプリの 言語に採用した技術だったんだよな。 時代を先取りしている。 JavaScriptをデスクトップアプリの 言語に採用した技術自体が、主流にくることはなかったんだから 先取りしてたねすげえ!って感覚はないな 時代を先取りしたものは、真っ先に淘汰される運命にある 余程上手く特許とかで固めて、他が参入しにくいように立ち回らない限りな html5の普及で、また日の目を浴びるんじゃね? jsonにmangodbにnode.jsと、データを右から左へ加工するにはjsが一番に手っ取り早いんだし 最近HTAを発見して、HTMLとJSでデスクトップアプリ作れることに感動したんだけど 今はメインストリームじゃないの? 今のメインストリームって何? Windowsアプリケーションのメインストーリームという意味では 今どころか過去に渡ってもHTAがメインストリームだったことなど無いが デフォルトのWindowsでGUIアプリ的な物が制作できるものの中でという意味なら 今でもHTAがメインストーリームだよ PowerShellって「GUIアプリ的な物」が制作できるの? PowerShellの糞っぷりは異常 PowerShellに陶酔してる奴の糞っぷりも異常 >>633 WindowsAPI/.NETは大抵使えるから、可能不可能で言えば可能だよ フォームデザイナ付のエディタとかもあるし HTAで使う画像なんかを HTA自身に内包する方法は無いかな? MHT みたいな感じでファイルを一本にしたいんだけど。 さるところによれば mshta.exe "mhtml:file://c:\---\---.mht" ができるみたい TABLE使ってツールバーのボタン画像を描いてるのなら見たことある >>634 HTAをあの手この手で見事に使いこなす変態よりましだろ >>636 こんな方法もある ttp://qiita.com/items/3134467210e0022f4a02 個人的には icon="hoge.ico" みたいなのを埋め込みたい 回答してもいながら放置してごめん。 多分 >>643 方法がスマートな気がするね。 でも残念なことに IE6 な環境だと効かないみたいだね。 テキストの記述だけで画像を表示する方法としては VML なんてのがあるみたいだけど、 これが割りと現実的な気がしてきたよ。 データ作るの面倒だけど。 VMLおもしろいよ。 不慣れなんでまだ試行錯誤だけど、hta の限られた環境しか考慮しなくていいならかなり有力だと思う。 1ファイルにこだわらなければあんまり関係無いかもしれないけど。 ミス Wordで図を描いてhtml保存するとvmlになったりする ごみ抜きが大変だけど。 なにも特別なことはできないよ。 ただ、現状のhtml5よりは使えるかな・・・ >>651 画像の変わりに使える スクリプト内(htaファイル内)の記述だけで使えるから、画像ファイルを別途用意する必要が無い マウスボタンの状態をCOM経由で知ることって出来ますか? 普通にやれば大丈夫だよ 詳細はHTAの話ではなくCOMの話でスレ違いになるので省略 「普通」が分からないのですが。 COMのリファレンスを見ても、書いてあるのはC++の例とかでさっぱりです HTAはCOMをJavaScriptから扱うのだからスレ違いでもないと思いますが >>658 HTA内の各要素に対するマウスのイベントは、普通のブラウザでJavaScriptを使う場合と同じ COMオブジェクトに対するマウスイベントについては、そのCOMオブジェクトがマウスイベントをクライアント側に返すのかどうかと言う問題 HTA内でのマウスイベントをCOMオブジェクトに送信したいのであれば、そのCOMオブジェクトに外部からのイベントを受け取る機能があるかどうかの問題 ttp://msdn.microsoft.com/ja-jp/library/cc392219.aspx のonmouseなんちゃら hta で POPによるメール受信をしたい。 MSWinsock.Winsockを使って POP を実装したらうまく行ったんだけど、別の PC で実行すると 「正式にライセンスされていないため、コントロールを作成することはできません」 てなエラーが出る。 どうやら MSWinsock.Winsock は開発ライセンスが入った環境でしか使えないようで、 とどのつまり動作させたい PC には VisualStudio なんかを入れないといけないらしい。 しかしできるだけ余計なものをインストールしたくはなく、代替案を探してる次第です。 なにかいい案はありませんかね? >>662 最初にそれ実験したんだけど、telnet は標準入力がリアルなキーボード、標準出力がコンソールにつながってないとすぐ終了してしまうらしい。 もし telnet を使うノウハウがあるなら教えてください。 試しに VisualStudio 2008 Express の VB を入れてみたら使えるようになった。 しかもアンインストールした後も使えてる。 この状態だけを使いまわせないものかな。 >>665 開発環境入れるくらいならそっちを入れた方がいいとは思う つか、それが現実路線なんでしょうな >>662 telnetとか使えてもねえのに適当に言ってんなよカス Win7でIE10にしたら、HTA:APPLICATION要素が効かなくなったよ。 外観系の設定は我慢できるんだがコマンドライン引数使えなくなったので困ってる。 ファイルに出力する以外の方法で htaから戻り値を受け取ることってできませんか? >>669 <meta http-equiv="X-UA-Compatible" content="IE=9">で回避できる。 これIE10RPでバグレポしたんだけど再現不可能とか言われて直らなかった。 >>669 普通に使ってるが? >>671 標準出力 クリップボード アプリ起動して引数、環境変数、標準入力 >>672 おぉ、できたできた。 thx >>673 普通に使える人がいるということは環境依存で発生するバグなのかな? >>672 Win8+IE10 だと X-UA-Compatible を設定して IE=10 にすると再現する。 なにも指定しないとドキュメントモードが7になっているので(document.documentMode で確認できる)、 おそらく再現確認した側では IE10 Strict 以外のモードになっている状態で確認していたんだと思われ。 >>674 やってみたがX-UA-Compatible書かなくても普通に使えた >>675 のようにわざわざ 10に設定するとエラー >>672 なので実際再現不可能だったんだろ なんか特殊な拡張入れてるとか? その辺は例によってDOCTYPEとかでコロコロ変わるから 暇な人は調べてくれ X-UA-CompatibleがないとIE=5になるはず 今回問題になるのはIE=10とかIE=edgeにしてる場合だね HTA から新しいウィンドウを立ち上げてインターネット上のページを開き、そのページにあるダウンロードボタンかリンクを 自動的にクリックしてダウンロードさせることって可能かな? ファイルの保存ダイアログをコントロールできなさそうだけど、どんなもんだろう? HTAもいいけど、もうそろそろ違うのを使ってみないかい? node-webkit や tidesdk これらはHTAと同じコンセプトを実装したもの。 HTAと同じくHTMLとJavaScriptで デスクトップアプリを作れる。 >>681 OnClick() とかで動くデフォの動作ならダイヤログが出るけど、これは内部のスクリプトじゃ操縦できん。 ほかの操縦スクリプト使わないと。 AutoHotKeyにDLL版があるから、それを呼び出すか、 さもなくば最初から操縦用アプリを使う必要がある。 ファイルのアドレスが分かるならURLDownloadToFileとか使って直接保存できるんじゃね? DLLを直接呼べないならDLLを呼べるOCXを入れてもいいけど HTABOXで動かしてもDLL使えるんじゃないかな。 アプリと組み合わせる方法として クリップボードにURLが入ったら自動的に保存するようなアプリ(FDMとか)を設定し、 HTAではクリップボードに入れるだけにするとか。 これならHTAじゃなく素のIEでもできる。 ただ、URLをクリップボードに入れただけでダウンロードするのはうざいよね。 これ、ActiveX Script 対応だから HTAから呼べるんじゃないかな。 Lua ttp://shizentai.jp/wordpress/?p=1418 動画で Lua 入門 ttp://dotinstall.com/lessons/basic_lua Lua自体はDLLとか使えるんだけど HTMLから呼べるかどうかはわかんね。 >>681 HTAからのIEオブジェクトの操作はいくつかの制限がある - ExecWBが使えない - 画面遷移に弱い なので、Webページ 完全や、Webアーカイブみたいな表示状態での保存を意識してるなら難しいと思う (ダイアログを表示させるまでいけないような気がする) 特定のページを表示させて、リンクリストを取得するくらいならできるだろうし、 そのURLから該当ページのHTMLを直接ダウンロードするくらいなら WinHTTPとか、JQueryとか使ってできそうな気はするけど いろいろとアドバイスありがとう HTA を検討してるのはWindows標準で使えそうだからで、準じてMS純正のコンポーネントのインストールまでは許容できる感じです。 後今回のダウンロードボタンは Cookie を維持してないと働かない可能性があって、単純にHTTP通信をすればよいという訳ではないです。 HTTPヘッダを自由に作れるならページのCookieをスクリプトで集めてヘッダ偽装できそうなんで、最悪 MSWinsock で低レベル通信しようと思ってる。 それもHTTPSになったら手に負えないけど。 とはいえどうしても無理なら制約を緩められる可能性もあるんで、教えてもらった方法は実験してみるよ。 そんなサンプルあるだろ ttp://www.vector.co.jp/vpack/browse/person/an010222.html <OBJECT id=WB classid=clsid:8856F961-340A-11D0-A96B-00C04FD705A2 WB.ExecWB UTF8で記述しているHTAアプリから、 ActiveXObject("ScriptControl") でRubyを呼び出して、ウェブの取得をしています。 サイトはUTF8で記述されているのですが、 RubyからJavaScriptに文字列が渡ってきた時点で、何故か勝手にSJISに変換されてしまいます。 SJISに変換されると、UTF8にしかない文字が壊れてしまうので困っています この勝手な処理をなくすためにはどうすればいいのでしょうか? XMLHttpRequestを使ったらJavaScriptだけで取得できるのか 何故かできないと思ってました 時間のかかる処理をしていると、「このスクリプトの実行に時間がかかっています」というような警告が出て、 処理が止まってしまいます。 これを防ぐにはどうすればいいのでしょうか? スクリプトエラー警告の閾値以下の時間でひとつのルーチンを終了する。 処理を分割してイベントハンドラから細かく呼び出すようにするとか、 連続するステップをsetTimeoutメソッドをチェインさせて呼び出すとか、 継続条件が決まってるならインターバルタイマーで呼び出すとか。 Connector/ODBC 5.1.12のWindows (x86, 64-bit)をインストールし、 ODBCデータソースアドミニストレーターから、DSNを登録し、接続テストも成功しましたが、 HTAからは接続しようとすると、 指定されたDSNには、ドライバーとアプリケーションのアーキテクチャの不一致が含まれています とエラーが出て接続できませんでした 32ビット版のConnector/ODBCを入れ直したところ、接続できました なぜ64bitWindowsなのに32bit版でないといけないのでしょうか? >>694 HTA で使われているのは 32bit 版の方の mshtml.dll (%WINDIR%\SYSTEM32にある方)だから。 スタートメニューには 32 bit 版と 64 ビット版の Internet Explorer が別々にあるけど、 mshta.exe が使うのはこのうち 32 ビットの方の IE の IE コンポーネントになるわけ。 そういう事情ですか MySQLに限らず32ビット版のドライバでないと使えないということですね ありがとうございました HTA(HTML Application)で WebGL を使う方法 ttp://javascript.g.hatena.ne.jp/cx20/20130627 htcもvmlもactivexもフィルタも何も使えなくなるからie10モードは選択肢にならん >コマンドライン引数使えなくなったので困ってる いったんバッチファイルでコマンドライン引数を受けて 外部ファイルに保存しておく そのバッチの中でhtaを起動する htaは一時ファイルを読み取って処理を続ける これで何とかww htaだと複数の引数があったときに自分で対応する必要があるけど バッチファイルならシステムがやってくれるから こっちのが楽な場合もあるかも すみませんが、質問です。 ログインの必要なサイトからファイルをダウンロードする方法について 教えていただけないでしょうか? いま試みているのは、 1. 手でIEを起動し、当該サイトにログインする。 2. 別途HTAを起動し、その内部で var objShell = new ActiveXObject("Shell.Application"); objShell.windows(); を利用し、ログイン済みのIEのオブジェクト var ie を取得。 3. HTA内で // var xhr = new XMLHttpRequest(); var xhr = new ActiveXObject("Msxml2.XMLHTTP"); xhr.open("GET", url, false); ... xhr.send(); ところが、IEのログイン情報を、XHttpRequestオブジェクトに渡す方法が 見つからず困っています。上記の 3. ... の行で ・xhr.setRequestHeader("Cookie", ie.document.cookie); ・xhr.withCredentials = true; // new XMLHttpRequest()を用いる。 などとしましたが、いずれもXMLHttpRequestのセキュリティ制約のため ログイン情報が引き継がれません。 HTAなら動くかと思っていたのですが、そうは行きませんでした。 XMLHttpRequestと違ってIEのcookieをセットすることのできる ActiveXObjectがあれば良いと思うのですが。 以上です。よろしければアドバイスをお願いいたします。 自己解決。 >>685 さんのご紹介なさった WinHTTPが、そのものズバリでした。 WinHTTP は XMLHttp とほぼ同じで、セキュリティ制約だけが違うものの ように見えます。 //実際に動作したコード var xhr = new ActiveXObject("WinHttp.WinHttpRequest.5.1"); xhr.open("GET", url, false); xhr.setRequestHeader("Cookie", ie.document.cookie); xhr.send(); あとは new ActiveXObject("Adodb.Stream"); を使ってファイル保存できました。 ここの過去のやりとりを見て解決できました。ありがとうございました。 質問です。 HTAに限らない話ですが、 new ActiveXObject("InternetExplorer.Application"); で取得した IEの User-Agent文字列は、どうやって取得したら良いでしょう? オブジェクトのプロパティに見つかりませんでした。 Inconsistent Results using InternetExplorer.Application - KiXtart.org - official site http://www.kixtart.org/forums/ubbthreads.php?ubb=showflat&Number=206419 ググったら、UAを表示するページに遷移させて、DOMからUAを取得するという、 大変面倒なことをしている人がいました。 もうちょっと良い方法がありそうな気がします。 >>710 すみませんが、UA文字列を取得したい理由については、説明がしづらいです。 結局、ie.document.createElement(), appendChild()で、IEの表示中のページ にscript要素などを動的に追加して、UAの取得をしました。 これも煩雑ですが、IEを「診断くん」などのページに遷移させて取得するより はまだマシだと思います。 別の質問です。 HTAで呼び出したIEの、DocumentCompleteイベントを利用する方法についてです。 ブラウザのビジー状態を判定するための,より良い方法 http://d.hatena.ne.jp/language_and_engineering/20100410/p1 1. このやり方だと、IEのインスタンス化に、 WScript.CreateObject( "InternetExplorer.Application", "hoge_" ) が必要です。HTAでインスタンス化するにはどうしたら良いでしょう? 2. このやり方だと、イベントハンドラが固定です。ページ遷移をするごとに 別のイベントハンドラを動的に割り当てることはできないのでしょうか? > http:// 何故、質問者がこういう嫌がらせするのか理解に苦しむ >1. このやり方だと、IEのインスタンス化に、 >WScript.CreateObject( "InternetExplorer.Application", "hoge_" ) >が必要です。HTAでインスタンス化するにはどうしたら良いでしょう? htaでwscriptオブジェクト使う方法が、例のところにあったような。 WindowsアプリからWScript.exeのWScriptオブジェクトを利用する ... だな >2. このやり方だと、イベントハンドラが固定です。ページ遷移をするごとに >別のイベントハンドラを動的に割り当てることはできないのでしょうか? 代表で受け取って、 call hoge ページ遷移のイベントで、 set hoge=getref("実際のハンドラ") ご返事、遅くなりました。 >>713-714 すみません。「忍法帖」の書き込みエラーよけです。よく知らないですが。 >>715-716 ありがとうございます。見てみます。 >>717 ありがとうございます。 よろしかったら、JScriptでの書き方も教えていただけませんか? 代表で受け取って、 hoge(); ページ遷移のイベントで、 var hoge=function(){...} >>719 ありがとうございました。 別件で忙しく、この件をまだ試せないでいます。 試したらまた改めてご返事させていただきます。 大変遅くなって申し訳ありません。 残念ながら、HTAでIEのイベントを取得できないでいます。 >>715-716 さんの方法で、HTAからWScriptオブジェクトを利用することができました。 また、>>719 さんの記法はよく分からなかったのですが、WSHの場合、 hoge_DocumentComplete = function() { .... } と記述することで、イベントハンドラを動的に変更できました。 しかし、それを HTAの<script>要素に記述しても、イベントハンドラが割り当てられ ませんでした。 どうしたら良いか、アドバイスをいただけたらありがたいです。 質問を再定義すると「HTAで、スクリプト内で生成されたActiveXオブジェクトの イベントを取得できるか」になるでしょう。>>618 さんの質問と同じです。 こちらに回答がないので、不可能なのかもしれません。 関連する質問です。HTA内でIEを生成(new ActiveXObject)、終了(ie.quit())を 繰り返していると 「このシステムでは、これ以上のスレッドを作成できません。」 というエラーが発生してしまいます。 これを避けるにはどうしたら良いでしょう? quitイベントを取得するまで待つのが良いかと考えています。 ieのeventは特殊で一般論は通用しない new ActiveXObject以外の方法、wscript.shell runなどでieを起こせばいい shell.application windowsでieを捕捉すればいい >>726 ありがとうございます。WScript.ShellからIEの起動と、 Shell.Application windows によるIEのインスタンス取得はできました。 これのDocumentCompleteイベントを取得するにはどうしたら良いのでしょうか? 知識不足で申し訳ありません。 なお、IEのインスタンスの取得ですが、このスクリプトを動かす環境が多様で、 他にIEが起動している場合が多いし、起動直後のIEのホームページも一定では ありません。起動したIEをどうやって見分けるかについても悩んでおります。 何度もすみません、HTA内で動的に生成したActiveXオブジェクトのイベントの 取得法を説明するページを、お教えいただけないでしょうか? Scripting Clinic: イベントのスクリプティング http://msdn.microsoft.com/ja-jp/library/ms974564.aspx ここだと、 ・ブラウザの要素のイベント ・<object>要素で指定したActiveXObject のイベントの記述しかありませんでした。 WSHだとイベント取得はできるので、最悪、ロジックを全部WSHに書いて、HTAから それをキックするしかないのかもしれません。 >ieのeventは特殊で一般論は通用しない wshを使うか、NET、powershellだってば >>729 ご返事ありがとうございます。 結局、HTAでは、動的に生成したActiveXオブジェクトのイベントの 取得はできない、ということですか…。 >ieのeventは特殊で一般論は通用しない これは「IEのActiveXObjectが特殊」という文意ではなくて、 IEはスクリプトホストとして特殊で、だからイベント操作には HTAではなく、他のホスト(WSH, PowerShell, .NETなど)を 使ったほうが良い、という文意だったのでしょうか? HTAでメインロジックをすでに書いてしまったので、正直頭を 抱えています。 >>348 さんなどの、HTAをWSFに埋め込む方法も検討してみます。 ieのコントロールは難しいからやめとけ webbrowser controlを使え WSF埋め込みのHTAを書いてみました。 HTAとWSHが一つのファイルにまとまるのは大変ありがたいのですが、 機能的には別ファイルにあるのと変わりがないようです。 変数や関数の共有はできないし、WSHからHTAにデータを渡すのは HTA起動時に標準入出力を経由したり、外部ファイルをポーリングで監視する などしかないようで、私のような初心者にはなかなか厳しいですね…。 IEが簡単に素人にしかも簡易なスクリプト程度で制御できちゃったら 今頃ウィルスやらなにやら大問題になってると思わないか? とにかくローカルからはおいそれと手出しできないように 進化してきてるからある程度で諦めるのが吉 IEの操作はユーザーに任せるべきってMS自体が言ってんだし しかも環境バラバラで特定できないんだろ?そんなん普通に難しいぞ まずはそっちをどうにかしてもらった方が早い アドバイスありがとうございます。 >>732 を書いたあと、規制等でここに書けないでおりました。 >>731 webbrowser control とは、普通の "InternetExplorer.Application" の ことでしょうか?今はそれを使っています。visible = true にしないほうが 安定して動くようです。 >>733 おっしゃるとおり、安定して稼働する環境の条件を見つけ出して、 それ以外はサポート対象外にさせてもらえないか、交渉する方向で 行こうと思います。 今までここに書いた以外にも、IEの不安定さを痛感することが いくつも起こり、苦戦しております。 IEを細かくコントロールするには、C#で書くべきだったかもしれないし、 そもそもIEを千ページ以上にわたって自動制御する事自体、無理な課題 だったかもしれません。 >そもそもIEを千ページ以上にわたって自動制御する 。 。 / / ポーン! ( Д ) まあ、やらないで無理っていうのはなかなか顧客には納得してもらえないだろうから その為の期間だったと思えば・・・つかC#使えるのかよ迷わずそっちだろっていう それ以上はリッチクライアントとか考慮するしか無いんじゃない htaを触ってみたけど使えないことがわかった ttp://fron.sitemix.jp/blog/2014/02/26/38/ >>739 > 結論から言えば、対価を得られるような代物は作れない。 HTAで対価を得ようとか思う奴がいるのか? リンクをユーザーの標準のブラウザで開かせるにはどうしたらいいのでしょうか >>740 > 詳しいことはkia HTA:APPLICATIONタグとかで。 とか書いておきつつ > テキスト選択ができる > マウスのドラッグでアプリケーション上のテキスト選択ができる。(選択範囲が反転する) > ブラウザ上と同じ動きをするので、テキストだけではなく、ボタンとか画像とか全部反転 > 表示される。ひどい。 ってwww イケイケ時代ならいざ知らずMSの宣言は逆説 SilverlightでリッチUX!、チーン PowerShellでUnixShell超え!、チーン JScript改めJavaScriptでアプリ!←今ここ PowerShellってUnixShellに対抗しようとしてたのか >>751 実際の所リスナの追加やら何やらをページ側のスクリプト無しでタイミングも気にしないで 実行できるのは非常に便利。 ・・・世の中にIE以外のブラウザが無けりゃ。 >>754 このコード今のIEだと動かないし、互換モード指定して動かしたとしても「スクリプトがタブを閉じようとしてる」って 警告が出るんだけどほんとに何したいんだか。 普通のユーザーがIEで訪問したページにこれが仕込まれてても、なんかバグってるとしか思われないと思うんだが…。 firefoxとかClome板htaって出ないかな とりあえずローカルファイルと階層が簡単に弄れればokなんだが firefoxとかには元々そーゆー機能があるの? File APIとかの話? >>759 いや、自己満足ローカルツールがHTML+Javascriptで簡単に作れる機能が あればいいなーと思っただけ。 XULもFile APIも俺みたいな底辺には手軽でないし、記述方式も優しくないからな html5のFile APIで今後どうなるかってところだろうな でも*nix系やmacではそういう需要ない気がする Windowsストアアプリが窓化できるようになって 簡単にサイドローディングできるようになればいいんだよ WInsows10でストアアプリが全画面でなくデスクトップに表示にできるようになりましたってアピールが苦笑せざるをえない WinJSとSegoeSymbolのアプリアイコンをWin7とIE9のHTAで使えるようにしろ 笑うのは勝手だが野良アプリを解放しなければ状況は改善しない ユーザーにVSをインストールしてもらって自分でビルドしてもらえばいいんだよw IE11 の環境で DPI が既定値から変更されていると HTML アプリケーション (.hta) が縮小表示される http://support.microsoft.com/kb/2923604/ja >>768 window.open メソッドのバグか。 リンク先に回避方法も書かれてるけど、そもそもhtaでiframeってそんなに使うかな? Win10 Build9879のIEの新機能をHTAで使う方法が分からない… まだ試験的実装だから仕方ないか 以下のようなツールを過去に作ったって人いたら下さい! ・Dドライブ内をcmdのdir /s や dir /s /bで検索する ・条件は単一でいいですし and や or で複数 ・結果の文字列はハイパーリンク ・dir /s /b の場合はフォルダ毎に開閉できるHTMLタグ ・ウィンドウサイズの変更に、HTA上のオブジェクトの位置がバランスよく追従 ないですかね? ハイパーリンクじゃなくて、ラジオで選択してフォルダを開く、またはファイルを開くボタンでもいいです! ファイルにリダイレクトしてやれ dir /s > file.txt node-webkitがあるんでhtaはオワコンで良いんじゃないの? >>775 EXE化出来るんだから標準搭載がどうとか関係無いだろw それはつまり、dirじゃないけど似たのは作ったということです?下さい! dirが最速だと思ってるだけで他のでも全然まったくもって下さい! もしかしたら日付や時刻まで条件に指定できたりしますか?スゴい! HTAのWindow handleって取得出来ないんか? HTA では VBScript より Jscript の方がけた違いに速いってさ VBScriptについて必死に話し合うスレ [転載禁止](c)2ch.net ttp://peace.2ch.net/test/read.cgi/tech/1416826139/178 > ### WScript/CScript > VBScript 14秒 > JScript 25秒 ←遅すぎ > > ### HTA(mshta) > VBScript 14秒 > JScript 0.9秒 ←速すぎw > > ### Google Chrome > JavaScript 0.3秒 >>784 それ、ベンチマークのやり方が不適切なので参考程度で見て JavaScriptの最適化が進んでいて速いのは確かなんだが >>784 空ループの時間を計るとか、何の意味もないし参考にならないな。 コード書いた人は脳味噌が80年代のBASICで止まってるんじゃなかろうか。 >>786 ちゃんとしたベンチマークコード書いてください! HTAでHTML5の恩恵ってなんだろう思いつかないな http://blogs.msdn.com/b/osamum/archive/2015/01/06/internet-explorer-6.aspx 2013 年、CSS Nite さんとご一緒させていただき、セミナーで地方をまわった際に、セミナーのアンケートに 「マイクロソフト社員は IE 6 で Web の進化を停滞させてことを反省してほしい」というコメントをいただきました。 たしかに、気持ちはわからないでもありません。 Internet Explorer 6 の時代にそぐわなくなった使用と、Web 標準に準拠しないコンテンツの解釈、 それでいて、なかなか減ることのないシェアは、Web 制作の工数をいたずらに増やし、実装の難易度を上げ、 場合によっては他の Web ブラウザーではあたりまえの機能の搭載を断念せざるを得なくなるといったこともあったことでしょう。 昨今の状況だけを見れば「IE6 が Web の進化を遅らせた」と言われても仕方がないのかもしれません。 しかし、本当にそれだけでしょうか? Internet Explorer 6 は Web の進化を停滞させるだけで、 Web の進化に寄与した部分はまったくなかったのでしょうか? >>788-789 HTML5よりjavascriptエンジンが進化してくれた方が恩恵あるよね >HTAとvbscriptで作られたアドレス帳的なもの使ってるんですが、 ブラウザがSpartanになったら使えなくなるの? 3年(企業ユーザは+5年)の間に作りなおそう ElectronでGyazoっぽいUIを実現する http://qiita.com/uiureo/items/0353e37bcffe94731c6b >たとえばこのUIをWindowsで実装しようとすると、千行近いコードを >Cか何かで書かなければならずその苦痛は拷問にも等しい。 >PCアプリ開発者はWeb技術を見くびらないほうがいい、あなたの仕事は今にも失われつつある。 http://www.itmedia.co.jp/pcuser/articles/1505/20/news111.html まずは「Project Westminster」に注目しよう。 これを簡単に言うならば、HTML+CSS+JavaScriptで記述されたWebアプリケーションを そっくりそのままWindowsのアプリストア(Windowsストア)で公開可能なアプリ形式に変換する技術だ。 ここで作られるアプリは「Hosted Web App」などと呼ばれることもある。 本来は、一般的なWebブラウザであればプラットフォームを選ばずに実行可能であり、 Webサイト上にアップロードするだけで公開可能なWebアプリケーションだが、 それをなぜわざわざアプリストアに登録させようというのか? 理由は大きく2つあり、1つはハードウェア特有の機能(センサーなど)や OS固有の機能(Cortanaやライブタイルなど)が利用可能になること、 もう1つはストアに登録することによってユーザーが発見しやすくなったり、 あるいはインストールやアプリ内課金(In-App Purchase)により、 リテンション率の向上やマネタイズの可能性が上がる点にある。 ストアアプリとして実行はされるものの、 Project Westminsterで用意されるのはアプリとしての“ひな形”であり、実際のコードの実行は Windows 10に内蔵されたWebレンダリングエンジン「EdgeHTML(.dll)」に委ねられている。 取りあえず、HTAは32bitしかサポートされないから...プロバイダにJetとか普通に使えるんだよな... サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ https://www.youtube.com/watch?v=NDq1QoJY0nY 宇ドナルドアナリストパワーストーンコーチングとしまえん サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足 サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題 春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残 コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題 マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了 校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント 高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート >>776 開発業務でもない仕事で開発環境がなく、 情報セキュリティの観点から、フリーソフトをインストールできない 状況で、ちょっとしたツールを作成する場合にWindows標準搭載が 望まれる htaもpowershellも管理者権限で設定変更しないとダブルクリックで実行できない いまどきなら関連付けを有効にしてないケースもあるはず よっていまどきは標準搭載といっても何もせずに動くわけではない >>800 htaにロジックいれて管理者権限で起動できるようにしたよ。 デフォでhta紐付けがないのは2012svrだけかな。 >>621 >bashが動くターミナルがコマンドプロンプトだから コマンドプロンプト(cmd.exe)じゃなくてコンソールウインドウホスト(conhost.exe)だ無知が どなたか、 ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060927/249163/ (htaで)クリップボード・データからURLとメールアドレスを抽出 のソースをお持ちでないですか? 記事からソースは削除されてます。 キモの部分は説明してありますが、 コピペ改編プログラマ(私)には難しいです。 やっと書けました。 ありがとうございます。 web.archive.orgは調べたのですが 探し方が悪かったようで。 ※お尻をFD=1 とすることで もう1つのファイルも見れました。 Windows 10 S Driver Requirements https://docs.microsoft.com/en-us/windows-hardware/drivers/install/windows10sdriverrequirements Blocked inbox components にmshta.exeが入ってないって事はつまり…どういうことだってばよ? WinXPで使ってたのをWin10で使ってみたのだがどうもIEを自動操縦させようとすると 動かしてるうちに実行権限あたり?が悪さするのかIEとの接続が切れて それ以上操作できなくなっちまうな。 フォームのボタンにclick()発行するとまず間違いなく切れちまう。 何とかならんものか。 >>812 IEの仕様が微妙に変わっているので スクリプトを修正しないとダメなケースじゃないの? 調べてみたらIEのオブジェクトが一つの時は問題ないが 下みたいに大量に作るとclickとかで画面遷移させた後に無効になるようだった さてどうしたもんか var ie1 = new ActiveXObject("InternetExplorer.Application"); var ie2 = new ActiveXObject("InternetExplorer.Application"); var ie3 = new ActiveXObject("InternetExplorer.Application"); ・・・ >>815 最初はその辺が原因だと思ってましたがそれは関係ないですね。 と言うかそもそも保護モードがオフだと全くと言って良いほど動かないですから。 >>816 ローカルイントラネットも保護モードONかどうかってことだろ 制御できなくなる状況が分かるなら解決の仕方はありそう 中途半端な情報をグダグダ書いているだけでは解決しないぞ、無能くん 「誰か助けろ」みたいな態度 ←大抵はコミュ障 あ、>>814 の段階で自己解決してたので見てなかったスマンです。 なので助けてくれってつもりではなかったのですが勘違いさせてたのなら重ねてスマン。 保護モードに関してはググって最初に出てきた答えだったので 勿論イントラネットも含め検証した結果関係ないと結論出しました。 解決方法に関してはどうもIEのメモリ管理のバグっぽいので 大量にオブジェクトを作らないという方法で回避しました。 なお情報の小出しと怒られそうですが、XPでもオブジェクトを作る量を思いっきり増やした所 同じ症状が出ましたのでWin10での問題じゃないと確認できました。 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 ELWCS >>808 Electronはエディタ革命起こしたのにHTAはwindowsデフォルトしか意味がない 簡単なGUI付きスクリプトならやっぱりHTAだよなあ powershellには代替機能ない XBAPを後継しにしてほしかった edgeがChomiumベースになったら、htaみたいに気軽なelectronでfilesystemobjectとか HTA並みに簡単にプログラム出来る環境ってないかなぁ... AutoHotkeyだろ 癖があるけど、大抵のことは可能 HTA側でAutoHotkeyのExitApp引数を受け取れるので サブルーチンの様にも使える >>830 癖は強そうだねぇ ActiveXもなんとかなりそうか... ところでWSHのスレってもうどこにも建ってないの? WSH専門のはないっぽいね こんなのならあるが、マルチポストを除くと2年半近くレスなし ★WSHでCGI★JScriptVBScript https://medaka.5ch.net/test/read.cgi/php/1059745064/ >>833 無いなら、建てれば良くね? 俺は、見に行ってあげるよ。 自分から話題を振るほどの物は無いけど 話題を振られたらそれに乗ることは大いにあるので 書きたいことがある人はスレ立てればいい まだWSHの需要があんのかね? もうPowerShellだろ。 そういや、Windows Script Componentってのもあったな... >>840 そのスレ見てたら、VBScriptでクラスの継承がしたいから、ソースをコピーして云々とか書いてる人が居るんだが... VBScriptは、クラスの継承を否定した言語デザインなんだから、親クラスを継承するんじゃなく、親クラスのオブジェクトを所有する形でプログラムすればいいのになと思う 継承の使える言語に慣れ親しんでると、なんでも継承したくなるって気持ちも分からんではないが... HTML5のcanvasやVGAやWebストレージ JavaScriptのclassは使えたりしますか? >841 遅レスだがその通り。 委譲だけが解であって、継承が必要な規模では使っちゃ駄目なのよね…。 >>845 自分で試せバーカ。 十中八九使えないことを予言いておく。 HTA のターゲットは HTML5 じゃねーんだよ。 標準windows10環境でデバッグやりやすい環境ない? メモ帳たdosコマンドで行を調べるの辛い 会社の端末だからソフト入れられないの OfficeのScript Editorも使えないの? >>848 まだ残ってるの? かなり以前のバージョンでなくなったんじゃないの? htaのアイコンをshell32.dll内のアイコンに設定する方法ありますでしょうか? >>218 あなたの言っている問題と違うかもしれないけど Set objHttp = CreateObject("MSXML2.XMLHTTP.6.0") とすると少数のユーザーからのエラー報告が無くなった >>851 それだとWinInetと同じでIEの設定に左右されることになる WinHttp.WinHttpRequest.5.1 又は Msxml2.ServerXMLHTTP.6.0 だとWinHTTPが使われるので推奨 >>851 あとRefererの指定が有効にならないとかいろいろある昔の奴なので ただ互換性だけが優れているとも言える read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる