トップページ⇒tech
1002コメント350KB

ふらっと C#,C♯,C#(初心者用) Part122 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/07/10(日) 00:34:49.34ID:2YnnBC7F
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part121
http://echo.2ch.net/test/read.cgi/tech/1465958068/

■関連スレ
C#, C♯, C#相談室 Part91
http://echo.2ch.net/test/read.cgi/tech/1467142749/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
0002デフォルトの名無しさん2016/07/10(日) 00:38:19.50ID:2u6Y/RqP
優しさで溢れるスレであってください、僕はそれ以上は望みません
質問者は仕事だったり大学の課題だったりいろんな目的があって中には憔悴しきってる人もいるんです
0003デフォルトの名無しさん2016/07/10(日) 00:42:56.86ID:2u6Y/RqP
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」

これ絶対守れよ
0004デフォルトの名無しさん2016/07/10(日) 00:43:59.39ID:wNZnvJob
>>1
Console.WriteLine("甲乙丙"[1]);
0005デフォルトの名無しさん2016/07/10(日) 00:44:09.83ID:Cd5Emc7t
>>1 乙
0006デフォルトの名無しさん2016/07/10(日) 00:45:19.55ID:Cd5Emc7t
(>>1乙もせず言いたいこと言うだけの人に優しさを説かれてもなぁ…)
0007デフォルトの名無しさん2016/07/10(日) 00:47:54.81ID:4dClHPVU
前スレ 1000 だが、危なく重複するところだった。w

>>1
乙

>>4
ワロタ
0008デフォルトの名無しさん2016/07/10(日) 00:48:20.14ID:2u6Y/RqP
形式的な優しさ>>1乙とかはできても
やっぱり嫌味いうことは忘れてないねw
やっぱり根が陰湿な人間なんだろうw
0009デフォルトの名無しさん2016/07/10(日) 00:52:10.73ID:2YnnBC7F
>>7
すまん、宣言するべきだった
980も立てないしすぐ埋まりそうなのであせってしまった
0010デフォルトの名無しさん2016/07/10(日) 00:53:56.31ID:2u6Y/RqP
>>1乙
0011デフォルトの名無しさん2016/07/10(日) 00:56:21.26ID:2u6Y/RqP
>>9
形式的なことは気にしなくてよろしい
0012デフォルトの名無しさん2016/07/10(日) 00:58:02.66ID:2u6Y/RqP
>>980を踏んだのは俺だし新スレ立てようかと思ったけどね
俺が立てたらどうせ嫌がらせで取り消しとか言うだろうから立てなかったよ
0013デフォルトの名無しさん2016/07/10(日) 01:03:28.98ID:u4LDxQcE
ID:2u6Y/RqPも回答しようよ
0014デフォルトの名無しさん2016/07/10(日) 01:14:09.57ID:2u6Y/RqP
>>13
俺はずっと主に質問する側だったからね
軽薄な知識で答えるのはよくないと思ってる
0015デフォルトの名無しさん2016/07/10(日) 01:50:43.97ID:MUn32aUj
>>14
軽薄な煽りもよくないと思って下さい
0016デフォルトの名無しさん2016/07/10(日) 01:53:41.71ID:8n7tHt7F
俺の煽りはいい煽りだ文句あっかクズ

と返ってくるに…
0017デフォルトの名無しさん2016/07/10(日) 01:55:56.35ID:u4LDxQcE
前スレで嫌がらせと言ってたけど、回答に必要なものだ

>「いいからエラーコード書けよ」←たくさんエラーが出てかけないのにこういう嫌がらせをする
→ せめて一部でもエラーを書いてくれないと原因の掴みようがない
予想して回答しても外れれば回答者は無意味な時間つかい、質問者も解決の時間が遅くなる
設定が間違ってるとか、ファイルが壊れてるとか、Updateを当ててないとかのパターンだと解決は極めて困難

もしくは、再現ソースを提示してくれれば一気に解決する

>「お前が何したいのか分からん」←コードレベルで出来るかどうか聞いてるだけなのに目的を聞く
→ 目的がわからないと適切な回答ができないし、選択肢が広すぎる
的はずれな回答や、必要以上に高度な回答をすると質問者が混乱する
解決の時間も長引く

先ほどのページのコピーの質問でも
・PhantomJSかSelenium使え
・API使え
・それで解決しないならOCRしかないんじゃない?
で回答はほぼ出揃ってるし、やりたいことによってはChromeの拡張で済むかもしれない。

スクロールのやり方でつまずくかもって言ってたが、必要でつまずいたらまた質問すればいい
スクロールはUIAutomationやSeleniumやスクリプトを呼び出してもできるだろうが、それなりに難しいし説明にも時間がかかる
0018デフォルトの名無しさん2016/07/10(日) 02:03:19.93ID:8n7tHt7F
>>17
馬鹿じゃねーの
もう手段と目的は逆転したんだよ
ダブルスタンダードを隠そうともしないなりふり構わなさだ
0019デフォルトの名無しさん2016/07/10(日) 02:04:34.40ID:2YnnBC7F
>>17
まあここに来る質問者も回答者も大半が初心者だから
最初から適確な質問も回答も無理なのは大抵の人は理解してもらえると思う
どちら側も聞かれて答えられる範囲で答えてもらわないと話が進まない
0020デフォルトの名無しさん2016/07/10(日) 02:09:19.23ID:2u6Y/RqP
適格な回答ができないのに暴言を吐く回答者がいることが問題なの
親身になって答えてくれる回答者が良くない回答者を諌めないと収拾がつかん
何故か良い回答者が悪い回答者に気を使ってる感があってそれが気持ち悪い
0021デフォルトの名無しさん2016/07/10(日) 02:14:04.63ID:2u6Y/RqP
>>17
やっぱりそういのはリアルタイムに質問者に言うか決まりとしてテンプレに書いて置くとかね
俺ルールを押し付ける回答者が8割近くもいたら質問者はいつまでたっても、ここで聞いてもダメだなって即断してしまうんだよ
でレスしなくなったらお礼言わないのかこいつはとか言うでしょ、そろそろもっとテンプレ充実させようよ
0022デフォルトの名無しさん2016/07/10(日) 02:18:10.20ID:8n7tHt7F
10年近く見ててお礼を言わなかったことを指摘した奴とか見たことないな

お礼強要って割れ系の板の文化でしょ(いわゆる3行)
ダウン板出身?
0023デフォルトの名無しさん2016/07/10(日) 02:21:24.62ID:ybLZxSSO
誰かさん以外は普通に質問できてるのが不思議だよねえ。
自分だけができないのは自分が特異だからとは考えないのかな。

年に2回くらいそういう人が来るよね。
変人なんだけど、自覚のない人。
0024デフォルトの名無しさん2016/07/10(日) 02:21:39.94ID:2u6Y/RqP
答えて貰ったのにその言いぐさはなんだ?
俺が教えたことはスルーか?
とかこういうのはお礼強要と一緒

質問者が理解できてない段階でこういう返しするから卑怯極まりない
0025デフォルトの名無しさん2016/07/10(日) 02:24:37.80ID:2u6Y/RqP
>>23
多くの質問者は言い返さないからね
罵倒されたらレスをやめる、これが慣例だった
0026デフォルトの名無しさん2016/07/10(日) 02:25:24.32ID:ybLZxSSO
×質問者が理解できてない段階でこういう返しするから卑怯極まりない
○俺が理解できてない段階でこういう返しするから卑怯極まりない

こうかな?
訂正しといた。
0027デフォルトの名無しさん2016/07/10(日) 02:27:55.36ID:2u6Y/RqP
>>26
質問者の書き込みが止んだらもうお手上げって思ったからだよ
0028デフォルトの名無しさん2016/07/10(日) 02:29:04.04ID:ybLZxSSO
ところで、さっき誰とは言わなかったんだけど反応したってことは、もしかして自覚あるのかな。
0029デフォルトの名無しさん2016/07/10(日) 02:30:13.69ID:2u6Y/RqP
回答者は質問者が満足した後、立ち去った後でもさらにレスを続ける
「こいつは結局何がやりたかったんだ?」
「こいつの目的は何だったんだ?」
「というか何でC#でこれがやりたいんだ?」
「ソースコード晒さないのに答えてもらってよかったね」
など円満に解決しそうな時でも決して嫌味を忘れないんだよね
0030デフォルトの名無しさん2016/07/10(日) 02:30:59.19ID:u4LDxQcE
「暴言に暴言で諌めようとするのは荒らしです」のテンプレが必要か?

諌めるならその回答の技術的問題点やデメリットだけを指摘すればよい
お前みたいに暴言で返してたらスレが加速して良い情報が流されちゃうし、良い回答者も見るのが嫌になる
質問者も自分のせいでスレが荒れたと思えば書き込みやめちゃうでしょう

昨日のやつは「OCRだとフォントによっては認識精度に問題がある。スクロールも結構面倒」というだけでどれだけスレを消費したんだ?
0031デフォルトの名無しさん2016/07/10(日) 02:32:06.41ID:8n7tHt7F
満足して立ち去った後なら円満に解決した「後」なんじゃねーかなー
円満に解決しそうな「時」じゃなくて
0032デフォルトの名無しさん2016/07/10(日) 02:33:33.69ID:8n7tHt7F
こういうのを見ると
マサカリの誓いにも一定のメリットがあるんだな
と心で理解できる
0033デフォルトの名無しさん2016/07/10(日) 02:34:55.59ID:2u6Y/RqP
>>30
最初の暴言に対して10人くらいで叩けばそれでいいだけ
暴言に対する暴言に対して10人くらいで叩いてるのが卑怯だっての
0034デフォルトの名無しさん2016/07/10(日) 02:36:04.02ID:8n7tHt7F
ヘイトカウンターだってカウンターされるもんよ
カウンターにカウンターされないのはファイナルファンタジーだけ
0035デフォルトの名無しさん2016/07/10(日) 02:37:18.06ID:2u6Y/RqP
100スレ以上にわたって質問者を馬鹿にしたような態度をとり続けた回答者の罪は重い
お願いだからこのスレで変わってほしいものだ
0036デフォルトの名無しさん2016/07/10(日) 02:39:01.09ID:8n7tHt7F
そして、暴力を振るわないのが一番いいという根本的な対人関係の概念が欠如してるな
最初の暴言に対して袋だだきしろって正気かよお前w
0037デフォルトの名無しさん2016/07/10(日) 02:40:40.65ID:KZY4Sy8a
性根と底の浅さが見えるわな
説得力ぜんぜんなし
0038デフォルトの名無しさん2016/07/10(日) 02:43:53.38ID:eWQd9fo8
袋だだきされているのは共闘者を集められないから
共闘者を集められないのは人徳による物
0039デフォルトの名無しさん2016/07/10(日) 02:44:39.45ID:u4LDxQcE
>>24
それはお礼がほしいんじゃないぞ

・あまりにも話しが噛み合ってない、手がかりとなる質問に答えてくれない、このままじゃ回答に行きつけないぞ
・それだと他の掲示板でも荒らし扱いされて損するぞ
・俺が前に書いた回答が多分君の知りたい答えだ、もう一度よく確認してみて
ぐらいの意味だ

あと、前スレ>>917 はどこが暴言なんだ?どう見てもお前がつけた死ねが最初の暴言なんだが
0040デフォルトの名無しさん2016/07/10(日) 02:45:55.06ID:2u6Y/RqP
>>37
なら恫喝する回答者の言うことに従うの?
こいつらはルールを作るでもなく俺ルールを質問のたびに押し付けるんだぜ?
そして建設的にスレをよくしようと思ってるID:u4LDxQcEですら弱腰だ
0041デフォルトの名無しさん2016/07/10(日) 02:47:17.96ID:2u6Y/RqP
>>39
そいつは質問の意図を「エロ画像」だと断定した最低のやつだよ
0042デフォルトの名無しさん2016/07/10(日) 02:47:27.73ID:eWQd9fo8
スルーすりゃいいだけ
道端の街宣車に食ってかかるバカ
0043デフォルトの名無しさん2016/07/10(日) 02:48:24.23ID:2u6Y/RqP
後なんで俺がID:ICRqZQBpになってんだよw
0044デフォルトの名無しさん2016/07/10(日) 02:48:34.33ID:eWQd9fo8
反応するかどうか選ぶ権利を与えられているのはお前なのに
わざわざ反応するトンチキ
0045デフォルトの名無しさん2016/07/10(日) 02:49:46.95ID:2u6Y/RqP
>>42
あいつらは煩いだけで人畜無害だよ
主張を垂れ流してるだけで痛くもかゆくもない
ここは色んな人間がいろんな気持ちで質問してるんだよ
それを毎回同じように罵倒するのが約8割
どれだけ悪質かわかるよな?
0046デフォルトの名無しさん2016/07/10(日) 02:50:06.64ID:8n7tHt7F
恫喝されたからといって恫喝していいってのは誰の押しつけたルールなんですか〜
お答えくださいよ〜
0047デフォルトの名無しさん2016/07/10(日) 02:51:33.75ID:8n7tHt7F
街宣車の奴だっていろんな気持ちはあるだろうに
結局自分の目線で相手を差別してるだけじゃねえか
たかが知れた安っぽい正義感だぜ
0048デフォルトの名無しさん2016/07/10(日) 02:52:28.04ID:2u6Y/RqP
>>46
お前のように暴力はダメと言いつつねちねちしてる奴もやはり害だな
ID:u4LDxQcEとお前は明らかに違う性質をもった人間だ
建設的にスレを考えるID:u4LDxQcEと違って煽りや隠ぺいがすきなタイプ
そうやって延々と絡み続ける、俺はお前と絡みたくない
0049デフォルトの名無しさん2016/07/10(日) 02:53:16.29ID:eWQd9fo8
気持ちを慮って欲しかったら
体の前後に看板でもぶら下げて歩けゴミ
0050デフォルトの名無しさん2016/07/10(日) 02:54:24.08ID:8n7tHt7F
何逃げ腰になってんだw
お前に絡むために今日は起きてんだぞ俺はよ
0051デフォルトの名無しさん2016/07/10(日) 02:55:20.13ID:2u6Y/RqP
>>50
壊れたラジオを相手する気はありませんから^^
0052デフォルトの名無しさん2016/07/10(日) 02:57:01.63ID:2u6Y/RqP
>>17の提案に対して
>>18のような書き込みができる人間は人間ではない
俺はお前を人とは思わないぞID:8n7tHt7F
0053デフォルトの名無しさん2016/07/10(日) 02:57:45.15ID:2u6Y/RqP
というわけでテンプレ充実させてね^^
0054デフォルトの名無しさん2016/07/10(日) 02:57:47.21ID:8n7tHt7F
安心しとけー俺もお前は下等生物だと確信してるからな
0055デフォルトの名無しさん2016/07/10(日) 03:02:49.01ID:2YnnBC7F
ID:2u6Y/RqP
ID:8n7tHt7F
ID:eWQd9fo8
別のところ行ってくれ
0056デフォルトの名無しさん2016/07/10(日) 03:07:04.38ID:u4LDxQcE
「エラーをかけ」「聞いたことに答えろ」はアドバイスだろ
それを罵倒だと思うなら2ちゃんねるは向かないから見るのはやめるべき

>>41
お前が氏ねといったのはその発言の前
どんな理由であれ、良い回答者も質問者も寄り付きにくくなるから暴言はダメ


テンプレが欲しければ、こんなもんか
「暴言や人格攻撃は禁止です。暴言や技術的に問題のある回答は無視または技術的な指摘のみをしましょう。暴言に暴言を返すのは論外です」
0057デフォルトの名無しさん2016/07/10(日) 03:11:38.90ID:2u6Y/RqP
>>56
一つ一つは正論でも相手のコンディション関係なしにぶつけまくるのは嫌がらせと一緒
それとソース晒せは恐らく似非回答者の文句だと思う、だって晒して答えてるやつは別のやつだもんw
0058デフォルトの名無しさん2016/07/10(日) 03:30:35.35ID:u4LDxQcE
>>57
相手のコンディション関係なしにぶつけまくってるのはどのレスだ?それに正論ならしょうがない
荒らし対応する管理人さえいない2ちゃんねるがコンディションを気遣ってくれる掲示板なわけ無いだろ

質問者はお前が暴言を書き込むのを見て、自分のせいだと感じる問題のほうがよっぽど大きい

>似非回答者の文句
「エラーをかけ」「再現ソースを晒せ」「環境をかけ」「言われた質問は答えろ」「目的はなんだ」は初心者に向けた技術系掲示板全世界共通質問だ
文句言われてる質問者はこれがほとんどできてない
0059デフォルトの名無しさん2016/07/10(日) 05:44:18.42ID:Sw0fYTeN
>>51
> 壊れたラジオ
この言い回したまに見るけど
それを言うなら壊れたレコードじゃね?
0060デフォルトの名無しさん2016/07/10(日) 06:12:12.89ID:wNZnvJob
荒らす位なら、足りない知識でも回答側に回る方がよっぽど良いんだけどなぁ。
開幕からあぼーんだらけだし。
せめて1書き込みに1行はC#のコード入れよう。
yield break;
0061名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 07:01:25.43ID:MDASwAaI
>>59
徳永英明のせいだよな
0062名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 07:29:57.13ID:IkrfKy2g
まぁぶっちゃけ、掲示板に質問書くような奴は一生プログラムなんか自力で作れないからどうでも良いw
出来るようになるのは、自力でググったり本見て答えだせるヤツだけ
回答者は薄々分かってるけど、暇な時にボランティアしてるだけだしね
質問者が狂ったように書いても答えるヤツが減るだけだ
0063名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 08:23:00.76ID:Cd5Emc7t
>掲示板に質問書くような奴は一生プログラムなんか自力で作れない
んなわきゃーない
質問の仕方がおかしくて、指摘しても直せないような人は上達も遅そうだとは思うけど、それでも馬鹿にするようなことじゃない
0064名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 08:26:04.32ID:1U822I3Q
レス番がやけに飛んでるな
0065名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 08:39:38.13ID:k3yu/ZB0
>>60
自分が荒らしだと思っていないからだよ
正しい事の布教に努めていると信じている
それで10年くらい粘着しているの他で見たことがある
理解できないんだから相手にしてはいけない
>>62
何でも同じだけど自分だけで解決できない、ブレークスルーが必要ってことはあるんだよ
俺はこういうところで聞くことはないけどな
0066名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 09:14:19.46ID:vClNR34Z
質問をまとめて書き込んだ直後に自己解決した例が半数以上
0067名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 10:37:04.49ID:2u6Y/RqP
>>62
回答者じゃない癖に偉そうだな
お前のような見下す人間がいるから質問する人間が減る
0068名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 11:04:05.42ID:TnpjEBnW
お前が来てからの方がよほど減ってんだけど
臭い自覚ねえのかよコミケに群がるブタか?
0069名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 11:05:21.11ID:TnpjEBnW
起きたから今から揚げ足取りまくりで粘着してやるぞ
午前3時までな
0070名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 11:40:00.78ID:eiCoffPe
2chの低レベルコーダーには期待してないが万が一って事もあるから取り敢えず質問だけ書いて自分でも調査は継続する
これが2chを使う上での基本姿勢だと思うけど
0071名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 11:42:00.36ID:F56GvMHY
口が悪い奴だ。
0072名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 13:35:06.97ID:Pqw5xvDF
ListViewにデータを追加する場合に、
http://stackoverflow.com/questions/9951704/add-item-to-listview-control
の例にあるように、
string[] row = { textBox1.Text, textBox2.Text, textBox3.Text };
var listViewItem = new ListViewItem(row);
listView1.Items.Add(listViewItem);
で追加出来ると書いてあるのですが、実際に試すと最初の要素しか追加されません。
このやり方は間違いですか?普通にforループでやる方法なら出来るのですが、
ループ回さずに一気に追加する方法を教えてください。VS2015です。
0073名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 13:43:11.17ID:ks2mzQ2K
>>72
listView1.Items.AddRange(listViewItem);
こうかな
0074名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:13:23.93ID:Pqw5xvDF
>>73
レスありがとうございました。
AddRangeだと文法エラーが出ます。

'System.Windows.Forms.ListViewItem' から
'System.Windows.Forms.ListView.ListViewItemCollection' に変換できません
0075名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:38:28.52ID:ks2mzQ2K
>>74
あーそこの例は
{ textBox1.Text, textBox2.Text, textBox3.Text }が一項目扱いだな
3つにするにはコレクション作って代入しないとだめだ
https://msdn.microsoft.com/ja-jp/library/1c1wawcw%28v=vs.110%29.aspx
string[]を直接ListViewItem[]にはできないからループさせるしかない
0076名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:40:38.86ID:eiCoffPe
そこでLinqですよ
0077名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:48:39.98ID:b3VrmKWk
どの辺が直感的なんだよな
AddRangeで入らないもの作った担当者は猛省して欲しい
0078名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:59:06.38ID:ks2mzQ2K
>>77
ListViewが1次元のコレクションだと勘違いしていた。ゴメン
0079名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 15:12:31.58ID:Cd5Emc7t
>>72
new ListViewItem(string[]) で作られるのは
string[0] の下にその他の配列要素をサブアイテムとしたListViewItemなので
「そのやり方が間違い」というより、あなたの理解が間違い
(そのページの質問者は「列を3つ持った詳細表示のListViewを作るとき、それぞれの列にサブアイテムを付けてくのめんどくさい。楽なやり方ない?」と聞いてるので、回答は正しい。)

string配列のそれぞれの要素をListViewにListViewItemとして加えるコードをLINQで書くと↓の感じ

string[] row = { textBox1.Text, textBox2.Text, textBox3.Text };

ListViewItem[] items =
 row
 .Select(x => new ListViewItem(x))
 .ToArray();

listView1.Items.AddRange(items);
0080名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 16:28:29.06ID:ZGUPE9KC
WebBrowserに表示したページのリンクをクリックすると、とあるPDFが表示されます
このPDFファイルをローカルフォルダに保存したいのですが行き詰まっています

リンク部のHTMLはこんな感じです
<a onclick="getpdf('frm', 'pdfurl', '_blank'); return false;">...</a>

javascript部はこんな感じです
function getpdf(formname, url, winName){
obj = document.getElementsByName(formName)[0];

obj.method = "POST";
obj.action = url;
obj.target = winName;

obj.submit();
}

試しにpdfurlをコピってIEなどで表示しようとすると「不正なURLです」と怒られます
getpdfメソッドを実行しないと正しいPDFは表示されない仕様のようです

さて、このPDFを手元に保存したいというのが目的なのですが
document.InvokeScript("getpdf", args);
で、表示させるところまでは出来たのですがこの後がわかりません

長文すいません。よろしくお願いします。
0081名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 16:43:02.53ID:wNZnvJob
>>80
ここはC#スレなんで、違うスレで聞いた方が良いよー
0082名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 17:46:45.61ID:Cd5Emc7t
>>81 の言うとおり、スレ違いに見える
…で、よそのスレに行くことになるんだろうけど、なんか気になるので二つほど…

1.
「こんな感じです」というコードじゃなくて、問題となっているコードを、そのまま出すべきじゃないかな?(業務データで問題のある場所があれば他の文字に置換してもらう必要はあるが)
「問題点をまだ認識できていないあなた」が「勝手に変更した」コードって、もとのコードより問題点増えてる気が…

2.
そもそも、そのページを作った人は、そのPDF、利用者にローカルで保存されたくないんじゃないの?
もしそうなら、程度はどうあれ、それ crack じゃんw

( そ ん な の 自 分 で や れ )

普通のスレは、当然、そういうのNG
0083名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 18:59:37.43ID:2u6Y/RqP
こいつやたら偉そうだけどクラックの意味分かってるのか?
0084802016/07/10(日) 19:19:06.49ID:ZGUPE9KC
>>81
>>82
ありがとうございます
説明が足りずすいませんでした

表示したいPDFとはETC利用明細http://www.etc-meisai.jp/index.htmlのPDFなのですが
業務上PDF明細を客先にメールで送るというようなことが多々ありまして、これを半自動的にローカルフォルダに保存できないかと
考えたのです
もちろんIEなどに表示させたPDFを手動でダウンロードするだけならダウンロードボタンをクリックすれば誰でもできるのですが
車両番号やら日付やら走行選択などが煩わしいので・・・

一応該当のjavascriptを画像で載せておきますとこんな感じです
http://iup.2ch-library.com/i/i1674529-1468142392.png
http://iup.2ch-library.com/i/i1674528-1468142350.png
一枚目の「証明書PDF」をクリックするとブラウザの別タブでPDFが表示されます

C#のコードはこうなってます
string[] args = { "false", "hakkoMeisai", "frm", argUrl, "_self"};
doc.InvokeScript("goOutput", args);

ここまではWebBrowserコントロールを使って自前のフォームに表示することは出来たのですが
最後のダウンロードで躓いております

当然PDFのURLはHTMLのソースもしくはPDFを表示したアドアレスバーから取得できるのですが
downloadClient.DownloadFileAsync(new Uri(pdfUrl + ".pdf"), folder + FileName);
などとしてもダウンロードは出来ません(保存されるのはエラー画面のHTMLです)

端的に申しますと「現在WebBrowserコントロールに表示されているPDFをファイルとしてローカルに保存したい」
ということなのですがどなたかご教示いただけませんでしょうか
0085名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 19:33:06.18ID:GVug6dOQ
>>84
似た様な事例はあったけど
http://bbs.wankuma.com/index.cgi?mode=al2&;namber=51490&KLOG=86
要はURLにはPDFの実体がないから表示されているPDFのデータをブラウザキャッシュなどから取りだす方法じゃないと無理みたい
0086802016/07/10(日) 20:02:53.74ID:ZGUPE9KC
>>85
ありがとうございます
目の前にPDFが表示されているのにそれを取得出来ないのはなんとももどかしいです
確かにURLの先にはPDFの実態がないようですがフォーム上には表示されているのですから
webBrowserの中には実態があるはずかと思うのですが・・・

しかし、この実態データを保存云々するのはadobe readerの領分になるのでしょうか
さすがにadobe readerのプラグイン?をC#から操作するのは難しそうですね

因みに当方環境ではIEキャッシュには保存されず、毎回読み込んでいるようです
インストール環境によってはエラーだらけのアプリになりそうで躊躇します
0087デフォルトの名無しさん2016/07/10(日) 20:05:40.08ID:Cd5Emc7t
>>84
俺ETC使わないんで試せないけど

string address = "http://www.etc-meisai.jp/"; + 【1枚目画像のgoOutputの第4引数の文字列】
string fileName = 【ダウンロードファイルのパス】

として

WebClietnt.DownloadFile(address, fileName);

では、ダメなの?

…あと、「jsessionid」の値は、黒塗りしといてくれる方が良かった…
(これだけで、すぐ何かがあるというわけではないと思うが)
0088デフォルトの名無しさん2016/07/10(日) 20:19:36.73ID:8AqR9DEp
>>80
> 試しにpdfurlをコピってIEなどで表示しようとすると「不正なURLです」と怒られます
> getpdfメソッドを実行しないと正しいPDFは表示されない仕様のようです
そりゃそうだ。それは"GET"だ。
"POST"しれ。
0089デフォルトの名無しさん2016/07/10(日) 20:27:44.56ID:Cd5Emc7t
あ、しまった
submitOpenPage() でPOSTしてるってことは、POSTデータがないとダメか…
(POSTデータの中にトークンがあるかも)
結局、スレチみたい…(C#よりも、htmlやjavascriptの知識が必要)

あと、>>80 がとてもいい人っぽいので、ついレスをしてしまってるが
顧客の個人情報に関わるデータだから、地道に、自分だけでやってもらった方がいいような…
0090デフォルトの名無しさん2016/07/10(日) 21:00:46.12ID:9upSpmGb
<form enctype="multipart/form-data" method="POST" action="hoge.php">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="file" name="datFile" />
<input type="submit" name="sb" value="変換する" />
</form>

このようなフォームがあって、C#からデータ送信を行う場合どうすればいいですか?
WebClient#UploadFileだと出来ません
WebClient#UploadDataでも無理そうです
0091802016/07/10(日) 21:12:29.79ID:ZGUPE9KC
>>87
試してみましたがやはりダメでした
デバッグモードでURLも確認しましたが間違いでもなさそうです
addaress="https://www2.etc-meisai.jp/etc/R;jsessionid=hoge?funccode=1032000000&nextfunc=1032600000"

>>88
すいません>>80に書いたjavascriptのメソッド名などは説明のため自分が適当に付けたものです
正しくは>>84の様に
doc.InvokeScript("goOutput", args);
と、goOutput()を実行しています

>>89
当方javascriptの知識があまりないものでPOSTの意味も分かっておりません
ETC側のサーバが直リンでPDFを表示させない仕様から察するに
>POSTデータの中にトークンがある
がヒントのようですね


ちょっとjavascriptの勉強をしてきます
ふと思ったのですが
submitOpenPage()で
obj.target="C:\"
obj.submit();
したらターゲットがブラウザではなくファイルになったりしないのか・・・
あぁ・・甚だスレ違いですね、申し訳ない、消えます
ダラダラと長文ばかりすいませんでした
お付き合いありがとうございました
0092デフォルトの名無しさん2016/07/10(日) 21:27:01.26ID:eiCoffPe
HTMLとかJavaScriptの構造を調べるよりHTTPリクエスト・レスポンスを覗き見して何をやり取りすればいいのか調べる方が早いよ
0093デフォルトの名無しさん2016/07/10(日) 21:31:11.50ID:Cd5Emc7t
>>91
あんまり力になれなくてごめん
でも、取得したHTMLを見てPOSTで渡されるデータがどこで設定されてるかを調べて
それをRegexpとか使いながら収集してPOSTデータを作って
サーバーにリクエストすれば、自分の欲しいデータを返してくれるはず
0094デフォルトの名無しさん2016/07/10(日) 21:52:22.66ID:9upSpmGb
>>92
ファイルのみ、テキストパラメータのみだとggったら出てくるんですが、両方一緒にする方法がどこにもありません
0095デフォルトの名無しさん2016/07/10(日) 22:09:54.79ID:Cd5Emc7t
>>90
ついさっき間違えたとこなので、恥ずかしながらレスしますが
POSTデータを送るようになっているので、
WebClient.UploadFile() も WebClient.UploadData() も使えません。

POSTデータを送る場合は

対象URL → string url
自分で作ったPOSTデータ → System.Collections.Specialized.NameValueCollection postData

として

WebClient.UploadValues(url, postData)
 ※戻り値はサーバーから送られるデータ(byte[])

で、送信できるはずです。
0096デフォルトの名無しさん2016/07/10(日) 22:15:21.71ID:Cd5Emc7t
>>94
C#プログラムからPOSTデータを送る方法はC#の話題と言えるけど、
送信するPOSTデータの収集元の探し方はC#関係ないので、勘弁してほしいかな…
0097デフォルトの名無しさん2016/07/10(日) 22:36:31.13ID:9upSpmGb
>>96
C#プログラムから送る方法です
様々な送信クラスがありますが、どのクラスが最適でしょうか
0098デフォルトの名無しさん2016/07/10(日) 22:42:05.28ID:Cd5Emc7t
>>97
ごめん。「どのクラスが最適か」は分からない。
さっき書いた >>95 の方法ではダメだった?
0099デフォルトの名無しさん2016/07/10(日) 22:59:33.31ID:9upSpmGb
ChromeのNetWorkタブで確認しても、ファイルパラメーターにファイル名しかないんです
ファイル名だけ送っているんですか?
0100デフォルトの名無しさん2016/07/10(日) 23:00:50.56ID:9upSpmGb
>>98
<input type="file" name="datFile" />に対応できません
0101デフォルトの名無しさん2016/07/10(日) 23:05:18.02ID:AVHDFEXv
>>94
「multipart/form-data c#」でググれば出てくるぞ。
■ このスレッドは過去ログ倉庫に格納されています