トップページ⇒tech
1001コメント327KB

Mozillaでプログラミング(XUL) その2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
オラ拡張作る。

前スレ
Mozillaでプログラミング(XUL)
http://pc5.2ch.net/test/read.cgi/tech/1019704370/
0232デフォルトの名無しさん05/02/21 09:24:59
RDFデータソースの操作で参考になる拡張は何ですか?
0233デフォルトの名無しさん05/02/21 16:36:31
>>231
guidのwindowsでの正式な出し方はadvapi32.dllを使うのでどうしようもありません。
またunixではランダムデバイスを使っているようです。

ようはランダムであれば良い訳で別にMath.randomでも問題なさげと判断しました。(内部処理までは確認してません。)
0234デフォルトの名無しさん05/02/21 19:47:39
>>233
でも、なるべく衝突しないようにしなきゃいけないわけで。
0235デフォルトの名無しさん05/02/21 20:08:03
GUIDは全部をランダムに取るわけじゃないよ。
それなりに人によって使う領域が違ってくるように考えられている。
計算の仕方というのがあるのできちんとやるように。
0236デフォルトの名無しさん05/02/21 20:25:31
あーデバイスから求めてる訳か。
JSの実装がどうなってるか確認してみます。
0237デフォルトの名無しさん05/02/21 20:26:21
>>235
角度とか?

つか、偉そうなこと言うんだったらもうちっと具体的なこと言えばいいのに(笑)
0238デフォルトの名無しさん05/02/21 20:39:20
ダメっぽいな…
XPCOMあさってみます。
0239デフォルトの名無しさん05/02/21 20:45:06
crypto.random();が実装されてないorz
0240デフォルトの名無しさん05/02/21 20:53:08
>>237
DCE 1.1 RPC Specificationを読め。
0241デフォルトの名無しさん05/02/21 21:06:11
uuid=guidでいいんだよね
http://lxr.mozilla.org/mozilla/source/calendar/libxpical/token.c
是見るとやっぱり時間で求めてるorz

他の所も
>"uuid" + (new Date()).getTime();
な感じで無理っぽいなorz
0242デフォルトの名無しさん05/02/21 21:26:29
>>240
uuidって仕様あったんだ
某所で聞いた時誰も答えてくれなかったorz
0243デフォルトの名無しさん05/02/22 00:04:37
http://nazodane.hp.infoseek.co.jp/uploader/xuld_v0.3.2+.xpi

GUIDを修正してみた。
ただしvbs関係でエラーが出たりウイルスチェッカーが引っかかったりする可能性大。
Cドライブ以外にプロファイルがある時は上手く動作しない。
0244DCE05/02/23 00:21:46
http://www.mozilla-japan.org/projects/firefox/extensions/packaging/themes.html
uuidgen / guidgen で調べろ。
024524305/02/24 16:45:55
添付フォルダを使うようにしました。
これでwindows上では問題なし。

>>244
で?
0246デフォルトの名無しさん05/02/24 17:30:12
>>244
そのツールって内部から呼べて、さらに値返ってくるの?ってことでしょ

>>245
手動の計算方法は*BSDのソース見たときに載ってた気がする
まぁ計算方法は何とでもなるだろうけど、問題は機種固有数値の取得か
あれって確かMACアドレス取ってるんだっけ?

# Windows系だけでOKなら、現行の仕様で問題無さそうだけど
0247デフォルトの名無しさん05/02/24 17:35:59
windowsではvbsでScriptlet.Typelibを使うようにしたので問題ないです。
linuxでは/dev/urandomや/dev/randomを読み込むだけでよさげだけど環境が無いので対応は後回し。
0248デフォルトの名無しさん05/02/24 17:52:37
>>246
> 手動の計算方法は*BSDのソース見たときに載ってた気がする
> まぁ計算方法は何とでもなるだろうけど、問題は機種固有数値の取得か
> あれって確かMACアドレス取ってるんだっけ?

そう。DCEのSpecの"UUID Format"ってとこに書いてある。
要するにMACアドレスが(建前としては)一意性を保証されてるってことと
時刻を利用して理論的には一意な数値を叩き出す。
MACアドレスが尽きたらどうするんだろうというのは昔から謎。
0249デフォルトの名無しさん05/02/24 17:54:16
xul+javascriptでデータベースアプリケーションは作れマツか?
その1は落ちていて読めていません。
0250デフォルトの名無しさん05/02/24 18:32:10
>>249
とりあえずその1
http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_tech/1019/1019704370.html

データアプリケーションは作れなくも無いけど、読み込みスピードの問題が発生してくるかも。
0251デフォルトの名無しさん05/02/24 18:48:53
こんなのあったりもします
http://jsdb.sourceforge.net/index.html
0252sage05/02/25 05:54:21
> 250, 251
ありがとうございます。
既存のDBを使いたかったら、PHPとかサーバサイドでその処理を行い、
xul+jsはフロントエンドとして使う、ということですね。
flexとかと同じですね。
025325205/02/25 05:55:15
sageのいれどころ間違いました。すいません。
0254デフォルトの名無しさん05/02/25 08:59:39
一瞬ThunderbirdにSageのXPI突っ込んじゃったのかと思っちゃったじゃないか
0255デフォルトの名無しさん05/03/03 08:04:06
ナイトリービルドではXUL(JavaScript)の仕様もあちこち変わってきているように見受けられますが、
そういった細かい仕様変更やバグフィックスなどに関する情報はどこで手に入れることができますでしょうか?
0256デフォルトの名無しさん05/03/03 17:09:38
>>255
mozillaのwikiに載ってるよ。

ちなみに>>228はxulrunnerでしか関係ないと思われ
0257デフォルトの名無しさん05/03/03 19:55:19
xulrunner結構いいけど是と言って作る物が思いつかないorz
0258デフォルトの名無しさん05/03/03 21:16:35
サイドバーにテキストボックスを1つ配置したとして、
その内容(value)を閉じても保持するにはどういう方法がありますか?
要はスタティックな変数が確保できればいいんですけど、

function hoge(){};
hoge.prototype = {
 load: function(){
  var hogeside = document.getElementById("hogeSidebar");
  hogeside.value = ++hoge.prototype.count;
 },
 count:0
}
var hogehoge = new hoge();

例えば上のようなコードで、サイドバーを開く度にcountをインクリメントして表示だと、
どういう風に書けばいいでしょうか。
(上の例では毎回1が表示される)
025925805/03/03 21:21:48
ああ何か違う_no
countを〜じゃなくて、テキストボックスのvalueをインクリメントして〜、です
0260デフォルトの名無しさん05/03/03 21:28:25
preferencesに保持するのが一般的と思われ
026126005/03/03 21:30:20
http://xulplanet.com/references/xpcomref/ifaces/nsIPrefBranch.html
026225805/03/03 21:49:32
>>260-261
ありがとうございます。
ただ、例なので単純に数値のインクリメントにしてみたんですけど、
実際はテキストボックスでなくツリーで、
ツリー内の状態を保持しようと考えてます。
その場合もやっぱりpreferencesしか手はないでしょうか?
0263デフォルトの名無しさん05/03/03 21:56:33
>>262
それだったらrdf
0264デフォルトの名無しさん05/03/03 22:50:03
http://xulplanet.com/tutorials/xultu/persist.html
0265デフォルトの名無しさん05/03/05 00:16:24
斜め読みで適当に書いてるんで、間違ってても知りませんよ。
ttp://piro.sakura.ne.jp/latest/2005/03.html#d5-A7F7BD1E-1
0266デフォルトの名無しさん05/03/05 01:12:36
>>265
乙です。
chrome.manifestはinstalled-chrome.txtの記述にさらにcontents.rdfのoverlayの記述を加えたような感じですね。
XMLではないので読み書きしやすいので、こちらの方がよさげな気がします。
ただ、今までinstall.rdfで登録していた拡張の名前やバージョン、アップデートURLなどの情報はどうなるのだろうか。
0267デフォルトの名無しさん05/03/05 01:55:04
ほんとだね。どうなるんだろ
0268デフォルトの名無しさん05/03/05 12:18:13
>>266
いや変わらないでしょ
>install.rdfと
って所はただのミスでしょ
一箇所にまとめるのもいいと思うしスピードを上げるのもいいけどRDFの採用を減らすのはどうかと思うな…
0269デフォルトの名無しさん05/03/05 13:28:13
んで疑問なのはmanifestの置く場所がxulrunner(というかアプリケーション側)と違う事。(アプリケーション側はchromeフォルダ内)
0270デフォルトの名無しさん05/03/07 20:05:14
windowsでfirefoxのtrunkを使っているのですが
window.open("chrome://*",null,"chrome,alwaysRaised");
が聞かない様な気がするのですがどうすればいいのでしょうか?
0271デフォルトの名無しさん05/03/07 20:55:51
便利でメジャーなプラグインを自動で検索してインストールするプラグインキボン
027227005/03/07 21:08:00
親のzLevelが設定されてないとだめなのかなぁ…

>>271
窓の社(not 杜)の中の人乙
0273デフォルトの名無しさん05/03/07 21:21:32
ウィンドウの内部名はなんでnullになってるの?
0274デフォルトの名無しさん05/03/07 21:28:45
>>273
'_blank'になおしますた。
それと上手くいったけどtopmostっていってもfirefox内だけなのねorz
0275デフォルトの名無しさん05/03/08 00:14:10
システムに対してtopmostにできるとフィッシングに使う馬鹿が出るから仕方ない
と言っても特権持ったXULアプリならできても良さそうなもんだがな
0276デフォルトの名無しさん05/03/08 01:32:07
Win32API呼ぶ方法ってありますか?
0277デフォルトの名無しさん05/03/08 23:47:16
rundll32.exe使うとかどうよ
0278デフォルトの名無しさん05/03/09 22:15:18
そんなんじゃIEには勝てないな
0279デフォルトの名無しさん05/03/09 22:32:56
>>278
ええ、確かにIE+ASP.NETとは比べ物になりませんよ
やりようによってはウイルスだってハードディスク丸ごとフォーマットだってできちゃうXULに勝ち目はありません。
0280デフォルトの名無しさん05/03/10 16:41:17
nsIViewManagerでサムネイルが出力できるようになったのはいいんだけど(set MOZ_FORCE_PAINT_AFTER_ONLOAD=c:\tmp\test)、xpcom側から使えないのがなぁ…
是使えればもっと色々なことできそうなのに…
誰かパッチ書いてくれないかなぁ(他人任せ)
0281デフォルトの名無しさん05/03/10 23:37:03
武熊をサムネイルで整理とかできたらおもしれえかもな。
0282デフォルトの名無しさん05/03/13 08:09:28
ブラウザが持っているダイアログ(ブックマークに追加、など)を呼び出して、通常と違う動作をさせるにはどうしたらいいんでしょうか?
通常呼び出される場合には手を加えず、特殊な場合だけ動作を変えたいのです。
0283デフォルトの名無しさん05/03/13 10:14:17
引数を渡してウィンドウを開く
0284デフォルトの名無しさん05/03/13 11:11:35
>>282 <dialog id="****">を overley すれば?
overley の js で通常と特殊を振り分ければできるっしょ。
028528205/03/13 16:27:28
なるほど。ありがとうございます。
0286デフォルトの名無しさん05/03/14 18:14:21
>>275
chrome内ならできるようにして欲しいなぁ。
でないとランチャーや時計みたいな小物アプリが…
0287デフォルトの名無しさん05/03/14 18:49:13
Flasherって何?inIFlasher
ウンコモラッシャー!
0288デフォルトの名無しさん05/03/15 11:48:20
>>287
inIだからDOMiの為の何か。
0289デフォルトの名無しさん05/03/18 00:17:59
すいません。今、XULでMozillaのToolbarを作っています。

ツールバーでアイコンとアイコンの間に仕切り線を入れたいのですがどうしたらいいのでしょうか?

デフォルトであるブックマークのツールバーの「ホーム」と「ブックマーク」の間にある仕切り線みたいなのが良いです。
よろしくお願いします。
0290デフォルトの名無しさん05/03/18 00:43:15
>>289
separatorかと思ったけど、
これだったらちょっと検索しただけで分かるよね
他の何かかな?
0291デフォルトの名無しさん05/03/19 08:48:41
DOMインスペクタ使ってる?
0292デフォルトの名無しさん05/03/19 23:33:07
ドロップダウンリスト関連の質問です。

リストのラベルをJavaScriptで作成した変数(配列変数)を使いたいんですか
どうすればいいんでしょうか。

具体的には以下の通りです。
029329105/03/19 23:33:51
<script type="application/x-javascript">
<![CDATA[
teArray = new Array();
n = 0;
while (n<5) {
teArray[n] = n + "番目";
n++;
}
]]>
</script>

<menulist>
<menupopup>
<menuitem label="≪teArray[1]を使いたい≫" oncommand="sk1()"/>
<menuitem label="≪teArray[2]を使いたい≫" oncommand="sk2()"/>
<menuitem label="≪teArray[3]を使いたい≫" oncommand="sk3()"/>
<menuitem label="≪teArray[4]を使いたい≫" oncommand="sk4()"/>
<menuitem label="≪teArray[5]を使いたい≫" oncommand="sk5()"/>
</menupopup>
</menulist>
0294デフォルトの名無しさん05/03/19 23:46:18
>>293
menuitem自体を動的に挿入汁
029529105/03/19 23:51:29
>>294
それはどのように行えばよいのでしょうか?
具体的に、丁寧な説明をお願いします。
029629205/03/19 23:52:59
>>293
>>295
すいません。名前の欄を間違えました。「292」です。
0297デフォルトの名無しさん05/03/19 23:54:54
もう少しjavascriptを勉強したら?
0298デフォルトの名無しさん05/03/19 23:55:07
>>292
menupopupにID付けといて、
var mi = document.getElementById("mp").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
みたいにすればいいんじゃ?
ただしonloadなどで実行してね。
0299デフォルトの名無しさん05/03/19 23:57:13
もっとも、俺なら294のように動的に要素を生成して挿入するね。
030029205/03/20 14:12:49
>>298
ありがとうございます。早速やってみたのですが・・・、クリックしてもリスト(アイテム)が出てきません。
以下のスクリプトで実行しました。どこに問題があるか教えていただけると幸いです。

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
title="XUL"
onload="ttt01()"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript">
<![CDATA[
function ttt01() {
teArray = new Array();
var mi = document.getElementById("mp").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
}
]]>
</script>
<menulist>
<menupopup id="mi">
</menupopup>
</menulist>
</window>
0301デフォルトの名無しさん05/03/20 15:19:18
>>300
menupopupのchildNodesが見あたりませんが……それじゃ動くはずないって。

皆さんが言ってるのは、

<script type="application/x-javascript">
<![CDATA[
function ttt01() {
teArray = new Array();
var mi = document.getElementById("mi").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
}
]]>

<menulist>
<menupopup id="mi">
<menuitem oncommand="sk1()"/>
<menuitem oncommand="sk2()"/>
<menuitem oncommand="sk3()"/>
<menuitem oncommand="sk4()"/>
<menuitem oncommand="sk5()"/>
</menupopup>
</menulist>

とするか、
0302デフォルトの名無しさん05/03/20 15:22:55
(続き)

<script type="application/x-javascript">
<![CDATA[
function ttt01() {
var menulist = document.getElementById("ml");
for(var n= = 1; n < 6; i++){
mpopup.appendItem(n + "番目").setAttribute("oncommand", "sk"+n+"()");
}
}
]]>

<menulist id="ml"/>

とするか、ってことです。
0303デフォルトの名無しさん05/03/20 15:27:25
>302のコード間違えたorz

<script type="application/x-javascript">
<![CDATA[
function ttt01() {
var menulist = document.getElementById("ml");
for(var n= = 1; n < 6; i++){
menulist.appendItem(n + "番目").setAttribute("oncommand", "sk"+n+"()");
}
}
]]>

<menulist id="ml"/>

が正解。

とりあえずDOM(Document Object Model)の基本を勉強した方がいい気がする。
http://moz.skillup.jp/docs/dom/reference/javascript.html
http://www.mozilla.gr.jp/jt/xul/progress.html
http://www.parkcity.ne.jp/~chaichan/src/javascdom00.htm
このへんとかどうかな。
0304デフォルトの名無しさん05/03/20 18:45:25
すいません、画像の整理がしやすいように、"今自分の指定した規則のファイル名"で、ファイル保存する拡張を作りたいのですが
contentAreaUtil.js内部の
saveURL()
↓
saveInternal()
と関数を追っていったところ、その関数の最後の
var sniffer = new nsHeaderSniffer(aURL, foundHeaderInfo, data, aSkipPrompt);
の1行で躓いてしまいました、何方か、このクラスに関する資料や、(期待出来ないけど)saveInternal関数の詳細解説

ファイル保存時に、好きなファイル名を指定出来る方法等をご存じでしたら、お知恵をお願いいたします
単純に、aFileName引数に適当な名前を入れ込んでしまえば上手くいくと思ったら、綺麗に動いてくれなかった物で…
一応、作りかけ…、普通にファイル保存しか出来ません
http://www.geocities.co.jp/Playtown-Knight/9224/img_collect.zip
0305デフォルトの名無しさん05/03/20 20:44:41
「"今自分の指定した規則のファイル名"で、ファイル保存する」という意味がよくわからないけど、
そんな小難しいことやんなくても、nsIWebBrowserPersistのsaveURIで保存すればいいんじゃないの?
http://piro.sakura.ne.jp/xul/tips/x0015.html
0306デフォルトの名無しさん05/03/21 00:09:05
DOMインスペクタのようにノードを監視するにはどのようにすればよいでしょう?
DOMインスペクタのソースを一通り眺めてみたけど理解できずorz
0307デフォルトの名無しさん2005/03/21(月) 04:13:03
>>306
DOM Inspectorのソースは見てないがMutation Events用のリスナを登録してみるのはどうだろう。
ただしまともに実装されているのかは知らないが。
Mutation Events not created or dispatched for XML document that is loaded into memory but not rendered in a window/frame
https://bugzilla.mozilla.org/show_bug.cgi?id=201236
0308デフォルトの名無しさん2005/03/21(月) 05:44:17
DOMAttrChange(だったっけ)はとりあえず使えてます
0309デフォルトの名無しさん2005/03/21(月) 12:50:50
そもそもDOM Inspectorってどうやって監視してるんだ。
0310デフォルトの名無しさん2005/03/28(月) 15:03:55
>>306,309
「調査対象ノードをマウスで選択します」ボタンの動作を見る限りでは、
予め対象のDOM Documentを格納しておいてボタンを押されたとき(監視開始時)に
対象ドキュメント.addEventListener("mousedown",リスナー,true);
として、リスナーでevent.targetとして対象ノードを取得しているようです。

参考資料
chrome://inspector/content/viewers/dom/dom.js
http://lxr.mozilla.org/mozilla/source/extensions/inspector/resources/content/viewers/dom/dom.js#427
http://lxr.mozilla.org/mozilla/source/extensions/inspector/resources/content/viewers/dom/dom.js#964

>>306 さんの仰る「ノードの監視」の意味がわからなで答えているので、主旨が違ってたらごめんなさい。
0311デフォルトの名無しさん2005/03/31(木) 14:04:56
http://tinderbox.mozilla.org/showbuilds.cgi?tree=XULRunner
のWINNT 5.0 sweetlou Dep %のログのエラーの部分見てワロタ
>d:/builds/tinderbox/XR-Trunk/WINNT_5.0_Depend/mozilla//dist/bin/firefox.exe does not exist.
>Error: binary not found: firefox.exe
ってw
0312デフォルトの名無しさん2005/04/07(木) 22:26:45
http://ryuzi.dyndns.org/mozillazine/html/modules/news/article.php?storyid=969
>Bug 281988 を修正したところ影響が大きく、いくつかの拡張機能が動作しなくなっている
0313デフォルトの名無しさん2005/04/07(木) 23:32:16
変更内容がいまいちわからない。
具体例を挙げて説明キボンヌ。
0314デフォルトの名無しさん2005/04/08(金) 00:12:19
window._contentが使えなくなったのかな?
0315デフォルトの名無しさん2005/04/08(金) 01:18:56
そりゃ大変だ。
0316デフォルトの名無しさん2005/04/08(金) 10:57:25
自分が気づいたものでは、gBrowser.contentDocument.defaultViewがnullになってる。
gBrowser.contentWindowやdocument.popupNode.ownerDocument.defaultViewは今までどおり使える。

オマケ
ttp://piro.sakura.ne.jp/latest/2005/04.html#d8-A8239515-1
0317デフォルトの名無しさん2005/04/08(金) 23:09:52
http://nyozlla.hp.infoseek.co.jp/cgi-bin/nyoboard.cgi

> Mozilla/Firefox のセキュリティ修正は IE のようなパッチ方式ではなく、
> 全体を丸ごと更新します。このため「セキュリティ修正のたびに数 MB も
> ダウンロードするのは、ダイアルアップ接続のユーザーには苦痛だ」とい
> う意見も多く、とくに Mozilla 1.7.6 => 1.7.7 と Firefox 1.0.2 => 1.0.3
> は日にちが近いこともあり、多くの苦情が寄せられました。
> そこで Mozilla Foundation は、今回の修正に "fix the root problem"
> (根本問題の修正)を追加して、製品寿命を長くする決断をしたもようで
> す。いきさつは adot's notblog* "another shot at 1.0.3"
> (http://weblogs.mozillazine.org/asa/archives/007898.html) 参照。
> しかし、この「根本問題の修正」はいわば「仕様上のぜい弱性の修正」で
> もあるため、一部の「拡張機能」が動作しなくなるなどのトレードオフが
> 生じています。
0318デフォルトの名無しさん2005/04/10(日) 03:33:55

XULでポトペタ環境ってまだないの?そういうのがあると
手軽なGUI作成ツールになるんだけど
0319デフォルトの名無しさん2005/04/10(日) 06:32:15
この辺のことか?
ttp://www.mozdev.org/categories/xul.html
0320デフォルトの名無しさん2005/04/10(日) 10:52:41
>>318
XULDでテスト中
chrome://xuld/content/visualformmaker/formmake.xul
ただしMozArtを元にしてるのでそっちの許可が下りない限りは(ry
#tree表示がないときついな
03213202005/04/10(日) 11:23:45
>>319
お、すげ…
0322デフォルトの名無しさん2005/04/10(日) 12:41:42
>>319
まともに動くのが無い・・・orz
0323デフォルトの名無しさん2005/04/11(月) 01:47:21
これってブラウザの外に窓開いて独立したアプリを作ることもできるの?
0324デフォルトの名無しさん2005/04/11(月) 14:40:19
>>323
ブラウザ自体XUL+JavaScriptで記述されてますから。
0325デフォルトの名無しさん2005/04/11(月) 15:18:16
XULRunnner がそれじゃない?
使ったことないから知らないけど。
0326デフォルトの名無しさんNGNG
>>323
XULRunner
http://ftp.mozilla.org/pub/mozilla.org/xulrunner/
0327デフォルトの名無しさん2005/04/11(月) 22:44:25
http://baniisan.s12.xrea.com/x/pukiwiki/pukiwiki.php?XUL%20Runner%A4%D8%A4%CE%C2%D0%B1%FE%A4%CE%A5%E1%A5%E2
にあるやつでちょっといじってみるとか
0328デフォルトの名無しさん2005/04/11(月) 23:52:09
>>323
できます。
Firefox内でも、「ブックマークの管理」ダイアログやDOMインスペクタ、
設定ダイアログ、拡張機能の管理ダイアログなどが
「ブラウザの外に窓開いて独立したアプリを作」った例と言えます。
0329デフォルトの名無しさん2005/04/12(火) 00:04:05
-chrome引数付けて開けば単独で開けたはずだし
0330デフォルトの名無しさん2005/04/13(水) 19:27:52
JSでもXPCOM作れるらしいけど実際使われてる拡張ほとんど見ない…
使いまわしだとかバージョンによるバッティングとかどんな感じになってるの?
ttp://nazodane.hp.infoseek.co.jp/xpcom/xpcom.xhtml
0331デフォルトの名無しさん2005/04/14(木) 04:01:22
>>330
adblock とか livehttpheaders とか結構使ってるよ。
■ このスレッドは過去ログ倉庫に格納されています