- 1 名前:デフォルトの名無しさん [2008/04/22(火) 00:31:59 ]
- (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。 前スレ C#, C♯, C#相談室 Part45 pc11.2ch.net/test/read.cgi/tech/1200911737/ その他テンプレ>>2-5くらい
- 369 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:37:57 ]
- ファイルの読み書き単位でエンコーディングを指定するのではなく、
プログラム全体でエンコーディングをしているする方法はないですか?
- 370 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:46:03 ]
- >>368
private double x; と public double X { get; set; } は別物だよ。 xをプロパティとしたいなら public double X { get{return x;} set{x=value;} } 自動プロパティを使いたいならprivate double x;は消して public double X { get; set; }だけにして、Xを変数のように使えばいいよ。 ただその場合はprivateではないけどね。
- 371 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:59:52 ]
- >>369
CreateStreamReaderAsShiftJIS/CreateStreamWriterUTF8メソッドでも用意しとけば?
- 372 名前:デフォルトの名無しさん [2008/05/23(金) 17:04:01 ]
- 初心者ですが質問させてください。
Webbrowserコンポーネント(Webbrowser1)でgoogleを表示しておいて、 ソフトのTextBox(TextBox1)に検索ワードを入力して、Button(Button1)を押したら、 Webbrowser側に検索ワードが読み込まれて自動で検索するようにしたいんですが、 どのようにすればいいか検討がつきません。 開発環境はVisualstudio2005、言語はC#です。
- 373 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:07:41 ]
- コンポーネントでの表示が必要なの?
httpで通信するってんじゃだめかい?
- 374 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:10:13 ]
- >>372
事前にgoogleを表示しとく意味があるのか? 取り敢えず適当にgoogleで検索して検索結果画面のURL調べれ あとSystem.Web.HttpUtilityのUrlEncodeとUrlDecode調べれ
- 375 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:11:44 ]
- >>373
webにいろいろと自動入力するシステムを作らないといけなくなりまして。 たとえばブログにあらかじめTextboxに入れておいたIDとパスを入れて自動ログインするとか そういったものなんですけど、webのフォームに、Textboxから値を入れる方法が知りたくて、 Googleはそのたとえのつもりでした。 http通信?の意味がよくわからないんですが、ソフト内のブラウザ上で表示させる必要はあります。
- 376 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:13:21 ]
- >>374
Googleっていうたとえが悪かったですね。ごめんなさい。 >>375で書いたように、Webサイト上のフォームにソフトのTextBoxで記載したワードを記入するのが目的です。
- 377 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:27:16 ]
- WebRequest を使って WebResponse を取得し、
その内容を反映させては。
- 378 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:30:01 ]
- 素直にHTTP POSTしろよ低脳。
こんなの厨房でも出来るぞ
- 379 名前:デフォルトの名無しさん [2008/05/23(金) 17:39:43 ]
- >>377
どのメソッドを使えばいいかわからなかったので、ググってみたらできそうです、ありがとうございます。 >>378 HTTP POSTで検索したらそれらしいのがでてきました。ありがとうございます。
- 380 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:40:12 ]
- おい小学生かもしれねえだろうが
- 381 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:41:46 ]
- >>368
おそらくやりたいことは public double X { get; private set; } これだけでいいと思われる。 これでXのセッターはprivateになる。
- 382 名前:デフォルトの名無しさん [2008/05/23(金) 17:43:52 ]
- >>380
そのとおりです小学校3年生です。 バカな質問してすいませんでした。
- 383 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:46:22 ]
- >>380
小学生に失礼だ
- 384 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:48:58 ]
- >>381
自動プロパティのセッタゲッタの片方だけのプロテクションを帰ることは出来ないよ。
- 385 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:52:20 ]
- >>384
いきなりどうしたの? 俺ができてるからそう書き込んでるんだけど。
- 386 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:54:35 ]
- 俺もプロパティはほとんど
public Foo Foo{ get; private set; } だな 普通のプロパティなんてかったるくて書いてられん
- 387 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:55:26 ]
- >>384
知ったか? それとも何か他に深い意味があるの?
- 388 名前:358 mailto:sage [2008/05/23(金) 18:08:21 ]
- うまく書けるようになりました。
ありがとうございました。
- 389 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:15:11 ]
- >>372
まあ、解決したならそれでいいけど、これでいいよ。 private void button1_Click(object sender, EventArgs e) { HtmlElement input = webBrowser1.Document.All.GetElementsByName("q")[0]; HtmlElement form = webBrowser1.Document.All.GetElementsByName("f")[0]; input.SetAttribute("Value", textBox1.Text); form.InvokeMember("submit"); } >>378 ログイン処理とかだと、ログイン前のセッションクッキー引き回しとか、 JavaScriptによるワンタイムキーの生成とかが必要になると、そのへんは ブラウザに任せた方がはるかに簡単。
- 390 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:34:21 ]
- 便乗だけどオンラインゲームの自動ログインはどうやればいいの?
ttp://dobon.net/vb/dotnet/internet/webrequestpost.html ここを参考にしたけどだめみたいなんだ。 たとえば ttp://suddenattack.redbanana.jp/ ここに自動ログインするためにはどうしたらいいのかな?
- 391 名前:デフォルトの名無しさん [2008/05/23(金) 19:21:51 ]
- >>389さん、ありがとうございます!
検索してもわからず、困っていたところでした。 ("q")と("f")のところにhtmlからそのフォームのnameをもってきたらいいということですか? やってみます!またできたら報告しますね。
- 392 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:28:24 ]
- Hashtableから値取り出すときにキャストしないでいい方法はない?
面倒くさいんですけどん。
- 393 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:29:59 ]
- VS2005以降ならDictionaryを使う
- 394 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:31:53 ]
- >>393
サンクスです。 こんなのがあったんですね。
- 395 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:43:16 ]
- GenericはC#2.0の最大の目玉じゃないか…
- 396 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:38:55 ]
- >>390
やろうと思えばできる。 IDとパスのINPUTタグのIDを調べ>>389のようにIDとパスを入力し、 こいつらを管轄するフォームでsubmitする。 ヒント:javascriptを実行してからsubmitを行う。
- 397 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:52:21 ]
- windowsアプリなんですが、メインのフォーム内のメソッドで
そのフォームがもってるある型の変数全部の値を一括で変更 する方法はありますか? おねがいします。
- 398 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:56:16 ]
- リフレクションを使います
- 399 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:58:34 ]
- >>396
javascriptは全然わからないから詰まってます。 submit()を実行すると無限に更新されるみたいなのですが・・・。 htmlソースみるとLoginLeftFormCheck()を呼び出してるみたいなのですが関係ないですかね。
- 400 名前:390 mailto:sage [2008/05/23(金) 21:04:58 ]
- 意味も分からずコピペなんですけど、
public Form1() { InitializeComponent(); webBrowser1.Url = new Uri("suddenattack.redbanana.jp/index.asp"); } private void button1_Click(object sender, EventArgs e) { HtmlElement id = webBrowser1.Document.All.GetElementsByName("user_id")[0]; HtmlElement pass = webBrowser1.Document.All.GetElementsByName("user_pwd")[0]; id.SetAttribute("Value", "aaaaa"); pass.SetAttribute("Value", "bbbbbb"); } こんな感じでフォームに文字が入りました。 あとはログインボタン押して、ゲームスタートボタン押すだけなんですが・・・
- 401 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:05:33 ]
- >>396
いやそいつを実行するの。
- 402 名前:デフォルトの名無しさん [2008/05/23(金) 21:06:25 ]
- >>400
ログインボタン、エンターキーおしたらいけないの?
- 403 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:06:26 ]
- >>399
JavaScriptもわからないようならC#とか無理だから諦めろ。 なでしこでもやってろ
- 404 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:06:59 ]
- 安価ミス
>>396→>>399
- 405 名前:390 mailto:sage [2008/05/23(金) 21:11:35 ]
- >>401
実行するってことはInvokeMember("LoginLeftFormCheck")ってことですかね? >>402 フォーム上ならエンターキーでもログインできます。
- 406 名前:401 mailto:sage [2008/05/23(金) 21:28:18 ]
- すまん。VS2005についているWebBrowserは詳しくないんだ。
COMコンポーネントのMicrosoft Web Browserコントロールと、Microsoft.mshtmlというライブラリでしか 俺はできないんだ。(メソッドやら何やらがわかりやすい。) Microsoft.mshtmlは.NetFramework1.0にしかついてこんのだ。 で、このMicrosoft.mshtmlを使ったやり方で説明すると、 ・・・・・ Dim id As mshtml.HTMLInputElement = doc.getElementById("ID_user_pwd") id.value = "id" Dim pwd As mshtml.HTMLInputElement = doc.getElementById("ID_user_pwd") pwd.value = "password" doc.parentWindow.execScript("LoginLeftFormCheck()") ' LoginLeftFormCheck()を実行 pwd.form.submit() ' フォームをsubmit(これはInvokeMemberでできるとおもわれ) これでログインできる。 ゲームのスタートボタンはFlashであるために、プログラム上で操作する方法があるかもしれないが、 俺は残念ながらわからんかった。 まえ、ガンストの自動ログインツールを作成したときは、画面にブラウザを貼り付けて、 ゲームのスタートボタンが確実に見えるサイズに広げて、APIでマウスを操作するプログラムを書くという 逃げ道でやった。
- 407 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:52:19 ]
- Windowsアプリケーション学習用にC#をやろうと思っています。
Microsoft Visual C# 2008 Express EditionをSDKとSQL Serverつきでインストールしました。 しかし何をどう作っていったらいいかわかりません。 プログラム経験はPHPでWebプログラム(こちらは趣味で3年以上やっていて2ch風掲示板ぐらいのものは作れます)、 あとオブジェクト指向の勉強にJavaを少しいじった程度です。 Javaでは簡単なファイル操作から、オブジェクトの継承や例外処理など基本的な勉強しかしていません。 Webプログラムはイメージ的にわかるので、ASP.NETあたりはなんとか理解できると思うのですが、 Windowsアプリケーションとなると右も左もわかりません。 まずは何をやったらいいのでしょうか?
- 408 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:54:25 ]
- 何をやりたいの?
- 409 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:55:56 ]
- >>407
スレチこっちで質問しなおせ ttp://pc11.2ch.net/test/read.cgi/tech/1160209713/ ttp://pc11.2ch.net/test/read.cgi/tech/1208248879/
- 410 名前:407 mailto:sage [2008/05/23(金) 22:04:58 ]
- >>408
とりあえずWebアプリケーションでいうチャットやカウンターのような位置づけなものを作ってみたいです。 (ようするに簡単なものです) おそらくメモ帳のようなものになるのでしょうか? ペイントのようなものも作ってみたいですが、メモ帳に比べると難易度はあがりそうですね。 簡単なテーブルゲームなんかも作ってみたいですが、アルゴリズムの勉強はしてないので少し厳しそうです。 >>409 了解です。そちらで質問しなおします。
- 411 名前:390 mailto:sage [2008/05/23(金) 22:15:45 ]
- >>406
どうもありがとうございます。 webBrowser1.Url = new Uri("javascript:" + Uri.EscapeDataString("LoginLeftFormCheck();")); で無理やり実行してみたらfalseが返ってきちゃいました。 マウス操作も考えたんですけど、ブラウザやマウスが勝手に動く様が見えちゃいますよね。。
- 412 名前:397 mailto:sage [2008/05/23(金) 22:32:25 ]
- すいません。リフレクションを使っても取り出せるのは
型情報でインタンスの値は取り出せないのではないでしょうか? もう少しキーワード教えてください。
- 413 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:43:15 ]
- 型情報からフィールド一覧取れるだろ
FieldInfoから値取得できる
- 414 名前:401 mailto:sage [2008/05/23(金) 22:51:20 ]
- >>406
いや、LoginLeftFormCheckは単に実行するだけでOK。 submitすりゃ、ログインされる。 javascriptは多分InvokeScriptでできない? マウスは勝手に動くようにみえちゃう。これは仕方ない。
- 415 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:23:57 ]
- >>411
>>409
- 416 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:34:10 ]
- ここはなにを話すスレ?
- 417 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:36:31 ]
- C#プログラマの雑談スレ
- 418 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:44:16 ]
- >>1
>(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 C#プログラマの雑談スレなんて限定的には書いてないけど? しかもスレタイは「相談室」だぞ
- 419 名前:397 mailto:sage [2008/05/23(金) 23:44:32 ]
- FieldInfoのGetValue,SetValueでできました。
ありがとうございます。
- 420 名前:デフォルトの名無しさん [2008/05/23(金) 23:55:28 ]
- JRq8rZjk7c
鳥解析4649
- 421 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:04:49 ]
- 私怨乙
- 422 名前:390 mailto:sage [2008/05/24(土) 01:09:12 ]
- >>414
ありがとうございました。 ゲームスタートのFlashもjavascriptを呼んでいましたので直接呼んだら開始できました!
- 423 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:53:52 ]
- >>416
C#、.NET(ただし、C#を使っている前提)に関することで、 主にふらっとだとアレな話題や雑談とかのスレ と、俺は解釈してる ここで質問すること自体は悪いとは思わないが、 ふらっとの方がより適切だとも思ってる
- 424 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 04:07:26 ]
- ふらっとは初心者用だから。
回答者も初心者スレにいなかったら結局このスレに質問しに来るのでは? たらい回しはいかんよ。
- 425 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 04:09:08 ]
- 俺はふらっとが初心者用でこっちが中級者の集まりだと思っていた。
こっちでの質問はOOPとか言語仕様なりの高度な質問になる感じ
- 426 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 04:11:33 ]
- >>425
元の趣旨はそうだが実情は逆
- 427 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 04:44:53 ]
- そんなの主観的なんだからどっちだっていいだろ。
質問者が初心者と自覚した場合ふらっとに行けばいいと思うよ。 ただそれだけ。
- 428 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 04:57:34 ]
- 複数あるのは害でしかない
みんなわかってるはずだ
- 429 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 05:05:02 ]
- >>424
心配無用。 どうせ皆も両方見てるんでしょ。
- 430 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 05:42:36 ]
- どっちか削るとしたら明らかに初心者用だよな。
で、もし削ったとしたら初心者隔離スレも欲しくなるよな。 ここまで言えばわかるよな。
- 431 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:55:50 ]
- ぬるぽ
- 432 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:40:47 ]
- >そんなの主観的なんだからどっちだっていいだろ。
>質問者が初心者と自覚した場合ふらっとに行けばいいと思うよ。 えてしてその主観が間違ってるから問題になるんだが。
- 433 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:28:08 ]
- オレが全部答えてやんよ
だからもう喧嘩するな
- 434 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:44:12 ]
- 整数5ずつにしたいのですが……うまく言えないのですが、例えば、
96なら95、98なら100、53なら55、42なら40 と言うふうにしたいのですが、どうすればいいでしょうか?
- 435 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:46:22 ]
- C#で自作した外部アプリケーションを呼び出したいのですが、
Process process = new Process() ; process.StartInfo.FileName = "hoge.exe" ; process.Start() ; こんな風に実行することが出来るようなのですが、 外部アプリケーション側に文字列を複数与えたいのです。 その場合呼び出す側と呼び出される側はどのような準備をすればいいのでしょうか?
- 436 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:49:25 ]
- >>434
問題を定義しなおしてから来い。 >>435 Process.Start(hoge.exe,"arbitrary string");
- 437 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:52:06 ]
- 俺は>>434の言いたい事がわかったが次にどう書いてくるか楽しみなので伏せておく。
- 438 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:53:32 ]
- >>434
int number; number = 適当な数値; if (number % 10 < 4) number = number - (number % 10); else number = number + 10 - (number % 10); 適当に今思いついたがこんなんで良いか?
- 439 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:58:08 ]
- あ、5ずつか普通に四捨五入してるわこれ
- 440 名前:435 mailto:sage [2008/05/24(土) 18:00:09 ]
- >>436
文字列を複数渡したいのですが Process.Startの第二引数はstring[]でもいいのですか? それと受け取る側はどうすればいいのでしょう?
- 441 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:01:03 ]
- >>438
ありがとうございます。 さっそく導入してみたのですが、これだとただの10ずつになってしまうのですが……。 っと書いていたら439の返事がきました。 ありがとうございます。 こういうのも四捨五入というのですか……。 勉強になりました。
- 442 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:02:00 ]
- >>440
無理。記号を決めてそれを受け取る側で改行と見なすくらいしかない
- 443 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:02:40 ]
- >>438の使って
if (number % 10 < 5) number = number - (number % 10)+5; else number = number + 10 - (number % 10); でいいんじゃね?
- 444 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:02:43 ]
- あ、ちょっといじったらできました。
もうちょっとテストして、また報告させていただきます。 本当にありがとうございました。
- 445 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:04:33 ]
- 連投失礼します。
>>443 ありがとうございます。 それでいけそうです。 これまたもう少しテストしてきます。
- 446 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:06:56 ]
- こうでしょ。
int mod = x % 5; x += mod > 2 ? 5 - mod : -mod;
- 447 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:08:21 ]
- >>442
string一つだけなのですか。 受け取る側はどうすればいいですか? 受け取る側はコンソールではなくフォームアプリケーションです。
- 448 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:17:35 ]
- >>447
スペース区切りとかで渡して、 splitで分割するなりすればいいんじゃね?
- 449 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:19:37 ]
- >>446
ありがとうございます。 >>443さんの方法だと、きりのいい数字だとちょっとおかしくなるようでした。 446さんの方法は私程度にはどういう処理をしているのかさっぱりなのですが、 問題なく使えます。 みなさん本当にありがとうございました。
- 450 名前:435 mailto:sage [2008/05/24(土) 18:30:42 ]
- Environment.CommandLineで受け取るか、
コンソールと変わらずにエントリポイントから受け取ればいいんですね。
- 451 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:40:20 ]
- >>431
AutoNullpoOudaki gattu = new AutoNullpoOudaki(); gattu.Execute();
- 452 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:11:50 ]
- 文字列から動的にExpressionTreeやFuncを得ることって出きるん?
ttp://ufcpp.net/study/csharp/sp3_expressionsample.html ここで書いてあるような子としてみたかったんだが、CodeDom.GetExpressionFromとか見あたらず、いろいろググってもそれらしいのにたどり着けず・・・ CodeDomでFuncを返すメソッドを持つクラスをコンパイルして実行して呼び出せば出来無くないんだけれどもう少しまともな方法で・・・
- 453 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:31:07 ]
- >>452
そのページにある「ソース一式」のところからソース落して、 中身の「MyMath\CodeDom.cs」の中にその GetExpressionFrom の実体がある。
- 454 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:32:55 ]
- ちなみに、そのソースの GetExpressionFrom はまさに、その
「CodeDomでFuncを返すメソッドを持つクラスをコンパイルして実行して呼び出せば」 をやってるだけ。 もう少しまともな方法、確かに欲しいよね。
- 455 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:47:03 ]
- >>453
さんくすこ。 てっきり.NET3.5以降で追加されたのかと思ってた・・・orz CocoaのようなKVCとかやるためにリフレクションからコード生成→lambdaにしてそれなりに高速にアクセスみたいなことしたかったんだが・・・ 場合によって、無理やりコンパイルでlambda変換するようにしようかな・・・ あぁ書いてて思ったが、式ツリー手動でいじくればいいのか。よくわからんがやってみるノシ
- 456 名前:デフォルトの名無しさん [2008/05/24(土) 20:04:19 ]
- Compact Frameworkでやっててもこっちで大丈夫ですか?
もし適切なところが他にありましたら誘導お願いします(´・ω・`) ボタン押したらwavファイルをプログラムに埋め込んで、ボタン押されたらそれを再生させたいんですが、上手く再生されません。 hi.wavが再生させたいファイルです。 private void button1_Click(object sender, EventArgs e) { System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly(); string file = a.GetName().Name + ".hi.wav"; System.IO.Stream s = a.GetManifestResourceStream(file); SoundPlayer player = new SoundPlayer(s); player.Play(); } サンプルを見ながらこのようなソースを組んで、 プロジェクトのプロパティのリソースのところにhi.wavを追加して、 Persistenceを「.resxに埋め込まれました」に設定しました。 しかし、動かしてみると標準のビープ音しかなりません。 デバッガで見ると、sがnullのままのようで、ファイルを読み込んでいないようです。 埋め込み方が間違ってるんでしょうか・・・。 よろしくお願いします(´・ω・`)
- 457 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:26:10 ]
- >>456
SoundPlayer player = new SoundPlayer("path"); player.PlaySync();
- 458 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:37:51 ]
- メッセージとしてスウェーデン語文字を表示させたいのですが、
なぜか読み込んでくれずにエラーが起きてしまいます どうしたらよいのでしょうか
- 459 名前:456 mailto:sage [2008/05/24(土) 20:42:51 ]
- >>457
ありがとうございます。実際にwavファイル置いてパス指定して音を鳴らすことは問題なくできるんですが、 埋め込めたら良いなぁ・・・ってことなんです。 もしかして、埋め込みは無理ってことですか?
- 460 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:42:50 ]
- >>452
これがクエリ式のパーサ持ってたと思う。使い回せるかも。 ttp://www.codeplex.com/nlinq 使い方は"poorman's linq"でぐぐる。
- 461 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:45:46 ]
- >>458
取りあえずエラーとやらに付随してるメッセージを読み上げるといいよ
- 462 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:46:10 ]
- >>458
OSにスウェーデン語パックを導入しる
- 463 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:48:49 ]
- >>462
今からググってきます。ありがとうございました
- 464 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:09:12 ]
- レベルの低い質問で申し訳ありません。
出力の種類を「クラスライブラリ」としてあるプロジェクトを、スタートアッププロジェクトに設定した他のプロジェクトに参照させるにはどうすればよいのでしょうか。 そのままusingしようとしても「名前空間がない」と言われてしまいます。
- 465 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:12:54 ]
- >>464
ソリューションエクスプローラで参照したいプロジェクトを右クリックして 参照の追加 → プロジェクト
- 466 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:16:17 ]
- >>434
今更だけど、要は「5の倍数への丸め」、もしくは「丸め幅5での丸め」でしょ? 個人的には汎用的なこれを使いたいところ var y = (int)Math.Round((decimal)x / n) * n; まあ、整数型に限定してもこんなところじゃないか var y = (x + (n / 2)) / n * n; 因みに、後者はaway from zeroだが、前者はRound()のmode指定で選択可 対象が整数値で、かつ丸め幅が奇数ならどちらでも同じ
- 467 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:37:56 ]
- >>465
ありがとうございます。
- 468 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:54:56 ]
- >>456
もしかしたら、Compact Frameworkじゃ違うかもしれないけど 多分、その方法はファイルをresxに埋め込まない古いやり方。 wavファイルをプロジェクトに追加して ビルドアクションを「埋め込まれたリソース」にすれば、 その方法で鳴る筈。 んで、2005以降は、リソースエディタを使ってresxに埋め込んで、 "HI"がリソース名になったとしたら、 System.IO.Stream s = Properties.Resources.HI; SoundPlayer player = new SoundPlayer(s); player.Play(); で一応鳴る。 でも、ストリームのWAVEデーターの再生は、 GC絡みで問題があるらしい。 詳しくはこれを。 ttp://dobon.net/vb/dotnet/programing/playembeddedwave.html
- 469 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:05:15 ]
- ブロック崩しを作ったのですが、ボールが宙に浮いているときにスペースキーを押すと、
ボールが画面外に飛び出してしまうのです。どうにかなりませんか? ちなみにソースはこれ www.borujoa.org/upload/source/upload18960.txt
|

|