1 名前:名無C mailto:sage [2019/03/07(木) 06:35:41.12 ID:6L3KEJfe0.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 mevius.5ch.net/test/read.cgi/tech/1492818720/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part141 mevius.5ch.net/test/read.cgi/tech/1544839627/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://docs.microsoft.com/en-us/dotnet/standard/class-libraries referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
797 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 13:06:24.02 ID:aDjFJI/sa.net] 考え直したらQueueやStackのことを言っている気がしてきた それらのデータ構造がもうあるんだからそれ使えば良いんじゃね
798 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 15:39:49.17 ID:8cYUuN//0.net] すべての配列は〜というのが考え方が そもそも乱暴で 目的に合わせてデータ構造を選ぶものじゃ
799 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 16:14:40.10 ID:MBpEq5nf0.net] Visual C#で電卓を作ってます。 ある数字ボタンをクリックしたとき、(Button)sender).TextでTextran欄の文字を取得できますが クリックではなく、キーボード入力で同様にしたいのですが、どうすればできますか?
800 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 16:26:29.83 ID:VR7g318H0.net] >>788 KeyPressやKeyDownなどのイベント ただし該当するコントロールにFocusされてないと反応しないのでフォームで全部受けるようにするとはかどる https://dobon.net/vb/dotnet/form/keypreview.html
801 名前:デフォルトの名無しさん [2019/05/11(土) 17:24:06.36 ID:qy13k0f30.net] System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(@"C:\Users\◎◎\Desktop\volly.gif"); this.pictureBox1.Image = bmp; パスについてなのですが、相対パスは使えないということがあるんでしょうか。相対パスだとパラメータが違うというエラーが出ます。 フォームアプリケーションなので、form1.csにコードを書いています form1.cs img(フォルダ) └volly.gif という構造になっています しかし、img\volly.gif だとエラーになります 何が悪いでしょうか。
802 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 17:26:35.03 ID:Q2bK8ZXg0.net] >>790 .\img\volly.gifじゃね?
803 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 17:31:33.00 ID:vfaLavs00.net] 実行時のカレントフォルダーが合ってないと思う
804 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 17:56:52.10 ID:lpN0Lm9o0.net] デバッガでブレイクしてイミディエイトウィンドウとかで Environment.CurrentDirectory確認すると良いよ
805 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 18:25:33.06 ID:dxU2Wm5sa.net] >>790 相対パスとかの以前の問題 実際の環境にimgフォルダが作られているか? *.exeと言った実行ファイルのある場所を見てみたらいい 多分作られてないしその
806 名前:にgifファイルも作られてない [] [ここ壊れてます]
807 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 18:56:38.28 ID:VR7g318H0.net] >>790 >>794 を参考にするべきだけどパスの位置を確認したいのなら読み込む前のところで MessageBox.Show(System.IO.Path.GetFullPath(@"img\volly.gif"));//指定しようとしているパスを入れる とでも入れとけばその相対パスがどこを指しているのか絶対パスが表示される 相対パスはソースファイルの位置からじゃなく実行ファイルの位置から作られる
808 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 19:09:02.07 ID:vfaLavs00.net] >>795 > 相対パスはソースファイルの位置からじゃなく実行ファイルの位置から作られる これは正しくないよ。その時のカレントフォルダが基準。 何もしていなければ多くの場合は実行ファイルの場所と一致するから、結果としてそうなることが多いけど。
809 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 19:52:49.57 ID:VR7g318H0.net] >>796 それならexeと同じディレクトリのところから使うには System.IO.Path.GetDirectoryName(Application.ExecutablePath)とか使って必ず絶対パスに直さないと危ないってことか
810 名前:デフォルトの名無しさん [2019/05/12(日) 10:29:51.59 ID:zQc98Y8H0.net] Console.WriteLine(System.Environment.CurrentDirectory); としても出力には何も出てこないのですか? 出てこないです 作業フォルダっていうのはform1.csとは別のファイルのことなんですね
811 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 10:48:00.86 ID:NzWVi3Qm0.net] console覗くか traceあたりに出力しないとでは
812 名前:デフォルトの名無しさん [2019/05/12(日) 10:52:27.58 ID:zQc98Y8H0.net] おっ いけました '2d_engine.exe' (CLR v4.0.30319: 2d_engine.exe): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ja_b77a5c561934e089\mscorlib.resources.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。 これで正しいのかわからないですが、なんで実行ファイルがこんな場所にあるんでしょうか。プロジェクト内にあるのかと思ってましたが
813 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 10:53:02.25 ID:M17KJIhd0.net] >>798 WinFormsアプリはそのままではConsoleを使用できない Consoleを自分で準備すれば使えるが、通常は使わないかな フォルダ(≒ディレクトリ)とファイルは違うぞ
814 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:02:52.23 ID:NzWVi3Qm0.net] 謎は解けた
815 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:03:02.94 ID:PIRDu/CH0.net] >>800 その絶対パスは実行ファイルじゃない その表示されているところにConsole.WriteLineで書き込んだ内容出てくるはず
816 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:04:19.53 ID:JwWGS0EoM.net] 空のコンソールアプリ作ってそこで実行して
817 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:06:21.31 ID:JwWGS0EoM.net] そのgifファイルは実行ファイルが作られた場所に自動でコピーされてないので コピーされるようにgifファイルの設定帰るしかない
818 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:08:55.17 ID:M17KJIhd0.net] >>800 勘違いしてる。Console使わず、 MessageBox.Show( System.Environment.CurrentDirectory ); ってやってみてよ。
819 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:35:01.56 ID:1UlYWsgm0.net] >>800 カレントディレクトリはexeのあるディレクトリとは別物だからです System.AppDomain.CurrentDomain.BaseDirectory を使ってください
820 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:42:27.50 ID:Zs5BDDrj0.net] AllocConsole() してみなされ
821 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:46:33.54 ID:7nn+3/Jt0.net] >>800 プログラムの実行ファイルがある場所とは別に、プログラムの実行時に「どのフォルダでプログラムを実行するか」という概念があるのは分かる?
822 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:49:29.62 ID:PIRDu/CH0.net] 先生多すぎて混乱してそうw
823 名前:デフォルトの名無しさん [2019/05/12(日) 13:55:38.46 ID:zQc98Y8H0.net] 混乱してるんで一度整理します
824 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 14:13:47.11 ID:PIRDu/CH0.net] そもそもカレントディレクトリを表示させる必要があるのか? 画像をPictureBoxに表示するのが目的じゃなかったのか
825 名前:デフォルトの名無しさん [2019/05/12(日) 15:18:28.27 ID:zQc98Y8H0.net] そうなんですが、そのために相対パスを設定したいんです 絶対パスでも別に不自由しないですが、ソフトを作るときは相対パスも使う
826 名前:ニ思うので [] [ここ壊れてます]
827 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:40:46.00 ID:Q+XtJRAz0.net] >>790 VisualStudioでF5実行やデバッグをすると(何も設定を変えてなければ)ビルド出力先がカレントディレクトリになる 相対パスでエラーになる原因はビルド出力先にimg\volly.gifが存在しないから なのでimg\volly.gifをビルド出力先にコピーしてやれば相対パスで読み込めるようになる プロジェクトエクスプローラーでimg\volly.gifを右クリックしてプロパティを開いて 「ビルド時のアクション」を「なし」に変更 「出力ディレクトリにコピー」を「新しい場合はコピーする」に変更 これでビルドすると出力先フォルダにimg\volly.gifがコピーされるようになる
828 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:41:40.00 ID:CayLEbz10.net] >>813 実は業務ではカレントディレクトリをあてにした動作はさせない なぜなら制御できないから なので相対パスをプログラムで取得したら 自分が基準とするディレクトリパスと自力で連結させて絶対パスにして使う
829 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:43:12.88 ID:Q+XtJRAz0.net] 画像ファイルがたくさんあって1こ1こ設定するのがめんどくさい場合は imgフォルダを右クリックして同じようにコピーの設定をする そうすれば1つの設定でフォルダごとまるごとコピーしてくれる
830 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:54:06.76 ID:0iYfvooEa.net] まあ、そもそも特に理由がなければ画像ファイルはリソースに突っ込むべきだね。 どうしても生の画像ファイルを使いたいならソリューションエクスプローラーからプロジェクトに追加して プロパティウィンドウの「出力ディレクトリにコピー」の値を「常にコピーする」にすれば ビルトすると自動的に実行ファイルと同じディレクトリにコピーされるようになる。 ディレクトリの階層を作りたいならソリューションエクスプローラ上で階層を作れば それがそのまま反映されてコピーされる。 実行ファイルのディレクトリはこれで https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.application.startuppath
831 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 16:00:55.91 ID:xH15WcK+a.net] OpenFileDialogなどを使うだけでカレントディレクトリは変わるし EXEのショートカット経由で起動する場合は任意のカレントディレクトリ位置に出来るし 他プロセスからWorkingDirectory設定無しで起動される場合も考えたりすると プログラム中で内部的に相対パスを保持するのは構わないけど IO系APIを呼び出す時は、AppDomain.BaseDirectoryなどと結合して絶対パスにしてから渡したほうがいい
832 名前:デフォルトの名無しさん [2019/05/12(日) 16:17:07.77 ID:zQc98Y8H0.net] なるほど 自分で絶対パスを1つ決めて、そこを起点にすると
833 名前:デフォルトの名無しさん [2019/05/12(日) 17:07:03.34 ID:zQc98Y8H0.net] 関係ないんですけど、コードってどこに保存してますか? 普通にテキストエディタに保存してますけど
834 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:15:13.31 ID:Zs5BDDrj0.net] 大事な物は心の中に
835 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:22:08.37 ID:O1RPDIWFM.net] >>820 一般的にはGitを使ってGitHubで管理する だけど今の君のレベルではそんなのは必要ない 今の君のレベルで書いたコードなんて一ヶ月後にはゴミであり、大切に保存する価値などない 一ヶ月後のレベルの上がった君から見ればゴミだという意味であり、決して悪い意味じゃないから勘違いするなよ
836 名前:デフォルトの名無しさん [2019/05/12(日) 17:25:13.38 ID:zQc98Y8H0.net] 自分の環境の場合、プロジェクトフォルダ\bin\debug\hoge.exe という場所に実行ファイルが作られるようです Cフォルダの直下あたりに作られるという説明がされちえますが、何か間違ってますかね //カレントディレクトリの取得 MessageBox.Show(System.IO.Directory.GetCurrentDirectory()); 場所ってのは自動的に決まる感じですか
837 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:06:37.88 ID:hmzYcUWua.net] >>823 日本語で 何を言ってるのかさっぱり分からんよマジで
838 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:42:19.48 ID:Mxa5Iz6jd.net] >>822 gitサーバーはいろいろ使われてるのにGitHubが一般的は言いすぎだろw
839 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:49:55.29 ID:JwWGS0EoM.net] この人はソースをテキストエディタに保存していると言ってるから iOS使いなんだろうなと思う
840 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 19:28:54.08 ID:eC5ErjVyd.net] 壮大な計画立てて時間だけがかかって何も完成させられない典型的な例
841 名前:デフォルトの名無しさん [2019/05/12(日) 19:36:30.99 ID:zQc98Y8H0.net] すみません がんばります
842 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:05:40.63 ID:TmkC4DiT0.net] LINQ勉強しててよくわかんないんですけど範囲変数ってあれ事前に宣言しなくていいんですか? マイクロソフトのサンプルとか見ても例えばselect score in scoresとか出てきてscoreどこから出てきたってなるんですけど 全体的な印象ですけど、SQLはちょろっとかじったので列名無いのにSQLっぽく書いてるLINQってなんかしっくりこないんですよね……
843 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:31:12.34 ID:RcOwQ/d80.net] >>829 Linqはクエリ式よりメソッド構文の方がとっつきやすい。 クエリ式はSQLに似てるけど、C#の文法に照らすと異質だしな scores.Select(score => ・・・); scoreはどこから出てきたの?ってことならまずはラムダ式からじゃないかな
844 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:31:33.06 ID:5S2KiOuR0.net] まずLINQとクエリ構文は別物だぞ > select score in scores select句はクエリ構文の最後に抽出するものを指定するんだからこんなのはあり得ない select句じゃなくてfrom句だろう scoreはそのクエリ構文内で使うローカル変数的なものなんだからクエリ構文内で出てくるのが当たり前 列名が無いってのは単に数値の配列とか相手にしてるからじゃね SQLは二次元相手にしか使わないがLINQ/クエリ構文は1次元相手にも使えるからな scoresがclass Score { public string Name; public int Value; }の配列とかなら from score in scores select score.Value みたいに「列名」が出てくる あと重要なことだが、クエリ構文は使いどころがあんまり無い 基本的にLINQには拡張メソッドを使う
845 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:32:12.36 ID:tDx5/mlf0.net] >>829 メソッド式使えよ
846 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:33:30.63 ID:tDx5/mlf0.net] SQLでもテーブルの別名使ったりするやろ
847 名前:入門者 mailto:sage [2019/05/13(月) 07:59:49.56 ID:W1wujo120.net] https://ideone.com/mKdtnM 独習C#のコードなんですが170行目のshapes[i].Nameは何故実行出来てるのでしょうか? Nameプロパティには何も記述がないのですが・・
848 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 08:25:11.57 ID:mnyzhKg9a.net] >>834 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties
849 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 08:29:59.30 ID:V/EVdZRD0.net] >>834 それを学ぶのがその章の目的じゃないの? Nameプロパティの定義は71行目 163行目のshapes[0].Nameは引数で指定された"right"がセットされる。 164行目のshapes[1].Nameは省略時引数により139行目のコンストラクタを経由して"rectangle"がセットされる。 165行目のshapes[2].Nameは省略時引数により134行目のコンストラクタを経由して"rectangle"がセットされる。 166行目のshapes[3].Nameは省略時引数により106行目のコンストラクタを経由して"trizngle"がセットされる。
850 名前:入門者 mailto:sage [2019/05/13(月) 08:34:33.58 ID:W1wujo120.net] >>836 そうなのですが でもvalueで代入してないのに何故Nameプロパティが機能してるのか分からなくて… setとgetの中身を記述しなくてもプロパティは機能するのですか?
851 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 08:52:41.32 ID:VAfV6Qs50.net] public string Hoge { get; set; } は private string _Hoge; public string Hoge { get { return this._Hoge; } set { this._Hoge = value; } } の省略構文みたいな感じになる (実際にはこの_HogeはC#からアクセスできない名前にコンパイルされる)
852 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 08:57:28.04 ID:WhpQbL/L0.net] >>837 string Hoge { get; set; } は自動実装プロパティと呼ばれるもので、 内容は>>838 の通り。
853 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 10:05:53.21 ID:yzhNtOt8H.net] ありがとうございました >>831 https://docs.microsoft.com/ja-jp/dotnet/csharp/linq/query-expression-basics そうですねfromの間違いでした失礼しました 「scoreはそのクエリ構文内で使うローカル変数的なもの」ってのは割としっくり来ました 「LINQ/クエリ構文は1次元相手にも使える」SQLとは全くの別物と考えて頭からっぽにして勉強しなおしたほうがよさそうですね
854 名前:デフォルトの名無しさん [2019/05/13(月) 15:49:43.81 ID:d2gOVbtC0.net] vsを軽くするセッティングはないでしょうか? 重くなる原因はhddへのアクセスが100になってしまうからです SSDはないです
855 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:02:30.23 ID:UKQBojaO0.net] object 型の変数 x に int 型にキャストできる型(short 型や byte 型など)の値が代入されているときに その値を int 型にキャストしたいのですが、(int)x とすると InvalidCastException が投げられてしまいます。 x に代入されている値が例えば short 型だと分かっているなら (int)(short)x でうまくいくのですが、 この方法だといちいち値の型を調べる必要があるのでもっとスマートな方法があれば教えていただきたいです。 一応自分でも考えてみたところ int.Parse(x.ToString()) なら x の型によらずうまくいったのですが、 値の変換をするだけなのに文字列を経由するのはすごく無駄なことをしているような気がします。 よろしくお願いいたします。
856 名前:デフォルトの名無しさん [2019/05/13(月) 16:05:08.31 ID:d2gOVbtC0.net] private void Form1_Load(object sender, EventArgs e) { var but = new System.Windows.Forms.Button(); but.Name = "button1"; but.Text = "押せ"; but.Location = new Point(0, 0); but.Size = new System.Drawing.Size(80, 20); Controls.Add(but); } コードでコントロールを追加したいのですが、ボタンは追加されませんでした エラーでも出てくれればいいんですが、エラーは出ません エラーは出ないけど、思い通りに動かない場合、何をヒントにしたらいいでしょうか
857 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:07:12.88 ID:XGLfyuuud.net] ググりゃいくらでも記事出てくるやんけ そいつらは試したの? 自身の環境も書かない、何を試したかも書かない、知識不足なのに勝手に要因を決めつける 初めて質問するならまだしも散々してきといてそれ?
858 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:08:41.09 ID:XGLfyuuud.net] >>844 841に対して
859 名前:デフォルトの名無しさん [2019/05/13(月) 16:14:20.97 ID:d2gOVbtC0.net] 出てきました 場所が悪かったようです ごめんなさい
860 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:14:45.92 ID:UKQBojaO0.net] >>843 そのコードをコピペして試してみたら私の方では問題なく表示されました。 そちらでうまくいかない原因は ・Form1_Load が呼び出されていない ・追加したボタンの上に別のコントロールが重なってしまっている あたりではないでしょうか。 とりあえず Form1_Load が呼び出されているかどうかを確認するために Form1_Load の最後に MessageBox.Show("呼び出されてるよ"); を追加してみて、 メッセージボックスが表示されるかどうかを確認されてみてはいかがでしょうか。
861 名前:デフォルトの名無しさん [2019/05/13(月) 16:15:55.94 ID:d2gOVbtC0.net] >>844 問題はhddへのアクセスです これは公式のサイトでは、SSDへの交換を推奨しています それ以外の手段はないかなと思って質問しました
862 名前:デフォルトの名無しさん [2019/05/13(月) 16:16:41.14 ID:d2gOVbtC0.net] >>847 ありがとうございます 位置が0 0だと左側に隠れてしまうようでした
863 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:23:36.93 ID:UKQBojaO0.net] >>849 解決したようでよかったです。 私も勉強中の身なのでお互い頑張りましょう。
864 名前:デフォルトの名無しさん [2019/05/13(月) 16:31:17.78 ID:fb9Hu3lu0.net] ついでに聞きたいんだけど、このボタンの描画ってUIスレッドで実行されることは保証されてるの?
865 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:34:35.11 ID:VAfV6Qs50.net] >>842 Convert.ToInt32 >>851 それがUIスレッドの仕事なんだけど、何を心配してるの?
866 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:51:55.46 ID:UKQBojaO0.net] >>852 まさに探していたものです! 最悪の場合、型ごとに場合分けしてキャストするメソッドでも 作ろうかと思っていたのですが、実にスッキリ解決できました。 どうもありがとうございました。
867 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 17:46:32.42 ID:W1wujo120.net] >>838-839 詳しくありがとうございます。 前の章にも書いてありました。自分の勉強不足でした…
868 名前:デフォルトの名無しさん [2019/05/13(月) 18:45:40.09 ID:cAHvDA7yF.net] PCからのサウンド出力をイヤホンが刺さっている刺さっていないに関わらず、内部スピーカーかイヤホンか選択して出すにはどうしたらいいでしょう NAudioを使っていろいろ試してるんですがうまくいきません OS Windows10 サウンドデバイスがSpeakers/Headphones Realtek だとサウンドデバイスがスピーカーとヘッドホンに分かれていませんが、これだと無理なのでしょうか
869 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 19:00:08.34 ID:rRpVq2UzM.net] それは間違った機能だから出来たとしても実装するな イヤホンが刺さってたら絶対イヤホンで出せ
870 名前:デフォルトの名無しさん [2019/05/13(月) 20:12:51.62 ID:d2gOVbtC0.net] public Form1() { MessageBox.Show("form1"); } private void Form1_Load(object sender, EventArgs e) { MessageBox.Show("form2"); } フォームアプリについてなんですが、この2つ関数の違いはなんですか? タイミング的にはform1関数が先なんですが、どう使い分けるんでしょうか?
871 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 20:22:07.84 ID:zDycstDZa.net] >>857 先に言語の入門本やサイトなどを読むべき そうすればクラス名と同一名のメソッドには特別な意味があることが分かるし そのキーワードと一緒にイベント名で検索すれば関連する話題も出てくる
872 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 20:29:22.69 ID:XGLfyuuud.net] 何度も何度も基礎からやれって言われてもずっとやらんのだからもう無理だと思う こういうのが才能とかセンスみたいなもんなのかね
873 名前:デフォルトの名無しさん [2019/05/13(月) 20:29:39.44 ID:d2gOVbtC0.net] 調べた限りでは フォームが作られるときと、作られて読み込まれたとき という差でしょうか
874 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 20:38:07.48 ID:jADcqpCya.net] >>855 普通は物理的に切り替えている(ジャックにプラグを差し込むとSP出力が物理的に切断される)から無理でしょうww 恐らくソフトウェアでそれをやってるマシンはないと思うよ
875 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 20:47:37.18 ID:XlJDR9UI0.net] >>855 その機器のドライバにAPIでも無ければ少なくともC#では無理 ハードウェアの方から調べることでここで質問して答えられるようなものではないと思う >>860 bbs.wankuma.com/index.cgi?mode=al2&namber=38433&KLOG=66 コンストラクタはクラスで必ずはじめに実行されるもの イベントメソッドと分けて考えないと
876 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 21:05:00.08 ID:0/Wah16u0.net] >>857 だから入門用の本を読めと何度も言ってんだろうが
877 名前:デフォルトの名無しさん [2019/05/13(月) 21:38:52.34 ID:ZJ4TG7EAa.net] >>856 >>861>>862 ありがとうございます 無理ですか。。 Audio Switcherなるものがあるのでソフトウェアからの制御もなんとか出来るかと思ったのですが
878 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 22:32:05.56 ID:jADcqpCya.net] >>864 ハードウェア的にスプリッターを使ってライン出力かヘッドフォン出力を 二股で取り出せるようにする方が賢明でしょうね 100均で売ってるよ
879 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 22:38:16.41 ID:lwKqLD9e0.net] >>864 いや昔やったこと有るからできるんだが、昔過ぎてやり方思い出せんわ Vistaからマスターオーディオの制御ができるAPIがWindows標準になっていて 当時見たソースの跡地だけ発見したわ https://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control
880 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 22:41:01.01 ID:lwKqLD9e0.net] >>864 ググったらそれらしきもの在ったから、あとは自分で頑張ってくれ mikeo410.minim.ne.jp/cms/~programmingcoreaudiointerface
881 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:02:15.55 ID:jADcqpCya.net] いやいやいやw https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A9%E3%83%BC%E3%83%B3%E3%83%97%E3%83%A9%E3%82%B0 ↑に説明付きの画像が出てるけど、要するにプラグが差し込まれると物理的にSP出力がオープンになる 構造に普通はなってるんで無理ですw その辺テレビとかと何も違わないよ
882 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:05:51.31 ID:0pB96hJZ0.net] プラグが刺されるとオープンになるジャック使ってるのは、プラグが刺されたらスピーカーから音が鳴らなくて良いものだけだろ。 テレビでも最近のはそんなジャック使ってないわw ジャックにプラグ刺されてるか判定してるだけ。 お前はどんなラジカセで書き込みしてるんだ?
883 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:08:05.97 ID:jADcqpCya.net] >>869 確認してから書いた方がいいよ。 特殊な業務用とかフィリップスみたいなところが作ってる超高級品は知らんけど、 大概のTVはそんなもったいぶったことしてないの。する意味がないでしょ
884 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:16:14.24 ID:lwKqLD9e0.net] >>870 WindowsだとUSB経由とかS/PDIDとか有るし、そこに必ずSPが繋がっているとも限らないから 音声の切り替えはソフトでやっているのよ イヤフォンの切り替え機能って俺の記憶だとWindows10 が最初だよ
885 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:26:37.35 ID:lwKqLD9e0.net] >>870 あと、Windowsの機能で切り替えるのは標準の出力先だけだが、当然APIで標準以外の出力先に音声流すことも可能だ
886 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:28:52.35 ID:jADcqpCya.net] >>871 それはオーディオデバイスが複数ある時にどれを有効にするかって話と違うの? あと、高級品のサウンドカードだと複数系統の出力があってそれぞれボリュームコントロールが ついていたりするかもしれないが、そういうの使ってるならこんな質問してないと思うよ。 普通に考えてオンボードのサウンドしかついてない普通のPC前提の質問じゃないの?
887 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:31:41.38 ID:jADcqpCya.net] なんかググるとM/BによってヘッドホンとSP(ライン出力)が排他になってるのと そうでないのがあるみたいだけど、質問者みたいに排他になってる場合は普通は 物理的に切り替えてるはずなんで、ソフトじゃどうにもならんと思うよ
888 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:32:56.12 ID:lwKqLD9e0.net] >>873 普通のパソコンだってUSBのデコーダー付けられるだろ それがどうやって物理的に切り替えられるのか考えてくれよ それと俺は音楽プレーヤーソフト作ったこと有るから、恐らくあんたよりは詳しい
889 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:38:00.03 ID:jADcqpCya.net] >>875 USB接続のオーディオデバイスを使ったら M/Bのヘッドホンからはそもそも音が出ないと思うんだけどね普通は 複数のオーディオデバイスを同時に有効にして同じ音を出す、 なんて芸当できるんだっけ?
890 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:40:11.66 ID:jADcqpCya.net] 光出力が付いてる場合は排他にできるわけないね確かに。 でも質問者がそういう環境ならこんな質問してないわな
891 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:41:57.51 ID:lwKqLD9e0.net] >>876 Windows10は普通にイアフォンとその他が切り替わるように仕様変更されている 勿論それがHDMI経由だろうがSP端子だろうが光出力だろうが
892 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:43:53.50 ID:lwKqLD9e0.net] >>877 つかWindows95の頃から、音声出力はソフトで切り替えるのが常識だよ ハード的に変えるほうが寧ろ珍しい
893 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:51:07.37 ID:jADcqpCya.net] >>878 いやちょっと何を言ってるのか分からないんだけど、 ハードウェアがそうなってなきゃソフトがいくら頑張っても手も足も出ないのよ 質問者の環境はSP出力とヘッドフォン出力が排他的になってる環境で、 その切り替えは普通はメカ接点で物理的に行われるものだから、ソフトじゃどうしようもないよ
894 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:55:36.69 ID:lwKqLD9e0.net] >>880 少なくとも今はHDMI経由でテレビから音声流す機能は標準搭載されているから 年代物のパソコンを除けばデジタル音声出力機能は標準搭載だよ それをどうやってイヤフォンと物理的に切り替えるのか考えたら無理だと判るでしょ Windows10から自動切り替えはできるようになっているけど、当然ソフトで制御しているし それをVista以降はAPIとしてプログラマーが簡単に触れるようになっている
895 名前:デフォルトの名無しさん [2019/05/13(月) 23:55:59.16 ID:ec7a7a6ia.net] いやちょっと何を言ってるのか分からないんだけど、 メカ接点で物理的に行われるが、 SP出力とヘッドフォン出力が排他的になってるのは今時はソフトの設定でしょ?
896 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 23:58:20.52 ID:jADcqpCya.net] >>881 だーから、その場合は普通はM/Bのヘッドホンからは音出ませんよ。 M/Bのヘッドホン端子はオンボードのオーディオデバイスに繋がってるだから >>882 今時も糞もないってだからw M/Bのヘッドホン端子はオンボードのオーディオデバイスに繋がってて、メカスイッチでそれを ライン出力(スピーカー)と切り替えてるだけなので
897 名前:デフォルトの名無しさん [2019/05/14(火) 00:00:01.39 ID:/tIovtjDa.net] Mixer使えって話でしょ
898 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:04:48.16 ID:vkfPDW5o0.net] >>882 サウンドミキサーってのがWindows95には既に付いていて、それで音声の切り替えとかマスターボリュームを制御していたから XPまでのソフトでは大本の切り替えとか不可能だった しかしVISTAから全てソフトから見えるようになって、ソフトごとにどの出力から出すなどの指定ができるようになった 同じパソコンでイヤフォンとスピーカーから違う曲を流すことさえやろうと思えばできるんだよ
899 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:06:27.49 ID:vkfPDW5o0.net] >>884 Mixerを制御するAPIがVISTA以降に公開されたんだよ C#から制御したことも有るし
900 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:14:28.54 ID:94a7CpYNa.net] >>885 えーっとですねえ、だからそんな芸当はHWが対応してなきゃできないんだってw 標準的なPCのオンボードのオーディオデバイスはオーディオ出力が一つしかないので、 そんな芸当は逆立ちしても不可能ですw 物理的な出力端子の数 = オーディオ出力の数 ではないのよ。
901 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:14:35.14 ID:KlvEEe7u0.net] win32apiスレにでも行ってくれ
902 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:15:52.53 ID:vkfPDW5o0.net] UWPのMediaPlayerでもオーディオ出力先は好きなように変えることができる https://docs.microsoft.com/ja-jp/windows/uwp/audio-video-camera/play-audio-and-video-with-mediaplayer このページ内の「特定のオーディオ エンドポイントへの出力」ってのがピンポイントでは有るが、これはUWPのモジュールで最近WinFormsから使えるようになったが まだ未完成な部分もあって割と面倒 ただ、同じことはAPIつかって地道に作ることもできるよ
903 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:20:22.84 ID:vkfPDW5o0.net] >>>887 Windows10なら右下のスピーカーマーク押して「サウンド」ってのを選択すると出てくるダイアログで 「再生」ってタブを押せば、そのパソコンで使える音声出力先が出てくるが 出力が1つしか無いなんて化石のようなパソコンは見たことないわ 最低限スピーカーとイヤフォンとHDMIぐらいは付いている
904 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:22:45.62 ID:94a7CpYNa.net] >>889 まあどっちにしろそれは質問してる人が聞きたいことと違うと思うよ。 質問者はアプリごとに別々のチャンネルに音を出したいって言ってるんじゃないからね。
905 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:25:02.63 ID:94a7CpYNa.net] >>890 だから何度も同じことを言わせないで。 既定のオーディオデバイスは一つしか選択できない だからHDMIのモニターから音を出すと普通は同じ音をM/Bのヘッドホン端子から 出力することはできないの
906 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:25:05.36 ID:vkfPDW5o0.net] >>891 いや、889はイヤフォンが繋がっていてもスピーカーから音声を流す機能そのものだ 何も読んでいないだろ
907 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:26:26.04 ID:vkfPDW5o0.net] >>892 HDIMIとパソコンのイヤフォン端子をどうやって物理的に切り替えるんだよ 普通にソフトで切り替える機能が標準でついているんだよ
908 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:27:34.01 ID:94a7CpYNa.net] >>893 どこをどう読んだらそうなるのw だから、何度も言うけどHW的に排他的になってたらソフトじゃどうにもならないってw
909 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:29:20.12 ID:94a7CpYNa.net] >>894 ソフトで切り替える? 何を言ってるのか分からないよ。 単純な質問だ。 君のPCではHDMIのモニタを既定のサウンドデバイスに選択している時に、 同じ音をM/Bのヘッドフォン端子からも聞くことができるのかい? できないってw 今まで知らなかったのか
910 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:30:46.74 ID:vkfPDW5o0.net] >>895 string audioSelector = MediaDevice.GetAudioRenderSelector(); var outputDevices = await DeviceInformation.FindAllAsync(audioSelector); foreach (var device in outputDevices) { var deviceItem = new ComboBoxItem(); deviceItem.Content = device.Name; deviceItem.Tag = device; _audioDeviceComboBox.Items.Add(deviceItem); } コンボボックスで指定した出力先に音声を切り替えているだろ 頭弱いねぇ
911 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:30:55.58 ID:94a7CpYNa.net] もう寝るんで消えますおやすみ
912 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:32:36.55 ID:94a7CpYNa.net] >>897 何を言ってるんだこの人。 その出力先っていうのはオーディオ出力のことであって 物理的な出力端子じゃないんだってば どんだけメカ音痴なのマジで
913 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:33:11.08 ID:vkfPDW5o0.net] >>896 それは質問と違うこと言っているよね 音声出力を標準以外からソフト制御で切り替えられるんだよ VISTAからね
914 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:34:46.05 ID:94a7CpYNa.net] もうボケ老人の繰り言だけど、だから普通のPCのオーディオ出力端子っていうのは ヘッドホンとライン出力と2系統あるように見えるけど、実態は1つなんだよw 2つの別々のADCに繋がってるわけじゃないの。同じものをアナログ的に分配してるだけなの
915 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:35:23.50 ID:94a7CpYNa.net] >>900 だからね、質問者はそんなこと聞いてないのよ
916 名前:Hルトの名無しさん mailto:sage [2019/05/14(火) 00:35:25.68 ID:vkfPDW5o0.net] >>899 そこのdevice.Nameってのが「ヘッドフォン」だったり「HDMI」だったりするんだよ あんたが知らないだけで10年前からソフトで切り替えられる
917 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:36:25.52 ID:++GJZRWf0.net] Realtekのオーディオデバイスならイヤホン端子とスピーカー端子はH/Wで排他になってないわな 設定で排他にするか切り替えられたはず
918 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:41:10.69 ID:KlvEEe7u0.net] 話し合ってるレイヤーが違うんだよ いい加減気付いて質問者のためになるレスをしてくれ 質問内容が不明瞭なら明確になる質問を返せ 想像で質問内容を決めつけて延々と罵り合ってるだけで肝心の質問は何一つ進展してないぞ
919 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:41:44.61 ID:94a7CpYNa.net] >>903 もうダメだなこの人。 だから何度も言うけど、それはHWが対応してないとできないのよ。 何度も言うけど、普通のPCのスピーカーとヘッドホン端子は同一のオーディオ出力に繋がってるの。 別々のオーディオ出力に繋がってるんじゃないの。わかる? 次いでいうと、これも何度も書いてるが、それ質問者の質問と全然関係ないの。 質問者さんの質問はスピーカーとヘッドホンが排他的に切り替わるのが気に入らないから ソフトで何とかできないか、だから。 何度もいうけど、普通のPCではHWで物理的に切り替えてるので不可能です
920 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:47:57.18 ID:vkfPDW5o0.net] >>906 パソコンにHDMIは最低限付いているから、音声出力が1系統しか無いパソコンなど滅多にお目にかかれません しかもUSBとかBluetoothとか音声を出す場所はいくらでもあるんだから、
921 名前:最低限ソフトでオフに出来ないと問題になる つか1系統でイヤフォンとスピーカーが物理的に切り替わるだけしか出来ないパソコンって存在するのか? 例えば何ていうパソコンのことか具体的に名前出してくれ [] [ここ壊れてます]
922 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:49:56.17 ID:BJB1D/ui0.net] 落ち着け。どっちも正しい。 イヤホンジャックの接続を確認して他のサウンドデバイスを黙らせるハードウェアも有る。 時々出力先間違えるドライバが有るな。 再生デバイスの先でイヤホンジャックが物理的にスピーカー出力を切る装置も有る。 後者はソフトではどうしようも無い。
923 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:52:31.92 ID:94a7CpYNa.net] >>907 何がいいたいの? まったく意味が分からん 質問者さんが何を聞いてるか、もう一度落ち着いてよく考えてよ
924 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 00:58:48.14 ID:vkfPDW5o0.net] >>909 イヤフォンつなげたままスピーカーから音声を流すAPIは存在するってことね SPとHPが共有だったとしても、他に出力する先は色々有る 何故物理的に不可能だと言い切っちまうの?APIが存在するのにさ
925 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 01:06:05.42 ID:94a7CpYNa.net] >>910 意味が分からないよ。 だから、誰も最初からそんな話してないって 何で一人で「アプリごとに個別の出力先に音声出力が可能か?」なんて 誰も問題にしてない話をしてるのよ
926 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 01:06:49.56 ID:94a7CpYNa.net] どっからそんな話が出てくるのマジでw ほんと意味わからんよ
927 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 01:18:14.50 ID:AtdtzVQx0.net] 読解力がないってパターン?
928 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 02:01:08.24 ID:mmoBBtY10.net] ワロ
929 名前:デフォルトの名無しさん [2019/05/14(火) 05:43:28.06 ID:fttRH1Ml0.net] >>862 関数とは言わないんですね
930 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 07:21:30.35 ID:es4OQUhe0.net] >>870 たいがいのテレビもそうなってるよ。 確認してみた?自分ちのテレビ。
931 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 07:23:05.19 ID:es4OQUhe0.net] >>876 それをやるのがオーディオミキサーじゃん? 昔ならsndvol32とか。
932 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 12:22:39.22 ID:HKF8AKPGa.net] >>916 なってないよ。 そういや思い出したけど、大昔のテレビはイヤホンジャックが2つあったんだよな で一つはSPの音を消さない仕様になっていた 普通に考えてその方が単純明快で親切だ ヘッドをンを差し込んでも音を消さないためには、何とかボタン押して設定画面出して この項目のアレを.... なんてまどろっこしいしヲタしか使えないしソフトもハードもコストがかかる >>917 何か根本的に勘違いしてるんじゃないの? それは同一のオーディオデバイスの複数の音源のボリュームを調整するんだよ。 複数のオーディオデバイスの音量を調整するんじゃないの。わかる? 他の人も書いてたと思うけど、ウィンドウズは複数のオーディオデバイスを持てるが、 既定のデバイスに設定できるのは一つだけだ(当たり前だけど)
933 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 13:04:21.56 ID:sprIIWlUd.net] >>918 そんな安物使ってるのか。 普通はジャックの状態で選択してるだけで、物理的に切断はよほどローテクな機械しかやらんよ。 スマホにイヤホン刺してもスピーカーからも音鳴るっしょ。 PCでもそうなってるよ。普通は。 刺したら切り替わるだけ。排他ではない。 https://pcrepair.w-pickup.com/post-6263/ とか、 逆に、両方から鳴って困る事のQAもある。 https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=3908-4397 sndvol32はそのとおりだな、間違ってた、すまん。 出力デバイスを選ばにゃならんが、直接叩くなら別個に出力できたと思うけど。 具体的にはKernel Streamingで。
934 名前:デフォルトの名無しさん [2019/05/14(火) 13:29:10.73 ID:HHew+yI/0.net] >>918 それイヤホンジャックじゃなくてLINE出力のことだろ?
935 名前:デフォルトの名無しさん [2019/05/14(火) 14:01:03.60 ID:xGjK1aQt0.net] こんなところまでLINEが進出してるとは、韓国もやるな
936 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 15:22:49.71 ID:HKF8AKPGa.net] >>919 TVはどうだか知らんけど、なるほどPCではソフトでヘッドフォン接続を検出して SP出力を制御してるタイプもあるんだな。 これは素直に知らなかった。 自作用M/Bだとリアパネルの端子の接続をソフトで検出するタイプは昔から結構あったけど。 質問した人のPCがこういうタイプならドライバのユーティリティーで設定変えたら解決するね。 ノート含めメーカー製のPCの大半はこういうタイプじゃないと思うけど
937 名前:デフォルトの名無しさん [2019/05/14(火) 18:33:42.83 ID:fttRH1Ml0.net] wpfとwinformどちらがいいのですか? C#で検索するとほとんどはwinform向けのコードのような気がします 大部分は同じですけども
938 名前:デフォルトの名無しさん [2019/05/14(火) 18:50:04.03 ID:gmflVafJ0.net] >>855 です 色々と議論頂いて申し訳ないでした しかしとても参考になりました ありがとうございました まさに>>919 がやりたいことなんですが、自分がサウンドデバイスとAPIの関係性がいまいち理解不足な気がしますのでもう一度しっかり見直してみたいと思います
939 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 18:50:39.47 ID:rq13d1wo0.net] >>923 絶対winform wpfは資料なさすぎて辛いよ
940 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 18:51:24.71 ID:xTv9RSlG0.net] >>923 どっちでもいいけどまあとっつきやすいのはWinFormじゃない
941 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 18:56:25.88 ID:zLBAV05La.net] >>923 シンプルな画面ならwinformsかwpfどっちでもいい 複雑な画面ならwpf一択
942 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 19:02:22.19 ID:gEF4/DH4M.net] >>923 デスクトップアプリ自体が時代遅れだから、基本的にはどちらもお勧めはできない。 しかしちょっとしたツールなんかで便利なことはあるから、覚えておいて損はないだろう。 その意味では断然WinFormsがお勧めだ。 WPFは習得コストが高く、デスクトップアプリという死んだ技術に対しては割に合わない。
943 名前:デフォルトの名無しさん [2019/05/14(火) 19:04:08.39 ID:fttRH1Ml0.net] 確かに調べた限りではwinformのほうがサンプルが圧倒的に多いですね wpfは初学者にはきついかも、、 >>928 デスクトップアプリが時代遅れとはなんのことでしょうか 毎日使ってますが
944 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 21:07:11.88 ID:0h207dTD0.net] 横で申し訳ないのだけど、WinFormsが枯れて次に学習すべきは何がおすすめ? とりあえず簡単な業務用アプリくらいは作ってますが(データベースと連携あり) ASP.NETとかWebアプリに進むと、セキュリティの面でまた何かと面倒なのかなと躊躇しちゃう
945 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 21:23:53.52 ID:0tHpu3UbM.net] 時代はデータサイエンティストを求めてる
946 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 22:43:21.70 ID:++GJZRWf0.net] >>924 Realtek HDオーディオマネージャーでやってるのは、 おそらくOSのAPIではなく Realtekのドライバーの独自機能を直接呼び出してると思う
947 名前:デフォルトの名無しさん [2019/05/15(水) 00:23:39.11 ID:HTdksHae0.net] C#関係ないな
948 名前:デフォルトの名無しさん [2019/05/15(水) 16:32:56.09 ID:VEpWlxZJ0.net] wpf始めたんですが、画像の表示について教えてください コントロールに紐付ける方法がわかりません private void Window_Loaded(object sender, RoutedEventArgs e) { var bt = new BitmapImage(); bt.BeginInit(); bt.UriSource = new Uri(@"C:\Users\◎◎\Desktop\programing\vs_project\0_practice_project\tilemap_wpf\tilemap_wpf\img\1.png"); bt.EndInit(); } ここまでは調べられたんですが、コントロールに紐付ける方法がわかりません コントロールの種類はimageで名前はimage_mです。 資料少なめですね
949 名前:デフォルトの名無しさん [2019/05/15(水) 17:07:43.75 ID:VEpWlxZJ0.net] できたです ごめんなさい
950 名前:デフォルトの名無しさん [2019/05/15(水) 17:14:40.06 ID:VEpWlxZJ0.net] >>934 このbegininitで初期化をコントロールの初期化をするという説明がされていますが、なぜこの作業が必要なんですか? winformにはなかった手順なので、存在する意味がわかりません
951 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 17:39:10.29 ID:tK1Lgxrc0.net] 自己解決したなら解決手法を書きましょう winformとwpfは異なるものなので手順も異なります
952 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 17:58:43.55 ID:WnxQfHPj0.net] 忠告されているのにわざと自分から沼にはまって助けを求める人
953 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 18:44:30.38 ID:SVWj/8FLM.net] 自分が描いた迷路で迷うのもまた人生さ
954 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 19:13:20.58 ID:le9v9LR70.net] >>934 URL指定するだけで良いならnew BitmapImage(URL);でいいよ ロード前に色々プロパティ設定したいならBeginInit使う 固定の画像ならXAMLで<Image Source="URL"/>だけでもいい
955 名前:デフォルトの名無しさん [2019/05/15(水) 19:58:30.74 ID:I+StC2Kj0.net] >>932 ありがとうございます 引き続き色々と調べてますが未だ出来ていません NAudioを使ってオーディオデバイスの取得をしていて、自分のイメージでは オーディオデバイスをスピーカーとヘッドホンのそれぞれで取得して、どちらかを既定のデバイスとして設定してあげれば出来るのかな?と考えてたんですが デバイスがSpeakers/Headphonesの一つしか取得できないのでPC側の出力状態になっているものしか制御できないのです この辺りがHWの制約によるものなのかドライバの設定でなんとかなるのかを現在調査中です
956 名前:デフォルトの名無しさん [2019/05/15(水) 21:08:20.12 ID:VEpWlxZJ0.net] >>940 引数 1: は 'string' から 'System.Uri' へ変換することはできません。 new BitmapImage(url) で指定するとこのエラーが出ますが、参考ページありますか?
957 名前:デフォルトの名無しさん [2019/05/15(水) 21:28:23.64 ID:4Ta36StR0.net] >>942 あなたは逆引き本を買って、コードをコピペしなはれ それがええで
958 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 21:50:05.54 ID:4NWqR2j00.net] もう誰か雇って書いてもらえよ
959 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 22:16:07.15 ID:QUEiJBNt0.net] >>942 関係ないこと聞くけどググれない理由でもあるの? System.Uriってキーワードは出ているし自分でも>>934 でnew Uriのインスタンス作っているのに BitmapImage https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.imaging.bitmapimage System.Uri https://docs.microsoft.com/en-us/dotnet/api/system.uri
960 名前:デフォルトの名無しさん [2019/05/16(木) 05:04:31.88 ID:lb5/XXvB0.net] なんで一度uri変数に入れないといけないのですか?
961 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 05:07:05.20 ID:fJS0gkuhM.net] 文句はMSに言っとくれ
962 名前:デフォルトの名無しさん [2019/05/16(木) 05:37:02.96 ID:lb5/XXvB0.net] treeviewのノードなくなってますけどどうやってノード追加するんですかね
963 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 06:42:10.65 ID:BUJhrwgQ0.net] Ruby でも文字列から、URI オブジェクトを作る。 たぶん、他の言語でも同じだろ require 'uri' site = URI( "example.org/test.cgi?a=b&c=d" ) p [ site.scheme, site.host, site.port, site.path, site.query ] #=> ["http", "example.org", 80, "/test.cgi", "a=b&c=d"] # URL を抜き出す。 p URI.extract( "abc example.net/ xyz" ) #=> ["example.net/"]
964 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 06:53:52.06 ID:teItWolR0.net] URIとやらに便利なメソッドがいっぱいあるんだろう。知らんけど。
965 名前:デフォルトの名無しさん [2019/05/16(木) 07:06:03.55 ID:lb5/XXvB0.net] >>949 そういうものなんですね 型を適切なものにしないといけないと uriオブジェクトを作るという表現で少しわかった気がします
966 名前:デフォルトの名無しさん [2019/05/16(木) 08:42:14.73 ID:lb5/XXvB0.net] >>949 例えば、urlが文字列とご認識されないようにこういう宣言をするってことでしょうか?
967 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 09:09:54.35 ID:Ja6m86QIM.net] >>952 突然Rubyを持ち出すこいつはこの板の名物キチガイだから触っちゃだめ ちなみにRubyはゆるふわ言語だからURIを受け取る引数に文字列を渡してもだいたいなんとなく動くようになっている(そして後になって予期せぬ不具合の原因になる)場合が多い
968 名前:949 mailto:sage [2019/05/16(木) 09:11:37.63 ID:BUJhrwgQ0.net] オブジェクト指向では、何らかのクラスのオブジェクトを作って、操作するのが基本 例えば、URI オブジェクトを作っておけば、 そのクラスに定義されている、便利なメソッド・プロパティなどが使える それと、C# みたいな静的言語では、 引数・戻り値などに型が指定されていたら、その型を使わないと型エラーになる!
969 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 09:19:26.89 ID:MP5x1HVo0.net] websoket通信でデータを受信して、それを別プロセスに渡すような処理をしたいのですが、MemoryMappedFileを使って共有メモリを見に行く方法は悪手でしょうか? 推奨されるプロセス間のデータのやり取り方法を教えてください。
970 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 09:34:38.83 ID:Qeg0MHQbM.net] WCFが推奨
971 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 10:29:56.16 ID:8QhWJQ3wd.net] WCFもどうなることやらな気はするけど。 俺は微妙だと思ってるから、よくembedioでhttpサーバ立てる。
972 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 10:33:24.75 ID:MP5x1HVo0.net] WCFですか、調べてみます。
973 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 10:50:26.05 ID:Ja6m86QIM.net] WCFはやめとけ 今のところWCFサービスに.NET Coreが対応する予定はないから、このままいけば.NET 5では消滅する
974 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 10:57:28.97 ID:7z6DTwj00.net] gRPCかwebapi 条件次第で玉葱かな
975 名前:デフォルトの名無しさん [2019/05/16(木) 10:58:05.89 ID:lb5/XXvB0.net] >>954 例えばurlの場合整形したりしやすいってことですね
976 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 11:05:39.44 ID:MP5x1HVo0.net] >>959 ということは >>960 のgrpcが良さそうですか? 玉葱とはなんでしょうか
977 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 11:32:13.27 ID:z4KGy0Nb0.net] ローカルのRPCにhttpを使うの嫌なんだよな
978 名前:デフォルトの名無しさん [2019/05/16(木) 11:54:44.97 ID:lb5/XXvB0.net] ツリービューに小要素を追加したいのですが、wpfでは rootNode.Nodes.Add(childNode1) のように、nodeプロパティでの追加は出来ないようです 何を使うか教えてください あとマイクロソフトのリファレンスでwpfのリファレンスってあるんでしょうか? 調べてるんですが、情報がごっちゃな気がします
979 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 12:05:27.24 ID:8QhWJQ3wd.net] embedioならwebsocket鯖にもなる。 他の言語から叩きたくなったときに超ラク。 >>963 なんで? クライアントがイケてないから? >>962 magiconionでは?
980 名前:デフォルトの名無しさん [2019/05/16(木) 12:06:43.82 ID:lb5/XXvB0.net] >>964 解決したました 英語サイトで調べたほうが遥かにわかりやすいですねw
981 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 12:12:11.19 ID:MP5x1HVo0.net] そもそもプロセス間通信をしようと思ったのは、websoketでデータ受信が忙しいからなんですが、マルチスレッドでも問題ないでしょうか?
982 名前:デフォルトの名無しさん [2019/05/16(木) 12:31:50.76 ID:9YitK9mS0.net] >>967 掲示板だと質問に向かない側面もあるしさ、やっぱStackOverflowに行って質問しようぜ https://ja.stackoverflow.com/
983 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 12:40:43.39 ID:/ttOpUx30.net] パソコン内でのプロセス間通信ならIPCがお手軽かと思いますわ
984 名前:デフォルトの名無しさん [2019/05/16(木) 14:11:05.64 ID:Ox4fjiQE0.net] >>944 ほんそれ
985 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 14:19:12.14 ID:8QhWJQ3wd.net] >>967 それなら普通にマルチスレッド(というかTask)で良いと思うけど。
986 名前:デフォルトの名無しさん [2019/05/16(木) 17:09:13.22 ID:lb5/XXvB0.net] wpfでpcのルートフォルダを取得して、そのサブフォルダも取得したいのですが、参考ページ教えてください。 https://dobon.net/vb/dotnet/file/driveinfo.html このページを参考にやっているのですが、ルートフォルダを取得というよりCを自分で指定してませんか? どのPCだろうがルートはCだから、それを基準にして、サブフォルダを取得するってことですか?
987 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 17:21:42.09 ID:PZtMCMcM0.net] >>972 利用可能なドライブの一覧を取得するには? https://www.atmarkit.co.jp/fdotnet/dotnettips/272getdrives/getdrives.html
988 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 17:25:25.98 ID:knSiwbWya.net] >>972 PCのルートフォルダってのがちょっと何を言ってるのか... システムドライブ(OSのインストールされているパーティション)(のルートディレクトリ)って意味ならこれ? https://www.atmarkit.co.jp/fdotnet/dotnettips/190windir/windir.html
989 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 17:32:00.72 ID:knSiwbWya.net] あ、話題のどちて坊やだったのか... 質問スレだから質問するのは全然OKだと思うけど、 何言ってるのか他人が理解できない質問とか、少しも自分で調べた形跡が感じられない 質問とかはちょっとマナー違反だよね
990 名前:デフォルトの名無しさん [2019/05/16(木) 17:39:45.70 ID:lb5/XXvB0.net] >>974 そうですね エクスプローラのツリーのように、フォルダを表示したいので
991 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 17:45:46.63 ID:8QhWJQ3wd.net] ドライブはフォルダじゃない。それだけでは?
992 名前:デフォルトの名無しさん [2019/05/16(木) 18:14:45.95 ID:lb5/XXvB0.net] フォルダに割り当てるパスを取得するにはドライブの情報が必要ですよね?
993 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 18:24:44.89 ID:mlG6Koyx0.net] >>978 「フォルダに割り当てるパス」 言っている意味が分からない。何がしたいのか具体的に書いて ドライブの情報は>https://dobon.net/vb/dotnet/file/driveinfo.htmlの内容で取得できる ファイルパスもツリービューに割り当てる要素だとしてもそのドライブの情報とは関係ない
994 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 18:30:23.23 ID:qEdn/tfrM.net] >>975 彼はおそらく調べようと思えば調べられるし 一人で進めようと思えばおそらくできるんだろう ただ、ものづくりに必要な孤独を楽しむ能力がないんだろう これまでたどってきた人生に依存する 人によっては精神を病んでしまうのでさっさと辞めることをオススメする 俺らの何がパンピーと違うかといえばおそらくそこ
995 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 18:34:23.01 ID:3A9ftzQu0.net] 転載制限が明示されないfreeは著作隣接権の放棄だと思っていました コメント機能まで考えなかったのでサーバー管理者の立場になることは考えが至りませんでした ファイル倉庫ではつまらないですよね 他人の著作物を基本にサイトを作ることは悩ましいですね 解説とリンクを書くだけならば問題が無いはず、と… いろいろ参考になりました ありがとうございます
996 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 18:34:57.02 ID:3A9ftzQu0.net] 誤爆しました すみません
997 名前:デフォルトの名無しさん [2019/05/16(木) 18:45:39.21 ID:lb5/XXvB0.net] >>979 何がしたいかですが、「エクスプローラのようなフォルダツリーの機能を作りたい」です
998 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 18:50:20.66 ID:mlG6Koyx0.net] >>983 それならツリーに必要な情報はそれぞれのディレクトリパスやファイルパスでドライブの情報じゃないのはわかる? エクスプローラーもそうなっているはず
999 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 19:20:17.44 ID:zVFyB/Pfa.net] >>980 次スレ頼んだ
1000 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 19:29:44.17 ID:s+6oZKe00.net] >>985 ふらっと C#,C♯,C#(初心者用) Part143 https://mevius.5ch.net/test/read.cgi/tech/1558002486/
1001 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 19:35:38.53 ID:zVFyB/Pfa.net] >>986 乙
1002 名前:デフォルトの名無しさん [2019/05/16(木) 20:21:22.17 ID:lb5/XXvB0.net] >>984 どうやら見当違いなことをしていたみたいですね ディレクトリパスで調べてみます
1003 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 21:13:53.08 ID:/ttOpUx30.net] >>988 Windows API Code Packって拡張をプロジェクトにインストールすると幸せになれると思うんだ あなたのやる気次第だが
1004 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 22:47:17.86 ID:/89StDtwd.net] >>978 >>973 にドライブの一覧を取る方法が示されてるのになんで無視するんだろう
1005 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:01:15.42 ID:8VLhbVxR0.net] PowerShell のGet-PSDrive だろ
1006 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 18:20:58.23 ID:vi5zDanMM.net] PowerShell信者()
1007 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:43:49.75 ID:zp36Ii500.net] >>986 乙。そしてこっちはもう埋めよう docsはもうテンプレに入れた方がいいな。ただし英語の方w 日本語版は翻訳酷いだけじゃなく情報抜けてるの見たことある
1008 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 11:16:06.52 ID:K7DGtrEf0.net] u
1009 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 11:16:26.24 ID:K7DGtrEf0.net] u
1010 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 13:46:29.54 ID:grGIhInBa.net] u
1011 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 14:18:54.84 ID:rGWK4TSn0.net] n
1012 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 14:39:21.39 ID:BJEduilX0.net] u
1013 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 14:39:40.73 ID:BJEduilX0.net] l
1014 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 14:39:54.01 ID:BJEduilX0.net] l
1015 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 73日 8時間 4分 13秒
1016 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています