ふらっと C#,C♯,C#(初心者用) Part160
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part159
http://mevius.5ch.net/test/read.cgi/tech/1691454079/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured Passkeyも脳死でできるようにしてください
ポンコツな俺の頭には難しすぎます 実装で不必要に長いコード書いちゃってでも動いてはいる場合って
修正しなくていいんですか? 271に続いてこれとかも聞いておきたいです。
C#も新しい機能出てますが2018年までの知識だけで
コーディングしてる場合2024年最新の文法でかけ!
とかも言われるんでしょうか? >>273
そうなんですか。
ただ極端に古いコーディングだったらアウトになりますか?
taskが今流行ってるのにthreadで書いてるとか。 誰に言われるのを心配してるのか分からん。
目的によるに決まってるだろ。 きちんと動いているならそれはそれだけで尊いとも言えるけどな。
100% バグを出さない自信があるならなにをやってもいいけど。 なんとなくだけど.net frameworkでしかコード書いてなかったけど.NETでコード書くってこと? インデックスってあるじゃん s[1..3]みたいな
あれって操作する前に境界をチェックしないと例外発生するから結局面倒臭さは変わらないような OutOfRangeしても例外発生もクラッシュもしないように言語仕様で手当てされてても
アクセスした結果が正常かどうかこっちでチェックはしなきゃなんねぇでしょ チェック機能付きでエラー時の値を指定できる拡張メソッドでも作れば解決じゃね? 非同期asyncについて質問したい
複数の非同期関数を同時に実行して結果を受け取る
そのタスクのうち1つでも結果がfalseならば他のタスクを全て中断としたい
WhenAllでは全ての結果を待つので無駄な場合がある
WhenAnyでは最初に終わったタスク結果は受け取れるだけである
この場合どうしたら良いのだろう? >>282
Copilotによると
ideone.com/o0qKFx タスクを実行する前に CancellationToken を作って、各タスクに引き渡しておけば?
タスクの中で失敗を検出した時点でトークンを使って他のタスクもろともキャンセルさせるとか。
実証していないから出来るかどうかは確証がないし、お作法的に正しいかは知らない。 >>283
非同期処理の例のTask.Delay()にもCancellationTokenを渡してあればもっと良い
各タスク完了後のtoken.ThrowIfCancellationRequested()は要らない気がする ループの中でawaitしてるんはどうなん?
後ろのほうのタスクがさっさとfalse返してても無駄に待たんの? >>286
肝心なところを見落としてたorz
無駄に待ってしまうね
各タスクにCancellationTokenSoruceを渡してreturnの前にCancel()しないとだね
メインタスクのforeachは削除してTask.WhenAll()で c#で現在ゲーム作成中です。
データベースに画像を保存したら01011みたいなデータになってるから
dbから直接画像を抜かれる心配ってないですか? DBの中覗かれたら抜かれるよ
つーか、その程度の知識ではまだ早い >>289
zip暗号化をすれば何とかなると思います。
ゲームを進めていかないと現れない文字列をパスワードにします。
ステージ1クリア→g
ステージ2クリア→o
ステージ3クリア→a
ステージ4クリア→l
画像取得→パスワードgoalをdbに送信、画像取得
こんなのはどうですか? c#の初心者講座一通りやったのでデスクトップアプリ作ろうとおもうんですが
GUIつくるにはXamlの習得が必須なのでしょうか?
Pythonで作れたりしませんかね XamlやらなくてもWinFormでつくれるし
PythonでもGUIできるぞ PyQtか?
raspberry piで便利だったな。
winformと同じポトベタ >>295
>>296
どんな感じでやるんですか?
検索したいので単語とか教えてください
最悪xamlを学ぶつもりですが画面遷移で手こずってます とりあえずVisual Studioインスコして遊んでみたら 単語とか教えてくださいて、winformって書いてあるだろ xamlがC#の初心者講座に載ってなかったのであればxamlを学ぶのは遠回りだな
次にやるべきはxamlの初心者講座だろう xamlの本を大きめの本屋さんで探したら一冊もありませんでした
xamlを勉強する人はもうネットのリソースしか使えないんですかね
JavaScriptとasp.netはたくさんあったのに ネットでええやんというかあらゆる情報においてネットの方が良いと思うが
今はチャッジピーもあるし尚更
まあxamlは習得までのコストを考えたら明らかにコスパは悪いと思うけどね
素直にhtml、css、jsでgui作ったほうが良い 細かいところ知らなくてなんとなくは出来るけど
意味もなく呪術を使ってるような感じに近いのかな
今はエッセンシャルWPFみたいな本当の概念を教えてくれる書籍はどこにもないのかもしれないけど xamlで何でも書いちゃう凄腕は
たいてい他者から嫌われる
何故って、んなコードメンテ出来ねえんだよ >>309
でもデスクトップアプリはxamlしかだめなんですよね? 定型文しかしらないってカッコ悪いよ
WPFのmeasureなどの仕組みを知らないでその都度コンテナやコントロールで試行錯誤して時間だけ過ぎていくことになる >>312
いやいやJavaScript利用すればwebと同じ要領でデスクトップアプリも作れるよ >>315
え!そうなんですか
調べてたらwpf blazor avalon maui uwpと色々出てきて頭が混乱しています😥 >>316
全部忘れてReact Nativeでよい
WindowsターゲットはMSが開発してるしMS自身のプロダクトにも使いまくってて、
事実上WindowsのGUI開発の公式推奨フレームワークだ 技術力のないやつはどいつもこいつも自分が使ってる技術スタックが良いと思い込みたいんだよな 趣味でコード書くだけなんでWinFormsで間に合ってる WPF使うけどバインディング使わずにイベントハンドラですませることが多いかな WinFormsでソースを変にいじるとデザイナーの表示ができなくなるのが嫌でwpfにしてるわ。 xamlで色々なフレームワークいじれることがわかったので
大人しくavaloniaっていうやつでxamlを練習することにしました 自動生成されたコードを消すとデザイナーがエラーになる avaloniaはwpfと微妙にちがってたりするからな
ちゃんとdocument読むんだぞ こういう奴は人に聞いてるふりして聞いちゃいないからな
答えるだけ無駄 とりあえず6mWP1uh50がアホなのは良くわかった >>331
アホだけどwpfでコードビハインド避けて出来るだけバインドでやってるよ(笑) Windowsで画面の外にある範囲とか後ろにあるものを含めてスクリーンキャプチャ頑張ってしたいです
例えば画面の外に出てしまったExcelなどです。
C#でそんな魔法の関数ありますか?Windows APIでもいいのであったら教えてください
描画する前の段階のメモリにアクセスとかそういう関数とかあるかな win7までだったら何も考えずに撮れたけど今は無理なんじゃないのかな
アプデするたびに不便になってく プリントスクリーンキーでコピーできる範囲ならわかるけどはみ出ては無理じゃね? 昔ははみ出てようが、ほかのウインドウに隠れてようが取得できた
Winters 10 Anniversary Updateの前のバージョンのwindows10まで撮れたのかな
必要としてるのが自分の環境であればそこまでダウングレードすれば とりあえずどうやったら撮れたか手段教えてあげたらいいのでは? ありがとうございます
ダウングレードで出来ることを示せば今できない証明になりますね 仮定:フルHDサイズのデスクトップとして
using(var Img = new System.Drawing.Bitmap(1920, 1080)) {
using(var Grp = System.Drawing.Graphics.FromImage(Img)) {
Grp.CopyFromScreen(0, 0, 0, 0, new System.Drawing.Size(1980, 1080), System.Drawing.CopyPixelOperation.SourceCopy);
}
Img.Save(@"E:\Test.png");
}
これでまるっととれるが? 1920、1080外に出てるGUIもスクショしたいって話じゃないか? 他のウィンドウに隠れてる部分もスクショしたいって話もあったぞ なんかそういうWin32APIあった気がするけどな
まあ無かったら最悪SetForegroundWindowとかで一瞬だけ最前面にするとかSetWindowPosで一瞬だけ画面内に入れるとかか aero が有効なら背面のウィンドウも全部描画されているから隠れていてもキャプチャできた。
最近できなくなったというのは知らなかったけど。 EnumWindowsでそれぞれのハンドル得ながら
Windows Graphics Captureか
GetWindowRect + GetWindowDC + PrintWindow or BitBltを使えばできる
(GPT談) 書いといてなんだけども
隠れてるのも含めて全部スクショを取るアプリって
まともな使い方じゃない気がするのは俺だけ? アンチチートプログラムはまともなソフトウェアですよ アンチチートってどういう用途について言ってるのかよくわからないけど
事前の通知や同意を得えずにやるのは不法行為に当たる可能性が高いよ
学校の情報処理室のPCみたいなので
画面監視内容や目的を事前に通知して同意を得た上で
使わせるとかならまだわかる
でもそのくらいの用途なら違うアプローチがあるし
やり過ぎだと思うけどね ウインドウとその範囲を指定して切り出して表示する汎用ツール作っとくと
例えば為替チャート~ブラウザの一部だけ切り出してデスクトップ最前面に常に表示しとくとかそんなことができた >>344
>>345
出来ないとは断定できない感じですかね
できるかやってみます >>345試したらできた
普通のwinformsなら取れるがChromeやUWPは真っ黒になった
どっかで失敗してるんだろう デスクトップのDCからとると切れるけどウィンドウのDCからなら切れないし下にあってもキャプチャ取れるはず
真っ黒になるようなのはデスクトップDCから取ればいけたような
そうすると画面外とか取れないけど
あとchromeのハードウェアアクセラレーション切ってみるとか ああとウィンドウのDC取るって言ってもタイトルから取れるハンドルと実際に描画のウィンドウハンドル別のケースあるから描画されてるウィンドウから取ったほうがいいかと 画面外に出てる部分までキャプチャしてどうしたいのかは気になるな