10/03/09 09:24:06
「拡張子 html と引数指定の時に拾ってくれないのですが…… 」
の意味をもう少し具体的に
328:hidebou
10/03/09 09:29:34
ulはツリービュー用に使う予定です
329:hidebou
10/03/09 09:34:30
いやulでもメニューのほうがいいかな?悩んでいます
330:デフォルトの名無しさん
10/03/09 12:10:54
>>327
test.exe と test.html を同じディレクトリに置いたり、
コマンドラインから test.exe data.html とか入力して実行しても
ファイルを発見できないときの表示になるということです。
また、
> <hta:application>で唯一有用な機能である
とか言われると他の項目を使っている人は悲しくなると思うのですが、
ウィンドウスタイルを変更したりする API は実装される予定はあるのでしょうか。
ついでに、自分自身のウィンドウハンドルはできれば window オブジェクトのメソッドとかで取得できると
楽チンでうれしい。
331:hidebou
10/03/09 13:28:17
>>330
起動時の不具合をこちらでも確認しました。同じディレクトリに自身と同じ
名前のhtmが既存し、別名のhtmをドロップ起動すると起こっているようです。
早急に対応いたします。
WindowのスタイルについてはしかるべきAPIを追加いたします。
有益な情報をありがとうございました。
332:hidebou
10/03/09 14:01:37
>>330
引数での起動ファイル指定時、アイコンドロップだとフルパスが取得できますが、
手動指定だと入力したファイル名しかないことを見落としていました。
同名htmがある場合は引数よりファイルの存在が優先されるのは仕様です。
333:hidebou
10/03/09 15:25:23
第一引数で起動する場合、カレントディレクトリを基準に絶対パス変換を行う修正
が完了しました。できれば330さんに問題が解決したか確認していただけると助かります。
URLリンク(kuroda.bglb.jp)
334:デフォルトの名無しさん
10/03/09 16:12:22
すれ違いだ
335:hidebou
10/03/09 17:16:56
スレッド作成しました。以降HTABOXコア関連の話題は下記へお願いします。
スレリンク(tech板)
336:324
10/03/09 20:40:46
>>325
あー、そうなのね。
>>321を見て、フリだけかよと思って
しまったもので。
今度、サイトを見にいくよ。
337:デフォルトの名無しさん
10/03/10 10:48:22
>>336
URLリンク(kuroda.bglb.jp)
338:デフォルトの名無しさん
10/03/19 18:29:02
IE8をインストールしたら
HTAのフォント表示がおかしくなった
英文の時はいいんだけど
日本文を表示する時にバカデカいサイズになってしまう
339:デフォルトの名無しさん
10/03/19 20:54:41
お気に入りの整理で使われているshellnamespaceはhtaでは使えないのですか?
340:デフォルトの名無しさん
10/03/21 09:13:43
HTA から標準入出力を使うというのは
神ブログ等に記載があるが、
自作の何かを試してみて「無効なハンドルです」と言われた場合
window.close()してから
objFso.StdOut.WriteLine などすれば良いと思う
341:デフォルトの名無しさん
10/03/21 13:16:54
勘違いかも
コマンドラインを | sort など
パイブラインやリダイレクトに食わせる
必要があるということかな
342:デフォルトの名無しさん
10/03/21 14:27:06
CreateProcess()でsubsystem=windowsのexeを起こすとき、
標準入出力でconsoleは引き継がないというのがOSのルールだよ
343:デフォルトの名無しさん
10/03/21 16:04:43
ありがとー確認します
いま(人力)OCRを作ってるのさ
344:デフォルトの名無しさん
10/03/21 16:48:57
メモ00:
<HTA:(タブや空白)APPLICATION
id="xxx"
>
と書いてたらid属性が機能しなかった。知らねえよそんなの。
というか HTAコロンAPPLICATION タグということかな。
メモ01:
iframe 内から親ウィンドウが見えないなーと思ったら、
iframe タグの application 属性を yes にする必要あり
MSDN の HTML Applications 概要に説明あり
345:デフォルトの名無しさん
10/03/21 21:04:12
スクリプトエンジンにperl使えば何でもあり。極めて楽チン。
346:デフォルトの名無しさん
10/03/21 21:51:54
あなたがそう言うなら
347:デフォルトの名無しさん
10/03/22 22:22:16
perl 使わんでも、ActivexPosh 使えば何でもあり。
348:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/03/28 00:03:02
Windows7でデスクトップ左端の分離ツールバーができなくなったんだけど、
だれかHTAで作ってくれないか?
350:デフォルトの名無しさん
10/03/28 18:05:15
>>348
それをやるメリットがよく分からない
351:デフォルトの名無しさん
10/03/28 20:35:26
.wsf に vbs と js と hta を
入れて「ひとりパイプライン」を作ると。
ファイルが一つで済んで
デスクトップが散らばらない
352:デフォルトの名無しさん
10/03/28 22:07:21
>>351
なにをいってるのか意味がよく分らない
353:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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
10/03/29 02:34:02
適当に書いたのでJScriptとVBScriptで参照してるオブジェクトが違ってしまってるけど、
WebOC.object.DocuemtとWebOC.Docuemtnは同じなので結果に影響はないはず
356:デフォルトの名無しさん
10/03/29 14:46:28
VBScriptは大文字小文字の区別がないからVBScriptではできないってことですか
なんとまぁ
357:デフォルトの名無しさん
10/03/29 17:37:43
WebOC.[Docuemnt]もだめ
358:デフォルトの名無しさん
10/03/29 23:55:21
>>351
サンプル作ろうとしたけど
二重引用符でハマってしまった
忘れて
359:デフォルトの名無しさん
10/03/31 14:49:29
名前空間を区別するのが.objectのはずなのに
360:デフォルトの名無しさん
10/04/01 19:24:25
contenDocumentもだめ
361:デフォルトの名無しさん
10/04/02 14:25:53
>>348
getresourceを知らんのか
362:デフォルトの名無しさん
10/04/02 17:08:41
<resource>はhtaでhtmlを埋め込む時は使えないな。どうする?
363:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/10 13:07:12
mshta.exe の引数の文字数が 5XXover だと
xp+ie6 にて動かなかった
vista+ie8 ではそうでもない
365:デフォルトの名無しさん
10/04/10 14:18:56
めんどくさいだけでなにがいいのか
366:デフォルトの名無しさん
10/04/10 14:27:56
>>364
vista+ie8 でもだめだろ
mshta javascript:かvbscript:の中でCreateObject("MSXML2.DOMDocument")・・・
すれば文字数制限にかからんよ
367:デフォルトの名無しさん
10/04/10 21:23:36
>>366
しばらく考えさせていただきます
DOM系のなんかで出来ないか画策中
368:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/11 20:13:55
document.write(objDOM.selectSingleNode('/package/job[@id=""HTA""]').childNodes(0).nodeValue);
370:デフォルトの名無しさん
10/04/14 21:27:47
複数の *.hta を開くと Win7 のタスクバーで一つでまとまるのではなく、複数になってしまいます。
ほかのアプリのように一つのアイコンにまとめることはできないでしょうか?
Win7のところで聞くべきなのかもしれませんがよろしくお願い致します。
371:デフォルトの名無しさん
10/04/14 21:50:01
htaはmainwindowがないから無理
372:デフォルトの名無しさん
10/04/15 21:23:33
HTAの質問とは言えないかもしれないんですが
<input type="file" id="idHoge">
でファイルオープンダイアログを開いた場合に
そのダイアログで何かが選択されたか、キャンセルされたかを判別したいんですが
何か良い方法は無いでしょうか。
idHoge の値を、ダイアログを開く前と後で比較していたんですが
これだと前回と同じファイルを選択した場合にキャンセルと区別が付かないです。
idHoge に onChange で動作を書けばいいかと思ったんですが、
同じファイルが選択された場合はonChangeも動作しませんでした。
373:372
10/04/15 21:33:37
すいません、解決しました。
374:デフォルトの名無しさん
10/04/16 09:30:00
解決したら解答かけよw
375:372
10/04/16 12:23:20
入力されてる値をクリアするだけでも良かったんで
window.location.reload() で全体をリロードしてリセットする事にしました。
376:デフォルトの名無しさん
10/04/16 20:07:25
FORM.reset()
377:372
10/04/16 20:53:10
>>376
おお、こっちの方が良さそうですね。
ありがとうございます!
378:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/19 22:53:16
× eval は使っちゃいけません
○ でも objIE に Put&GetProperty するより簡単です
380:デフォルトの名無しさん
10/04/22 16:03:44
>>378
いみふ
>>368
javascript:document.write(f())のdocument.write()はいらんよ
javascript:f()で値がHTMLとして評価されるよ
381:デフォルトの名無しさん
10/04/22 23:53:49
job が複数あるときに job ごとに
function s(){...} と書くのは
大変なのでこうしようという提案です
write なしで動きました
382:デフォルトの名無しさん
10/04/23 23:41:21
vista でイケて
xp でダメだったのは
c:\users と c:\documents and settings の違いかもと
ようやく思い至りました
383:デフォルトの名無しさん
10/04/24 18:54:12
>>382
ジャンクションがあるから関係ないんじゃ?
384:デフォルトの名無しさん
10/04/25 08:30:29
すいませんジャンクションてなんどすか
cmd.exe 以下の dir やら | やら && pause やらの
文字数の合計がリミットを超えたのかと想像しましたが
385:デフォルトの名無しさん
10/04/25 11:21:21
XPだと8191文字までだな。
Vistaは知らん。
コマンド プロンプト (Cmd.exe) のコマンド ライン文字列の制限
URLリンク(support.microsoft.com)
386:デフォルトの名無しさん
10/04/25 15:44:20
>>383 は関係ないだろ
>>385 も関係ないだろ
>>364 の話が分ってないんだろ
387:デフォルトの名無しさん
10/04/25 18:24:01
長い文字列は環境変数で渡せば?
388:デフォルトの名無しさん
10/04/26 19:50:01
もうちょっと読みやすく書けないものか
389:デフォルトの名無しさん
10/04/30 02:44:46
ieから<a href=hoge.hta>をクリックするとhtaがieの後ろに回るんだけどなんでだろう?
390:デフォルトの名無しさん
10/04/30 23:17:09
hoge.htaをieで開くんでねーの?
391:デフォルトの名無しさん
10/05/01 00:12:36
ねーよ
392:デフォルトの名無しさん
10/05/01 10:45:56
>>388
いちレスにおさめるため
でたらめにケズってます
393:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/05/01 10:57:30
文字数制限にそなえパイプを分けようとしたら
objShell.Exec を使うという普通の話になりました
Exec でも縦棒使えたのかー あるいは cmd.exe単品を起動して
後ろの引数は(Exec曰く)知ったことではない
と予想
objShell.Run も味があって捨てがたいな
一万文字流し込めないかな
395:デフォルトの名無しさん
10/05/01 18:28:05
なにがいいのか
396:デフォルトの名無しさん
10/05/01 22:26:35
If all you have is a hammer, everything looks like a nail.
397:デフォルトの名無しさん
10/05/04 15:12:00
URLリンク(www1.u-netsurf.ne.jp) のページの
下のサンプルが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:デフォルトの名無しさん
10/05/04 20:22:24
>>397
・onmouneをonclockに変える。
・script要素をhtml要素の中に入れる。
399:デフォルトの名無しさん
10/05/04 22:49:51
作者に聞けば?
400:398
10/05/04 23:56:31
onclockじゃねえや、onclickだったorz
401:デフォルトの名無しさん
10/05/05 14:03:55
作者と同レベル
402:デフォルトの名無しさん
10/05/05 19:30:57
>>399
本人だろ
403:デフォルトの名無しさん
10/05/07 16:38:04
>>398
onmoune→onclickだけで動いた
script要素はhtml要素の外でもいいみたい
404:デフォルトの名無しさん
10/05/07 22:01:17
なんか見ないほうが良さそうなサンプルだにゃあ
405:デフォルトの名無しさん
10/05/08 00:25:33
>>397,403
script要素をhtml要素の外に書いてるコードなんて初めて見た。
こんなクソコード真似しちゃ駄目だよ。
406:デフォルトの名無しさん
10/05/08 15:40:50
それほどおかしくないよ
<html>
<body>
あいうえお
</body>
</html>
<html>
<body>
かきくけこ
</body>
</html>
をひらいてみ
407:デフォルトの名無しさん
10/05/08 16:57:01
いいえ、おかしいです
408:デフォルトの名無しさん
10/05/08 17:13:21
>>406
仕様上正当なのか、たまたま動いてるだけなのかは区別しような。
409:デフォルトの名無しさん
10/05/08 17:22:49
たまたまじゃないだろ
410:デフォルトの名無しさん
10/05/08 23:15:02
たまたまだよ。
「html要素はHTML文書中に一つだけ」と規格で決まってる。
IEは規格からかなり外れたHTMLも無理矢理表示する傾向があるから
表示されてしまうけど、HTML文書としては完全に間違い。
規格を読むなり
URLリンク(validator.w3.org) や
URLリンク(openlab.ring.gr.jp) で
チェックするなりした方がいい。
411:デフォルトの名無しさん
10/05/08 23:26:36
確率論において、2つの事象が独立であるというのは、ある事象と別の事象の両方が成立する確率が、
それぞれの確率の積で表わされることを言う。2つの確率変数が独立であるというのは、「ある確率変数
の値が一定範囲に入る事象」と「別の確率変数の値が別の一定範囲に入る事象」が、考えられるどのよ
うな「一定範囲」(「考えられる」とは通常ボレル集合族を指す)を定めても、事象として独立であることを言う。
二つの事象が独立といった場合は、片方の事象が起きたことが分かっても、もう片方の事象の起きる確率
が変化しないことを意味する。二つの確率変数が独立といった場合は、片方の変数の値が分かっても、
もう片方の変数の分布が変化しないことを意味する。
412:デフォルトの名無しさん
10/05/09 02:41:26
すれ違い
413:デフォルトの名無しさん
10/05/21 17:01:03
>>393
exec("cmd")はコンソール開くから使いたくねぇな
414:デフォルトの名無しさん
10/05/22 17:53:12
run("cmd",0)だな
415:デフォルトの名無しさん
10/05/26 14:13:24
exec("cmd",0)
416:デフォルトの名無しさん
10/06/10 17:12:50
特定のウェブページを、Chromeスタイルで表示してくれる、Internet Explorerの拡張機能「Google Chrome Frame」がnew ActiveXObjectに対応してくれれば
html5のhtaが作れるのに・・・
417:デフォルトの名無しさん
10/06/30 15:11:59
HTA?なんぞそれ?と思って調べてみたらいいねこれ
VBSctipr JavaScript HTML Perlも使えるとは
と 最初はよかったんだ 最初は・・・
HTA入門のページを見て 簡単なHTAを作ってみようと思って
少し前作っていたWSHのソースをHTAのソースにコピペして ボタンクリックで実行したらエラー連発
ググってみたらWSHは一部の機能が使えないとか
Wscript.sleepだの Wscript.echoが使えないとか・・・orz
418:デフォルトの名無しさん
10/06/30 15:17:51
>>417
Wscript.echo は alertで代用できるからいいけどsleepが代用できないという
var WScript;
WScript = WScript.CreateObject("WScript.Shell");
も動かないとかもうね・・・
HTAはWSHを使う人にはとっつきにくいのかもね
419:デフォルトの名無しさん
10/06/30 16:50:55
DOSのバッチでSleepはPingで代用できるけどそういうことできない?
420:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/07/01 02:51:03
>ググってみたらWSHは一部の機能が使えないとか
その一部以外の機能は何?
422:デフォルトの名無しさん
10/07/01 03:06:13
えっ?
423:デフォルトの名無しさん
10/07/01 03:17:46
>>429
Win32_PingStatus
424:デフォルトの名無しさん
10/07/01 17:14:57
' これは単に短い遅延を作成するためのスリープ関数です。
Sub Sleep(tmpSeconds)
Dim dtmOne,dtmTwo
dtmOne = Now()
While DateDiff("s",dtmOne,dtmTwo) < tmpSeconds
dtmTwo = Now()
Wend
End Sub