ふらっとC#,C♯,C#(初心者用) Part75
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/06/04(土) 20:29:47.16「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっとC#,C♯,C#(初心者用) Part74
http://hibari.2ch.net/test/read.cgi/tech/1304161005/
■関連スレ
C#, C♯, C#相談室 Part66
http://hibari.2ch.net/test/read.cgi/tech/1303889653/
ミスターサタンのC#相談室
http://hibari.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
くだすれC++/CLI(初心者用)part2
http://hibari.2ch.net/test/read.cgi/tech/1268613679/
0002デフォルトの名無しさん
2011/06/04(土) 20:29:57.99コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0003デフォルトの名無しさん
2011/06/04(土) 20:34:39.92MIDIそのものは楽譜データだけで音色は実装側次第だからなあ・・・
なんでいまさらそんな物を使うのか
前スレ>>999
System.Diagnostics.Debug.WriteLineとかではダメ?
0004デフォルトの名無しさん
2011/06/04(土) 20:40:49.47ギリギリでスレ立て乙!
0005デフォルトの名無しさん
2011/06/04(土) 20:43:25.640006デフォルトの名無しさん
2011/06/04(土) 20:45:53.37http://ideone.com/iZDn4
起動後、1.wmvの再生は出来るのですが、
問題は再生終了後に2.wmvが読み込まれているみたいですが再生されません
手動で再生ボタンを押さないと2.wmvが再生できません
どう改善すると2.wmvも自動で再生できますでしょうか?
0007デフォルトの名無しさん
2011/06/04(土) 20:52:39.66そのときは構成マネージャーのリストビューの「ビルド」というチェックボックスの
チェックがなんかしらんけど外れていた。けっこうトラップだと思う
0008デフォルトの名無しさん
2011/06/04(土) 20:55:29.24BeginInvokeでPlayするとか
0009デフォルトの名無しさん
2011/06/04(土) 21:03:02.88this.axWindowsMediaPlayer1.Ctlcontrols.play();
break;
と、readyになってからPlayしてみたらどう?(テストしていません)
0010デフォルトの名無しさん
2011/06/04(土) 21:13:30.88System.Diagnostics.Debug.WriteLine
だめでした
>>7
ありがとうございます構成マネージャをいじっていたら解決しました
C#AnyCPU DLLx64
コンパイルできない
C#AnyCPU DLLx86
コンパイル出来るがデバッグが使えない
C#x64 DLLx64
コンパイルデバッグ共にできる
C#x86 DLLx86
コンパイルデバッグ共にできる
AnyCPUは使わない事にしますありがとうございました
0011デフォルトの名無しさん
2011/06/04(土) 21:53:20.75BeginInvokeを検索して調べてみたのですが敷居が高くて手に届きません
http://ideone.com/KsWxy
0012デフォルトの名無しさん
2011/06/04(土) 22:33:24.790013デフォルトの名無しさん
2011/06/04(土) 22:35:10.75そのwmpコントロールはどのスレッドで動いてるんよ
0014デフォルトの名無しさん
2011/06/04(土) 22:39:43.16BeginInvokeは別スレッドからの呼び出しのほかに
次以降のメッセージループで処理させるために使う場合がある
0015デフォルトの名無しさん
2011/06/04(土) 22:45:25.02そもそも、その独自メソッドをどこからコールしてるんだろ?と素朴な疑問が。。。
Timerとかから呼ぶ様にしてみては
0016デフォルトの名無しさん
2011/06/04(土) 23:13:08.92昔のソース見たらURIに一端空文字を入れてから操作しているな
こっちではソースは音楽ファイルだし、イベント発生させて他のクラスから
次のファイルをセットしているからどうなるか判らんが
0017デフォルトの名無しさん
2011/06/04(土) 23:13:56.35http://ideone.com/n258k
詳しく知りたければDelphiだけどここ参照で。
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200903/09030027.txt
0018デフォルトの名無しさん
2011/06/04(土) 23:19:47.12this.axWindowsMediaPlayer1.URL = @"C:\douga\2.wmv";
this.axWindowsMediaPlayer1.Ctlcontrols.play();
の次にMessageBox("test");を足して動かすと、何故こうなるのか分からないのですが2.wmvが自動的に再生できました
メッセージボックスを閉じると動画が停止されてしまうので何でこうなってしまうのか分かりません
>>12-17
今から参考にして調べてみます
0019デフォルトの名無しさん
2011/06/04(土) 23:40:10.17System.Threading.TimerとSystem.Timers.Timerのどちらがもっとも精度に長けてますか?
0020デフォルトの名無しさん
2011/06/04(土) 23:42:39.52使ってる物は同じ
0021デフォルトの名無しさん
2011/06/05(日) 00:03:32.21下記のようなフォームをイメージしているのですが、似た機能を見つけられません。
小さなことでも構わないので、何かしらご教授頂けますでしょうか・・・。よろしくお願いします。
http://brunhild.sakura.ne.jp/up/src/up501574.jpg
0022デフォルトの名無しさん
2011/06/05(日) 00:05:46.84後は全部自前で描け
0023デフォルトの名無しさん
2011/06/05(日) 00:15:27.19>>14が既に答えてるけど、これでいけた。
case (int)WMPLib.WMPPlayState.wmppsMediaEnded:
this.BeginInvoke((MethodInvoker) (() => {
axWindowsMediaPlayer1.URL = @"C:\douga\2.wmv";
axWindowsMediaPlayer1.Ctlcontrols.play();
}));
break;
0024デフォルトの名無しさん
2011/06/05(日) 00:19:24.11タイムラインコントロール使えばいいじゃん
0025デフォルトの名無しさん
2011/06/05(日) 00:34:32.66解決したのかいな。頑張って書いたから乗せておく。
ttp://ideone.com/mPK2i
この方法はメディアプレイヤつかったことないとわからん。
要するにプレイリスト作ってプレイヤーに登録してるだけ。
0026デフォルトの名無しさん
2011/06/05(日) 00:46:07.25「PInvoke で渡す構造体はC#側で用意してあげればいい」
というのは構造体をC#で作ってDllImportでC#で再定義して使うということでいいんでしょうか
DirectXInputのDLLはどこにあるんですか?SDKのDeveloperRunTimeの中から選ぶとマニフェストを含んでいないと言われます
0027デフォルトの名無しさん
2011/06/05(日) 00:56:21.42もう同じ質問するなよ
お前に言えることは全くない
0028デフォルトの名無しさん
2011/06/05(日) 01:00:41.190029デフォルトの名無しさん
2011/06/05(日) 01:04:07.16c#でDirectX使った事ないけど、こう言う本は見かけた事あるお
http://www.amazon.co.jp/gp/aw/d/487593419X/ref=mp_s_a_1?qid=1307203269&sr=8-1
0030デフォルトの名無しさん
2011/06/05(日) 01:08:16.090031デフォルトの名無しさん
2011/06/05(日) 01:10:06.27Microsoft.DirectX.DirectInput
とかってMDXの関連だっけ?
http://www.clks.jp/csg/dx003.html
http://techno-st.net/2008/04/24/visual-c.html
0032デフォルトの名無しさん
2011/06/05(日) 01:14:37.75ただしこれ単体で呼び出していいものなのかは不明だ
0033デフォルトの名無しさん
2011/06/05(日) 01:30:49.15コントローラー持ってないから関数が正常終了することしか確認できないけど…
たかが15行程度だし、この辺見ながら自分で書けよ
ref以外に特に引っかかりそうな部分無いしな
http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html
http://msdn.microsoft.com/ja-jp/library/bb174829%28v=VS.85%29.aspx
http://msdn.microsoft.com/ja-jp/library/bb174834%28v=VS.85%29.aspx
http://msdn.microsoft.com/ja-jp/library/bb174832%28v=VS.85%29.aspx
0034デフォルトの名無しさん
2011/06/05(日) 01:31:10.01xinput1_1.dllもマニフェストなんたらのエラーが出ます。
開発で使えるようなDLLは用意されていないということですか?
defがないとすると使われることを想定してないということですよね
やはりLibと.hで使うにはC++CLIを使うしかないんでしょうか?
C++CLIを通すならC++でDLLにしてC#から使う方が手間がかからないと思うんですが
ラッパーとして使うC++CLIの存在意義を考えるとネイティブからの変換目的の為だけに使うことはないと思うんですが
みなさんはどうやってアンマネージDirectXをC#で使ってるんですか?
0035デフォルトの名無しさん
2011/06/05(日) 01:32:03.67ありがとうございます!がんばります
0036デフォルトの名無しさん
2011/06/05(日) 01:36:09.60http://code.google.com/p/x360ce/source/browse/trunk/x360ce.App/Microsoft/Xna/Framework/Input/UnsafeNativeMethods.cs?r=403
0037デフォルトの名無しさん
2011/06/05(日) 01:53:38.82わかることはBeginInvokeがデリゲートの処理開始時、EndInvokeが処理終了時ということくらいしかわかりません・・・
よくわかるように教えてもらえないでしょうかないでしょうか?・・・
0038デフォルトの名無しさん
2011/06/05(日) 01:54:48.03ありがとうございました!
0039デフォルトの名無しさん
2011/06/05(日) 01:58:56.79>わかることはBeginInvokeがデリゲートの処理開始時、EndInvokeが処理終了時ということくらいしかわかりません・・・
理解してるじゃん
それ以外に何もないよ
0041デフォルトの名無しさん
2011/06/05(日) 02:07:56.480042デフォルトの名無しさん
2011/06/05(日) 02:08:28.55すいません出来たんですが、XNAを使わない理由はDirectShowとDirectComputoも使いたかったので統一したかったんです
なので総合的に考えてC++CLIにすることにしました。
C#から直接使うのは使い物にならないということが分かって勉強になりましたありがとうございました
0043デフォルトの名無しさん
2011/06/05(日) 02:12:02.13本当に頭が可笑しいんだな
0044デフォルトの名無しさん
2011/06/05(日) 02:14:41.11DirectshowをC#で使う方法を質問していたと思います
XInputからやってまずかったでしょうか?
0045デフォルトの名無しさん
2011/06/05(日) 02:15:52.560046デフォルトの名無しさん
2011/06/05(日) 03:00:10.01私の彼女は今プログラミング中ですがとてもいいですよ。
0047デフォルトの名無しさん
2011/06/05(日) 04:48:31.16として開いて、
var sr = new StreamReader(stream, System.Text.Encoding.ASCII);
で数行読んだ後、
var br = new BinaryReader(stream);
そこからバイナリで読みたいんですが、続きがあるのに
br.ReadByte();にてEndOfStreamExceptionが投げられます。
途中からReaderを切り替えることはできないんですか?
0048デフォルトの名無しさん
2011/06/05(日) 05:09:50.96続きがあるってことはEndOfStreamExceptionをcatchした時
Stream.Position < Stream.Lengthになってるのを確認してるんだよな
0049デフォルトの名無しさん
2011/06/05(日) 05:12:01.080050デフォルトの名無しさん
2011/06/05(日) 05:53:01.78ありがとうございます。
確認してみたところ、その可能性がとても高そうです。
StreamReaderにその分だけストリームを進めるように指定するには
どうすればいいですか?
0051デフォルトの名無しさん
2011/06/05(日) 07:16:38.000052デフォルトの名無しさん
2011/06/05(日) 08:08:36.540053デフォルトの名無しさん
2011/06/05(日) 12:47:27.61プロジェクトを作るとForm1.csっていうファイルとprogram.csってファイルが出来ました
起動したときに必ず処理したいことって言うのはprogram.csのMain()の中に書くのと、
Form1.csのForm1()かたはForm1_Load()の中に書くのどちらで書くべきでしょうか?
0054デフォルトの名無しさん
2011/06/05(日) 12:59:42.270055デフォルトの名無しさん
2011/06/05(日) 13:00:55.60form1を作る前に必ず処理したいなら、Main
0056デフォルトの名無しさん
2011/06/05(日) 13:06:11.91たとえば複数の画面をもってて、広く影響を与えるなら Main という考え方もある。
0057デフォルトの名無しさん
2011/06/05(日) 13:07:00.05あまりカリカリしてもするだけ損だ
0058デフォルトの名無しさん
2011/06/05(日) 13:27:14.96ShowDialogで同じインスタンスを再利用しないとしても本来ちょっと奇妙だよな。
もちろん一部の処理はコンストラクタには書けないから仕方が無い面はあるんだけど。
0059デフォルトの名無しさん
2011/06/05(日) 13:48:16.61巣に帰れzk
0060デフォルトの名無しさん
2011/06/05(日) 15:03:26.51{
StartAccept();
}
private static void StartAccept(Socket server)
{
server.BeginAccept(
new System.AsyncCallback(AcceptCallback), server);
}
上記のコードを実行すると
>引数を 0 個指定できる、メソッド 'StartAccept' のオーバーロードはありません
というエラーが出ます。どなたか解決策を教えてくれないでしょうか?
0061デフォルトの名無しさん
2011/06/05(日) 15:08:12.560062デフォルトの名無しさん
2011/06/05(日) 15:13:56.20{
StartAccept();
}
private static void StartAccept()
{
Socket server = new Socket();
server.BeginAccept(
new System.AsyncCallback(AcceptCallback), server);
}
このように変えてみたけど今度は
> 'System.Net.Sockets.Socket' に、引数を 0 個指定できるコンストラクターがありません。
って出でしまう。
0063デフォルトの名無しさん
2011/06/05(日) 15:21:46.280064デフォルトの名無しさん
2011/06/05(日) 15:26:24.960065デフォルトの名無しさん
2011/06/05(日) 15:47:42.20これで拡張子txtのファイルのみ一覧取得できるのですが、
txt以外にdocも取得したいと思います
string[] files = System.IO.Directory.GetFiles("C:\\,test", "*.txt; *.doc", System.IO.SearchOption.TopDirectoryOnly)
で出来ると思ったのですが出来ませんでした
C#4.0で方法ございませんか?
0066デフォルトの名無しさん
2011/06/05(日) 16:04:12.36ディレクトリ内のファイルを列挙して文字列比較か正規表現でも使って抽出すればいい。
0067デフォルトの名無しさん
2011/06/05(日) 16:06:34.34智恵無さ杉
0068デフォルトの名無しさん
2011/06/05(日) 16:06:59.12.Where(file => { var ext = System.IO.Path.GetExtension(file); return ext == ".txt" || ext == ".doc"; })
.ToArray();
0069デフォルトの名無しさん
2011/06/05(日) 16:16:12.58この点は.Net Framework5.0で改善してもらいたいものだ
0070デフォルトの名無しさん
2011/06/05(日) 16:26:16.580071デフォルトの名無しさん
2011/06/05(日) 16:43:06.280072デフォルトの名無しさん
2011/06/05(日) 17:10:30.810073デフォルトの名無しさん
2011/06/05(日) 17:32:31.02ClientRectangle -> PointToClientを他のアプリケーションに対して実行することはできますか?
GetClientRectを使おうとしたけど挫折しました…
0074デフォルトの名無しさん
2011/06/05(日) 17:42:09.120075デフォルトの名無しさん
2011/06/05(日) 17:44:33.10GetClientRectじゃないとダメ、という話で大丈夫ですか?
勉強してきます…
0076デフォルトの名無しさん
2011/06/05(日) 18:02:20.89ウィンドウハンドルがわかってるならGetWindowRectでスクリーン座標が取れるが
[DllImport( "user32.dll" )]
static extern bool GetWindowRect( IntPtr hWnd, out RECT pRect );
struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
0077デフォルトの名無しさん
2011/06/05(日) 18:07:01.410078デフォルトの名無しさん
2011/06/05(日) 18:18:18.21http://ideone.com/e4u8T
これは最前面のウインドウの位置とサイズを取得するだけ
任意のウインドウのハンドルが欲しければそれなりのAPIを使ってね
0079デフォルトの名無しさん
2011/06/05(日) 18:30:34.25>>76-78
申し訳ないんですけど、欲しいデータは
「任意のウィンドウの『クライアント領域の』スクリーン座標」なんです…
GetWindowRectで帰ってくるのはウィンドウのスクリーン座標なので、申し訳ないんですが上手くいかない感じです…
0080デフォルトの名無しさん
2011/06/05(日) 18:36:33.33呼び出し手順的には関数名ぐらいしか変わらないじゃん…
0081デフォルトの名無しさん
2011/06/05(日) 18:37:22.52これを
static extern bool GetClientRect( IntPtr hWnd, out RECT pRect );
するだけで動くだろ
しかしまあP/Invoke関連の質問がバカ丸出しであることだ
酷いね
0082デフォルトの名無しさん
2011/06/05(日) 18:38:46.90いや、GetClientRectで返ってくるデータってスクリーン座標じゃないですよね?
そこで詰まってるんです…
0083デフォルトの名無しさん
2011/06/05(日) 18:39:11.12何もできないって終わってると思う
0084デフォルトの名無しさん
2011/06/05(日) 18:40:12.87ぐぐれよかす
http://www.geocities.jp/ky_webid/win32c/008.html
0085デフォルトの名無しさん
2011/06/05(日) 18:42:11.37ありがとうございました
ClientToScreenっていう関数があるんですね…
0086デフォルトの名無しさん
2011/06/05(日) 18:43:06.770087デフォルトの名無しさん
2011/06/05(日) 18:53:16.90カスゆえにググれない
0088デフォルトの名無しさん
2011/06/05(日) 19:29:22.940089デフォルトの名無しさん
2011/06/05(日) 19:32:29.650090デフォルトの名無しさん
2011/06/05(日) 19:40:25.460091デフォルトの名無しさん
2011/06/05(日) 19:48:52.45「>>xx
ググれば出る」
で十分だろ
0092デフォルトの名無しさん
2011/06/05(日) 20:15:57.670093デフォルトの名無しさん
2011/06/05(日) 20:18:16.940094デフォルトの名無しさん
2011/06/05(日) 20:37:19.02数ある書籍の中からおすすめの本ってございませんか?
0095デフォルトの名無しさん
2011/06/05(日) 20:41:42.090096デフォルトの名無しさん
2011/06/05(日) 21:10:01.38>>25
ありがとうございます
いろいろやり方がありますね
0097デフォルトの名無しさん
2011/06/05(日) 23:04:20.85ツールボックスにShockwave Flash Objectを追加してフォームに配置してます
実行しても画面が白いままで右クリックすると「ムービーが未ロード」となってました
読み込まれれば実行できる?のかと思うのですがどうかお知恵を拝借させてください
http://ideone.com/fYnXP
0098デフォルトの名無しさん
2011/06/05(日) 23:15:28.17http://www.codeproject.com/KB/audio-video/flashexternalapi.aspx
ちょっと複雑なことやってるようだが
0099デフォルトの名無しさん
2011/06/05(日) 23:16:06.77さらにAxShockwaveFlash(flash)を生成してフォームのAxShockwaveFlashに追加する意味が分からない
0100デフォルトの名無しさん
2011/06/05(日) 23:18:29.65AxShockwaveFlashObjectsの参照設定ができねえ
どこにあるんだ?
0101デフォルトの名無しさん
2011/06/05(日) 23:20:11.85ActiveX版Flashを入れる。
参照にCOMコンポーネントからShockwaveFlashObjectsを追加する。
メニューのツール→ツールボックスアイテムの選択→COMコンポーネントからShockwaveFlashObjectを追加する。
デザイナで配置する。
■ このスレッドは過去ログ倉庫に格納されています