[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 10/20 11:55 / Filesize : 104 KB / Number-of Response : 571
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part52



1 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:27:03 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part51
pc12.2ch.net/test/read.cgi/tech/1261186507/

関連スレ
C#, C♯, C#相談室 Part55(実質56)
pc12.2ch.net/test/read.cgi/tech/1260111240/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
pc12.2ch.net/test/read.cgi/tech/1245384489/


355 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 15:22:38 ]
C#でできるRoboCodeのようなものってないでしょうか?
以前から探しているんですがそういったものは見つかりません。
やはりないのでしょうか。よろしくお願いします。

356 名前:355 mailto:sage [2009/12/30(水) 15:34:29 ]
ちなみにイメージしているのは以前あったTerrariumのようなものです。
お願いします。

357 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 16:30:24 ]
10分なら、タスクスケジューラでもいいんじゃね?

358 名前:デフォルトの名無しさん [2009/12/30(水) 16:40:35 ]
a

359 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 16:42:06 ]
>>357
タスクスケジューラのほうが軽いでしょうか。
というより、タスクスケジューラなるものを始めて知りました。
一度も使ったことが無かったです・・・
ちょっと調べてみます。出来そうならそれでやろうと思います。

360 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 16:44:45 ]
そんな神経質になるほどCPU使わないよ

361 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 16:55:35 ]
タスクスケジューラは、呼び出したときに、以前保存したマウス座標と比較して、
マウス座標をファイルに書き込んで、って処理を行うって事で良いのでしょうか?
出来ればそのように、常駐じゃなく10分に一度走らせる、のほうが良いのですが…

でも、出来るだけ同時実行するファイルは少ない方が良いですし・・・
負荷出来るだけ無くしたいじゃないですか。そこまで気にする人は少ないんですかね



362 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:00:21 ]
もしフリーソフトかなんかで不特定多数が使うなら,タスクスケジューラなんて得体の知れないものは嫌われるよ

363 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:01:36 ]
常駐の方が、負荷は少ない。



364 名前:デフォルトの名無しさん [2009/12/30(水) 17:16:07 ]
起動終了繰り返す方が常駐より負荷高いよな

365 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:18:38 ]
Console.SetWindowPosition(0,0);
ってやってもコマンドプロンプトの位置が変わらないんだけどなんで?

366 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:19:54 ]
「得体の知れない」って、タスクスケジューラが?
OSが提供してるサービスなんだけどな。

367 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:22:54 ]
負荷を下げたいならC#もやめないと

368 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:31:17 ]
>>355
www.codeplex.com/terrarium2

369 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:32:18 ]
ハァ?

370 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:40:06 ]
>>366
中途半端に知識がある非プログラマにとっての話だよ

371 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 18:19:07 ]
>>370
低能乙

372 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 18:28:31 ]
勝手に登録されたら気持ちわるいけど
インストーラーで説明入るなら別にかまわない


373 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 18:51:35 ]
かまわないですね



374 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 01:15:19 ]
やはりそうですね、タスクスケジューラは嫌う人が居ると思うので、
常駐起動にして、普通に10分ごとにポーリングすることにします。
簡単なプログラムならC++でも出来るので、そっちでやろうかとも悩んでます。
とりあえずありがとうございました。

375 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 02:08:43 ]
「人間が操作をやめたか」を調べるなら根本的に方法が間違ってるけどね。
検知したいなら「マウスが動きを止めてから10分間経過したら」だよ。キーボードだって調べないと。

376 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 02:27:36 ]
WebBrowserクラスもしくはmshtmlでjavascriptが使われてるページの情報
を取得したいと考えています。

ajaxでDOMを書き換えたとき、それをイベントとしてハンドルすることは
できませんか?(OnDocumentCompletedじゃないですよね)
また、書き換えた差分を抽出するのはdiffをとるしかないでしょうか?

377 名前:355 mailto:sage [2009/12/31(木) 02:29:53 ]
>>368
2.0が出てたんですね。散々探してたくせに全然知りませんでした。
さっそくやってみます。ありがとうございました。

378 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 02:33:33 ]
>>376
pc12.2ch.net/test/read.cgi/tech/1150036430/


379 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 02:35:47 ]
>>375
操作をやめたか、なんですが、そこまで正確にする必要は無いんです。
それに、無駄に複雑にして重くするのも嫌ですし、出来るだけ軽くしたいので最低限の処理でやろうと思います

380 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 04:23:10 ]
まあ思うとおりに組んでみなよ。実際に組んでみたら自分の考えてる最低限の動作もしないことがわかるよ。

381 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 05:25:26 ]
>>380
たま〜に良いこと言うな

382 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 06:05:04 ]
うむ。このスレの住人ってたま〜に良いこと言うな

383 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 06:14:17 ]
ありがとう



384 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 06:26:35 ]
素朴な疑問なんですが

this.WindowState = FormWindowState.Maximized;
は何故
this.WindowState = WindowState.Maximized;
こうじゃないんですか?

this.FormBorderStyle = FormBorderStyle.None;
とかはプロパティ名=列挙型なのに。

385 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 07:08:28 ]
windowsstate列挙体はWPFが使ってるから

386 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 07:09:42 ]
なにそれこわい

387 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 07:15:11 ]
こわいですね。

388 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 07:24:30 ]
おまいら大晦日に暇だな

389 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 11:07:31 ]
そういえばなんでWinFormsはSystem.WindowsじゃなくてSystem.Windows.Forms名前空間にしたんだろうな
今はWPFがSystem.Windowsを使ってるが.NETの初期のバージョンの開発時にそんなことを予期してたとは思えないし

390 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 11:38:53 ]
.NET Framework1.0が2002年だった
そのころにはAvalonって言葉はあったと思うけど?

391 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 12:11:24 ]
CLRの開発がいつから始まったと思ってんだ


392 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 12:13:31 ]
VS2010って何が変わるの?

393 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 12:13:48 ]
2000年にはベータが配られてたな。確か。

つーか、MSのやることなんて、昔から全然一貫性ないじゃん。
臨機応変といえば、その通りなのかも知らんけど。



394 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 12:20:11 ]
というか、.NET Frameworkってやっと2.0が普及したところなのに、
4.0なんて入れてくれる環境あるか?w

395 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 12:24:26 ]
>>394
そのうちMicrosoft Updateで自然と入るだろ。

396 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 12:49:18 ]
3.5までは自然に入るよね

397 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:05:52 ]
WPFの開発計画の発表は2001年らしいから、それくらいから考慮していても不思議じゃない

398 名前:355 mailto:sage [2009/12/31(木) 13:13:15 ]
たびたびすみません。

教えていただいたterrarium2.0をいじってるんですが
現在はオープンソース化したとのことでMSのマニュアル等がないようなので
つたない英語力でwiki等も調べてみたものの、APIのマニュアルが見つからないのですが
これについてはやはり古い書籍等を参考にするしかないでしょうか?

399 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:15:26 ]
俺は始めたばっかだから
3時間9分54秒だった・・
惜しい

400 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:16:20 ]
誤爆スマソ

401 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:22:25 ]
>>400の謝罪は撤回します・・・

402 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:31:16 ]
撤回するなw

403 名前:399 mailto:sage [2009/12/31(木) 13:34:13 ]
自決しました



404 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 13:43:28 ]
Terrarium-2.0-SDK.zip にドキュメントがあるんじゃないの?


405 名前:355 mailto:sage [2009/12/31(木) 13:50:29 ]
>>404
忘れていました。確かにありました。
ありがとうございました。

406 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:08:55 ]
本来、以下のように記述すべきところを
string str;
for(〜){
str = 〜〜;
}
以下のようにforループ内で毎回ローカル変数を定義しては無駄が多いですよね。
for(〜){
string str = 〜〜;
}
でもこのように記述すれば1行減ってソースはスマートになります。
この程度ならC#のコンパイラは最適化してくれますか。
だとしたらこのように記述したいのですが


407 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:12:48 ]
forの内と外で宣言するとスコープ範囲が違うけどそれはわかってる?

408 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:19:09 ]
前に調べた限りじゃ、ILへのコンパイル時に、その手の最適化はしてくれなかったような気がする。

409 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:22:33 ]
>>406
for の中で string のインスタンス作って、for の中だけで使うんなら
どっちで書いてもパフォーマンス変わらないと思うけど。

string str; ってやっただけだと何も起きないよ。

410 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:23:42 ]
最適化はしてくれませんか。
いちいちループ内でのみ使う変数を宣言だけループの外でするのは面倒だけど、最適化してくれないなら
そう記述したほうが処理的には効率が良いということですね。
しかしループ回数が少ないなら殆ど影響ないかも。

411 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:29:18 ]
>>409
でもループ内で毎回string str;とすると、stringクラスインスタンスのアドレスを確保する領域が
毎回そのつど確保されるんじゃないですか。


412 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:41:38 ]
いいえ
ローカル変数は一つの宣言につき静的に一つ確保されるだけ
ループでも同じ

413 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:44:21 ]
>>411
コンパイルしたら、forの外にいようと中にいようと、
吐かれるコードは ldloc (load local) だからなぁ。
一緒。

今、IL Disasm してみたけど、for 内でしかインスタンス作ってないなら
コンパイル結果寸分たがわず完全一致してたよ。
Debug コンパイルですら全く一緒。



414 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 14:49:56 ]
一つのメソッドで使われるローカル変数の領域っていうのは完全にコンパイル時に決まるんだよ
ループ内で宣言しようが全く関係ない

415 名前:414 mailto:sage [2009/12/31(木) 14:57:20 ]
誤解されそうなこと言ってるな
もちろん実際に確保されるのはメソッドに入る時だけど
そのときのレイアウトや必要なサイズはコンパイル時に確定しているということ

416 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:24:07 ]
>>412-415
皆さんありがとうございます。
ローカル変数の領域確保の仕組みがよく分かりました。

417 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:57:33 ]
クラスのnewとかならそりゃヒープ確保とかインスタンス作成とかでオーバーヘッドはかかってくるが、
ローカル変数自体なんて
単なるスタック領域にすぎないんだからどっちにしても普通は変わらん。



418 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 16:38:59 ]
スコープとか関係なかったんだね。これは良いことを聞いた。

419 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 18:42:17 ]
WndProcってなんですか?

420 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 18:54:04 ]
ggrks

421 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 19:23:01 ]
System.String str = new System.String("");

string str = "";

422 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 19:40:54 ]
自作しました。

423 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 20:47:58 ]
はあ?



424 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 00:16:21 ]
自炊しました。

425 名前: 【凶】 mailto:sage [2010/01/01(金) 00:46:08 ]
てst

426 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 16:03:32 ]
趣味でC#を勉強中なのですが
ネット上で紹介されているプロの方の書いたコードサンプルを見ていて
継承元クラスのフィールドなどにアクセスする際
通常は「base.」と付けないような印象を受けたのですが
こういう記述の仕方にセオリーといったものはあるのでしょうか?
よろしくお願いします。

427 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 16:14:53 ]
baseは、自分のメンバーに親と同じ名前付けちゃって、明示しないと親のメンバーにアクセスできないときしか使わないなぁ。

428 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 16:20:59 ]
なるほど。そういう時は確かに明示する必要がありますね。
実際、明示の必要がある時だけ書く方がわかり易いですね。
ありがとうございました。

429 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 16:30:36 ]
class A : B{
}
って書くより

class A{
B b =new B();
func(){
b.func();
}
}
でおk、baseいらね

430 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 16:55:51 ]
>>429
継承元クラスって書いてあるだろ
ちゃんと見ようぜ

431 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 16:59:37 ]
まあどうしても継承でなければならない理由がない限りは>>429の下の方が望ましいのは確か

432 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 17:04:04 ]
継承するより委譲しろってことだろうけど
それは今回の問題とはまた別の話

433 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 18:48:38 ]
base.Hoge
変数・メソッドにアクセスなら普通付けない
: base(Hoge)
継承元のコンストラクターをコールするときは付ける




434 名前:デフォルトの名無しさん [2010/01/01(金) 20:54:24 ]
VC#2008で開発しています

ツールボックスに登録されているbuttonを継承したクラスを作った場合
IDEのデザイン機能の恩恵を受けることはできないのでしょうか?


435 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 20:56:30 ]
1回ビルドすればツールボックスに登録されるはず

436 名前:デフォルトの名無しさん [2010/01/01(金) 21:10:23 ]
できました
ありがとうございます

グーグル先生に拾ってもらうメモとして

ソリューションエクスプローラーを開いてbutton継承クラスを追加
using System.Windows.Forms;
using System.ComponentModel;
を継承クラスに追加

下記のように設定

class ExButton : Button
{
public ExButton()
{
base.SetStyle(ControlStyles.Selectable, false);
}

}

まさに上の質問も参考になりました。
たぶんそれがなければその辺でもはまったかも



437 名前:デフォルトの名無しさん [2010/01/01(金) 21:12:41 ]
あと関係ないかもしれないけどC#でぐぐるとVB.NETの方が多く出てくるケースが
あったのでこのサイトの変換機能は重宝しました。

C#<->VB.NET相互変換
www.developerfusion.com/tools/convert/csharp-to-vb/

438 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 21:22:30 ]
とあるbyte配列にbyte,byte,short,longとデータが並んでるとして、
それぞれの値を別の変数に格納するにはどうすればいいですか?

439 名前:デフォルトの名無しさん [2010/01/01(金) 21:27:52 ]
>>438
unsafeにして、ポインタ使うのが楽じゃね?

440 名前:デフォルトの名無しさん [2010/01/01(金) 21:30:51 ]
byte配列ならBitConverterか
自前で合成

short配列に byte[3]*256+byte[2]

のような感じで(エンディアンは自分で考えてください

441 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 21:30:55 ]
>>439
ポインタ厨以外の方に教えてほしいです

442 名前:デフォルトの名無しさん [2010/01/01(金) 21:31:06 ]
アホかbitconverter使えよ

443 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 21:54:39 ]
>>406

遅レスだけど、
ILでは、
.locals(...)
で関数の最初で確保される。(確か)



444 名前:デフォルトの名無しさん [2010/01/01(金) 22:33:34 ]
以前スクリーンキーボードの件で相談した物です。

ある程度形になったのですが一つ困った挙動があります。

スクリーンキーボードの性質上なるべく最前面で表示させておきたいので、
TopMost=trueにしてアクティブにならないように制御して自前ツールが
アクティブにならないように動くようになりました。
しかし、ツール以外のウインドウのタイトルバーをダブルクリックした場合
の挙動が死んでいるようで、一般的な「ウインドウの最大化」、「もとのサイズに戻る」
が渡っていないようです。

この場合の対策方法はありますでしょうか?

右上の並んでいる□が今回製作中のツールです
uproda.2ch-library.com/201727nKr/lib201727.png
わかっている範囲ではタイトルバーのダブルクリックだけ受け付けず
その他は問題ないです

445 名前:444 mailto:sage [2010/01/01(金) 22:41:46 ]
すみません
非表示の際にTopMost=flaseとしてみましたが結果は同じでしたので
TopMostは関係ないようです。

446 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 22:42:45 ]
知ってます

447 名前:444 mailto:sage [2010/01/01(金) 22:46:59 ]
おそらくこの辺が関係してるんですかね?
//アクティブにならないウインドウに
//するためのオーバーライド
protected override void WndProc(ref Message m)
{
const int WM_MOUSEACTIVATE = 0x21;
//const int MA_ACTIVATE = 1;
//const int MA_ACTIVATEANDEAT = 2;
const int MA_NOACTIVATE = 3;
//const int MA_NOACTIVATEANDEAT = 4;
if (m.Msg == WM_MOUSEACTIVATE)
{
m.Result = (IntPtr)MA_NOACTIVATE;
return;
}
base.WndProc(ref m);
}

448 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 22:48:47 ]
タイトルバー、どこにあんの?

449 名前:デフォルトの名無しさん [2010/01/01(金) 22:52:09 ]
>>448
あ、わかりにくくてすみません
ツールじゃないほかのウインドウのタイトルバーのダブルクリック制御です

その他ウインドウに影響を及ぼさないツールとして作りたかったのですが
今回のスクリーンキーボードが起動していると他所のウインドウの
タイトルバーのダブルクリック挙動が効かない状態になるんです

450 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 22:56:12 ]
ん? 自アプリじゃなくて、別のアプリの話?

あんたのアプリを実行中に、他のアプリのタイトルバーをダブルクリックしても、反応がない、ってこと?

451 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 22:58:14 ]
勿論、>>447を追記しただけのフォームで再現できるんだよな?

452 名前:444 [2010/01/01(金) 22:59:35 ]
>>450
そうです

名前がないと面倒なのでスクリーンパッドと仮名をつけます

メモ帳やブラウザなどを任意のウインドウサイズから最大に広げる際に
右上のボタン以外にタイトルバーのダブルクリックでも同じことが行えま
すがスクリーンパッド起動中にそれができなくなるのでそれを回避する
方法が知りたいと思いまして・・・

453 名前:444 [2010/01/01(金) 23:02:26 ]
>>451
formクラスは>>447でオーバーライドします。
それとは別にタイマーを使って一定サイクルで下記処理を動かします。

private void timer1_Tick(object sender, EventArgs e)
{
int ThreadProcessId = GetWindowThreadProcessId(this.Handle, IntPtr.Zero);
IntPtr OldWindowHandle = IntPtr.Zero;
IntPtr targetWindowHandle = GetForegroundWindow();
if (targetWindowHandle == this.Handle && OldWindowHandle != IntPtr.Zero)
{
SetForegroundWindow(OldWindowHandle);
}
else
{
if (targetWindowHandle != OldWindowHandle)
{
int targetThreadProcessId = GetWindowThreadProcessId(targetWindowHandle, IntPtr.Zero);
AttachThreadInput(ThreadProcessId, targetThreadProcessId, true);
OldWindowHandle = targetWindowHandle;
}
}
}




454 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 23:06:19 ]
うーん。オレの環境じゃ再現できないな。

Vista SP2 x64 + Visual Studio 2008 SP1

455 名前:444 [2010/01/01(金) 23:14:27 ]
あ、すみません
書き込んだらなんとか・・・がきちゃいました

メッセージ処理などが他に居るのかと思い込んでたのですがどうも違ったようです。
タイマー内のIntPtr OldWindowHandle = IntPtr.Zero;の位置が悪かったようです
これをタイマー処理のスコープから出したら問題なく動きました

>>454
お付き合いしていただいて済みませんでした

456 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 03:15:48 ]
AES暗号なんかを使う場合に鍵長なんかの指定はどうやればいいんでしょうか?

457 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 03:21:32 ]
SymmetricAlgorithm.KeySize Property とかで指定。

458 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 04:04:46 ]
>455
そんな面倒なことせずにWS_EX_NOACTIVATEを使えばいいのに

459 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 04:10:41 ]
こんなサンプルあるじゃん。

msdn.microsoft.com/ja-jp/library/cc440905.aspx

460 名前:444 [2010/01/02(土) 04:58:39 ]
いろいろ実装してたら朝に・・・

>>458>>459
そっちを入れてみました。
簡単すぎますorz

461 名前:デフォルトの名無しさん [2010/01/02(土) 07:07:13 ]
おかしな挙動ではまってるのでアドバイスいただければと思います。

デスクトップ上の始点と終点を指定するとその範囲だけを
スクリーンショットとして保存するソフトです。

半透明で表示するフォームにラベルx4とpictureBoxを使っています。
ラベルx4の内、x2には始点と終点のXY座標を表示しています。
問題の挙動というのがpictureBoxをフォームにドッキングしてしまうと
ラベルのテキストがまったく更新されないという物です。

pictureBoxのドッキングを解除してフォームより小さいサイズに
するとラベルのテキストが更新されます。

対処方法とか何かありますでしょうか?

462 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 13:10:13 ]
このスレからクソ内容の書き込みを特定するLINQつくってみた

var a = from L in このスレ where 内容がクソ select 数値

a = 462

463 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 13:11:29 ]
>>461
再現できるコードplease



464 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 15:18:43 ]
>>461
windows付属のsnipping toolを使う

465 名前:デフォルトの名無しさん [2010/01/02(土) 16:20:56 ]
今、業務用Windowsフォームアプリケーションを作成しています。
その中で、ローカルPCの所定の場所に、重要データをテキストデータで保存できるようにしたいのですが、
個人情報はないものの、機密データでもありますので、テキストデータ保存時に暗号化したいと考えています。

C#で、そのような暗号化の機能はありますでしょうか。

ご教示ください。

466 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 16:23:15 ]
System.Security.Cryptography.Rijndaelとか使えば

↓暗号化したって無駄だとかそういう突っ込みはいい
質問者が良いって言ってるんだから話をこじらせようとすんな黙れ

467 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 16:24:46 ]
はい、ありますよ。

468 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 16:25:47 ]
突然なんなのw
そう言われると指摘したくなるなぁ。

469 名前:デフォルトの名無しさん [2010/01/02(土) 16:43:07 ]
>>467
どのような方法があるの?僕にも教えてください。

470 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 16:49:29 ]
もう出てるけど、この辺をどうぞ。

System.Security.Cryptography 名前空間
msdn.microsoft.com/ja-jp/library/system.security.cryptography.aspx

471 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 18:00:03 ]
ドットネットで完結しようとしないでOSの機能とか調べてみたらいいのに

472 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 18:15:50 ]
>>466
> ↓暗号化したって無駄だとかそういう突っ込みはいい
なんらかの形で、それなりの長さのパスワード入力させれば、無駄ということはないんじゃないか?

473 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 18:55:43 ]
歌の一フレーズ入力させるとかあったな。



474 名前:デフォルトの名無しさん [2010/01/02(土) 20:32:50 ]
>>463
遅くなりました
一式まるまるです
uproda.2ch-library.com/201913msf/lib201913.zip

とりあえずpictureBoxはドッキングしてません
私の環境ではpictureBoxをフォームにドッキングするとlabelの更新がおかしくなります。

windowsXP home SP3
VC#2008Express
.netF 3.5

475 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 20:34:14 ]
このスレからクソ内容の書き込みを抽出するLINQ

from このスレ select クソ内容の書き込み

476 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 21:44:08 ]
>>474
まさかとは思うけど、そのコードでscreencap_rec(どうでもいいけどもうちょっと命名工夫しようよ)
のpicturebox1をドックすると期待した動作にならない、って話?

ラベルを更新するコードがformのMouseMoveイベントに書いてあるんだから当たり前じゃん。

フォームの全辺にドックしたらformのクライアント領域の全部をpictureboxが覆うんだから
マウスイベントはんて発生するわけないでしょ。

477 名前:474 [2010/01/02(土) 21:53:49 ]
>>476
>まさかとは思うけど、そのコードでscreencap_rec(どうでもいいけどもうちょっと命名工夫しようよ)
みなさんはどういう感じでやってるんでしょうか?
頭の中に思い描いたプログラムを急いであれこれ実装してたので
命名まではあまり考えてませんでした

>フォームの全辺にドックしたらformのクライアント領域の全部をpictureboxが覆うんだから
>マウスイベントはんて発生するわけないでしょ。
あーなるほど・・・
つまりformのMouseイベントで処理してるところをpictureboxでやればいいんですね

478 名前:デフォルトの名無しさん [2010/01/02(土) 22:39:38 ]
SATA のポート番号何番にどのハードディスクが刺さってるか知るには
どうしたらいいでしょうか?

WMI 使うのかなとは思ったんですが、どの namespace と class 使えばいいか
わからなかったので、よろしくおねがいします。

479 名前:デフォルトの名無しさん [2010/01/03(日) 00:06:52 ]
shift+tabキーでカーソルが入ったときにも
Enterイベントを発動させるにはどうすればいいですか?

480 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 00:11:43 ]
別に何もしなくても発生するけど?

481 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 00:21:13 ]
保存形式を独自の物にしたいと考えたのですが(他のアプリケーションでは開けない)
そこで考えたのがAES等による暗号化を施そうと考えました。
こういった場合にAES暗号化時に用いる鍵、IV情報はプログラム的に毎回同じものを生成するようにしておいたほうがいいのでしょうか?

482 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 08:05:10 ]
変数名とnewの名前同じなのにいちいち二回かくのめんどい

abcde a= new abcde();
だったらabcdeが二回あってしつこい

a= new ebcde();
でよくね?
一回で済ます方法ないの?

483 名前:482 mailto:sage [2010/01/03(日) 08:10:24 ]
new abcde() a;
解決しましたありがとうございます。



484 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 11:20:06 ]
var つかえ

485 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 11:33:44 ]
インテリセンスを使わない理由がわからない

486 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 11:45:58 ]
AClass a = new までうてば AClass() が補完候補にでてくるもんな。
var だとそうはいかない。

487 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 11:51:46 ]
C#にvarなんてあったのか!

488 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 12:00:06 ]
何でも入る変数ではないぞ。コンパイル時に型推論してくれるだけだ。

489 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 12:07:16 ]
拡張メソッドって何ですか?
Wikipedia見て見たけどよくわかんないです;

490 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 12:27:34 ]
ポリモーフのルールがわからん

たとえば
void func(AClass);
なメソッドがあったとして
Object o=new AClass();
でfunc(o)はダメ
AClass a =new AClass();
func(a);は大丈夫
AClassを敬称してるBClassについては
BClass b = new BClass();
AClass a = new BClass();
のばあいfunc(b)、func(a)両方大丈夫

でOKなのか?

491 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 13:05:13 ]
>>490
関数の引数の多態性は静的多態だからなぁ。
変数の型(new した方じゃなくて、 o とか a とか b の宣言時の型)に基づく。
それがキャスト可能かどうかがすべて。

492 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 17:35:04 ]
>>489
MyFunctions.Foo(hoge);

というstaticメソッド呼び出しを

hoge.Foo()

と書けるようにする仕組み。

493 名前:デフォルトの名無しさん [2010/01/03(日) 17:56:54 ]
C#でoracleと接続する方法を教えて下さい
C#はExpressEdition 2008で
oracleは11g_home1です
かなり初心者ですので
一から教えていただけるとありがたいです



494 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 18:03:11 ]
ODP.NETを使います。Oracleのサイトにやり方が載ってるので、
それを参考にしてください。

495 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 20:28:09 ]
金払って教えてもらうレベルのことをただで丁寧に教えろという神経がわからん

496 名前:デフォルトの名無しさん [2010/01/03(日) 20:29:57 ]
まず、コンピュータを購入します

497 名前:デフォルトの名無しさん [2010/01/03(日) 20:31:26 ]
>>495
そう思ったらスルーすればいいだけですよ

498 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 20:51:25 ]
>>493
ODBCでも使ってつないでろよ・・・。

499 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 20:52:11 ]
>>493
ここはC#のスレです。
Oracleとの接続に関してはOralceのスレで聞いてください。

500 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 20:52:47 ]
まあodp.netでぐぐればあとはできるからほっとこう

501 名前:デフォルトの名無しさん [2010/01/04(月) 00:51:58 ]
System.Collections.IEnumerable 型で渡されたCollectionオブジェクト
を処理する場合、その要素の元の型を知っていないと処理できないかと
思うのですが、使うときは foreach() 内などではその既知の型にキャスト
してから(そのプロパティ値などを)処理するということでよいでしょうか?


502 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 00:57:51 ]
うん。
今から作るなら普通は System.Collections.Generic 名前空間内のものを使うだろうから
型がわからないってことはないと思うけど。

503 名前:501 [2010/01/04(月) 01:23:21 ]
>>502
>System.Collections.Generic
こちらで送られてくる場合は型が付いてくる、ということなのですね。
古いコントロールだとIEnumerable で出来ているためにそういうことになる
ということなのですね。わかりました。ありがとうございました!!




504 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 03:40:42 ]
foreachにキャストが含まれているのは知っているだろうけど、
あれもジェネリック型が無かった時代の産物というか発想だよな

505 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 08:05:23 ]
Formやプログラムの終了方法ですが

Close();
Dispose();
Application.Exit();
Environment.Exit(0);

どれがいいんですか?

506 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 08:22:22 ]
タスクマネージャーより最前面にフォームを持ってきたいのですが、
GetForegroundWindowAPIを使って自スレッドにアタッチした後Activateも駄目、
勿論TopMostやFocusも駄目でした。仕様上出来ないものなのですかね?

507 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 15:32:56 ]
>>505
Close()やDispose()は指定したFormだけ。
Application.Exit()なら全てのFormを閉じてくれる。
Environment.Exit()は知らね。

508 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 16:24:53 ]
>>505
ここ見れホイホイ
ttp://dobon.net/vb/dotnet/form/closeform.html

509 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 16:52:51 ]
ストリームからデータを読み出そうとすると
'System.Security.Cryptography.CryptographicException' のハンドルされていない例外が System.Core.dll で発生しました。
追加情報: 入力データが完全なブロックではありません。
というエラーが発生してしまうのですが何故なのでしょうか?

510 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 16:56:08 ]
そのまんまだろう

復号ストリームに食わせたブロックが欠落してる

511 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 16:59:13 ]
FileStreamを対象ファイルで作成し
CryptoStream作成時に上記で作成したストリームを渡して
CryptoStreamMode.Readを行っているのですがどこでデータが欠落するのでしょうか・・・。

512 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:00:52 ]
対象ファイルの中身

513 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:03:45 ]
>>512
そりゃそうですよね・・・orz
ファイル書き込む時に暗号化データをStringに直して書き込んでればそりゃだめになりますわ・・・orz



514 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:05:53 ]
死んだ方がいい

515 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:20:17 ]
PictureBoxの画像を半透明にしたいのですが。

516 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:23:47 ]
if (a == 1)
{
  b = 10;
}
else
{
b = 100;
}
例えば上記の様な場合

b = (integerA == 1) ? 10 : 100;
のように書くというのは

1)極力(あるいは絶対に)上の例のように書くべき。
2)極力(あるいは絶対に)下の例のように書くべき。
3)見易さに応じてケースバイケース。
4)特にセオリーはなく、完全に好みの問題。

熟練されてる方々は一般的に1〜4のどのスタンスで使用されているのでしょうか。
よろしくお願いします。


517 名前:516 mailto:sage [2010/01/04(月) 17:25:44 ]
下はintegerA じゃなくてa の間違いです。
それから上の b=100; も字下げ忘れてました。
見辛くてすみません。

518 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:29:34 ]
あとから修正の入る可能性がないと仮定したうえで、
禁止されてない限り(禁止されることは珍しくない) 2 。

519 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:30:46 ]
>>515
BackColorをTransparentにする
実装に無理があっていろいろトラブルが起きやすい方法なので,できれば
下に描画するものも含めてGraphicsで自前描画してしまうか
WPFでも使ったほうがいい

520 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:32:01 ]
3でしょ、見やすさと言うかプログラムとして自然な方になる
例えば他にelse if が続いていて、たまたまこれだけがelseのみだった場合
これだけいきなり後者で書かれても不自然だ

521 名前:516 mailto:sage [2010/01/04(月) 17:37:50 ]
>>518
>>520
可読性が上がるなら特に使用に抵抗感はないものの
職場などでは使用を禁止されることもあるという感じでしょうか。

下のような書き方はネット上では目にする機会があまり多くないように感じたので
一般的には推奨されない書き方なのかなと疑問に思っていました。
ありがとうございます。参考になりました。

522 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:43:54 ]
どうしてもと言うならせめてこうして欲しい。
b = (hoge == 1 ? 10 : 100);


523 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:59:07 ]
なるほど。勉強になります



524 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 18:08:25 ]
>>516
式が複雑なら上で、計算しないなら下。
上の書き方は bが2回登場するので、自分は嫌い。

525 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 18:47:36 ]
「手続き的ではなく宣言的に書け」という原則があるが
それに則っていえば一応下の方が良いことになるな

526 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 19:42:50 ]
WinApp1-Resources-bg.bmpをBitmap型に取り出したいのですが、上手くいきません。

Bitmap bmp = new Properties.Resources.bg;
これでもbgが存在しないらしく、ビルド失敗します。

527 名前:デフォルトの名無しさん [2010/01/04(月) 19:45:35 ]
>>526
この辺かな?
www.atmarkit.co.jp/fdotnet/dotnettips/555appresources/appresources.html

528 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:21:46 ]
>>516
三項演算子は複雑になると他人が(そして未来の自分が)解読しづらくなるから
ネストするようなのは素直に if 使うわな。
というか迷ったら if でいいと思うわ。

将来的に保守していくコードは冗長でつまんないぐらいでいい。
生成結果が変るならまた話は別になるけど。

529 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:40:19 ]
>>516
俺も見やすさ重視でif使うかな


530 名前:デフォルトの名無しさん [2010/01/04(月) 20:43:42 ]
個人的な見解としては?使うのはマネージドな言語が使われる
今の時代でみるとギークぽいなあと思う。

C言語使うにしてもあえて?は使わないようにしてる




531 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:51:17 ]
一行で済むなら三項演算子使うわ

532 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:53:49 ]
ここまでを纏めると


1でも2でも3でもなく4ですね

533 名前:デフォルトの名無しさん [2010/01/04(月) 20:55:41 ]
>>532
そうそう
古参コーダーはたぶん>>531の意見だろうし

まあ変な先輩と一緒になるとスタイル押し付けられそうだけどね



534 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:57:43 ]
if elseが大量にあるようなのなら三項演算子ですっきりさせるかあも

535 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:57:59 ]
>>530
うーん、時代ってのでいうと、
・LINQ とかで文よりも式が見直されてる(if は式木にならないけど、? : はなる)
・C#の cond ? a : b は a と b の型の一致を保証できる
ってのもあって、むしろ昔よりも条件演算子使いやすいと思うよ。


536 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:59:12 ]
>>534
if-else が大量に並ぶのはむしろ設計見直した方がいいかも。
仮想関数にならないかとか、分割できないかとか。

if-else が大量に並ぶような場面で ? : 使うと余計にひどいことになりそう。

537 名前:デフォルトの名無しさん [2010/01/04(月) 21:02:43 ]
>>535
使いやすいというかせこせこ1行にまとめてもなあと思う

538 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 21:29:02 ]
ちゅーか >>516 が聞いてるのってあくまで単純な代入の場合だよね?
なんか途中で if か?三項演算子か?な議論にすりかわってるような

自分がどう書くかはともかく、他人が書いたソース読むときは
同じような処理が同じような書き方になってりゃどっち使ってても別に気になんないわ。
ちょくちょくぶれてるのが一番気持ちわるい。



539 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 21:29:04 ]
>>536
泥臭い処理も世の中にはあるぞ

540 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 21:30:20 ]
>>539
泥臭い処理は泥臭く書いた方が間違いが少ない

541 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 21:32:01 ]
三項演算子の是非の話?
三項演算子は値に注目して論理性がはっきりするからいいと思うけどな

542 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 21:39:12 ]
迷わずifです。ステップ数増やさないと稼げません。

543 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 21:44:34 ]
今時ステップ数はないわ。



544 名前:デフォルトの名無しさん [2010/01/04(月) 21:57:00 ]
H社あたりはステップ換算じゃないの?

545 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 22:01:16 ]
工程数だろ今は

546 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 23:00:34 ]
人月換算なんかしてるから日本は終ってる

547 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 23:01:54 ]
馬鹿は

if (a == 1) {
b = 1;
} else {
c = 1;
}

みたいのですら

a == 1 ? b = 1 : c = 1;

ってやりたがるからな。

548 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 00:01:24 ]
特定のキー入力を受け付けない、ということは出来ませんかね?
左CtrlキーやAキーなど、入力されても他のウィンドウにはメッセージ送らない、みたいな。

549 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 00:26:50 ]
>>548
キー入力全部いったん食ってから、特定のキーのときだけhandled=trueにしてしまう手はある。
グローバルフックでキー拾えばウィンドウまたがったキー入力拾いも可能。

550 名前:デフォルトの名無しさん [2010/01/05(火) 00:36:24 ]
特定のウインドウもしくはexeなどを監視してキー情報を
送ることは可能でしょうか?

551 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 01:02:36 ]
>>550
再提出
特定のウインドウ(の○○)もしくはexe(の○○)などを監視して
キー情報を(○○へ)送ることは可能でしょうか?

552 名前:デフォルトの名無しさん [2010/01/05(火) 01:07:04 ]
細かい部品までは意識しません
送り先が起動してるかどうか確認して要るようなら指定されているキー情報を送るだけです


553 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 01:15:44 ]
可能だけど、何を条件にするかによって判定する方法は違う
条件を聞いたのに答えなかったから回答もここまでだ

方法は自分で考えろ



554 名前:デフォルトの名無しさん [2010/01/05(火) 01:19:06 ]
いやそんな難しい条件ではないんですが・・・

ただ送りたい相手を調べる方法もよくわからないので
ヒントだけでもわかればと思ったんですが・・・

というかここは初心者スレですよね・・・

555 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 01:22:55 ]
だからその条件を書けといってるんだろうが馬鹿め
話の通じない奴は初心者じゃなくて池沼だっての

556 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 01:23:46 ]
そうだぞ池沼が

557 名前:デフォルトの名無しさん [2010/01/05(火) 01:25:59 ]
その辺がうまく説明できたらここで聞く必要がないと思うのですが・・・

やりたいことは特定アプリのショートカットキーなどを登録したボタンを
フォームに貼り付けて、そのボタンを押した際に送りたいアプリが居れば
sendkeyで送るなどして、居なければ送らないというだけの動作です

558 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 01:29:28 ]
>>557
msdn.microsoft.com/ja-jp/library/1f3ys1f9%28VS.80%29.aspx
これでプロセス一覧を取る
ウィンドウハンドルとパスが入ってるから適当にやればいい

とりあえず十分だと思うが、上の方法は微妙に融通が利かないので
不便だと思ったらまた来い

559 名前:デフォルトの名無しさん [2010/01/05(火) 01:42:54 ]
>>558
ありがとうございます


560 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 01:43:00 ]
>>550-551
549の答えでいんじゃない?

> 特定のウインドウ(の○○)もしくはexe(の○○)などを監視して
前者は
FindWindow→GetWindowThreadProcessIdして
SetWindowsHookExするDLLをDLLの作って
キー入力をSend/PostMessageで流すぐらいかな

後者は自分の頭ではちと大変で
EnumWindows→GetWindowThreadProcessIdで
exe特定するのに逆に辿る必要性がある気がするので
ハッシュリストにマーキングしたりで色々とめんどくさそう

561 名前:548 mailto:sage [2010/01/05(火) 02:19:10 ]
>>549
キーボードをグローバルフックして、Handled=trueですね、やってみます。


562 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 02:24:33 ]
グローバルフックはDLLいらんよ知ったか。

563 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 02:26:09 ]
いつからいらなくなったんだ?



564 名前:548 mailto:sage [2010/01/05(火) 02:43:44 ]
とりあえず、グローバルフックを使い、
メモ帳上でCtrl+Aを押してもaが入力されるようになりました。

しかし、Altキーの入力を防ごうとしても、Alf+Fでメニューが表示されたり、
Ctrl+Alt+Delでタスクマネージャが出たり、Alt+F4が使えたりします。

これらは仕方がないんですかね?

565 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 02:43:47 ]
うろ覚えな知識でレスするもんじゃないなぁ

>>562
ありがとう

566 名前:デフォルトの名無しさん [2010/01/05(火) 02:50:00 ]
>>564
この辺は?
www.gine.jp/blog/taka/post/Ce381a6e382afe383ade383bce3838fe383abe38395e38383e382afe381aee4bdbfe794a8efbc86ALTefbc8bCTRLe38282e38395e38383e382af.aspx

567 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 02:50:57 ]
>>564
CallNextHookExに渡すパラメータを何やかんやするとキー入力潰せた気がするけどどうかね

568 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 03:33:18 ]
MSペイントで文字を画像にした場合と全く同じ結果になるように
Graphics.DrawStringを使用して文字列を画像化しています.

Graphics.DrawString

569 名前:568 mailto:sage [2010/01/05(火) 03:35:41 ]
とちゅうで投稿しちゃいましたごめんなさい

Graphics.DrawString()の引数でフォントやサイズ,GraphicsUnitはきちんと指定したんですが
どうもMSペイントの場合と結果が異なってる気がします.
アンチエイリアスのせいかと思いすべて試してみたんですが同じ結果にはなりません.

文字描画の設定どうすればMSペイントと機能がおなじになるんでしょうか?

570 名前:デフォルトの名無しさん [2010/01/05(火) 04:23:17 ]
コードの難読化のためのツールとしてDotfuscator Community Editionというのが
付属してるような記述をネットで見つけたのですがVisual C# 2008 Express Edition
のような無料の物には付属しないのでしょうか?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<104KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef