1 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:19:33 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part38 pc11.2ch.net/test/read.cgi/tech/1235864730/
577 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 01:56:21 ] >>574 >フォームにデザイナで追加したコントロールには、何か、インデックスの >ようなものが割り振られてたりはしないのでしょうか? ない プログラム内で配列でコントロールを生成して使ったことがある。
578 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 02:04:02 ] Control.Controls
579 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 02:09:20 ] なんと、そんなのが有ったのか・・・>>577 のないは訂正だ。
580 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 02:47:59 ] 類似質問ですが グループボックス内にテキストボックスやプログレスバーなどが沢山あり それを実行時にグループボックスごと追加する場合 ユーザー定義コントロールを作ってnewするのがいい方法なのでしょうか? 又、その場合ユーザー定義コントロールの作り方が良くわかるサイトなどご存知ないでしょうか? 宜しくお願い致します。
581 名前:デフォルトの名無しさん [2009/04/01(水) 03:10:49 ] 574っす。 >>575-579 ありがとやんした!!
582 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 03:43:54 ] >>569 uwa.potetihouse.com/library/tkfpdll.html とか
583 名前:568 mailto:sage [2009/04/01(水) 03:53:22 ] 別のスレで聞いてきます。どうも〜
584 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 06:23:48 ] 質問です。 今使用しているアンマネージDLLに int WINAPI hoge(float *p, int size); のような関数があります。 float *pは呼出元で確保した配列のポインタなのですが、16バイトアライメントされている必要があります。 C#でアライメントを考慮した配列を確保する方法などあるのでしょうか?
585 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 07:28:15 ] [StructLayout(LayoutKind.Sequential, Pack=16)] struct Test { データ }
586 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:21:18 ] yield の使い道って何かあるのでしょうか? なんとなく気になって@ITとか見てみたんですがなんかわかりづらい・・・・ わかりやすい解釈のページとか教えていただけると助かります。
587 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:30:26 ] 列挙処理書くならかなり便利なんだけど。
588 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:36:26 ] >>587 そのような記述を多く見るのですが・・・orz いかんせん読解力が無いようで・・
589 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:40:11 ] >>588 今は大抵 LINQ の標準ライブラリであらかた機能がそろうけども、 特定の条件だけ満たす要素を取り出したり、 特定のプロパティの値を取り出すような関数書いてみ。 それも、いったん new List() するんじゃなくて、遅延評価で。
590 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 10:00:47 ] >>588 すべてを終えるには時間のかかる処理をしながら、条件を満たした項目から表示していくプログラムを作れば理解できるよ 記憶領域を使わないですむし、演算の終わった項目から並列処理にかけたりできるしね
591 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 10:02:48 ] yieldは別に速くはならないだろ
592 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 10:06:41 ] >>589-590 ありがとうございます。 そういう条件でちょっとサンプルでもつくってやってみます。
593 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 12:20:42 ] >>586 こんなのはどう? msdn.microsoft.com/ja-jp/events/dd283187.aspx
594 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 12:45:17 ] 最近更新してないと思ったらやはり板移転検出してた・・・
595 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:12:07 ] >>593 情報ありがとうございます。 こういう使い方が出来ると言うことなんですね。 確かに >>599 が言うように >特定の条件を満たす要素を・・・ というのはその通りかと 処理がそれを呼び出す側ですっきりしそうです。 使い道が少しですがわかった気がします。 タイミングさえあれば今度どこかで実装してみようと思います。
596 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:26:44 ] 質問ですが、 aspxでファイルにResponse.Redirect(ファイルURL)でダウンロードさせてるんですが、 複数ユーザの同時アクセス数を制限するにはどうしたらいいのですか? 例えば上限を10にしておいて同時アクセス数が11になったらエラーページに飛ばすみたいな。 static Queue _queue = new Queue(); static object _lock = new object(); page_Load() { lock(_lock) { if(_queue.Count > 10) Response.Redirect(ErrorPage); _queue.Enque(new object()); } try { Response.Redirect(DownloadURL); } finally { lock(_lock) { _queue.Deque(); } } } こんなんしか思いつかないんですが・・・ 定石みたいなのあるのでしょうか。
597 名前:596 mailto:sage [2009/04/01(水) 13:32:33 ] >>596 に追加で ダウンロード時間を30秒と決め付けて finally句でDeque前に Thread.Sleep(30 * 1000);
598 名前:596 mailto:sage [2009/04/01(水) 14:44:42 ] Sleepじゃ駄目だ〜(T_T) あと DequeueのlockとEnqueueのlockでデットロック起こしてる〜(T_T) ってワケで作り直し。 private volatile static Queue _queue = new Queue(); protected void Page_Load(object sender, EventArgs e) { if (_queue.Count >= 10) { Response.Write("混雑してます 同時アクセス数" + _queue.Count); Response.End(); } _queue.Enqueue(new System.Threading.Timer(new TimerCallback(tmr_Tick), null, 10 * 1000, System.Threading.Timeout.Infinite)); try { Response.Write("同時アクセス数" + _queue.Count); Response.End(); } finally { System.Diagnostics.Debug.WriteLine("finally"); } } private static void tmr_Tick(object state) { _queue.Dequeue(); System.Diagnostics.Debug.WriteLine("Deque Count" + _queue.Count); }
599 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 14:50:04 ] それでできる? 俺なら、外部(データベースとか)に、接続数を保持しとくな。
600 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 15:21:19 ] 共有リソースへのアクセス数を制限するならセマフォ使えばいいしょ
601 名前:596 mailto:sage [2009/04/01(水) 17:28:08 ] >>600 セマフォ使ってみました。 5スレッドまで。1秒待っても駄目だったら混雑中。 private volatile static Semaphore _pool = new Semaphore(0, 5); static Default() {_pool.Release(5); } protected void Page_Load(object sender, EventArgs e) { if (!_pool.WaitOne(1000)) { Response.Write("混雑しています。"); Response.End(); } try { Response.Redirect(URL); } finally { Thread t = new Thread(() => { Thread.Sleep(10 * 1000); int cnt = _pool.Release(); System.Diagnostics.Debug.WriteLine("cnt " + cnt);}); t.Start(); System.Diagnostics.Debug.WriteLine("finally"); } } }
602 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:35:20 ] 初心者なので、用語の使い方を間違っていたらすみません。 良く経験の長い方のレスなどを見ていると フレームワークを拡張するというような記述がありますが 具体的にはどのようなことをいうのでしょうか。 フレームワーク内で既に定義されているクラスを 継承して拡張した自分なりのクラスを持っているという理解で正しいでしょうか。 また、拡張したフレームワークを使用してアプリを作った場合 そのアプリは、拡張されていないフレームワーク上ではキチンと動作しないものなのでしょうか。 よろしくお願いします。
603 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:52:15 ] フレームワークの拡張という言葉はあまり使わない気がする フレームワークってのは、機能を簡単に使えるようにした壮大なライブラリ(クラス)群で、 料理で言うところの味噌や醤油のような調味料の集まりみたいなもの。 この調味料を継承して拡張して機能を自作で追加すると、 パスタにかけるだけで美味しいパスタができるというトマトソースを作ることができる。 フレームワーク(調味料)さえあれば、トマトソースのできる調味料が揃っているので 作ることはできるけど、レシピは教えてあげないと作れない。 そのレシピはdll(ダイナミックリンクライブラリ)といってレシピの集まり。 これを配布してあげることで、同じフレームワークを持っているPC上であれば、 どれもおいしいトマトソースのパスタを作ることができるという感じ。
604 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:56:44 ] 一般的な意味での「フレームワーク」と、.NET Framework は違う層だから、 そこは気をつけてね。
605 名前:602 mailto:sage [2009/04/01(水) 21:12:05 ] 言葉から、フレームワークそのものを追加・変更するような想像をしていたんですが 独自に拡張したクラスライブラリを作成するということだったんですね 納得いきました。ありがとうございました。
606 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:55:48 ] 横槍だけど フレームワークはライブラリより広義の「手法」的な意味だとおもうんだぜ? 機能群はライブラリで,(利用法とか運用法も含めた)方法論的な意味でフレームワークって良く使う
607 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:31:43 ] >>601 横ですが、Semaphoreはそうやって使うんですね 参考になりました
608 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:10:51 ] 階層が深くて扱いづらいintの変数に別名を付けるにはどうすればいいんですか? int a = bbbb.ccccc.ddddd; とすると値のコピーになりますよね これを参照にしたいんです
609 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:26:33 ] usingだめ?
610 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:29:35 ] それクラスの外に書くやつですよね クラスで管理したいです
611 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:31:13 ] 調べようぜ少しくらい ttp://msdn.microsoft.com/ja-jp/library/yh598w02(VS.80).aspx
612 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:33:15 ] ワラタ
613 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:33:15 ] そういうものが必要になることじたい何かおかしいのだが、 プロパティにしたらどう? int A { get { return bbbb.ccccc.ddddd; } set { bbbb.ccccc.ddddd = value; }}
614 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:37:26 ] unsafeだめ?
615 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:39:03 ] >>611 そっちか。それだめです期限付きでその中ではコピーされますよね 参照がいいです。
616 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:45:36 ] ・・・・・・(;´∀`)
617 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:47:43 ] だからunsafeつかって好きにかけや
618 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 18:55:39 ] FontDescriptionという構造体を呼び出すときに fd = new Microsoft.DirectX.Direct3D.FontDescription(); としているんですが 次のエラーが出てしまいます 次のメソッドまたはプロパティ間で呼び出しが不適切です: 'Microsoft.DirectX.Direct3D.FontDescription.FontDescription()' と 'Microsoft.DirectX.Direct3D.FontDescription.FontDescription()' ビルドしてみるとエラーがあるにもかかわらず問題なく動いているようです これはどうすればいいんでしょうか
619 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:04:06 ] 質問です。 class HogeCollection : IEnumerable<Hoge> のように、IEnumerable<T>を実装したコレクションのインスタンスがあるのですが、 そこから動的にHogeの型を取得するにはどうすればよいのでしょう?
620 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:08:24 ] リフレクション
621 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:12:26 ] GetType().GetInterfaces().First(i => i.Name == "IEnumerable`1").GetGenericArguments()[0] かな もっといい方法もありそうだけど
622 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:17:47 ] >>613 それも値がコピーされて格納されるじゃん 一瞬でも複製を作りたくないんだけど ほんとに引数にref指定してその中だけで使えるように渡すしか値型を参照で保持する方法はないの?
623 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:20:37 ] >>621 Nameを使うと誤判定の可能性があるので、 オープンジェネリック型を使った方がいいな GetType() .GetInterfaces() .First(i => i.GetGenericTypeDefinition() == typeof(IEnumerable<>)) .GetGenericArguments()[0]
624 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:24:10 ] structのこといってんの? 一瞬でもコピーされるのの何が問題なのかわからんから答えようがないよな
625 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:24:38 ] >>620-621 ,623 なるほど!ありがとうございました。
626 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:26:40 ] unsafeでポインタでFA
627 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:27:44 ] unsafe対応してないの!
628 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:28:37 ] すまんunsafeしかないってことか 構造を変えるわ、あきらめたthx
629 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:31:21 ] >>622 初心者スレに行って質問の仕方から勉強しなおしだな
630 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:40:56 ] >>622 それくらいの余計なコピーの作成くらい、実行時には最適化で消えると思うよ。
631 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:43:19 ] もしかして、複数スレッドから読み書きされるからコピーされると困る って話なのか?
632 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:51:16 ] たぶん異なるスレッドから見てるんでしょ 関係ないけど 参照でコピーしても、そのポインタを保持してるんだからメモリの節約にはならないんだっけ?
633 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:53:22 ] ただ呼び出しがめんどいってだけじゃね?最初の質問からすると。 最後にまた代入すりゃいいじゃんって思うけどねw んで質問ですけど、unsafe使って問題になることって何ですか? unsafe内のコードに問題が無いという前提で。
634 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:56:39 ] 関数の引数でref使う方法もなくはないけど、 aliasをサポートする別の言語を使うしかないな。C++/CLIで何とかならなかったっけ? C#でもこういう裏技はあるけど正直おすすめしない。 int hoge = 0; TypedReference tref = __makeref(hoge); __refvalue(tref, int) = 5; Console.WriteLine(hoge);
635 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:57:31 ] >>633 >unsafe内のコードに問題が無いという前提で。 その前提が"成り立つ事を保障できない"事こそが最大の問題だと思うのだけど
636 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:01:34 ] インテリセンスではエラー波線でないんですが、 オブジェクト参照がオブジェクト インスタンスに設定されていません。 というエラーが出るのですが、なんでですか?
637 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:02:41 ] オブジェクトがnullなのにメソッドを呼び出したかなんかしたんだよ
638 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:04:35 ] 宣言時に値は入れてるんですが、起動時の順番が問題で宣言がまだ見つからないってことですか?
639 名前:デフォルトの名無しさん [2009/04/02(木) 20:06:40 ] 入れてると思ってるだけで入ってないんだよ ぬるぽってやつだよ
640 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:07:40 ] ∧_∧ ( ・∀・) | | ガッ と ) | | Y /ノ 人 / ) < >__∧∩ _/し' //. V`Д´)/ (_フ彡 / ←>>639
641 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:09:10 ] pub class a pub int data = 500; pub class b pub int data; pub b(a aa) { data = aa.data; } でdata = aa.data;でエラーでるんです
642 名前:デフォルトの名無しさん [2009/04/02(木) 20:10:40 ] aaがnullなんだよ
643 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:11:31 ] >>635 そりゃそうなんだけど、それ以外にもなんかあるのかなーと思ったけど それ以外ないわな。unsafeは使用禁止とか普通にあるだろし 今回の参照の件とかはそれほど問題にする意味もないのかなと考えてたけど まぁunsafeなんだし、使わなけりゃ一番問題ないな
644 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:14:19 ] >>642 ありえないです。class bをaaを渡してnewした時初めてthis.dataに入れようとしますよね ここでエラーになるってことはaaは入ってるんです
645 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:17:31 ] ブレークポイント設定してaa.data;のところにカーソルあててみなよ aaがnullになってるから
646 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:20:49 ] nullになってました 自信あったのにショックです ありがとうです
647 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:28:51 ] エラーが出てるけど、自信があるのでデバッグしません!
648 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:29:49 ] >>634 ref 使う方法。変態のきわみだ。 delegate void Alias(ref int i); static void Main() { int bbbb_ccccc_ddddd = 0; ((Alias) delegate(ref int i) { i = 98765; })(ref bbbb_ccccc_ddddd); Console.WriteLine(bbbb_ccccc_ddddd); }
649 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:30:21 ] 事前にエラーがわかる静的言語は便利なことがよくわかるよな 特に初心者の人にとっては
650 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:09:57 ] 構造体の初期化はどうかけばいいのでしょうか Vector3 a = {0.0f, 0.0f, 0.0f};
651 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:12:41 ] コンストラクタが使えるだろ
652 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:12:52 ] Vector3 a = new Vector3(0.0f, 0.0f, 0.0f);
653 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:13:05 ] 構造体内にコンストラクタを書いてそこで初期化
654 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:18:52 ] thx!
655 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:20:18 ] >>633 部分信頼とかセキュリティ上の理由でunsafeコードを実行させてくれない仕組みに引っ掛かるとか。
656 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:24:22 ] struct Data { int a, b, c, d, e......; } class Cupsel { Data data; }
657 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:49:48 ] >>655 はーなるほど。そういう仕組みがあったのねぇ セキュリティポリシーによるようだね。通常はローカルだと問題ないのかな 今までなんも考えなかったわ。ありがとう
658 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:01:07 ] System.Drawing.Graphics g = Graphics.FromImage(backBuffer); g.Clear(Color.Black); g.DrawImage((Image)image, new Point()); Graphics.FromHwnd(panel1.Handle).DrawImage((Image)backBuffer, new Point()); WinFormsで、高速に、ちらつかせずに画像表示をさせたいんですが どうやるのがいいんでしょうか? 描画するまで画面を更新されないようにするやり方がわかりません・・ それと、加算合成とかをするにはDrawImageでは無理そうですがどうすれば。
659 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:02:18 ] ちらつき防止はコントロールのDoubleBufferedでいけるんじゃないの? あと、Graphics.FromHwnd(panel1.Handle)よりもpanel1.CreateGraphics()のほうが普通だと思う。
660 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:02:33 ] >>634 話は戻るが、そこでusingだ。
661 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:05:46 ] >>618 分かる人いませんか?
662 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:26:07 ] 何だろう。よく分からんけど、バージョン違いのアセンブリを参照してるとか? 参照設定はどうなってる?
663 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:02:12 ] >>660 usingディレクティブの別名は名前空間と型名だけだったと思うが、 質問者は変数の別名が欲しいといってるんじゃないのかな?
664 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:23:36 ] >>662 DirectX関係で参照してるのは DirectX Direct3D Direct3DX DirectInput DirectSound です Direct3DXのバージョンは1.0.2911.0で他のものより新しいのを使ってたんですけど バージョンをそろえてみても同じエラーが出ます
665 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 02:44:15 ] >>664 CS0121? msdn.microsoft.com/en-us/library/ky5f1hz8.aspx どうやらオーバーロードなどをしていて,複数の選択肢が暗黙的な型変換で,動作が決定不能になる時に発せられるらしい. 状況によって変わってくるから,他の部分で名前と名前,型と型がバッティングしていないか確かめてみたら? あと,なんだか Microsoft.DirectX.Direct3D.FontDescription で検索すると,成功している人が少ない雰囲気.
666 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 07:06:03 ] アクセス制限機能つきのアプリを作りたいです。 ユーザ権限やパスワード管理機能つけたいんだけど、 一から作るしかないですか? .NET Framework 2.0 ならいいライブラリがありそうだけど見つけきれません。。。
667 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 07:51:41 ] 使ったことないけど、System.Security名前空間から適切な制限を見つけてDemaidメソッド呼び出せばいいんじゃね?
668 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:34:17 ] System.Windows.Form.WebBrowserをIE8に変更できませんか? OSのIEは8に更新しました Vista + VS2008 です
669 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:41:42 ] >>668 更新した時点でもうなっとるがな。
670 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:13:53 ] windowsアプリで自動アップデート機能をつけようと思うのですが Program Files以下のファイルを更新するときは 管理者権限が必要ですよね。 Vistaの場合管理者でログインしても 普通にアプリを実行するとWindowsPrincipalはUserになっちゃいますよね。 右クリックで管理者として実行を行わないと 管理者権限で実行されませんよね。 そのため自動アップデートによるアップデートができないと思うのですが、 世に出回っているVista対応アプリはどうやって対処しているのでしょうか?
671 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:18:24 ] >>670 UAC の昇格をしてるでしょ。
672 名前:668 mailto:sage [2009/04/03(金) 15:21:40 ] >>669 さん 確認くんで調べたらIE7のままなんです
673 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:25:11 ] >>672 その結果を貼り付けてみ。互換モードになってるとかの落ちじゃないよね?
674 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:41:32 ] IE8 WebBrowser Control で検索したらすぐに答えが出てきたぞ ttp://blogs.msdn.com/ie/archive/2008/03/18/webbrowser-control-rendering-modes-in-ie8.aspx
675 名前:670 mailto:sage [2009/04/03(金) 16:08:08 ] >>671 ユーザが意図的に管理者として実行をして、 昇格をしてもらわないとアップデートできないので、 世に出回ってるアプリはどう対応してるのかということを質問しています。 普通に実行したときはバージョンアップの通知だけで、 通知があったら「管理者として実行」してもらうと言うことになるんでしょうか。 でもそれだとUACを知らない、年配などのライト層は ずっとバージョンアップできないってことになりますよね。 しかもそれって、自動アップデートではないですよね。
676 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:11:59 ] >>675 よくわからんけど、セキュリティソフトなんかは予めUAC昇格させる設定を ユーザーにさせてるんでないの? 都度か一括かの違いで
677 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:17:35 ] >>675 つか、何言ってんの? 「管理者として実行」しなくても、UAC の昇格を行うことはできるよ。 一般的な方法としては、マニフェストを書いておいて、そのアプリを呼び出す。 新しいバージョンがあるかを確認するアプリと、実際に更新をするアプリに分ける、 って感じだね。 Firefox も、ATOK も HP のプリンタドライバも、そんな感じでやってると 思うけど・・・。