1 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:53:35 ] 過去スレ・関連スレ HTA研究会 piza2.2ch.net/tech/kako/996/996763278.html Web制作板のHTAスレ pc8.2ch.net/test/read.cgi/hp/1068286485/ HTAをもっと流行らせる計画 pc11.2ch.net/test/read.cgi/tech/1124559962/
348 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:52:52 ] 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>
349 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:03:02 ] Windows7でデスクトップ左端の分離ツールバーができなくなったんだけど、 だれかHTAで作ってくれないか?
350 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 18:05:15 ] >>348 それをやるメリットがよく分からない
351 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 20:35:26 ] .wsf に vbs と js と hta を 入れて「ひとりパイプライン」を作ると。 ファイルが一つで済んで デスクトップが散らばらない
352 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 22:07:21 ] >>351 なにをいってるのか意味がよく分らない
353 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:11:53 ] <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?が取れないんだけど、どうすりゃ取れるの?
354 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 01:43:01 ] >>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>
355 名前:354 mailto:sage [2010/03/29(月) 02:34:02 ] 適当に書いたのでJScriptとVBScriptで参照してるオブジェクトが違ってしまってるけど、 WebOC.object.DocuemtとWebOC.Docuemtnは同じなので結果に影響はないはず
356 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 14:46:28 ] VBScriptは大文字小文字の区別がないからVBScriptではできないってことですか なんとまぁ
357 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:37:43 ] WebOC.[Docuemnt]もだめ
358 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:55:21 ] >>351 サンプル作ろうとしたけど 二重引用符でハマってしまった 忘れて
359 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:49:29 ] 名前空間を区別するのが.objectのはずなのに
360 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 19:24:25 ] contenDocumentもだめ
361 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 14:25:53 ] >>348 getresourceを知らんのか
362 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 17:08:41 ] <resource>はhtaでhtmlを埋め込む時は使えないな。どうする?
363 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 12:08:20 ] <?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>
364 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 13:07:12 ] mshta.exe の引数の文字数が 5XXover だと xp+ie6 にて動かなかった vista+ie8 ではそうでもない
365 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 14:18:56 ] めんどくさいだけでなにがいいのか
366 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 14:27:56 ] >>364 vista+ie8 でもだめだろ mshta javascript:かvbscript:の中でCreateObject("MSXML2.DOMDocument")・・・ すれば文字数制限にかからんよ
367 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 21:23:36 ] >>366 しばらく考えさせていただきます DOM系のなんかで出来ないか画策中
368 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 13:12:22 ] >>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>
369 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 20:13:55 ] document.write(objDOM.selectSingleNode('/package/job[@id=""HTA""]').childNodes(0).nodeValue);
370 名前:デフォルトの名無しさん [2010/04/14(水) 21:27:47 ] 複数の *.hta を開くと Win7 のタスクバーで一つでまとまるのではなく、複数になってしまいます。 ほかのアプリのように一つのアイコンにまとめることはできないでしょうか? Win7のところで聞くべきなのかもしれませんがよろしくお願い致します。
371 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:50:01 ] htaはmainwindowがないから無理
372 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:23:33 ] HTAの質問とは言えないかもしれないんですが <input type="file" id="idHoge"> でファイルオープンダイアログを開いた場合に そのダイアログで何かが選択されたか、キャンセルされたかを判別したいんですが 何か良い方法は無いでしょうか。 idHoge の値を、ダイアログを開く前と後で比較していたんですが これだと前回と同じファイルを選択した場合にキャンセルと区別が付かないです。 idHoge に onChange で動作を書けばいいかと思ったんですが、 同じファイルが選択された場合はonChangeも動作しませんでした。
373 名前:372 mailto:sage [2010/04/15(木) 21:33:37 ] すいません、解決しました。
374 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 09:30:00 ] 解決したら解答かけよw
375 名前:372 mailto:sage [2010/04/16(金) 12:23:20 ] 入力されてる値をクリアするだけでも良かったんで window.location.reload() で全体をリロードしてリセットする事にしました。
376 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 20:07:25 ] FORM.reset()
377 名前:372 mailto:sage [2010/04/16(金) 20:53:10 ] >>376 おお、こっちの方が良さそうですね。 ありがとうございます!
378 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 22:47:16 ] <?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>
379 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 22:53:16 ] × eval は使っちゃいけません ○ でも objIE に Put&GetProperty するより簡単です
380 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 16:03:44 ] >>378 いみふ >>368 javascript:document.write(f())のdocument.write()はいらんよ javascript:f()で値がHTMLとして評価されるよ
381 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 23:53:49 ] job が複数あるときに job ごとに function s(){...} と書くのは 大変なのでこうしようという提案です write なしで動きました
382 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 23:41:21 ] vista でイケて xp でダメだったのは c:\users と c:\documents and settings の違いかもと ようやく思い至りました
383 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 18:54:12 ] >>382 ジャンクションがあるから関係ないんじゃ?
384 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 08:30:29 ] すいませんジャンクションてなんどすか cmd.exe 以下の dir やら | やら && pause やらの 文字数の合計がリミットを超えたのかと想像しましたが
385 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 11:21:21 ] XPだと8191文字までだな。 Vistaは知らん。 コマンド プロンプト (Cmd.exe) のコマンド ライン文字列の制限 ttp://support.microsoft.com/kb/830473/ja
386 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 15:44:20 ] >>383 は関係ないだろ >>385 も関係ないだろ >>364 の話が分ってないんだろ
387 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 18:24:01 ] 長い文字列は環境変数で渡せば?
388 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 19:50:01 ] もうちょっと読みやすく書けないものか
389 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:44:46 ] ieから<a href=hoge.hta>をクリックするとhtaがieの後ろに回るんだけどなんでだろう?
390 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 23:17:09 ] hoge.htaをieで開くんでねーの?
391 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 00:12:36 ] ねーよ
392 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:45:56 ] >>388 いちレスにおさめるため でたらめにケズってます
393 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:49:06 ] <?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>
394 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:57:30 ] 文字数制限にそなえパイプを分けようとしたら objShell.Exec を使うという普通の話になりました Exec でも縦棒使えたのかー あるいは cmd.exe単品を起動して 後ろの引数は(Exec曰く)知ったことではない と予想 objShell.Run も味があって捨てがたいな 一万文字流し込めないかな
395 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 18:28:05 ] なにがいいのか
396 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:26:35 ] If all you have is a hammer, everything looks like a nail.
397 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 15:12:00 ] 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>
398 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 20:22:24 ] >>397 ・onmouneをonclockに変える。 ・script要素をhtml要素の中に入れる。
399 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 22:49:51 ] 作者に聞けば?
400 名前:398 mailto:sage [2010/05/04(火) 23:56:31 ] onclockじゃねえや、onclickだったorz
401 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:03:55 ] 作者と同レベル
402 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:30:57 ] >>399 本人だろ
403 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 16:38:04 ] >>398 onmoune→onclickだけで動いた script要素はhtml要素の外でもいいみたい
404 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 22:01:17 ] なんか見ないほうが良さそうなサンプルだにゃあ
405 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:25:33 ] >>397 ,403 script要素をhtml要素の外に書いてるコードなんて初めて見た。 こんなクソコード真似しちゃ駄目だよ。
406 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:40:50 ] それほどおかしくないよ <html> <body> あいうえお </body> </html> <html> <body> かきくけこ </body> </html> をひらいてみ
407 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:57:01 ] いいえ、おかしいです
408 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 17:13:21 ] >>406 仕様上正当なのか、たまたま動いてるだけなのかは区別しような。
409 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 17:22:49 ] たまたまじゃないだろ
410 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:15:02 ] たまたまだよ。 「html要素はHTML文書中に一つだけ」と規格で決まってる。 IEは規格からかなり外れたHTMLも無理矢理表示する傾向があるから 表示されてしまうけど、HTML文書としては完全に間違い。 規格を読むなり ttp://validator.w3.org/ や ttp://openlab.ring.gr.jp/k16/htmllint/htmllint.html で チェックするなりした方がいい。
411 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:26:36 ] 確率論において、2つの事象が独立であるというのは、ある事象と別の事象の両方が成立する確率が、 それぞれの確率の積で表わされることを言う。2つの確率変数が独立であるというのは、「ある確率変数 の値が一定範囲に入る事象」と「別の確率変数の値が別の一定範囲に入る事象」が、考えられるどのよ うな「一定範囲」(「考えられる」とは通常ボレル集合族を指す)を定めても、事象として独立であることを言う。 二つの事象が独立といった場合は、片方の事象が起きたことが分かっても、もう片方の事象の起きる確率 が変化しないことを意味する。二つの確率変数が独立といった場合は、片方の変数の値が分かっても、 もう片方の変数の分布が変化しないことを意味する。
412 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 02:41:26 ] すれ違い
413 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 17:01:03 ] >>393 exec("cmd")はコンソール開くから使いたくねぇな
414 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 17:53:12 ] run("cmd",0)だな
415 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 14:13:24 ] exec("cmd",0)
416 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 17:12:50 ] 特定のウェブページを、Chromeスタイルで表示してくれる、Internet Explorerの拡張機能「Google Chrome Frame」がnew ActiveXObjectに対応してくれれば html5のhtaが作れるのに・・・
417 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 15:11:59 ] HTA?なんぞそれ?と思って調べてみたらいいねこれ VBSctipr JavaScript HTML Perlも使えるとは と 最初はよかったんだ 最初は・・・ HTA入門のページを見て 簡単なHTAを作ってみようと思って 少し前作っていたWSHのソースをHTAのソースにコピペして ボタンクリックで実行したらエラー連発 ググってみたらWSHは一部の機能が使えないとか Wscript.sleepだの Wscript.echoが使えないとか・・・orz
418 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 15:17:51 ] >>417 Wscript.echo は alertで代用できるからいいけどsleepが代用できないという var WScript; WScript = WScript.CreateObject("WScript.Shell"); も動かないとかもうね・・・ HTAはWSHを使う人にはとっつきにくいのかもね
419 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 16:50:55 ] DOSのバッチでSleepはPingで代用できるけどそういうことできない?
420 名前:デフォルトの名無しさん [2010/06/30(水) 17:20:30 ] >>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でごまかすか、時間のかかる処理は外部プロセス起動するといい。
421 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 02:51:03 ] >ググってみたらWSHは一部の機能が使えないとか その一部以外の機能は何?
422 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 03:06:13 ] えっ?
423 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 03:17:46 ] >>429 Win32_PingStatus
424 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 17:14:57 ] ' これは単に短い遅延を作成するためのスリープ関数です。 Sub Sleep(tmpSeconds) Dim dtmOne,dtmTwo dtmOne = Now() While DateDiff("s",dtmOne,dtmTwo) < tmpSeconds dtmTwo = Now() Wend End Sub