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 くらい
89 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 18:17:53 ] デジカメで撮る。
90 名前:デフォルトの名無しさん [2010/05/23(日) 18:22:58 ] ローレベルなところでフックなんて使われたらどうしようもないしなあ flashゲームなどのチートの際に使うツールは別プロセスのメモリ 覗き放題だしねえ windowsで完璧なプロテクトは無理と思ったほうがいいよ
91 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 18:36:18 ] >>86 OSが頑張って保護している地デジを表示しているWMCの画面も キャプチャできるアプリがあるのにどうやってブロックできると思うんだ?
92 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 18:43:42 ] >>90 うーん、じゃあ例えば、クローズドな社内システムか何かで、 ユーザが勝手にソフトやツールを追加できないって前提ならどうでしょう。
93 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 18:46:55 ] 社員にPC使わせなければいいんじゃね?
94 名前:デフォルトの名無しさん [2010/05/23(日) 18:53:16 ] 汎用のOSや汎用の部品使ってるうちは無理だしなあ それに最近のマシンはディスプレイアウトが高画質だし それ経由で簡単にキャプチャできちゃうからフック系だけ気に してればいいわけじゃないしね あと>>89 のようなのもあるしw
95 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:03:08 ] うーん、読み取れるようにするのかあ
96 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:10:13 ] 89は最強だよな
97 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:15:17 ] 映画ではプロテクト用に人の目には分からないように赤外線も出力して カメラで撮ったらまともに見れないようにしてるというものがあったと思った。
98 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:36:02 ] >>97 (>_<) …
99 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 20:14:37 ] >>97 それは実験段階で、導入した劇場はまだなかったはず。 うちの会社はデジカメ持ち込み禁止。カメラ付き携帯も禁止で、入社すると強制的に機種変させられる。
100 名前:デフォルトの名無しさん [2010/05/23(日) 20:20:47 ] >>99 カメラなし携帯探すの大変じゃね?w
101 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 20:23:36 ] そういや守秘義務守るために プリンタ出力禁止とかUSB書き込み禁止するシステムは結構あるけど デジカメ阻止するようなのはあんまりないね。
102 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 20:37:04 ] 常にモニタの前をWebカムで撮って、デジカメに類する機器を検出したら画面を 切り替えるような仕組みを作ればいいんじゃね?
103 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 20:41:33 ] レベルの高いスレですね。 僕もいつかは皆さんのような高度な話題を展開できるようになりたいと思います。
104 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 20:47:58 ] デジカメ対策するなら、 OSやソフトじゃなくモニタにつけるスクリーンやシートの役割じゃね?
105 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 21:35:05 ] なんとかしてデジカメ阻止したとしても 手書きのメモとか脳内コピーはどうしようもないよな
106 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 21:35:58 ] >>102 Web カムで顔認識して PC の前に人がくるとメール飛すアプリは公開されてたな。
107 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 21:49:37 ] >>105 まあ、悪意あるヤツはどう防御線張っても乗り越えて盗むってことだな。 ソフトやハードでは、悪意無く漏洩してしまう場合の対策だろうな。
108 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:26:36 ] >>100 ものすごく選択肢が狭くなるけど、あることはある。 だから同期はほとんどみんな同じ機種。区別するためにストラップ必須。
109 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:27:20 ] >>99 まだ導入されてないのか。 映画を見るたびにミスターVTRが出てくるのが鬱陶しく思うんだよね。
110 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:39:14 ] >>108 もしITの仕事についててスマホが使えないってのは勿体無いと思うんだが、 難しいところだよな。。。
111 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:00:11 ] 標準スクリーンショットを封じたいのならオーバーレイ使えばいいじゃない と言おうと思ったがAeroだとオーバーレイそのものがなかったでござるの巻
112 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:07:15 ] >>99 トヨタ?
113 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:20:22 ] 現在C#を使ってWEBページからデータを取得しようと考えています。 urlを指定して取得することはできたのですが、ajaxによって送信されてくるデータを取得できなくて困っています。 post形式でデータを送信していることはfirebugを使ってわかっているのですが、 どうすればそのpostデータを使ってxmlを取得できるのかがわかりません。 WebClient wc = new WebClient(); byte[] res_data = wc.UploadValues(url, post); こんな感じでやってみたところできませんでした。 たぶん使うメソッドが間違っていると思うのですが、何を使えばいいのかわかりません。 どなたかよろしくお願いします。
114 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:21:08 ] スクリーンショット封じると無条件で仮想環境リモートデスクトップ不可という ハメ技に陥るんじゃないか?
115 名前:デフォルトの名無しさん [2010/05/23(日) 23:26:29 ] その辺はこの辺でやった方がいいかもね www.atmarkit.co.jp/fdotnet/dotnettips/318webpost/webpost.html
116 名前:デフォルトの名無しさん [2010/05/23(日) 23:27:34 ] 間入ったか >>115 は>>113 へ
117 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:27:46 ] パケットキャプチャしてみれば?
118 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:31:13 ] >>113 ajaxって言ってるから、多分JSONかSOAPでWSDLのどちらか。とか知ったかしてみよう。
119 名前:デフォルトの名無しさん [2010/05/23(日) 23:32:31 ] >>118 その辺だって結局postかgetリクエスト作って通信してるだけでしょ? >>115 で可能だよ
120 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:39:36 ] >>113 C#でpostして、そのレスポンスが欲しいってことかな? Ajaxっても、普通のHTTPのpost通信だから、 HTTPリクエストとHTTPレスポンスを使ったらできないかな? 見当違いのこと言ってたらゴメン。
121 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:40:46 ] >>99 ああ、逆にザルのパターンだなそれ セキュリティについてまじめに取り組まないからそんな雑なことになってる
122 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:43:59 ] >>113 POST すれば行けるはずなのに wc.UploadValues で行けない場合、 ひょっとしたら文字コードの問題かも。 WebClient の UploadValue は utf8 でしか URL エンコーディングしてくれない。 sjis とか euc の場合は ↓ とかを参照。 dobon.net/vb/dotnet/internet/webrequestpost.html
123 名前:113 mailto:sage [2010/05/24(月) 00:00:53 ] >>115 ,117,118,119,120,122 皆様アドバイスありがとうございました。 無事取得することができました。 どうやら問題は122さんがおっしゃっていた通り文字コードでした。 本当にありがとうございました。
124 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 09:02:14 ] セキュリティ対策って結局は対外的なポーズに過ぎないんだろうな。 悪意のある人間に対しては何をやっても無駄な気がする。
125 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 09:38:11 ] 犯罪者予備軍を諦めさせるための抑止力として相手にセキュリティ対策してるよってことが伝わるだけでいいんだよ そこから踏み込んでくるやつは仕方ない
126 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 22:16:14 ] そうだよね。 そこらへんに落ちてるツールで攻撃してくるようなのをはねるだけでも 充分な効果があると思うぜ
127 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 22:36:07 ] で、抑止力としてのプリントスクリーン禁止はどうやりゃいいの
128 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 22:38:33 ] キーボードから PrintScreenキーを外す。
129 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 22:40:42 ] スクリーンキーボードから PrintScreenキーを外すのってどうやるの?
130 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 22:41:16 ] >>127 さがしてきたぞー VB.netだけど ttp://www.codeguru.com/vb/gen/vb_system/keyboard/article.php/c4831
131 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 22:44:25 ] 本気でやるならドライバレベルで無効化しようぜ
132 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 22:47:23 ] カメラで撮影されたら(ry
133 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 23:10:09 ] 監視カメラ
134 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 00:10:12 ] さすがC#スレ れべるのたかいぷろぐらむだんぎですね
135 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:02:51 ] List<>の全要素中の条件にあう要素を削除したい場合、 foreachじゃなくてforでCount分だけ回して削除した時だけi--するっていうのが一般的ですかね?
136 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:04:19 ] 後ろから削除する
137 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:06:48 ] RemoveAll
138 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:11:55 ] 後ろから削除する方法もありますね。 どちらにせよforで泥臭くやるんですね。 もっとスマートなやり方が無いのか気になっただけでした。
139 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:13:25 ] >>138 >>137
140 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:13:48 ] もいっこList<>作ってforeachで残す奴だけコピーして差し替え。 としているが問題はない。(作りによるかもしれないが)
141 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:16:06 ] selectしてdeleteとかできないんだっけ。 もしくはdeleteifみたいなのとか。
142 名前:141 mailto:sage [2010/05/26(水) 00:17:18 ] すまんすまん。137で解決してたわ
143 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:18:42 ] 見逃してました。 >>137 さんありがとうございます。
144 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:21:43 ] RemoveAllってAllって名前が悪いよな 要素全部消すみたいに思えるじゃん
145 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:21:49 ] 会社じゃ未だにVS2005だから匿名メソッドが書きにくくて困る。
146 名前:デフォルトの名無しさん [2010/05/26(水) 00:24:53 ] >>144 まあClearがあるからなあ
147 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:29:00 ] 「Clearは参照をnullにして実体はGCにおまかせ、RemoveAllは実体も同時に消す」 みたいな機能があるのかな?と思った それにしてもなんで"All"なんだ
148 名前:デフォルトの名無しさん [2010/05/26(水) 00:31:16 ] >>147 Clearはリスト全部切り離すはずだよw Removeは指定した物をRemoveAllは該当するもの全部ってことじゃないの?
149 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:32:44 ] FindAllと並べたかったんじゃないかな
150 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:38:29 ] みんなも一度はRemoveRangeしかねーじゃないかといらついた経験があるのか
151 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 00:47:30 ] >>137 目から鱗です
152 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 01:13:50 ] >>144 Clearの立場は・・・
153 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 01:41:37 ] fortranのwhere文みたいのねえのかな
154 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 02:02:53 ] LINQのWhereじゃダメなん?
155 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 02:05:38 ] >>148 肝心の「該当するもの」って部分が欠けてるだろw
156 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 02:31:03 ] ほほう
157 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 04:49:58 ] RemoveAllは、あとから追加されたHashSetでは反省してか名前がRemoveWhereになってるね。
158 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 05:13:25 ] IList<T>&IDictionary<TKey, TValue> … RemoveAll ISet<T>(HashSet&SortedSet) … RemoveWhere リストと辞書がRemoveAllなのは過去のバージョンとの整合性もあって仕方ないか。
159 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 07:01:46 ] RemoveIf がよかった
160 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 12:26:42 ] 追加してRemoveAllをobsoluteにすればよかったのにそうしなかったのには何か意図が、、、なさそうだな
161 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 12:37:48 ] そんなことしたらほとんどのプロジェクトで警告出まくってえらいことになる ほんとはList<T>のFind**/Exists/TrueForAllあたりも LINQが無かったころの遺物なので(実際Silverlightでは削除)軒並みObsoleteにするべき
162 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 12:55:07 ] TrueForAll を素直に LINQ で書くにはどうすればいいの
163 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 13:03:46 ] Enumerable.All
164 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:47:24 ] >>155 抜けているようには思えないが....
165 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:48:46 ] RemoveAll すべてわすれる
166 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:58:42 ] 実際にコード中で使うときは引数込みで意味は通るだろ でもIndexOfと違ってRemoveAllだけでも意味が通っちゃうから インテリセンスやMSDNで名前だけ並ぶとわかりづらいな
167 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 00:27:26 ] Listviewについて質問させて下さい。 やりたい事は、 複数のListViewがあり、それぞれで複数の項目(item)を選択した状態を作りたいです。 4つほどのListViewを作り、それぞれで1,2項目、合わせて6ー8項目を選択して、ボタンを押したら、それに見合うデータを取得するというイメージです。 先程、作ってみた所、ListViewのフォーカスを別のListviewに移すと、それまで選択した項目が ”非選択" になってしまいます。 こうならない方法はないでしょうか? 場違いな質問という事であれば、他のスレッドを紹介していただけると助かります。 microsoft visual c# 2008 expressを使い始めて3日目で、 今までは 簡単なscript(ruby, javascript)を書いた経験があるくらいです。 ピントがずれてるのかもしれませんが、よろしくお願いします。
168 名前:デフォルトの名無しさん [2010/05/27(木) 00:33:43 ] なにかあったな 保持する設定
169 名前:167 mailto:sage [2010/05/27(木) 00:35:25 ] >>168 プロパティを探せばありそうですか?探してみます。
170 名前:デフォルトの名無しさん [2010/05/27(木) 00:42:25 ] あった HideSelectionをtrueにすると強調表示なし falseにすると強調表示あり
171 名前:167 mailto:sage [2010/05/27(木) 00:48:04 ] >>170 さん、ありがとうございます。 確かに HideSelection を falseにしたところ、選択した後が残ってました。 今から、listView2.SelectedItemsで選択したitemが取れるか確認します。
172 名前:167 mailto:sage [2010/05/27(木) 00:52:13 ] ListView3.SelectedItemsで取れてました。 おかげで一歩前進しました。 ありがとうございました。
173 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 06:09:08 ] とあるファイルを監視して、そのファイルに変更があった場合、そのファイルを読み取って処理を行いたいと思っています。 しかし、イベントハンドラの中で変更されたファイルを読み取ろうとすると、TargetInvocationExceptionが発生します。 new StreamReader(e.FullPath)の部分で例外が出てしまうのですが、どうすれば読み取れるでしょうか? ■ソース private void watcher_Changed(System.Object source, System.IO.FileSystemEventArgs e){ using (StreamReader sr = new StreamReader(e.FullPath)){ } }
174 名前:デフォルトの名無しさん [2010/05/27(木) 07:47:04 ] >>173 ファイルの監視とかなら、FileSystemWatcherじゃないの? 使ったことないけど
175 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 08:34:43 ] RemoveAll()ってCのcreat()に通じるものを感じるな
176 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 11:05:05 ] e.FullPathはちゃんと有効なパスになっているのか
177 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 11:12:11 ] >>173 TargetInvocationExceptionのInnerExceptionは? ファイルを変更してるプログラムがまだロック中なんじゃない?
178 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 18:31:18 ] >>177 できましたありがとう。 using(FileStream fs = new FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using(StreamReader sr = new StreamReader(fs)){ string strLine = sr.ReadLine(); 以下省略・・・
179 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 18:54:05 ] 鱗から目です
180 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 20:47:53 ] JaneStyleなどの2ch専ブラの機能の、「>>170 」などにマウスホバーすると、>>170 の内容が出てきます。 これをlistviewでやりたいんですが、どのように実装すれば良いでしょうか? VisualStudio2008を使っています。 ■イメージ 名前 詳細1 詳細2 詳細3 test1 あ い う test2 か き く ←この行でマウスホバーされたら名前と詳細1の内容から、表示する内容を決める test3 さ し す
181 名前:デフォルトの名無しさん [2010/05/28(金) 20:50:39 ] >>180 マウス関連のイベントでマウスが乗っかって停止したら〜とかあったはず それで任意のコントロールで表示すればいいだけちゃうの?
182 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 21:08:22 ] >>181 自分でマウスホバーと書いておいて申し訳ないんですが MouseHoverのイベントを使用すると、かなり重いんです。 中で何も処理をしなくてもかなり重くなってしまいます。
183 名前:デフォルトの名無しさん [2010/05/28(金) 21:49:35 ] >>182 そんなに重かったっけ? まあ何もしないってのよりはそりゃ処理するので負荷は増えるだろうけどさ
184 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 22:08:00 ] 普通にToolTip使えばええやん
185 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 23:14:30 ] >>183 ストレスを感じるくらいには重いです。 ボタン押下時に多少重くなるのはいいんですが、カーソルを移動させただけで重くなるのは避けたいです。 >>184 アドバイスありがとうございます。 わからない点があるので、わかるようでしたら教えてください。 ■不明点 ・マウスがListViewのどの行の上にあるのか取得できるか?(選択させるわけではないのでselectedではありません ・行ごとに説明文を変える事ができるのか?
186 名前:デフォルトの名無しさん [2010/05/28(金) 23:33:11 ] >>185 これではどう? dobon.net/vb/dotnet/control/lvitemtooltip.html
187 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 00:05:14 ] >>186 完璧です。 ありがとう。
188 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 01:10:17 ] >>185 はやくリリースビルドで速度を確認する作業に入るんだ。 解決したらしいが。。。
189 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 02:44:47 ] FreeTrain EX Avという、A列車で行こう4のクローンになりたいゲームを作ってるのですが。 sourceforge.jp/projects/freetrain-exav/ (最新βが2.1.1.5で、ソースは直下trunk/以下が該当します) パラメータをリアルタイム表示するウィンドウを追加して行ってたら、データセーブ時に特定の ウィンドウをあけっぱなしているとエラーが起こるようになってしまいました。 >アセンブリ 'FreeTrain.Core, Version=2.1.1.5, Culture=neutral, PublicKeyToken=null' の型 > 'freetrain.world.rail.StationInformationWindow' はシリアル化可能として設定されていません。 データのセーブロードはBinaryFormatterを使ったシリアライズでしています。 ウィンドウのFormをシリアライズしようとしてるわけではなく、パラメータの変化をイベント起こして もらって表示をリフレッシュするために使ってるイベントハンドラが参照を呼んでこのウィンドウ のシリアライズをしたがっているみたいなのです。 core/world/rail/Station.csが駅本体部分で、ここでイベントの宣言を public delegate void StationCounterListener(); public StationCounterListener onStationChange; とやってて、駅に乗降があったときにonStationChange();してます。 パラメータを表示してるウィンドウはcore/controllers/rail/StationInformationWindow.csで public StationInformationWindow( Station st ) { this.station = st; InitializeComponent(); onUpdate(); station.onStationChange += new StationCounterListener(onUpdate); } ここでstation.onStationChange += の行をコメントアウトするとエラーがなくなります。 しかし他にもイベントハンドラでリアルタイム書き換えしてるウィンドウ多数あるのにエラーに なってなくて、なぜこのウィンドウだけなるのかが分からないのです。