HTAをもっと流行らせる計画

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2008/09/03(水) 09:52:42
というか、c言語なんかで定数が使えるのはヘッダに書いてあるからであって
SFCminiに定数の宣言されたヘッダがないなら、値を調べておいて
var MB_OK=0;
とする。面倒なら直接0とか指定してもいいし
953デフォルトの名無しさん:2008/09/03(水) 14:26:53
>>952
やっぱそうですか・・・

win32apiの定数の名前と値が
ズラーっと並べてあるようなページとかありませんか?
replaceでJScript用に一発置換できそうなのがよりいいんですが


954デフォルトの名無しさん:2008/09/03(水) 14:36:28
HTABOXで作ったEXEのアイコンて
好きなのに変更して配布するのってアリ?
955デフォルトの名無しさん:2008/09/03(水) 14:48:00
>>942
配布やインストールが楽である
というのが最重要な場合もある
956デフォルトの名無しさん:2008/09/03(水) 15:04:29
C:\Program Files\Microsoft Visual Studio\COMMON\Tools\Winapi\WIN32API.TXT
957デフォルトの名無しさん:2008/09/03(水) 15:48:56
>>956
VS2008Express入れてますが
c:\program files以下に検索かけても見つかりませんでした。

http://support.microsoft.com/?kbid=178020
ここからWin32api.exe落としてインストーラを解凍したら
中に入ってましたがこれは同じものなんでしょうか?
958デフォルトの名無しさん:2008/09/03(水) 15:50:25
>>956
MD5
5BD0F5DCEF7EF8E03E762DDFAD9CCD02
ですがどうでしょう?
959デフォルトの名無しさん:2008/09/03(水) 16:22:34
>>953
一括で並べてあるページは知らないな
1.MSDNでどのヘッダにあるか確認して直接ヘッダ(bccをインストールしてincludeディレクトリ以下)を覗く
2."define 定数名"あたりで検索
3.winapi32.txtを入手して正規表現で引っこ抜く(しかしVB向けなので該当行を抽出後、置換が必要か)
960953:2008/09/03(水) 16:37:55
>>959
とりあえず>>957で入手したwinapi32.txtに変換かけてます。
普通の定数は変換終了したんですが

構造体をSFCmini用に変換するのをどうするか思案中です。
SFCminiで宣言できる構造体メンバの型は↓しかないんですよ

http://kandk.cafe.coocan.jp/sfcmini/item-151.html

Byte (バイト型)
Integer (16ビット整数型)
Long (32ビット整数型)
String (ANSI 文字列型)
Unicode (Unicode 文字列型)
String*長さ (固定長ANSI 文字列型)
Unicode*長さ (固定長Unicode 文字列型)
SfcMini.Structureオブジェクト (入れ子の構造体宣言に使用)

大まかに置換してあとは手動?
961953:2008/09/03(水) 17:37:20
構造体は文字列の配列に置換して
コメントアウトしておくことにしました。

とりあえず当初の目的の8割は達成できたのでよしとします。
ありがとうございました。
962デフォルトの名無しさん:2008/09/04(木) 00:16:36
>>960
あやしい変換ツール作った
以下を適当な名前.htaで保存して、テキストエリアにwin32api.txtをコピペしマウスのフォーカスをはずすと変換
As 〜の基本的な型は用意されてる前提でチェックせず変換してるので注意
特に、構造体の入れ子は処理してないんでそこら辺は自分でやってくれ(デフォルトの型以外はクォーテーションはずすだけでいいはず)

<html>
<head>
<script>
function conv(obj){
obj.value=obj.value
.replace(/(Declare| *')[^\r\n]*/g,'') //コメントと関数のプロトタイプ宣言を消去
.replace(/Public Const ([^\r\n']+)/g,"var $1;") //定数を宣言
.replace(/&H([0-9A-Z]+)\D?/g,"0x$1") //VBからJS的な表記に直す
.replace(/ Or /g," || ")
.replace(/ And /," && ")
.replace(/ {4}/g,'\t') //スペース4つをタブに
.replace(/([^\s]+) *As *([^\s]+)/g,"\"$1\",\"$2\",")
.replace(/([\r\n]*?)Type (\w+)(([^\r\n]+[\r\n]+)+?)End Type/g,'\nvar $2=WScript.CreateObject("SfcMini.Structure");$1$2(\n$3);')
.replace(/\([\r\n]+[^\r\n]+/g,'(')
.replace(/,(\s+\);)/g,"$1")
.replace(/([\r\n]+){3,}/g,'$1');
}
</script>
</head>
<body>
<textarea onblur='conv(this)' rows="30" cols="100"></textarea>
</body>
</html>
963デフォルトの名無しさん:2008/09/04(木) 04:51:13
>>962
ありがたいんですがちょっと変換結果もあやしいっぽいですw
構造体名の最後の1文字欠損してたり
構造体の中身が何もなっかったり
どこからどこまでが構造体の中身かわからなかったり・・・

参考にして改造してみます
964デフォルトの名無しさん:2008/09/04(木) 16:32:41
HTAでWEBサイトからDOMを取得したいんですけど、いい方法はないでしょうか?
目的のWEBサイトのContentTypeがtext/htmlなのでMsxml.XMLHTTPのresponceXMLではnullになってしまう制限があるようです。
現状はHTA内にiframeを非表示で設置してそこから取得していますが、どうも不恰好な気がして…
965デフォルトの名無しさん:2008/09/04(木) 18:06:27
文字化けを恐れないならresponseTextをパースするか、createElementした要素のinnerHTMLに流し込んで利用する手もある
あとはMicrosoft.XMLDOM(現在はMsxml2.DOMDocument.3.0以上が推奨だっけ?)あたりでやるしかない
966デフォルトの名無しさん:2008/09/05(金) 00:17:07
非表示のie
967964:2008/09/05(金) 11:15:12
お二方レスありがとうございます。

>>965
ADODB.StreamでCharsetをあわせるようにしてあるので文字化けは大丈夫です。
XMLDOMというのは知りませんでした。調べてみます。

>>966
IEも考えたんですけど、自分の中でどうもiframeと似た不恰好さが気になります
968デフォルトの名無しさん:2008/09/05(金) 21:42:34
htmlfile
969デフォルトの名無しさん:2008/09/06(土) 00:00:40
普通のhtmlをxmlのdomに突っ込んでもパースしてくれないと思う。
xhtmlなら可。
970デフォルトの名無しさん:2008/09/06(土) 04:38:58
MSHTMLにIPersistFileブチ込んでやればできないこともない
hta単体でできるかしらないけど
971デフォルトの名無しさん:2008/09/06(土) 14:05:16
HTAで数値計算やグラフ描画ができますか?
便利なクラスがありますか?
972デフォルトの名無しさん:2008/09/06(土) 14:14:38
それなりに数値計算はできるし
それなりにSVGとかVML使える環境もあるので
それなりにできるんじゃないでしょうか,できないかも
973デフォルトの名無しさん:2008/09/06(土) 14:49:51
Mathオブジェクト
974デフォルトの名無しさん:2008/09/06(土) 15:07:46
開発環境はメモ帳?
975デフォルトの名無しさん:2008/09/06(土) 21:59:25
>>971
VMLならIEのカスタムインスコではずしていない限り使えるでしょ。

<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<style>
v\:* {behavior:url(#default#VML);}
</style>
</head>
<body>
<v:shape style="width:200px;height:200px" coordsize="100,-100"
path="m0,0 l 10,10, 20,30, 30,30, 40,70, 50,80, 60,50, 70,40, 80,70, 90,50, 100,100">
</v:shape>
</body>
</html>
976デフォルトの名無しさん:2008/09/07(日) 13:28:33
>>971
OWC使え
977デフォルトの名無しさん:2008/09/08(月) 19:38:33
どーでもいいけど、次スレ落ちてないか。
978デフォルトの名無しさん:2008/09/08(月) 20:51:27
ホントだ
落ちてよかったじゃん
979デフォルトの名無しさん:2008/09/08(月) 20:54:33

次スレ

HTAをもっと流行らせる計画 Part2
http://pc11.2ch.net/test/read.cgi/tech/1220874815/
980デフォルトの名無しさん:2008/09/08(月) 21:14:42
ここ、アクティブなときと過疎ってるときの落差が極端だからなー。
気を付けとかないと1000行くころには>>979も落ちてたりして。
981デフォルトの名無しさん:2008/09/08(月) 22:16:12
その前にこっちが落ちる

980以降は24〜30時間書込が無いと落ちるから
このスレが持つのは長くてもあと20日前後
実際にはそう都合良く24時間置きに1書込なんてならないから
1000行くにしても落ちるにしても、このスレが保つのは精々1週間だろ
982デフォルトの名無しさん:2008/09/08(月) 22:23:13
とっとと埋めちゃえ!
983デフォルトの名無しさん:2008/09/09(火) 04:09:05
>>982
通報しました
984デフォルトの名無しさん:2008/09/09(火) 05:18:29
>>983
え?
985デフォルトの名無しさん:2008/09/09(火) 11:46:37


このスレみてはじめてVML知った。
IE使ってなかった自分に反省
986デフォルトの名無しさん:2008/09/09(火) 13:33:57
HTAはクロスブラウザ対策とか考慮する意味ないし
豪快にIE依存でおkだから気楽でいいわ。
987デフォルトの名無しさん:2008/09/09(火) 17:00:02
988デフォルトの名無しさん:2008/09/09(火) 18:21:40
>>986
WindowsUpdateとかもろに影響を受けるから一長一短さ
989デフォルトの名無しさん:2008/09/09(火) 19:42:44
はぁ?
990デフォルトの名無しさん:2008/09/09(火) 19:44:26
>>988
とはいってもIEの挙動がそう豪快に変わることは
よくあるけど めったにないよ。
991デフォルトの名無しさん:2008/09/09(火) 20:01:23
どっちなんだよ

俺としてはセキュリティー周りの制限とかWindowsUpdateでかなり変わってくるし、
クロスブラウザよりそういう面ではシビアだと思うけどね
992デフォルトの名無しさん:2008/09/09(火) 21:13:01
クロスブラウザ問題とIEのセキュリティ変更の話は比較できる話か?
どっちみちIEにあわせて対応すりゃいい話じゃねえの?
まあ俺はWindowsUpdateで今までのスクリプトが使えなくなった事もないし
993デフォルトの名無しさん:2008/09/10(水) 02:41:40
埋め

>>985
何気にGoogleMapで使われてたりするよ
994デフォルトの名無しさん:2008/09/10(水) 19:39:34
UPDATEでADODB.Streamが使えなくなったんだっけ?
995デフォルトの名無しさん:2008/09/10(水) 19:48:07
>>994
マジ?それいつの話?
996デフォルトの名無しさん:2008/09/10(水) 19:53:40
検索してみたら
http://www.hotfix.jp/archives/alert/2004/news04-0707.html
を発見。2004年7月のことらしい
UPDATEについては以下参照
http://support.microsoft.com/default.aspx?scid=kb;ja;870669
997デフォルトの名無しさん:2008/09/10(水) 20:10:31
>>996
良く読まずに聴くのもあれだがHTAでも使えなくなると書いてある?
なんか使えてた記憶があるんだが
998デフォルトの名無しさん:2008/09/10(水) 20:41:49
ggle

999デフォルトの名無しさん:2008/09/10(水) 20:47:49
うめ
1000デフォルトの名無しさん:2008/09/10(水) 21:28:16
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。