- 1 名前:デフォルトの名無しさん [2010/05/16(日) 23:13:52 ]
- (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
前スレ C#, C♯, C#相談室 Part58 pc12.2ch.net/test/read.cgi/tech/1269261310/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>1-5くらい
- 682 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:31:32 ]
- >>681
コールしているアセンブリの署名を調べる。
- 683 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:41:02 ]
- >>682
kwsk! ちなみにクラスアセンブリは自前のソース月の物でありまする><
- 684 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:09:18 ]
- 署名は改ざん検知出来るだけ
DLLのアクセス制限云々の機能ではない
- 685 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:29:04 ]
- やっぱりそうなんですね
がっくし・・・・ ProjectA ---{OK}--- A.dll 第三者のProject ---{NG}--- A.dll みたいな事をやりたい時はみんなどうしてるのん?
- 686 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:32:12 ]
- そんなことをやりたいと思ったことがない。
- 687 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:35:14 ]
- えー社内ライブラリとかどう管理してるのー?
不正リンクされて盗まれても「でへへっ!」とか言うだけ? うそーん><
- 688 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:38:50 ]
- >>685
DLLのファイルかフォルダにNTFSのアクセス権つければよくね?
- 689 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:47:26 ]
- 制限出来れば
リフレクション使ってクラス調査→不正リンク→(゚∀゚ )アヒャヒャ という.net固有の糞みたいな問題が解決するけど 未だに対策は難読化しかない。
- 690 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:53:51 ]
- 別になぁ。そもそもアセンブリじゃないDLLなら呼び放題だし。
売り物ならライセンス処理つけるだろうし。 お買い上げありがとうございました。だろ?
- 691 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:55:50 ]
- オープンソース時代だから別にいいじゃんw
盗まれたら裁判すればいいし(キリッ
- 692 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:58:48 ]
- >>691
盗んだほうはC++で書きましたってオチだ
- 693 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:08:44 ]
- .NETでなくても、製品の実行ファイルや図版を勝手に使われたらどうするんだよ。
そういうときは法務部門や顧問弁護士の出番。
- 694 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:18:14 ]
- まっ、やり放題な業種だからどうしようもないってこった
裁判なんざ普通は起こせないしそもそも把握すること事態が不可能
- 695 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:47:43 ]
- ヤリ放題な業種だと自分に言い聞かせてるのか?こっちまで巻き込むなよ。
- 696 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:50:51 ]
- 巻き込むも何も対策方法が何もない現状
自作パッカー作ったところで焼け石に水 理想は寝て言え
- 697 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:50:51 ]
- >>683
どのアセンブリからコールされているかはわかるだろ。 そして、そのアセンブリがどのような署名されているかを調べる。 逆コンパイル防止はそれ以前の問題。
- 698 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:05:35 ]
- 毎回、毎回、クラス毎に調べるのか?
手間かかりすぎだろ
- 699 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:07:48 ]
- いたるところで StrongNameIdentityPermission でDemandでもしとけ。
まあ改ざんされたらもうだめだけどな。
- 700 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:45:18 ]
- 単純に
public class MyLicence : License { public override void Dispose() {} public override string LicenseKey { get { return ""; } } } public class MyLicenceProvider : LicenseProvider { public override License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions) { if (allowExceptions) { string exename = Path.GetFileName(Assembly.GetEntryAssembly().Location); if (! exename.Equals("MyLicenceTest.exe")) { throw new LicenseException(type, instance, "do't licenced"); } } return new MyLicence(); } } [LicenseProvider(typeof(MyLicenceProvider))] public class TestClass { License license; public TestClass() { license = LicenseManager.Validate(typeof(TestClass), this); } } とかでもいいんじゃね?呼び出し元exe名縛り。
- 701 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:54:35 ]
- こんな抽象クラスあったのか。
中々面白いアプローチだと思う。
- 702 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:59:05 ]
- ほぉ、これはなかなか…
- 703 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:05:48 ]
- >>701-702
そりゃどうも。えっへん!
- 704 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:06:08 ]
- Licenseは破棄が必要だぜ…
- 705 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:07:59 ]
- と思ったけど必要なければ別に実害はないのか…
- 706 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:10:53 ]
- リソース持ってないし、いいかな?と省略したけど、実装する際は通常通り
Dispose()しといたほうがいいだろね。
- 707 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:14:16 ]
- リソースというか取得したライセンスを開放する処理を好きに定義するだけでしょ
同時利用数をデクリメントするとか 空でも全く問題ない
- 708 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:20:59 ]
- ってことみたいね。
- 709 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:48:04 ]
- というか、キモはexeのファイル名を確認するところなんだから、実装の仕方は人それぞれでしょう。
- 710 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:10:48 ]
- ってことみたいね。
- 711 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:30:09 ]
- >>700をoverrideとか使わずにもっと分かり易く書いてくれ
- 712 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:33:20 ]
- webアプリで
FileSecurity filesecurity = File.GetAccessControl(path); (pathはstring型でファイルの絶対パスが代入されています) としました。 このファイルを他のアカウントで作成して、 アクセス権限も拒否にしたら、デバッグ環境でですが、 '/'アプリケーションサーバーエラーが発生しました。 と出て、実行できませんでした。 とりあえず、try catchを使い、アクセス禁止として 処理すれば、実行エラーは回避できました。 DACLとかいまいちわかっていないのですが、 なにか他の回避方法はあるでしょうか? よろしくお願いします。
- 713 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:33:38 ]
- そんなレベルだったら余計なこと気にするな
どうせその他の部分で穴だらけ
- 714 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 00:00:25 ]
- >>711
public class Hoge { private Hoge() {} public static Hoge() { string exename = Path.GetFileName(Assembly.GetEntryAssembly().Location); if (exename != "hoge.exe") throw new Exception(); return new Hoge(); } } でも、リフレクションやLCGを使われたらどうなるの?
- 715 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 00:27:30 ]
- LicenseProviderって使ったことなかったからそのサンプルコードとしては
参考になったけど、正直実用的な意味があるとは思えんなあ… アセンブリがロードされた時に何らかのスタティックメソッドの実行を強制できれば いろいろ面白いことが出来そうな気がするんだけど
- 716 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 00:43:56 ]
- そうそう、今回の話とは別に、それ前からほしかったんだよね。
- 717 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 01:26:14 ]
- 実用的には例えばSIDとかMACとかUSBメディアのPNPDeviceIDとか
※ SID : GetComputerName、LookupAccountName API参照 ※ MAC : NetworkInterface.GetPhysicalAddress 参照 ※ PNPDeviceID : WMI で Win32_DiskDrive, Win32_DiskDriveToDiskPartition, Win32_LogicalDiskToPartition, Win32_LogicalDisk 参照 そういった利用者を一意に特定出来る情報をプロダクトキーと一緒に公開鍵で 暗号化してライセンス認証サーバに送って、サーバで認証後に秘密鍵で 特定情報を暗号化して送り返してもらったものを記録。 その情報を公開鍵で復号して動作環境での取得値と一致していなかったら ライセンス違反と判断・・・とかメンドクサい実装は必要に応じて。
- 718 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 01:53:37 ]
- うんまあ改ざんされたら意味ないんだけどね。
- 719 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 02:49:16 ]
- それを言ったらどんなアプリ、ExcelだろうとWindowsOSだろうと、リエンジニアリング
されてライセンス処理部を改ざんされたら無理。 それを言うことに意味はあるのかな?
- 720 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 03:02:30 ]
- 簡単さが違うって話。
- 721 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 05:35:33 ]
- 確かにDllMain的なのは欲しいよな。
- 722 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 11:42:56 ]
- static イニシャライザでチェックしちゃいかんの?
- 723 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 11:47:55 ]
- staticコンストラクタはいつ呼ばれるかわからない
- 724 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:00:08 ]
- アセンブリに属性をつけておいて
その属性にstaticコンストラクタを仕込んでおけば dllを読みこんだタイミングで実行されたりしないかなあ
- 725 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:00:32 ]
- ふーん
- 726 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:08:28 ]
- >>724
されない カスタム属性っていうのはあくまでメターデータのラッパークラスなので インスタンスが作られるのはその属性を参照しようとしたとき
- 727 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:26:53 ]
- お前ら釣り耐性低すぎだろ
- 728 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:32:24 ]
- >>726
(゚∀゚)
- 729 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 18:55:14 ]
- >>700みて何じゃこりゃとおもったけど>>714見たら恐ろしく単純w
- 730 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 19:30:28 ]
- 何十個もクラスをライセンス管理しないなら >>714 で充分だね。
- 731 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 19:53:32 ]
- >>729
遅い
- 732 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 21:27:20 ]
- >>700でも充分簡単じゃねぇか。
あんなのすら分からなかったらそもそもコードかけねぇだろ。
- 733 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 21:46:45 ]
- >>732
インデントの差だろ
- 734 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 22:42:20 ]
- まあ確実に言えることは、>>700 程度のコードが複雑に見えるんじゃライセンス保護
なんて当分は無縁だということ。
- 735 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 22:50:21 ]
- >>733
専ブラで>>700をポップアップさせて見ればいい
- 736 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 00:53:37 ]
- うほ
- 737 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 10:19:51 ]
- 先生!
thread.spinwaitとthread.sleepってどう違うんですかっ? MSDN読んでも引数の違いぐらいしかわからないです! 高度な技術を持ってる人、おすえて!
- 738 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 10:31:49 ]
- 解説読めよ。
- 739 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 11:41:25 ]
- >>738
わかりません!
- 740 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:04:49 ]
- Windowsフォームアプリを作るとメインウィンドウのクラスがめっちゃ大きくなっちゃうんですが、仕方ないんでしょうか?
それともpartialで分割するべきですか?(あまり意味ないと思いますが)
- 741 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:11:42 ]
- partialの分割は意味ない。
ユーザーコントロールにするとか、ビジネスロジックを別クラスにするとか、 そんな感じ。
- 742 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:49:35 ]
- ApplicationContext使って、MainFormにはインタフェースレベルのプログラムしか書かないとかかな。
- 743 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:37:11 ]
- それでもコントロールの量が多いとイベントメソッドだけでもめっちゃ多くなっちゃうんですよね。
そこそこ普通のフリーツールくらいの規模でもメインウィンドウのクラスだけで何千行にもなっちゃう。
- 744 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:40:43 ]
- だから、そーゆーのはユーザーコントロールにまとめるんだってば。
- 745 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:43:21 ]
- で、デザイナがバグって正常に表示されない、とw
あれたぶん2010でも放置なんだろうな
- 746 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 21:11:27 ]
- >>743 >>745
へったくそだなぁ
- 747 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 21:12:31 ]
- ユーザーコントロールが正常に動かないのは作り方が悪い
- 748 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 21:29:20 ]
- >>746
具体的に教えてよ
- 749 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:12:54 ]
- なんでそんなでかくなるんだろ。
イベントが盛りだくさんなの?
- 750 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:17:36 ]
- ボタンが百個あるので、イベントハンドラが百個なんでしょ。
- 751 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:28:16 ]
- ボタン1個にいくつのイベントがあると思ってんだ
- 752 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 23:05:11 ]
- はなし が かみあって ない
- 753 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 23:35:24 ]
- やっぱへったくそだな
- 754 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 23:50:20 ]
- >>746-747
素人臭い意見だな。 そんなわけないでしょw 実際ある程度やってみれば俺の言ってる意味がわかるよ。
- 755 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 23:54:22 ]
- 自称玄人△
- 756 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:07:04 ]
- >>754
ユーザーコントロール使ったこともない自称玄人乙
- 757 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:12:58 ]
- IDEに表示されないという理由だけでユーザコントロールを避けるってどうなの?
#define BEGIN { と同じくらいひどいと思うんだけど、素人だからですかね
- 758 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:15:09 ]
- それは言いすぎ。
IDEのコード生成は信用できないので禁止、くらいだろ。
- 759 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:24:31 ]
- ・・・IDEに出ない?ツールボックスに出てきているコレはなんだろう?
- 760 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:29:02 ]
- >>757
「だから」避けろとか使うべきでない、などとは一言も言ってない。
- 761 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:31:03 ]
- 揚げ足取り玄人ですね。かっこいいです!
- 762 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:34:15 ]
- >>760
デザイナがバグって正常に表示されないというのは素人がよくハマる部分だから 気をつけろって言う意味?
- 763 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:36:18 ]
- ガキ臭い揚げ足取りしてるのはどっちだよ。
ネトウヨみたいなよくわからん被害妄想だなおい。 こっちは単にVSのデザイナはユーザーコントロールを使うとバグって 正常に表示されなくなる場合がある、という事実を言ってるだけ。 っていうか、この程度の経験もない奴が偉そうに「ユーザーコントロール使え」 とか人に講釈垂れてるっていい根性してるよな。
- 764 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:40:46 ]
- >>762
VS自体のバグだから使う側が玄人か素人か関係ないし、 気をつけようもないんだけどさだから。
- 765 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:53:37 ]
- 該当バグのURL晒したらすぐ済むことなのに
- 766 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 02:11:16 ]
- VS2008でデザイナがしょっちゅう腐ることがあるやつを
VS2010に持ってきたが、いまのとこ一度も腐ってない
- 767 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 02:36:55 ]
- 2002や2003に比べたら2008の安定ぷりったらないんだけど、2010はさらに調子良いのか
これは楽しみ
- 768 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 03:24:29 ]
- コントロール多くてもほとんどユーザーコントロールだから、フォーム側に実装する事ほとんど無いなぁ。
そんなにフォーム固有の処理って多いもん?
- 769 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 03:50:48 ]
- >>768
ユーザコントロール作ったらバグるって言われるよ
- 770 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:23:34 ]
- ボタンにクリックイベント一個付けるだけでもわざわざ一個のユーザーコントロール作るの?
- 771 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:25:56 ]
- そうすべきだと思ったらそうするな
- 772 名前:デフォルトの名無しさん [2010/06/22(火) 04:29:59 ]
- >>770
ボタンコントロールにだけ関連する処理ならユーザーコントロールか 継承したクラス作ってそこへ入れてしまえばいいんじゃね? Formにだらだら書くよりすっきりするよ
- 773 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:35:29 ]
- 継承したらそりゃコードは分割出来るけど
デザイナの意味を成さなくなってくるな
- 774 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:40:23 ]
- Visual Studioの登場で、内部はどんどん複雑に、表面は簡単になったおかげで
基本や構造を理解せずに何となくソフトを作るプログラマーが増えた マシンパワーが有り余ってるから、いいかげんな作りのソフトでもそれなりに動いてしまうのも善し悪し
- 775 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 05:00:27 ]
- >>773
もう少し詳しく。 適当に予想してレスすると怒られる流れっぽいので。
- 776 名前:デフォルトの名無しさん [2010/06/22(火) 05:11:51 ]
- >>773
成すよ まあこのあたりみてくれ cs2ch.blog123.fc2.com/blog-entry-8.html
- 777 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 05:33:54 ]
- >>775
イベント追加する時に+=を書かなくちゃいけなくなるとか
- 778 名前:デフォルトの名無しさん [2010/06/22(火) 05:35:24 ]
- >>777
hoge.Click += とか書いてTAB2回押せば勝手につくってくれるじゃん
- 779 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 05:47:02 ]
- >>778
プロパティのイベントを選べないじゃん
- 780 名前:デフォルトの名無しさん [2010/06/22(火) 05:54:13 ]
- >>779
だからその辺は>>776読めって 一旦デバックすれば継承したクラスも同じように操作できるから それができないとFormを継承したForm1の設定はどうやって実現するんだよ 普段コードをごりごり書いてるのはFormを継承したクラスだぞ
- 781 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 06:01:54 ]
- >>780
MainFormのデザイナから継承させたコントロールのイベントを プロパティウィンドウからメソッド生成させると 結局MainFormのクラス内にメソッドが追加されないか? これじゃ分割出来てないんだが
- 782 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 10:25:36 ]
- ボタン100個あって、100個クリックイベントを書くのは愚の骨頂だろ。
インタフェースの仕事としては、どのボタンがクリックされたかを伝えるだけで良いんだからさ。 それ以上に、動かす用途によって書き方は変わると思うんだが。
- 783 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:17:47 ]
- 100個あるボタンそれぞれが全く別の処理を行うというのは考えづらい
ツールボタン的なものや、データ行それぞれに対するコマンドあたりだろうけど そういうのは共通の入り口から振り分けられる
- 784 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 12:30:02 ]
- だね
- 785 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 13:01:54 ]
- private void button1_clickClick(object sender, EventArgs e)
{ MessageBox.Show("1"); } private void button2_clickClick(object sender, EventArgs e) { MessageBox.Show("2"); } ... private void button100_clickClick(object sender, EventArgs e) { MessageBox.Show("100"); } なんてコードがあったら継承して、一つに纏めろと言いたくなるわな。
- 786 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 13:34:52 ]
- さすがにそれは・・・w
使う方も大変だな、ボタン100個
- 787 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 14:01:28 ]
- ソフトウェア和文タイプキーボードとか
- 788 名前:デフォルトの名無しさん [2010/06/22(火) 14:03:54 ]
- >>787
TagでもNameでもいいので識別に使う情報も足せておけば イベントハンドラで余裕で処理できるよ
- 789 名前:デフォルトの名無しさん [2010/06/22(火) 14:10:08 ]
- >TagでもNameでもいいので識別に使う情報も足せておけば
>イベントハンドラで余裕で処理できるよ TagでもNameでもいいので識別に使う情報持たせておけば 一つのイベントハンドラで余裕で処理できるよ
- 790 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 14:40:49 ]
- >>785
継承も何も、一つだけ作って後は全部同じの指定しろって感じ?w IDEからもできるしな!
- 791 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 14:46:51 ]
- >>777
部品化したにもかかわらず、何処かのフォームの勝手な理由で部品を変更しようとするの? >>790 MessageTextみたいなプロパティをつくり、IDEからも操作できるようにしておき、 クリックされた時にMessageBox.Show(MessageText)を行うようなボタンを作成すれば IDEで配置→MessageTextを設定 という作業になるよ
- 792 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 14:49:52 ]
- わざわざつくるのめんどくさくてこうしてしそう。
private void Form1_Load(object sender, eventargs e) { Foreach (Control c in Panel1.Controls) { if(typeof(c)==typeof(Button)) ((Button)c).Click += new EventHandler(softkeys_button_click); } } private void softkeys_button_click(object sender, eventargs e) { Textbox1.Text = String.concat(Textbox1.Text, ((Button)sender).Text); }
- 793 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 15:05:21 ]
- デザイナで出来ない云々
- 794 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:05:57 ]
- >>785
この例だと継承なんていらないでしょ。 button_clickに全てまとめて自分自身を判別すればいいんじゃまいか。
- 795 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:09:31 ]
- >>794
自分自身を判断する際に適当なプロパティがあるかどうかってところだな。
- 796 名前:デフォルトの名無しさん [2010/06/22(火) 18:15:47 ]
- >>795
Tagになんでも設定できるので識別情報を入れるか Nameにbuttonxxxと言った感じでxxxの部分に識別情報を入れておけばOK
- 797 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:24:57 ]
- >>795
Tagってそういうのに使っちゃダメなの?
- 798 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:28:35 ]
- ボタン10個あってそれぞれに10個のイベントがあったら100イベント。
その他のコントロールもあったら数百個のイベントがあってもおかしくない。 そしてそれらが共通しない機能なのも普通にあり得る。 そういう状況の時にユーザコントロールを使えって話じゃないの? でもそれだとイベントを関連付けるときにプロパティウィンドウは使えませんよーって話。
- 799 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:37:59 ]
- >>798
>イベントを関連付けるときにプロパティウィンドウは使えませんよ ・・・お前は何を言ってるんだ・・・? 継承したのもカスタムのも、普通にプロパティ窓からイベント付けられるぞ?
- 800 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:46:41 ]
- 流れ仏多義理でちょい質問
Firefoxみたいにタブに閉じるしいたけ付けたいんだけど オーナードローするしかない?
- 801 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:47:35 ]
- >>798
ユーザーコントロールにするのなら、 メソッドやプロパティ同様に、イベントもコントロール内で定義したらプロパティウィンドウで使えるっしょ。
- 802 名前:デフォルトの名無しさん [2010/06/22(火) 18:49:40 ]
- >>800
タブ部分に閉じるボタンってこと? labelなんかだと配下にbuttonとか置けるんだけど タブコントロールのタブ部分にできたっけかな?
- 803 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:59:31 ]
- >>800
うん、オーナードロー。
- 804 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:11:17 ]
- >>799
>>801 あれ? プロパティウィンドウからイベントを自動生成+関連付けしたら、結局メインクラスに生成されない? メインクラスに生成されたらわざわざユーザコントロール作った意味がない気が…。
- 805 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:16:44 ]
- ああごめん。何いってんだ。
ユーザコントロールの方のプロパティウィンドウ使えばいいんだよね。
- 806 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:20:21 ]
- >>802
どうもタブそのものを取得するのが難しいみたい だから結局>>803って結論しかないか WPFなら簡単なのかねー?
- 807 名前:デフォルトの名無しさん [2010/06/22(火) 19:21:55 ]
- >>806
あとはタブぽい動きをするユーザーコントロールを自分で作るかだねえ
- 808 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:22:12 ]
- 質問です。
RichTextBoxで行間をピクセル単位で指定する方法はありますか?
- 809 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:34:11 ]
- コントロールを継承した時のデザイナってなんで表示されないんだっけ?
- 810 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:38:29 ]
- >>806
WPFなら簡単だね、タブに何でも入れられる。TabControl in タブなんて意味不明なUIさえ可能だ。 >>808 WinFormのRichTextBoxだと、EM_SETPARAFORMATで設定できないこともない
- 811 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:10:05 ]
- WPFなんて使ってるアホまだいるのか
- 812 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:18:58 ]
- WPFはこれから
- 813 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:30:19 ]
- >>811
VS2010をdisってるの?
- 814 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:20:06 ]
- WPFとかXNAとかしょっぱいもん使って作るくらいなら
DirectXをちゃんと使えるようにしろと
- 815 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:21:31 ]
- 軽さが本分のIDEを、良いグラボ必須にした戦犯と聞き及んでおりますが、反論は?
- 816 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:24:19 ]
- IDEの本分が軽さであった時などない。はいろんぱー
- 817 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:34:17 ]
- つまりは作るアプリ皆高性能グラボ高性能CPU必須にする素晴らしい技術ですな。
いやはや、NVIDIAにAMD、インテルから感謝状が期待できますのう。
- 818 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:39:17 ]
- じゃあいつまでもWin9x基準で作ってろよ
Win7がちゃんと動く環境ならWPFは普通に動く
- 819 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:42:48 ]
- 糞ボロいPCで開発、糞ボロいPCで使用っていうなら.netの使用自体を考え直した方がいいんじゃ
煽りじゃなく C#(.net)が出た当時なんてもっとボロカスに叩かれて「誰が使うんだよw」とか言われてたが ハードの進化で今は軽い方だと思うけどなー
- 820 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:43:47 ]
- WindowマネージャがGPU使ってる時代に中身のツールキットだけレガシーに拘ってもねぇ
- 821 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:47:15 ]
- Windows7ったら、未だにVista以下のシェアだぜwwwww
ちなみに、XP 62.55%、Vista 15.25%、7 12.68% (NetApplications May, 2010)。 いつになったらメジャーになるんだろうかな?
- 822 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:48:39 ]
- 新しいハードの性能を活かさないともったいないから見た目をちょっと豪華にしようっていうだけだろ
見た目がどうでもいいんだったらWindows95時代の格好悪いUIで作ってればいい 今のWinFormsの見た目だって数年後には古臭くて格好悪いと認識されるようになってるよ
- 823 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:51:13 ]
- 64bitつかうで無い限りやっぱりXPだよな。
ワクチンソフトの対応さえあればXP64bit使いたいんだが。
- 824 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:51:25 ]
- まだサポート期間残ってるし、しばらくはXPが優勢でしょ。
まーでも、ここ1〜2年で大分変わると思うけど。
- 825 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:52:49 ]
- あの7のGUIの出来は拷問だよマジで。
- 826 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:52:50 ]
- でも、自分も 12.68% の一員なんだけど・・・やっぱ使いづらいわコレ。
一年近く使っててもイライラする。
- 827 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:53:32 ]
- >>823
よくわからんが64bit7でワクチンソフト?ウィルス対策ソフト?なら使ってるよ
- 828 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:55:39 ]
- >>821
歴史に学べ どのOSもメジャーになるのに数年かかってる SPが2になる頃にはシェア一位になってる
- 829 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:57:08 ]
- >>828
では、Vistaもそろそろメジャーに!
- 830 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:57:42 ]
- 長年XPを使っていたので7で慣れが必要なのは確かに煩わしい
が、ある程度のスペックならばXPより快適だぞ XP厨だったのに素直に降参した
- 831 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:57:45 ]
- どの辺が使いづらいの? 普通に便利に使ってるけどなぁ。
- 832 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:57:58 ]
- 初心者ならともかくプログラマでしょ? 一般人から見たらPCウィザードでしょ?w
カスタマイズしたりショートカットキー使ったり補助ツール使ったりしてたら使い勝手なんか全然変わらないよ
- 833 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:58:16 ]
- >>827
7の64bit版はワクチンソフトの対応有るけど、XPの64bit版の対応が無いんだよ。 で、泣く泣く7の64bit版使ってる。
- 834 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:59:46 ]
- ここはドザ板かw
- 835 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:01:49 ]
- いくらでもあるだろよ・・・。
- 836 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:02:05 ]
- これが情弱ってやつか・・・。
- 837 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:20:47 ]
- ツールバーにスタートメニュー作ってるが元々のスタートが邪魔。
ライブラリが幅きかせすぎ。 おまけにクリックすると「アクセスが拒否されました」なフォルダ大杉。 エクスプローラでフォルダ開くとフォルダのツリーで現在のフォルダがなぜか一番下にスクロール。投げ飛ばしたくなる。 時々、デスクトップにdesktop.iniが居座って削除出来ない。 ホームグループアイコン、レジストリ弄ってデスクトップから消しても消してもいつのまにか復活。 USBメディア抜き差ししてるとUSBアイコンが消える。まだもう一本刺さってるだろがぁ! これは相性の問題かもしれないが休止から戻るとNICがだんまりする確率高し。 セキュリティの問題なのか知らないが、旧型のTeraStationと繋ぐときにはグループポリシーでNTLM応答のみ送信にしないとならない。 はぁはぁ・・・他にも色々ありすぎて・・・思い返すと段々腹が立ってきた。
- 838 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:25:25 ]
- お前は死ぬまでXP使っとけよw
- 839 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:26:28 ]
- ふあ…ふ
- 840 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:32:40 ]
- 7上のものならいいけど、XPEとかEmbedded用XPの開発も結構あるのよね。
まだ5年以上MSのサポートもあるわけだし。 ここら辺はうまく使い分けないとな。
- 841 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:38:03 ]
- VPCって微妙にめんどくさいから結局は隣に古いPCを置いてXP入れてテスト専用にしてるわ
- 842 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:39:03 ]
- VPCって微妙にめんどくさいから結局は隣に古いPCを置いてXP入れてテスト専用にしてるわ!!!!!
- 843 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:39:31 ]
- >>832
エクスプローラのAlt>F>WがAlt>F>Xに変更されてたりしててだな。 すぐ慣れるんだけどさ。
- 844 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:40:53 ]
- >>837
まあ、UIの操作性は確かに難が多い。 単なる慣れの問題と言い切れない改悪点がいろいろあるとは俺も思う。 最悪なのがファイル検索の改悪。 だが、 >おまけにクリックすると「アクセスが拒否されました」なフォルダ大杉。 こんな文句垂れる人はシステムフォルダを隠さない設定にしちゃダメだろw
- 845 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:42:57 ]
- 7はXPよりも安定してるからいれてるな
ファイラー使うから7特有のUIとか関係なし OSは安定さえしてればいいよ
- 846 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:44:05 ]
- なら2000でいいじゃん。
- 847 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:47:02 ]
- ファイラーなんて死語だと思ってたw
っていうか、使えるファイラある? Avestaとか使いにくいし、UltraExplorerは期待してたが結局放置状態のようだし
- 848 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:47:58 ]
- >>846
マルチCPUに対応してない サポート切れてセキュリティ死んでる .Net4が入らない スリープが終わってる パフォーマンス悪い 安定云々以前に論外です >>847 UltraExplorer風のものをdelphiで作ったからそれ使ってる
- 849 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:50:17 ]
- ここドザ板かと思ったw
>>847 x-finder使ってる。極稀に落ちるけど気にならないレベル。Win7pro64bit
- 850 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:53:20 ]
- >>849
ありがと後で試してみる。
- 851 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 00:25:55 ]
- >>844
例えば SendTo。 実際は SendTo は C:\Users\{ユーザ}\AppData\Roaming\Microsoft\Windows\SendTo なんだけど、何故か C:\Users\{ユーザ}\SendTo が意味もなく存在してアクセス不能。 こんな変なものがあっても、隠れていたら良いとか言えるのか?
- 852 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 00:40:29 ]
- >>851
>何故か C:\Users\{ユーザ}\SendTo が意味もなく存在してアクセス不能。 うちのセブンちゃんにはありません
- 853 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 00:48:22 ]
- >>851
実際は(管理者権限なら)アクセス権をちゃんと設定すればアクセスできるんだけどさ。 まあ、アクセスを制限されるのに「管理者」って名ばかりなのは何なの、 って突っ込みたい気持ちは俺も分かるけどw
- 854 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 01:17:31 ]
- 信用できる管理者に対する制限は少ないんだよ。w
- 855 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 02:14:51 ]
- 7で嬉しかったのは存在しないネットワークのパスのファイルにアクセスしようとして固まってもプロセスは殺せるようになった。
Vistaまではタイムアウトするまでプロセスを殺すことすらできなかった。 VistaからAPI追加されて対応したと思ってたのにVistaでも追加したAPIを使ってないのか殺せなかったなぁ…
- 856 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 02:34:23 ]
- 数百個のファイルやフォルダを選択しただけでエクスプローラが落ちる仕様はvista以降解消されたの?
この仕様のせいで数百個のファイルの入ってるフォルダを別フォルダに移動する時に手動で50個くらいずつ移動しなくちゃいけなくて不便。
- 857 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 03:01:31 ]
- >>856
落ちるとなるとむしろ変なシェル拡張とかが入ってる環境じゃないかと疑いたくなるなぁ。 XPでも数百くらいのファイル数というかただファイルが多いという状況で落ちたことなんて全然ない。 それでもVista以降のエクスプローラの安定感はXPとは比べものにならないと思うよ。 でも、Vistaのエクスプローラは7を触ったあとでは操作性がいろいろクソすぎてもう触る気が起きないので7がお勧めだなぁ。
- 858 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 03:36:59 ]
- Vista以降で解消されたのか?ってことは、Vistaよりも前のOSでおちるってことだよね。
Meは知らんが、2000、XPでは当たり前のように1000ファイルぐらい選択していたよ。 ファイルの種類にもよるんだろか。
- 859 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 03:57:21 ]
- XPだとファイルを1000個コピーしようとしてプチフリして「残り 192839分」とかしょっちゅう見るけどなあ
- 860 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 04:06:59 ]
- それは
> ファイルやフォルダを選択しただけでエクスプローラが落ちる と何か関係が?
- 861 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 04:22:50 ]
- 結局ユーザーコントロールに文句言ってる奴は使い方知らないだけなんじゃねぇか、と疑いたくなるなー。
普通にFormを継承したMyFormとかTextBoxを継承したMyTextBoxみたいなの使うよな? デザイナ上で普通に動くし・・・
- 862 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 04:52:33 ]
- まあなw
|

|