HTAをもっと流行らせる計画
■ このスレッドは過去ログ倉庫に格納されています
0001あらかわ
2005/08/21(日) 02:46:02HTA研究会
http://piza2.2ch.net/tech/kako/996/996763278.html
Web制作板のHTAスレ
http://pc8.2ch.net/test/read.cgi/hp/1068286485/
あとはまかせた
0232デフォルトの名無しさん
2006/08/24(木) 19:25:30管理者にバレたら大変じゃないの?
0233デフォルトの名無しさん
2006/08/24(木) 20:28:01HTAだとSCRIPTがVBの時もあるのだけどそういうのをexeにするコンバータとか売ってる?
0234デフォルトの名無しさん
2006/08/24(木) 21:25:35VB.NETや他の.NET対応言語で書き直すもよし。
0235228
2006/08/24(木) 23:01:01なるほど眺め続ければいーんですね。
ってキーの数とか半端ないんですけど…
んで、HTAの件ですがレジストリの読み込みは普通にできました。
ただレジストリを変更すると流石に反応するんじゃないかな?
と思ってるんでチャレンジしてません。
ノートンの知識がないんで、何に反応されるか戦々恐々なんですよ…
exeはただのjscriptでも可能なら考えてみたいです
>>232
大変かもしれません。
一度引っ掛かって、管理者の方がスットンできた経験あります。
原因がわかってるならいーけど?みたいな事を言われ軽く睨まれました。
引っ掛かった瞬間パニくって、速攻で丸ごと削除ったから
原因なんて分かる訳ないじゃん?とはチキンなんでいえませんでした。
0236デフォルトの名無しさん
2006/08/24(木) 23:13:38手動でIEの[ツール]の[オプション]を変更して反応しなければ
他のプログラムでレジストリの該当部分を変更しても大丈夫だと
思うけど。
レジストリを変更したプログラムを一々監視してたとしたら別ですが。
0237デフォルトの名無しさん
2006/08/25(金) 11:12:34アンカミスってません?
『>>130 >>136"*.exeじゃ無かったな、確か。独自形式の*.wsits だったな、確か。"』
exeにするなら >>184 HTABOX の方かと
>>235
>exeはただのjscriptでも可能なら
>>231のリンク先以外の方法なら
ttp://www.vector.co.jp/soft/winnt/prog/se389017.html
とか いくつかありますね
0238デフォルトの名無しさん
2006/08/25(金) 13:44:25ありがとう。
しかし同じ動作するのにexeだとOKでhtaじゃ嫌と言う社内の空気がワカラン orz
アイコンつけられるかつけられないかの違いだったらモットワカラン orz
0239デフォルトの名無しさん
2006/08/25(金) 18:47:36EXEはスルーするよね。
0240デフォルトの名無しさん
2006/08/26(土) 11:04:08もっと簡単に、
@START MSHTA.EXE "%~f0" %*
@GOTO :EOF
<script language=vbscript>document.body.innerText=""</script>
<html>
〜略〜
更に、#!行みたいに、1行で、
@START MSHTA.EXE "%~f0" %* & GOTO :EOF & REM <script language=vbscript>document.body.innerText=""</script>
<html>
〜略〜
0241デフォルトの名無しさん
2006/08/26(土) 20:27:53HTMLならMHTMLでひとつに纏められます。
そこで、まずhoge.HTAをhoge.HTMに変えて、IEで開き、MHTMLで保存します。
MSHTA.EXE %CD%\hoge.mht
とやっても駄目ですが、
MSHTA.EXE mhtml:file://%CD%/hoge.mht
とすればよいようです。
このファイルの先頭に、
@START MSHTA.EXE "mhtml:file://%~f0" %*
@GOTO :EOF
の2行を追加して、拡張子をCMDに変えます。
或いは、
拡張子を.MHTAに変え、
MSHTA.EXE "mhtml:file://%0" %*
に関連付けます。
0242デフォルトの名無しさん
2006/08/28(月) 13:58:32mshta.exe "mhtml:res://自分.exe/main.mht"
はどうでしょう?
0243デフォルトの名無しさん
2006/08/28(月) 19:40:34それとパッケージされるのは元からhtmlにリンクされているファイルだけみたいだけど
スクリプトで動的に表示したい画像ファイルとかはどうやって保存する?
IE以外に作成ツールとかあるのかな?
0244デフォルトの名無しさん
2006/08/28(月) 20:00:22目隠し程度でよいのなら、以下はどうでしょう?
+ADwASABUAE0ATAA+ADwASABFAEEARAA+-
+ADwAUwBDAFIASQBQAFQAIABsAGEAbgBnAHUAYQBnAGUAPQB2AGIAcwBjAHIAaQBwAHQAPg-
+AFMAdQBiACAAdwBpAG4AZABvAHcAXwBvAG4AbABvAGEAZAAoACk-
+AE0AcwBnAEIAbwB4ACAAIjBCMEQwRjBIMEoAIg-
+AEUAbgBkACAAUwB1AGI-
+ADwALwBTAEMAUgBJAFAAVAA+-
+ADwALwBIAEUAQQBEAD4-
+ADwAQgBPAEQAWQA+MEswTTBPMFEwUwAgADwALwBCAE8ARABZAD4APAAvAEgAVABNAEwAPg-
ぱっと見では、HTMLにはとても見えませんが、
拡張子HTAかHTMLのファイルに保存すれば、実行可能です。
0245デフォルトの名無しさん
2006/08/28(月) 20:09:45IEでなく、CDO.Messageを使うと、Content-IDでリンクされます。
CDO.Messageなら、いろいろ操作できてよいのでは。
0246デフォルトの名無しさん
2006/08/28(月) 20:11:26named pipeでなく、anonymous pipeで標準入力に渡せばよいのでは?
>>114
しかし、そうやってHTAファイルを隠したところで、
所詮、右クリックの「ソースの表示」で見えちゃうのでは?
0247デフォルトの名無しさん
2006/09/01(金) 23:17:42HTA:APPLICATIONタグで
右クリック禁止にしておけばいいんじゃないの?
0248デフォルトの名無しさん
2006/09/02(土) 11:29:510249デフォルトの名無しさん
2006/09/02(土) 13:54:28コンテキストメニューのほうは抑止できますが、^pの印刷は抑止できます?
印刷設定ダイアログ表示中にテンポラリフォルダを見るとソースがあります。
この方法はダイアログなどにも使えます。
0250デフォルトの名無しさん
2006/09/02(土) 18:44:230251デフォルトの名無しさん
2006/09/03(日) 12:46:15もし、それがあれば、HTMLやHTAを.filesや.mhtでなく、.zipにまとめて保存できて、よいのに。
誰か作っているかも、と思って探してみたけれど見つかりませんでした。残念。
試しに、こんなことを。
<script language=vbscript src='vbscript:CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\a.vbs").ReadAll()'></script>
は出来るのに、
<img src="javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='javascript';var s=sc.Eval('new ActiveXObject(\'ADODB.Stream\')');s.Open();s.Type=1;s.LoadFromFile('C:\\a.gif');s.Read(-1);">
は駄目みたいです。
0252デフォルトの名無しさん
2006/09/03(日) 14:11:01<script language="VBScript">
Dim sh
Set sh = CreateObject("Shell.Application")
sh.NameSpace("H:\").CopyHere(sh.NameSpace("H:\test.zip").Items())
</script>
0253252
2006/09/03(日) 17:01:52Zipフォルダが使える環境でないと動かないはず。
逆にエクスプローラでフォルダとして扱えればLHAでもCABでもなんでもいけるはず。
0254デフォルトの名無しさん
2006/09/03(日) 17:49:25そもそもHTAをのぞけばソース見えちゃうんだし。
テンポラリ漁ってまで見たいような人にはどんな対策をしても無駄だと思うけど。
0255デフォルトの名無しさん
2006/09/03(日) 19:23:210256デフォルトの名無しさん
2006/09/03(日) 20:16:05とやると、スクリプトを標準入力/パイプから読み込めるので、スクリプトは隠蔽できるかも。
そもそも隠蔽しなくてよければ、
MSHTA.EXE vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(0).ReadAll()
で、HTAソース全体を標準入力/パイプで流し込めます。
0257デフォルトの名無しさん
2006/09/03(日) 21:30:19>Set sh = CreateObject("Shell.Application")
>sh.NameSpace("H:\test.zip")
このやり方は、Windows2000で、エラーになるらしい。cabも。
そういうときは、Explorerのid.Document.Applicationから
Shell.Applicationを取り出して使えばよいと思う。
0258デフォルトの名無しさん
2006/09/03(日) 21:31:29セキュリティ絡みでしょうか。
これを使うHTAが駄目に。回避方法はないでしょうか?
ADODB.StreamのLoadFromFileも、HTAで、使えません。
「エラー: このコンピュータの安全性の設定により、ほかのドメインのデータ ソースへのアクセスは禁止されています。」
HTML+SCなら使えるのに、なんで? ShellNameSpaceと同じ修正が関係?
使ってる人、多そうなのに大丈夫でしょうか。
0259デフォルトの名無しさん
2006/09/09(土) 14:22:17IEとHTAとHTABOXの機能をごっちゃにしてるみたいなんだけど。
0260デフォルトの名無しさん
2006/09/09(土) 14:59:190261デフォルトの名無しさん
2006/09/09(土) 15:25:120262258
2006/09/09(土) 15:39:27HTAでは使えなくなりましたが、HTAから出したダイアログ内では使えます。
コントロールが、わざわざダイアログかどうかをチェックして、
ダイアログでなかったら使えないようにすることに、
何かメリットがあるとは思えないので、
よくある、セキュリティ上の問題を回避、軽減する弥縫策でしょうか。
なので、HTAでShellNameSpaceを使うときの回避策は、
HTAからダイアログを出して、その中でShellNameSpaceを使うことです。
ファイルが2つに分かれるのが面白くないので、ひとつで済ます方法を
2パターン考えました。
自身をダイアログで呼び出し、中で切り分ける。
空のダイアログを作って中身を書き換える。
どちらも、使い慣れてないせいか、かなり面倒でした。
0263デフォルトの名無しさん
2006/09/18(月) 11:42:58問題点があるとしたらなんだろう。
0264デフォルトの名無しさん
2006/09/18(月) 23:29:300265デフォルトの名無しさん
2006/09/21(木) 00:51:04用意する必要があるんですかね?
何がしたいかというと、bodyから何から全てスクリプトで動的に
生成していきたいのです。
0266デフォルトの名無しさん
2006/09/21(木) 00:53:42document.writeしてもだめだったっけ?
0267デフォルトの名無しさん
2006/09/21(木) 01:26:07>>256みたいに
<frame src=javascript:'HTML記述'>
<frame src=vbscript:"HTML記述">
はどうでしょう。
0268デフォルトの名無しさん
2006/09/22(金) 15:27:270269デフォルトの名無しさん
2006/09/23(土) 03:17:42frame タグの仕様で src に URL を指定しないといけないのですが
そのURLをファイルとして用意する以外に方法はないかと。
で、>>267 さんの提案を試してみましたがなかなかうまくいきません…。
javascript:document.write(...) でいけるかと思ったのですが失敗。
>>268
たとえば、エラーメッセージと本メッセージでスクロール領域を
分けたいのですよね〜。
frame ってXSSの温床になってるせいもあってかセキュリティも厳しくて、
どうも使い勝手がイマイチなのが残念。
0270デフォルトの名無しさん
2006/09/23(土) 07:49:37でいいやん。
0271デフォルトの名無しさん
2006/09/23(土) 09:31:29frameが無いと出来ないことってほとんど無いだろうし。
0272267
2006/09/23(土) 20:28:46こんな感じで、ヒントエクスプローラバーをやってみましたが、うまく行きましたよ。
<script>
function source(){return '<'+'html>\r\n'+'<'+'head>\r\n'+'<'+'/head>\r\n'+'<'+'body>\r\n'+'<'+'img src=tips.gif>\r\n'+'<'+'/body>\r\n'+'<'+'/html>\r\n\r\n';}
</script>
<frameset>
<frame src="javascript:parent.source()">
</frameset>
0273デフォルトの名無しさん
2006/09/25(月) 23:21:20確かに、やろうとしたかったことは fram を使わずにできました。
HTA:APPLICATION タグでスクロールを無効にして、
<div id="result" style="width: 100%; height: 50%; overflow: auto; margin: 0px;"></div>
<hr />
<div id="error" style="width: 100%; height: 50%; overflow: auto; margin: 0px;"></div>
とすれば、ほぼフレームと同じ見た目になりますね!
(枠を移動させるまではできませんが…。もちろんscriptをガリガリ書けばできるでしょうけど。)
それとは別に、>>272さんのワザは勉強になりました。
document.write するんでなくてそのまま評価されるんですね。
ただ、HTMLとしてなら成功しましたが、HTA では「オブジェクトでサポートされていない
プロパティまたはメソッドです。javascript:parent.source()」
とエラーになってしまいました。
0274デフォルトの名無しさん
2006/09/25(月) 23:31:53>>138 とかすればノーガードになる。
0275デフォルトの名無しさん
2006/09/27(水) 00:54:42うほっ、そんな属性があったとは。ステキ。
自分もまだまだ勉強不足です。
しかしセキュリティゾーンは面倒だなあ。
Vista/IE7になったらもっと面倒になりそう…。
0276デフォルトの名無しさん
2006/10/03(火) 21:54:14subst
0277デフォルトの名無しさん
2006/10/09(月) 08:04:22初歩的なことかもしれないけど、教えてください。
やりたいことはフレーム分割をして、それぞれに任意のオブジェクトを配置したいのです。
しかし、タグ解説サイトを見ると、フレームの中身はsrcで指定したhtmlを読ませるだけで
frameset、frameタグを書いたファイル自身で、フレーム内の内容を記述する解説が見つかりません。
もちろんHTAでも外部のhtmlを参照できるのは知っていますが、便宜上1ファイルに纏めたいので
上記のことをやる方法を教えてください。現在はとりあえずフレーム自体は表示されるのですが、
frameタグの中に何を書いても一切表示されません。
VBSはだいぶ前から使っているのですが、GUIを作成する手段としてHTAを使い始めたばかりで
HTML関連を扱うのはこれが始めてなので悪戦苦闘しています。宜しくお願いします。
とりあえずcols="50,*"で<input type="button"/>を左右に一つずつ配置する
サンプルでも書いていただけるとありがたいのですが。
0278デフォルトの名無しさん
2006/10/09(月) 08:51:39<html>
<head>
<script>
function load() {
with (frame1.document) {
open("text/html", "replace");
write('<html><body><div><input type="button"/></div></body></html>');
close();
}
with (frame2.document) {
open("text/html", "replace");
write('<html><body><div><input type="button"/></div></body></html>');
close();
}
}
</script>
</head>
<frameset cols="50%,*" onload="load()">
<frame id="frame1" />
<frame id="frame2" />
</frameset>
</html>
0279278
2006/10/09(月) 08:55:40frame1.document.body.innerHTML = '<html><body><div><input type="button"/></div></body></html>';
でもよい。
0280277
2006/10/09(月) 09:26:00なるほど、スクリプトで書くわけですか。
どうりでタグ解説サイトを漁っても見つからないわけだ。
とにかく、教えていただいた
document.writeとdocument.body.innerHTMLで
目的は果たせます。ありがとうございました。
0281デフォルトの名無しさん
2006/10/11(水) 21:01:01関連情報(?)見付けたので投稿してみる
HTAで引数を使う
ttp://wscript.name/index.php?%B0%FA%BF%F4%A1%CA%A5%B3%A5%DE%A5%F3%A5%C9%A5%B9%A5%A4%A5%C3%A5%C1%A1%CB%A4%F2%BC%F5%A4%B1%BC%E8%A4%EB#t0a550e7
via WSH Lab. 掲示板
0282デフォルトの名無しさん
2006/10/13(金) 16:58:04HTAでコマンドラインの引数を分離するVBScript関数
http://www.vector.co.jp/soft/win95/prog/se402218.html
0283デフォルトの名無しさん
2006/10/26(木) 18:04:38http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/apr05/hey0420.mspx
0284デフォルトの名無しさん
2006/10/26(木) 18:55:37でやってみて。
0285284
2006/10/26(木) 18:58:20mshta.exe
0286デフォルトの名無しさん
2006/10/27(金) 01:17:30// arg.js - コンパイル方法: jsc arg.js
import System;
var arg: String[] = Environment.GetCommandLineArgs();
for (var i: int = 1; i < arg.Length; i++)
Console.WriteLi(arg[i]);
<!-- HTA Sample -->
<html><head><hta:application id="Hta" /><script>
var WshShell = new ActiveXObject("WScript.Shell");
function GetCommandLineArgs() {
return WshShell.Exec("arg.exe " + Hta.commandLine).StdOut.ReadAll().split(/\r\n/);
}
</script></head><body><dl><dt>Command Line:</dt><script>
var c = GetCommandLineArgs();
for (var i = 0; i < c.length; i++)
document.write('<dd>' + i + ': ' + c[i] + '</dd>');
</script></body></html>
0287デフォルトの名無しさん
2006/10/27(金) 01:19:170288デフォルトの名無しさん
2006/10/27(金) 14:42:29背景透過の容易性とか、アクティブデスクトップ機能とかあるんかいな
0289デフォルトの名無しさん
2006/10/27(金) 18:20:47OSの差は無いから。
0290デフォルトの名無しさん
2006/11/08(水) 00:28:140291デフォルトの名無しさん
2006/11/08(水) 00:31:540292デフォルトの名無しさん
2006/11/08(水) 00:35:030293デフォルトの名無しさん
2006/11/08(水) 00:57:390294デフォルトの名無しさん
2006/11/08(水) 01:14:14Win32APIではないけどね。
0295デフォルトの名無しさん
2006/11/08(水) 01:19:27window配下のオブジェクトツリーだけは「組み込み」ってことで特別扱い?
0296デフォルトの名無しさん
2006/11/08(水) 01:45:27COMコンポはどう考えたってAPIとしか言えないだろ。
0297BMPをごりごり書いてみたw
2006/11/08(水) 03:21:03<script language="VBScript">
Dim BmpFileHeader, BmpInfoHeader, BmpImageData
Dim BmpImageWidth, BmpImageHeight, BmpImageLineBytes
BmpFileHeader = Array(66,77, 54,0,0,0, 0,0, 0,0, 54,0,0,0)
BmpInfoHeader = Array(40,0,0,0, 0,0,0,0, 0,0,0,0, 1,0, 24,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0)
BmpImageData = Array()
Sub SetArrayLong(arr, index, LongNum)
Dim num, i
num = CLng(LongNum)
For i = 0 To 3
arr(index + i) = num Mod &H100
num = num \ &H100
Next
End Sub
Sub SetBmpSize(x, y)
BmpImageWidth = x
BmpImageHeight = y
BmpImageLineBytes = ((x * 3 + 3) \ 4) * 4
SetArrayLong BmpFileHeader, 2, 54 + BmpImageLineBytes * y
SetArrayLong BmpInfoHeader, 4, x
SetArrayLong BmpInfoHeader, 8, y
ReDim BmpImageData(BmpImageLineBytes * y - 1)
End Sub
Sub SetPixel(x, y, r, g, b)
Dim index
index = (BmpImageHeight - y - 1) * BmpImageLineBytes + x * 3
BmpImageData(index) = b
BmpImageData(index+1) = g
BmpImageData(index+2) = r
End Sub
0298 ↓ 続く
2006/11/08(水) 03:21:41Dim strm, i
Set strm = CreateObject("ADODB.Stream")
strm.Type = 2 ' = adTypeText
strm.Charset = "iso-8859-1"
strm.Open
For Each i In BmpFileHeader
strm.WriteText ChrW(i)
Next
For Each i In BmpInfoHeader
strm.WriteText ChrW(i)
Next
For Each i In BmpImageData
strm.WriteText ChrW(i)
Next
strm.SaveToFile "test.bmp", 2
End Sub
Sub Main()
SetBmpSize 32, 32
dim i
for i=0 to 31
SetPixel i,i, 255,0,0
next
SaveBmpFile
End Sub
</script>
</head>
<body><button onclick="Main()">SAVE BMP FILE</button></body>
</html>
0299デフォルトの名無しさん
2006/11/08(水) 12:56:57これ何?
0300デフォルトの名無しさん
2006/11/08(水) 13:18:070301デフォルトの名無しさん
2006/11/08(水) 14:45:44C++や他で作ったDLLを利用するかしないか、
でインターフェイス(GUI)にHTAを選ぶかどうか、ジャマイカ?
0302デフォルトの名無しさん
2006/11/08(水) 19:10:47そんな普通に考えていたら最終的にHTAを選択する確率は限りなく0に近くなるだろ?
やっぱしHTAに対する盲目的な愛が必要だと思うんだ。
0303デフォルトの名無しさん
2006/11/08(水) 20:17:14我々がHTAのために何をしてあげられるかということなんだ.
0304301
2006/11/08(水) 20:40:26AHKにもGUIあるしねぇ。
>>301 のは
『HTAで○○出来る?』っていうの観るとさぁ。萎えるんだ、最近。
トシのせいかな。いや、愛が足りてないのかな?
0305デフォルトの名無しさん
2006/11/08(水) 20:42:040306290
2006/11/08(水) 22:05:53教えて君でごめんちゃい。
自分で調べても出来そうな方法が見つからなかったけど、
ここの住人の人たちはレベル高そうなんで、
なにか良い方法をしってるかも?と思って軽い気持ちで聞いちゃった。
「API使わないで」ってのは、「DynaCallつかってWin32API」とかって一蹴されそうなんで
入れてみただけなんですよ・・・そんなイジメないで・・・
職場の環境上HTAぐらいしか選択肢がないもんで。
てか、ADODB.Stream使った方法とかすげぇ。
この方法を使うと絵もかけちゃったりするのか、マジ感動。
ほんと勉強になりまっす
HTAで出来ることと出来ないことの切り分けが未熟なんで
迷惑かけてすいませんでした。
自分でももうすこし調べて頑張ってみるよん
0307デフォルトの名無しさん
2006/11/08(水) 23:40:14エラー: このコンピュータの安全性の設定により、ほかのドメインのデータ ソースへのアクセスは禁止されています。
になりません?
どの設定でしょう?
0308デフォルトの名無しさん
2006/11/08(水) 23:46:18殆どの場合、聞くより早く解決するし、「ググれカス」とか言われずに済む。
0309デフォルトの名無しさん
2006/11/08(水) 23:54:34こういう例はググっても出てきませんが。。。
0310デフォルトの名無しさん
2006/11/09(木) 00:02:48HTAの話でもないし、放置してもいいでしょ。
0311デフォルトの名無しさん
2006/11/09(木) 00:20:09window配下のオブジェクトツリーだけは「組み込み」ってことで特別扱い?
0312デフォルトの名無しさん
2006/11/09(木) 00:28:14HTML
0313デフォルトの名無しさん
2006/11/09(木) 00:28:25もしかしてノートンとか入れてる?
0314デフォルトの名無しさん
2006/11/09(木) 01:23:49入ってます。そのせいでしょうか?
0315デフォルトの名無しさん
2006/11/09(木) 10:27:430316デフォルトの名無しさん
2006/11/09(木) 10:44:48ADODB.Streamには、ScriptBlockingInprocServer32キーがない。
ノートンは関係ないのでは?
0317デフォルトの名無しさん
2006/11/09(木) 11:25:29<package>
<component>
<public>
<method name="CreateObject" dispid="0" internalName="xCreateObject" />
</public>
<script language="VBScript"><![CDATA[
Option Explicit
Public Function xCreateObject(ProgID)
Set xCreateObject=CreateObject(ProgID)
End Function
']]></script>
</component>
</package>
というWSCを作って、
<html><head><script language="VBScript">
Sub window_onload()
Set xCreateObject=GetObject("script:" & location.pathname & "\..\CreateObject.WSC")
Set Stream=xCreateObject("ADODB.Stream")
MsgBox TypeName(Stream)
Stream.Open
Stream.Type=2
Stream.Charset="shift_jis"
Stream.LoadFromFile location.pathname
MsgBox Stream.ReadText(-1)
End Sub
</script></head><body></body></html>
てな具合にWSCでCreateObjectさせるとエラーにならないですよ。
0318デフォルトの名無しさん
2006/11/09(木) 22:35:29他の人に自作のHTAを提供したいのですがレジストリは変えたくないそうです
HTABOXというソフトを使って、exeファイルにドロップして起動できるようになるのでしょうか?
自分の環境はレジストリを変えているので確認できません
0319デフォルトの名無しさん
2006/11/09(木) 22:59:07あとはvbs、jsなどを介するとか。D&Dを受け付けないだけで引数が渡せないわけじゃないから
スクリプトにD&Dさせて、スクリプトからhtaに引数を渡すって方法もある。
0320デフォルトの名無しさん
2006/11/10(金) 01:05:06>>240でcmdファイルにすればいいんじゃないの。
0321デフォルトの名無しさん
2006/11/10(金) 01:16:03// test.js
var HtaFile = "d:\\hta\\test.hta";
@if (@_jscript_version >= 7)
import System;
import System.Diagnostics;
import System.IO;
var args : String[] = Environment.GetCommandLineArgs();
for (var i = 0; i < args.Length; i++)
args[i] = '"' + args(i).Replace('\\', '\\\\').Replace('"', '\\"') + '"';
Process.Start('mshta.exe', '"file:///' + HtaFile + '"'
+ ' var args=[' + String.Join(",", args) + '];');
@else
var args = WScript.Arguments;
var a = [];
for (var i = 0; i < args.length; i++)
a.push('"' + args(i).replace(/\\/g, '\\\\').replace(/"/g, '\\"') + '"');
new ActiveXObject("WScript.Shell").Run('mshta.exe "file:///' + HtaFile + '"'
+ ' var args=[' + a.join() + '];');
@end
それで、HTAの方は
<hta:application id="Hta" />
<script>
eval(Hta.commandLine.replace(/^".*?" /, ""));
のようにして
0322デフォルトの名無しさん
2006/11/10(金) 01:35:06MSHTA.EXE フルパス.HTA
のショートカットを作ればいいだけじゃないの。
0323デフォルトの名無しさん
2006/11/10(金) 01:47:070324デフォルトの名無しさん
2006/11/10(金) 19:26:29即理解できるほど頭良くないのでじっくり吟味します。
0325デフォルトの名無しさん
2006/11/11(土) 17:17:33ttp://sei.qee.jp/program/hta/sample/bmi.html
HTAも結局デザインセンス如何で結構使ってもらえるかも
0326デフォルトの名無しさん
2006/11/13(月) 01:23:02HTA自体、もともとIE(の普通のコンテンツ)からセキュリティと
GUIの制約を一部はずしたものなので、無理にデザインセンスとか
いわなくても、少しだけ気をつければダイアログベースのアプリ
のようなものなら、VBで作るexeのアプリとほとんど区別つかない
ものは比較的簡単にできると思う。
ttp://www2.wbs.ne.jp/~kanegon/
にある「jseval」とか、見かけダイアログだし、ほとんどキーボードで
操作できるし、普段HTAと意識することなく普通に便利に使ってる。
デザインよりも内容じゃないの。
0327デフォルトの名無しさん
2006/11/14(火) 19:28:46レジストリ云々はこのあたりの話しじゃね?→ >>191
OSがXPSP2なら無問題ジャネ?
0328デフォルトの名無しさん
2006/11/15(水) 12:16:08>>281-283
それから
http://pc.2ch.net/tech/kako/1013/10135/1013527404.html
の182
0329デフォルトの名無しさん
2006/11/23(木) 16:48:11ttp://www.vector.co.jp/soft/winnt/util/se408592.html
>>241←Yさん本人? …まさかね
0330デフォルトの名無しさん
2006/11/24(金) 20:18:56http://pc8.2ch.net/test/read.cgi/tech/1055075469/742
0331デフォルトの名無しさん
2006/11/26(日) 13:11:47そこそこ詳しい人なら中身で評価するけどね・・・
パソ初級者レベルだと見た目が良くないとダメだよ。
うちの嫁がそう。
あとブランド名か。
■ このスレッドは過去ログ倉庫に格納されています