X



ふらっと C#,C♯,C#(初心者用) Part152

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 3f2c-RUy2)
垢版 |
2021/08/25(水) 19:44:16.81ID:tgvUkE6r0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part151
https://mevius.5ch.net/test/read.cgi/tech/1621129559/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
https://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/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
・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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0673デフォルトの名無しさん (アウアウウー Sacd-2US9)
垢版 |
2021/11/05(金) 04:56:58.86ID:sW1R9FCxa
あるいはあれだね、サラリーマン的に言えば
自分の会社でしか通用しない(他所に転職したら役に立たない)細かいローカルルールを
基礎だと錯覚している印象はまあある。
0674デフォルトの名無しさん (アウアウウー Sacd-4MYJ)
垢版 |
2021/11/05(金) 07:30:08.22ID:ffJQa+Rya
VS使わせてもらえない会社には行きたくねー
0675デフォルトの名無しさん (ワッチョイ 5ea7-l4wS)
垢版 |
2021/11/05(金) 08:05:48.55ID:FAEOfd5a0
>>672
俺がはじめた20年ぐらい前でもウィンドウから作るって勉強法は無意味って言われてた気がする

実際、引数がクソ長えapiの使い方がわかる程度でやっぱり
だからそれでどうしてウィンドウができるんだよって
疑問を解消できるものではない

だってMicrosoftがそういうの用意したんだからそういうものじゃん
っていう以外ない
それってどの階層でも言えることで.netframeworkを掘って言っても最後にはwin32api的なものが待っていると思う
0676デフォルトの名無しさん (エムゾネ FFb2-2US9)
垢版 |
2021/11/05(金) 10:53:35.85ID:CgcDsDN+F
vsしか使えない香具師はいらん
0687デフォルトの名無しさん (ワッチョイ 6924-MNeM)
垢版 |
2021/11/09(火) 22:48:05.89ID:24WB74Rt0
面倒からサムネしか見てないけどメモリ弄ってチートをするって話?
であればC#は関係ないからリバースエンジニアリング関係の本じゃないかな
こういうのはWindowsならWin32多様するからC#よりもC++の方が楽
それにネイティブプログラミング力とリバースエンジニアリング力は比例するから普通にC++頑張るのが一番の学習になると思うよ
0688デフォルトの名無しさん (ワッチョイ 6924-MNeM)
垢版 |
2021/11/09(火) 22:53:12.64ID:24WB74Rt0
どうしてもC#でやりたいならDllImportでkernel32.dllのOpenProcessとかReadProcessMemory利用すれば出来る
それらをスムーズに利用するためにunsafeなポインタ型を理解することから始めよう
0689デフォルトの名無しさん (ワッチョイ d933-TwtK)
垢版 |
2021/11/09(火) 22:54:54.11ID:YSScyj9Q0
>>687
回答ありがとうございます。
やりたいことはそのとおりです。
C++とWin32APIの参考書は買ったのですが
覚えることの多さとWin32APIのコードが長すぎて全然読んでませんでした。
Win32C++に比べたら簡単そうなC#でやりたいのですが遠回りでしょうか?
0690デフォルトの名無しさん (ワッチョイ 6924-MNeM)
垢版 |
2021/11/09(火) 22:59:16.87ID:24WB74Rt0
>>689
プログラミング自体初心者であればC++はハードルが高すぎるから
チート用途としては多少不便なもののC++より難易度の低いC#から始めるのは良い選択
ただC#自体に他プロセスのメモリを読み取る機能は無いから結局Win32APIは避けて通れない道
0692デフォルトの名無しさん (ワッチョイ 6924-MNeM)
垢版 |
2021/11/09(火) 23:57:26.58ID:24WB74Rt0
>>691
こんな感じでWin32APIも使うこと自体はそんな難しくはないがC/C++の経験が無いとMSDNを呼んで引数等をC#の型に変換するのは難しいだろうな
とりあえずゲーム側のアドレスが既に分かってるならプログラミング自体はそんな難しくはないが、
こういうのはそもそもアドレスを解析したりする工程で7割くらい時間使う訳で、その解析力については>>687で言った通り


[DllImport("kernel32.dll")]
static extern bool ReadProcessMemory(IntPtr handle, nuint lpBaseAddress, void* lpBuffer, nint nSize, nint* lpNumberOfBytesRead);

static int ReadInt(IntPtr processHandle, nuint address)
{
int result = 0;
ReadProcessMemory(processHandle, address, &result, sizeof(int), null);
return result;
}

static byte[] ReadBytes(IntPtr processHandle, nuint address, int length)
{
byte[] result = new byte[length];
fixed (byte* p = &result[0]) return ReadProcessMemory(processHandle, address, p, length, null) ? result : null;
}

static bool TryReadVector4(IntPtr processHandle, nuint address, ref Vector4 vec4)
=> ReadProcessMemory(processHandle, address, Unsafe.AsPointer(ref vec4), sizeof(Vector4), null);
0693デフォルトの名無しさん (ワッチョイ 515f-1fFA)
垢版 |
2021/11/10(水) 16:30:41.62ID:63WV6EHr0
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
0698デフォルトの名無しさん (ワッチョイ 23ad-p1Qq)
垢版 |
2021/11/14(日) 23:09:12.89ID:6FVLDefc0
いわゆるフォルダ表示みたいな物をやりたいんですが
そのままフォルダみたいなGUIのパーツはないのですか?
リスト表示でごちゃごちゃやるしかない?
jpgの縮小画像表示みたいのしたいのですが
0701デフォルトの名無しさん (ワッチョイ 4b63-aXXv)
垢版 |
2021/11/15(月) 03:15:53.30ID:x301xsWW0
そのままフォルダみたいなGUIのパーツは標準ではないな
サードのライブラリを漁ったらあるのかもしれんが, .NETのGUIライブラリとか紹介してくれる人って一切いないからよ
俺は聞いたことがない
0702デフォルトの名無しさん (ワッチョイ e32c-w/Dl)
垢版 |
2021/11/15(月) 12:19:23.67ID:5e0s5u8J0
自分は使ったことはないけど
Windows API Code PackにExplorerBrowserがある
Explorerのシェルをそのまま使うやつ
Windows API Code PackのMS公式配布は終わってるけど野良クローンがそこらに
0705デフォルトの名無しさん (ワッチョイ 4e66-Iq3b)
垢版 |
2021/11/23(火) 22:23:05.47ID:mktz4Vub0
実行されたらすぐに音を出す方法はありますでしょうか
SoundPlayerだと数秒遅れて音がするので遅いなーと
0709デフォルトの名無しさん (ワッチョイ 062c-C1KD)
垢版 |
2021/11/23(火) 23:33:32.53ID:Ln8GWMq+0
>>698
漏れは、Ruby で、selenium webdriver, nokogiri などを使って、

ローカルPC から画像ファイルを読み込んで、
それでHTML を作って、ブラウザを自動起動して表示している

# PCからランダムに、画像ファイルを10個取り出す
picture_paths = Dir.glob( 'C:/Users/Owner/Pictures/*' ).sample( 10 )

# 各画像の、img タグを作る。改行を削除する
picture_paths.each do | pict_path |
img_str = <<"EOT".gsub(/\n/, "")
<img src="#{ pict_path }">
EOT

img_node = Nokogiri::HTML::DocumentFragment.parse img_str # HTMLの断片を作る
puts img_node.to_html

出力は以下のように、10個のimgタグ
<img src="C:/Users/Owner/Pictures/a.gif">
<img src="C:/Users/Owner/Pictures/b.png">
<img src="C:/Users/Owner/Pictures/c.jpg">

これらをHTML内に入れて、スタイルを付けて、ブラウザで表示する。
Bootstrap でも何でも使える

driver.execute_script jsCode
で、JavaScript のソースコードも実行できる
0711デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/24(水) 01:12:22.68ID:LrWoqp0N0
>>709
死ねよ
0717デフォルトの名無しさん (ワッチョイ 86bb-Klv4)
垢版 |
2021/11/25(木) 08:51:17.22ID:gtvbwi7D0
どこかの言語は助成金タカリビジネスだって言うし、人々に忘れられて金が出なくなったら困るんだろう
0723デフォルトの名無しさん (ワッチョイ e7f9-9IQd)
垢版 |
2021/11/25(木) 17:04:18.60ID:Wf286/Al0
初心者です
Form1にtextBox1とbutton1のコントロールを貼りました これで実行してテキストボックスに文字を入力して
public void button1_Click(object sender, EventArgs e)
{
string st;
st = textBox1.Text;
}
ボタン押してこの部分は呼ばれるんですが st が空で入力した文字が入りません
テキストボックスのプロパティのTextに文字入力して実行してボタンを押すと
なぜかその文字だけは取得できます
この実行後の自己入力の文字だけ取得できないのはなぜなんでしょう?
0724デフォルトの名無しさん (ワッチョイ c633-16MD)
垢版 |
2021/11/25(木) 17:32:50.23ID:R31YPF5K0
>>723
>st が空で入力した文字が入りません
これ、どうやって確認していますか?

何をどうしたいのかがイマイチ読み取れないけど、エスパーすると変数のスコープ関係なんじゃなかろうか
0725デフォルトの名無しさん (ワッチョイ e7f9-9IQd)
垢版 |
2021/11/25(木) 17:39:46.30ID:Wf286/Al0
確認は
st = textBox1.Text;
のところにブレークポイント置いてステップ実行でstの中身を見ています
st のところをグローバル変数にしてもローカル変数にしても結果は同じでした
プロパティからのText入力の時はちゃんと取得できてるのでこの記述は間違ってないように思うのですが
実行時の入力がなぜか見た目通りに反映されてないというか
0726デフォルトの名無しさん (ワッチョイ e7f9-9IQd)
垢版 |
2021/11/25(木) 17:40:22.28ID:Wf286/Al0
確認は
st = textBox1.Text;
のところにブレークポイント置いてステップ実行でstの中身を見ています
st のところをグローバル変数にしてもローカル変数にしても結果は同じでした
プロパティからのText入力の時はちゃんと取得できてるのでこの記述は間違ってないように思うのですが
実行時の入力がなぜか見た目通りに反映されてないというか
0727デフォルトの名無しさん (ワッチョイ f748-9IQd)
垢版 |
2021/11/25(木) 17:43:58.82ID:fHUfm92Y0
確認は
st = textBox1.Text;
のところにブレークポイント置いてステップ実行でstの中身を見ています
st のところをグローバル変数にしてもローカル変数にしても結果は同じでした
プロパティからのText入力の時はちゃんと取得できてるのでこの記述は間違ってないように思うのですが
実行時の入力がなぜか見た目通りに反映されてないというか
0728デフォルトの名無しさん (オイコラミネオ MM67-9IQd)
垢版 |
2021/11/25(木) 17:44:42.92ID:UMVhykjjM
確認は
st = textBox1.Text;
のところにブレークポイント置いてステップ実行でstの中身を見ています
st のところをグローバル変数にしてもローカル変数にしても結果は同じでした
プロパティからのText入力の時はちゃんと取得できてるのでこの記述は間違ってないように思うのですが
実行時の入力がなぜか見た目通りに反映されてないというか
0730デフォルトの名無しさん (ワッチョイ c633-16MD)
垢版 |
2021/11/25(木) 18:00:06.75ID:R31YPF5K0
ブレークポイントで止まってるときに見えているのは代入される前の状態じゃなかったっけかな
例えば
private void button1_Click(object sender, EventArgs e)
{
string st;
st = textBox1.Text;
MessageBox.Show(st);
}
みたいなことをすれば、ちゃんとstに値が入っているのが分かると思う
0733デフォルトの名無しさん (ワッチョイ f748-9IQd)
垢版 |
2021/11/25(木) 18:33:11.43ID:fHUfm92Y0
もちろんステップ実行で通過させています
今新規でこの部分だけでやったら正常動作しました
元のプログラムはprivate void dispatchKeyEvent(int k, int ev) とかいろいろ入ってるので
どれかが邪魔してるんでしょうかね、どれであるかまだ見当はつきませんが
0740デフォルトの名無しさん (ワッチョイ e793-9IQd)
垢版 |
2021/11/25(木) 19:53:10.75ID:vpPwZGSJ0
原因がわかりました
private void Form1_Load(object sender, EventArgs e)
{
InitializeComponent();
}
この InitializeComponent(); を消したら直りました
うーんデフォルトにはないこれがなんで書かれてたんだろ…
0743デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 09:09:16.14ID:LP8DajNXM
公式でだめな理由は?
0751デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 15:10:53.78ID:LP8DajNXM
予想外の返事が来たな
つまりVSのポトペタを知った上で無ければ自分で作るとおっしゃるのか

素晴らしい、ぜひ頼む
0753デフォルトの名無しさん (ワッチョイ 5701-kQHb)
垢版 |
2021/11/26(金) 15:20:23.60ID:4MNCxtKQ0
俺も会社のPCでOS標準のcsc.exeとメモ帳でFormsアプリ作ってる
開発とは無関係な部署だからVisual Studio入れらんないけど、
仕事楽にしたくて自分や同僚用にアプリ作ってる
でも一番喜ばれるのはExcelのマクロだわ
0757デフォルトの名無しさん (アウアウウー Sa5b-ZQOw)
垢版 |
2021/11/26(金) 18:34:19.03ID:b37qsw15a
これも前も書いたけど、「道具(IDE)に依存したくない」って動機は理解できる部分もあるけど、
道具なしで何か作れるようになったところで何か潰しが利く汎用的なスキルが身につくわけじゃないことは
理解した方がいいよね。
0758デフォルトの名無しさん (ブーイモ MM8f-pluV)
垢版 |
2021/11/26(金) 18:46:29.22ID:jCnjnABkM
いやGUIビルダーをもし自前で作り切れたら、十分すぎるほどに潰しが利く汎用的なスキルが身についてると思うぞw
まあ成果物としてGUIビルダーそのものはほとんど無価値だから、同じ苦労をするならもっと評価されるようなものに労力を投資したほうが賢明だとは思うが
0760デフォルトの名無しさん (アウアウウー Sa5b-RZfR)
垢版 |
2021/11/26(金) 19:14:31.18ID:Hq7eoo6Pa
csc最強よ
0763デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 19:30:30.99ID:OLQKN+EBM
外人の作ったツールはインストール出来るの?
0765デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 19:37:01.63ID:OLQKN+EBM
exeならいいのかーい

どんな企業だ
0767デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 19:51:17.82ID:OLQKN+EBM
Windows365で解決だな
ブラウザだけで何でも支えるぞ
0770デフォルトの名無しさん (ラクッペペ MM8f-aw+H)
垢版 |
2021/11/26(金) 20:12:14.73ID:OLQKN+EBM
>>768
VS2017エックスプレスがあるじゃない
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況