C♯, C#相談室 Part37
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/01/18(木) 17:55:45前スレ
C♯, C#相談室 Part36
http://pc10.2ch.net/test/read.cgi/tech/1165656839/
過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0153デフォルトの名無しさん
2007/01/25(木) 02:39:25あり得ない
0154デフォルトの名無しさん
2007/01/25(木) 08:06:03その通りなんだけど、>>153みたいに誤解してる人間が多いね何故か。
0155デフォルトの名無しさん
2007/01/25(木) 09:14:19ありがとうございます
参考にしてみます。
0156デフォルトの名無しさん
2007/01/25(木) 14:44:440157デフォルトの名無しさん
2007/01/25(木) 16:15:050158デフォルトの名無しさん
2007/01/25(木) 17:06:48yes
>>157
pinvoke.netでも見てみれば?
0159デフォルトの名無しさん
2007/01/25(木) 21:03:14グラフ表示用のライブラリが欲しいのですが、
有りますでしょうか?
0160デフォルトの名無しさん
2007/01/25(木) 23:41:47馬鹿な答えで申し訳ないがどこかにあるよ。
ただしサイトは英文だった。
0161デフォルトの名無しさん
2007/01/25(木) 23:47:250162デフォルトの名無しさん
2007/01/26(金) 00:20:560163デフォルトの名無しさん
2007/01/26(金) 05:56:350164デフォルトの名無しさん
2007/01/26(金) 09:59:230165デフォルトの名無しさん
2007/01/26(金) 10:59:230166デフォルトの名無しさん
2007/01/26(金) 15:04:32.NETのラッパーだとobject型で受け取るんです。
で実際に入ってるのはSystem._ComObjectなんですけど
このSystem._ComObjectを元のインターフェイス(のラッパー型)に変換するにはどうすればいいんでしょうか?
0167デフォルトの名無しさん
2007/01/26(金) 15:56:40あるいはリフレクションでも出来たかもしれない。
0168デフォルトの名無しさん
2007/01/26(金) 18:47:23本出たのか
猫のサイトを覗いてみたけど,CやC++を知ってる人向きな感じがした
0169デフォルトの名無しさん
2007/01/29(月) 09:29:05timerなどのようなコントロールを作成することは出来るのでしょうか?
又、そういったソースなどはMSDNなどのサイトに置いてあるんでしょうか?
もしあるのでしたら、urlやググるキーワードなど教えていただけたら有り難いです。
0170デフォルトの名無しさん
2007/01/29(月) 11:55:45できる。というかSystem.Windows.Forms.Timerとか揃ってる。
サンプルソースくらいどこかにころがってるでしょ
とりあえずVC#Expressインストールして付属のMSDN読むのがお勧め
0171デフォルトの名無しさん
2007/01/29(月) 12:04:550172デフォルトの名無しさん
2007/01/29(月) 18:36:430173デフォルトの名無しさん
2007/01/29(月) 19:01:490174デフォルトの名無しさん
2007/01/29(月) 19:11:42現在作りたいもの
Windows Media Encoder SDKを使ってAVIをWMVにエンコードするC#コンソールプログラム
やろうとしていること
エンコード処理の終了イベントを取得してプログラムを終了させる。
困っていること
Visual C# Express Edition上でデバッグ実行をすると正常にイベント処理されるが、
CTRL+F5で実行すると、終了処理イベントを取得できない。このとき、開始イベントは
取得できている。もちろん、コマンドラインからExe叩いても同じ。
行っていること
このサイトにあるサンプルを単純にコピペして使ってます。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmencode/htm/capturingeventscsh.asp
唯一違うのは、エンコードしているファイルに音声がないので、SrcAudの処理部分はコメントアウトしています。
デバッグ実行ではイベントの割り込みがデバッガによって頻繁に行われると理解していて、そのため、イベントキュー内の
イベントが正常に処理されるのでは?と思ったのですが…。
何かヒントでもわかればと思っています。お願いします。
0175デフォルトの名無しさん
2007/01/29(月) 19:34:38あと途中でオブジェクトの寿命終わったりしてないか?
0176デフォルトの名無しさん
2007/01/29(月) 20:00:55>>175
えっと、二つ同時にとかはしていません。
ただ、途中でオブジェクトの寿命が終わってるのは可能性ありそうです。
が、オブジェクトの寿命ってどうやって延命するんでしょうか。。。?
調べてみます。
0177デフォルトの名無しさん
2007/01/29(月) 20:01:340178デフォルトの名無しさん
2007/01/29(月) 20:08:27はい。ビルドはできてます。
Exeも更新されています。
0179デフォルトの名無しさん
2007/01/29(月) 20:12:44いつまでも終了しないの?
0180デフォルトの名無しさん
2007/01/29(月) 20:14:59はい。そうです。
イベントごとに何かメッセージを出力させるようにして確かめたのですが、
Debug時には最後まで表示されるのですが、通常実行時には、いつまでたっても、
Whileループの中を回っていました。。。
0181デフォルトの名無しさん
2007/01/29(月) 20:22:32( ゚∀゚)彡 おっぱい!Volatile!
⊂彡
0182デフォルトの名無しさん
2007/01/29(月) 20:38:160183169
2007/01/29(月) 20:54:42スミマセン、timerのようなという表現は適切じゃなかったですね。
>>172さんの仰る通り、ビジュアルを持たないコントロールを作りたい、ということです。
例えば、サーバから定期的なメッセージをクライアントに送るようなアプリケーションがあったとして、
そのメッセージをイベントとして受け取れるようなアプリケーションが作れないか、と考えています。
こちらはまだC♯を触り始めたばかりで、これはあくまで習作なのですが。
0184デフォルトの名無しさん
2007/01/29(月) 21:23:54起動するたびに Run as Administrator してねって言われるよ
0185デフォルトの名無しさん
2007/01/29(月) 21:24:190186デフォルトの名無しさん
2007/01/29(月) 21:25:550187デフォルトの名無しさん
2007/01/29(月) 22:09:55enum A : int
{
a
}
でint b = (int)aと
aにキャストがいるのは何でなの
intだっつってるのに
0188デフォルトの名無しさん
2007/01/29(月) 22:10:41ですね
0189デフォルトの名無しさん
2007/01/29(月) 22:14:390190デフォルトの名無しさん
2007/01/29(月) 22:27:04トンクスです
0191デフォルトの名無しさん
2007/01/29(月) 22:27:44System.Window.Forms.Timer じゃないTimerがあるよ。
でも、その用途にTimerはオススメしないけど。
0192デフォルトの名無しさん
2007/01/29(月) 22:31:450193デフォルトの名無しさん
2007/01/29(月) 22:32:43クラスツリーとしてはAはEnumの子で、EnumとInt32は兄弟だから、ダウンキャストとは言わんな
0194192
2007/01/29(月) 22:33:280195デフォルトの名無しさん
2007/01/29(月) 23:51:21ありがとうございます。
意味を理解しました。
で、解決しました。
ん〜、確かに…言われてみれば納得です。
マルチスレッドなプログラムや組み込み系のプログラムはあまりやったことが
なかったもので(←言い訳です)、今回は非常に勉強になりました。
0196デフォルトの名無しさん
2007/01/30(火) 16:41:48という事はどうすればよいのでしょうか。
通常、ユーザが右クリックしてコンテキストメニューを開きますが
ここはプログラム側でコンテキストメニューを表示し、ユーザに選択を
促そうと思っています。
this.ContextMenuStrip.Show();
とやると、一瞬コンテキストメニューが表示されますが、次の処理へ
進んでしまい、ユーザが選択をする事が出来ません。
0197デフォルトの名無しさん
2007/01/30(火) 17:16:380198デフォルトの名無しさん
2007/01/30(火) 17:18:340199デフォルトの名無しさん
2007/01/30(火) 17:29:07Showしたあとにどこかのコントロールに
フォーカス合わせちゃってるんじゃないのか
0200デフォルトの名無しさん
2007/01/30(火) 17:30:030201デフォルトの名無しさん
2007/01/30(火) 18:13:54enum A : intは継承とは違うぞ
形式が似てるだけ
0202デフォルトの名無しさん
2007/01/30(火) 19:18:03そんな高度な話ではなく、this.ContextMenuStrip.Show();
の次の行に制御がいってしまいました、という話だと思う。
イベントドリブンが解ってないという話。
>>196
コンテキストメニューを Show() したら、選択なりキャンセルなりされて
イベントが来るまで何もしないようにプログラムを作ればOK。
0203デフォルトの名無しさん
2007/01/30(火) 19:26:460204デフォルトの名無しさん
2007/01/30(火) 21:43:21普通はコンテキストメニューのShow()で右クリックのイベントはおしまい。
で、コンテキストメニューアイテムのクリックイベントに処理を書く。
その間、他の処理は何も出来ないようにするのはどうかと思う。
メニューアイテムに「キャンセル」作るなんで考えない方がいいよ。
Explorerでファイルやフォルダを右クリックして試してみ。
0205デフォルトの名無しさん
2007/01/31(水) 09:38:320206デフォルトの名無しさん
2007/01/31(水) 15:52:040207デフォルトの名無しさん
2007/01/31(水) 16:40:03これをオーバーライド。
じゃないならSetVisibleCoreのbase呼ぶ前あたりにShowWindowで
アクティブにせずに表示。
0208206
2007/01/31(水) 16:47:03ShowWindowあたり見てみます。
0209206
2007/01/31(水) 16:54:550210デフォルトの名無しさん
2007/01/31(水) 16:59:580211デフォルトの名無しさん
2007/01/31(水) 17:11:53現象を確認した。TopMostを指定するとShowWithoutActivation無視される。
一応MSにフィードバックしといてや。by Designか直さんやろうけど。
基本的なやりかたは以下のように。
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int SW_SHOWNOACTIVATE = 4;
protected override void SetVisibleCore(bool value) {
if(this.ShowWithoutActivation && this.TopMost && !this.Visible && value) {
ShowWindow(this.Handle, SW_SHOWNOACTIVATE);
}
base.SetVisibleCore(value);
}
書き捨てなのでもうちょいほかのプロパティとの整合性あわせて。
0212デフォルトの名無しさん
2007/01/31(水) 17:16:50だがエクスプローラの右ドラッグには「キャンセル」がありまする。
これきっと、メニューの外側を適当にクリックしてメニューを消すと
ファイルの選択が解除されるからだな。
0213211
2007/01/31(水) 17:16:53…あれだ、ひょっとしたらTopMost指定するとアクティブになる仕様かも…
0214デフォルトの名無しさん
2007/01/31(水) 17:37:33だからTopMostもSetWindowPosでやるしかないんじゃないかね
0215デフォルトの名無しさん
2007/01/31(水) 17:41:26ドラッグ後に出るメニューはドラッグというアクションへの操作だろ。
右クリックはまだアクションを指定していないからキャンセルはおかしい。
0216デフォルトの名無しさん
2007/01/31(水) 17:47:18ごにょごにょして眺めてみた。っぽいなぁ。
0217デフォルトの名無しさん
2007/01/31(水) 18:50:13なんか汚いコードになってますがとりあえずはしのげそうです。
ただ今度はFormオブジェクトを作ってから初めてhandleから見そうなメソッド呼び出しでWM_CREATEがとんできてそのときにLocationがいじられるという現象が出てるがなぁ・・・orz
0218デフォルトの名無しさん
2007/01/31(水) 20:00:31OnShownでそいつにFocusしてやれば、実際の動作はともかく見た目的には
目的を達成できるよ。
0219デフォルトの名無しさん
2007/02/01(木) 12:12:35そうすると元もフォームのフォーカスが一度外れることになるので問題出ることがある。
0220デフォルトの名無しさん
2007/02/01(木) 12:43:100221デフォルトの名無しさん
2007/02/01(木) 22:13:53C#を最近、始めたばかりでド素人なのですが、
質問に答えてもらえるのでしょうか??
0222デフォルトの名無しさん
2007/02/01(木) 22:15:000223デフォルトの名無しさん
2007/02/01(木) 22:16:08質問はこちらへどうぞ
http://pc10.2ch.net/test/read.cgi/tech/1168271508/l50
0224デフォルトの名無しさん
2007/02/01(木) 22:19:33でも始めたばかりなら>>223
0225デフォルトの名無しさん
2007/02/01(木) 22:23:380226デフォルトの名無しさん
2007/02/01(木) 22:24:500227デフォルトの名無しさん
2007/02/01(木) 22:26:05Visual Studio 2007(仮称)までお待ちください
0228デフォルトの名無しさん
2007/02/01(木) 22:37:20現状はコマンドラインのコンパイラも無いの?
0229デフォルトの名無しさん
2007/02/01(木) 22:51:470230デフォルトの名無しさん
2007/02/01(木) 22:54:06http://ja.wikipedia.org/wiki/Microsoft_Visual_Studio
>NET Framework 3.0に対応させるための Visual Studio 2005 extensions for .NET
>Framework 3.0 (WCF & WPF), November 2006 CTPとVisual Studio 2005 extensions
>for .NET Framework 3.0 (Windows Workflow Foundation)が現在、配布されている。
0231デフォルトの名無しさん
2007/02/01(木) 23:03:250232デフォルトの名無しさん
2007/02/01(木) 23:19:240233デフォルトの名無しさん
2007/02/01(木) 23:30:280234デフォルトの名無しさん
2007/02/01(木) 23:35:00Visual Studio 2005 extensions for .NET Framework 3.0
で使えるのかどうかを聞いている。
0235デフォルトの名無しさん
2007/02/01(木) 23:42:290236デフォルトの名無しさん
2007/02/01(木) 23:48:380237デフォルトの名無しさん
2007/02/01(木) 23:56:360238デフォルトの名無しさん
2007/02/01(木) 23:59:510239デフォルトの名無しさん
2007/02/02(金) 00:00:010240デフォルトの名無しさん
2007/02/02(金) 00:00:400241デフォルトの名無しさん
2007/02/02(金) 00:03:040242デフォルトの名無しさん
2007/02/02(金) 00:05:210243デフォルトの名無しさん
2007/02/02(金) 00:07:480244デフォルトの名無しさん
2007/02/02(金) 00:15:28仕様どおりコンパイルできない場合があるみたいだけど
>>234
C#3.0やLINQは.NET Framework 3.5の機能
0245デフォルトの名無しさん
2007/02/02(金) 00:18:410246デフォルトの名無しさん
2007/02/02(金) 00:19:470247デフォルトの名無しさん
2007/02/02(金) 00:23:010248デフォルトの名無しさん
2007/02/02(金) 00:24:090249デフォルトの名無しさん
2007/02/02(金) 00:25:270250デフォルトの名無しさん
2007/02/02(金) 00:26:280251デフォルトの名無しさん
2007/02/02(金) 00:26:54今はまだ、C#3.0の処理系は存在しない
0252デフォルトの名無しさん
2007/02/02(金) 00:29:21カエレ
■ このスレッドは過去ログ倉庫に格納されています