[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 13:46 / Filesize : 58 KB / Number-of Response : 281
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part55



1 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 23:23:45 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part54
pc12.2ch.net/test/read.cgi/tech/1250911923/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい


175 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:11:03 ]
いや同期したら意味ないから
イベントは全部非同期コールバック

176 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:15:11 ]
まだ読み終わってないけど、>>173見て
最後一つだけ質問させてくだはい
class plex{
   private int clickcount=0;
   public int ClickCount
    {
      set { clickcount = value; }
      get { return clickcount; }
    }
}
---
Comp c = new Comp();

if (c!=null)
      { c.ClickCount++; //0に1追加
       MessageBox.Show(c.ClickCount.ToString()); } //毎回1が返される

何度setしてもカウントがgetするたびに0になってます
上手くsetされていないのかもしれないんですが、どこがおかしいか指摘もらえませんか?

177 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:17:39 ]
プロパティに++は使えない

178 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:17:45 ]
あ、class名はCompですね、書き間違えました

179 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:20:15 ]
++が使えないなら0が返るのでは?
c.ClickCount=c.ClickCount+1;
こうしてみましたけど、これでも毎回1しか返してきません

180 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:23:04 ]
Comp c = new Comp();をクラス直下に移動する

181 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:23:14 ]
エスパーしてみる。
おそらくButton_Clickなんかの中でnewしてるんでしょ。

var c = new Comp(); // ←新しく作ったので、値0から
   : なんか処理

var c = new Comp(); // ←また新しく作ったので、値0から

182 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:25:55 ]
一番いいのはイベントを飛ばすのだけれど、この分だとForm1のインスタンスを渡すのも辛そうだ。
staticなclassにpublicフィールドもta
せればいいと思うよ。

183 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:26:14 ]
>>180,181
見事、それが原因でした
そういうものなのね、少しそれも疑ったけれど
毎回clickcountに++されていってると思ってて
newごとにそうなるとは思わなかった。
ありがとうございます。



184 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:28:24 ]
>>175
説明が足りなんだ。DoWorkじゃなくて
ProgressChangedとRunWorkerCompletedのこと。


185 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:28:26 ]
>>177
嘘付くな

186 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:31:49 ]
小間苛やさしいなw

187 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:32:52 ]
>>184
コンポーネントなんだから自分の親が誰かくらいは知ってるんじゃないの

188 名前:183 mailto:sage [2009/10/20(火) 23:34:17 ]
あー・・・
>>176のソースで、
Comp c = new Comp();を使うと、clickcount=0になるんですよね?
この場合、値をリセットせずにプロパティを参照することはできませんか?

何度かそのフォームを表示させて、ボタンをクリックさせるたびに、
以前のクリックした回数は保持させておきたいのですがそんなことは出来ませんか?


189 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:34:32 ]
>>174
AsyncOperationつーもんがある

190 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:40:07 ]
>>188
毎回インスタンス生成してるんだから、カウントをリセットしているわけじゃなく、毎回新しいCompのプロパティを0→1にしている。

191 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:47:26 ]
>>184
WinFormsやWPFがグローバルなSynchronizationContextを提供してるみたい
Componentは特に関係なさそう

192 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:47:54 ]
>>190
あー、毎回1になる原理は分かりました。
しかし、毎回インスタンス生成しないと、参照出来ないのでは?

193 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:54:27 ]
>>189,191
ありがとう。AsyncOperationは少し調べてみます。




194 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:56:03 ]
>>192
レス全部読んでる?

195 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:00:30 ]
>>194
何か重要なレス見逃しました?
一応全部目を通してるんですが・・・

196 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:02:15 ]
>>195
>>180
Comp c = new Comp();
private void button1_Click(…

197 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:08:26 ]
変数のスコープをもっと考えなさいってこと。

198 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:11:23 ]
>194
そもそも読んだところで理解出来ないと思われ

199 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:11:59 ]
>>196
あ、じゃなくて、直下に移動させてその問題は解決したんですが
Form1からForm2出して、Form2のボタンをクリックすると、
>>176使ってclickcountにクリックした回数を++した後でForm2をClose
このあと、2回目以降にForm2を呼んだとき、
どうしても毎回Comp c = new Comp();通りますよね。
このときclickcountに格納された値も0になってしまうのを回避する方法は無いですか?

わかりづらくてすいません。

200 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:29:15 ]
生存期間を考えて、ふさわしい方法を考えようぜ

201 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:44:51 ]
おまえはもうこっちにいけ。
pc12.2ch.net/test/read.cgi/tech/1255658236/
スレを汚すな。バカチンが。

202 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 01:05:20 ]
はじめての言語がC#、いま2ヶ月たちました。
結構簡単ですね。簡単な業務用ツールいくつか作れました。

って感じがするw

203 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 01:16:18 ]
>>199だけ教えて貰えませんか
この方法あれば終われますので;



204 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 06:39:16 ]
あきらめろよ

205 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 09:56:43 ]
最初に答えるときに、ふらっと誘導しようと思ったんだが
ここまで引っ張るとは思ってなかったわ・・・

206 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 12:22:52 ]
HTMLをネット上から取得した場合
画像や、リンクがフルパスではなく

../img/image.jpg
/help.htm

のように、なっていることが多いのですが
これをどうにか、フルパス指定にする方法はないでしょうか

207 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 12:27:01 ]
base要素か現在のurlからUri作るだけ

208 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 12:27:11 ]
C#一切関係ないなそれ
BASEでも指定すればいいんじゃないの。何に使いたいのかは知らんけど

209 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 12:48:36 ]
>>207,208
ありがとうございます
教えていただいたもので考えた結果

string url="google.com";
Uri base=new Uri(url);

HTMLをサーバーから取得し、htmlというstring変数に入れる

html内を検索し、../や/で始まるものを置換するという方法で一応できる・・・のでしょうか
こういう処理しか思い浮かばなかったのですが
最初から、フルパスで取得したりはできないですよね・・・・
この処理すごく煩雑になると思うのですが、もうちょっとスマートな方法はないでしょうか?orz

210 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 12:53:22 ]
あ、ちなみにやりたいことは
ネットを見る際特定の広告などを表示しないなど、直接ではなく少し改変して表示するブラウザの作成です

211 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:12:30 ]
現在のページのUriはわかってるわけだから、
このタイプのコンストラクタを使う。
Uri (Uri baseUri, string relativeUri)

212 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:42:37 ]
>>211
それを調べてみたのですが
BaseUriの後にRelativeUriをくっつけてるだけですよね?
つまり、RelativeUri(/index.htmlなど)が分からなければいけないので
取得したソースから[/***.html]や[../***.jpg]などを検索、取得しRelativeUriにいれて一個ずつ置換しなければなりませんよね?
自分が勘違いしているだけかもしれませんが
そうなると、ソースの中から上記のものを取得しなければならない作業があるわけですが
それを簡単に行うことはできますでしょうか?
自分が考えついたのは
ソースないで「"../」や「"/」で始まる部分を検索し、そこを置換という方法だけだったのですが
すごく煩雑でしかも、/で始まらない場合には対応できないので
何か他にいい案がないものかな。と思いまして・・・

213 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:48:50 ]
正規化



214 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:17:25 ]
>>212
言ってる意味が分からないな。
urlを食わせればそのページからのリンクをフルパスで
一覧してくれる便利な関数やライブラリはないかという話なら標準のBCLにはない。
だいたい、相対URLが ../ や /で始まってるとも限らないだろ?


215 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:23:35 ]
それから、これはURLの正規化をしてくれるよ。
>Uri (Uri baseUri, string relativeUri) 

base=www.xxxx.com/xxx/yyy/aaaa.html
として
relativeUri=../zzz/xxx.html
なら、ちゃんとこうなる。
www.xxxx.com/xxx/zzz/xxx.html

relativeUri=/bbb.html
なら、こうなる。
base=www.xxxx.com/bbb.html


216 名前:デフォルトの名無しさん [2009/10/21(水) 17:54:17 ]
リストビューで、非フォーカス時に選択されている行の背景色は淡いグレーですが、
まるでフォーカスが当たっているように青にするにはどうすれば良いでしょうか?

217 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:05:59 ]
グローバルな設定はできたと思うけど混乱するのでやめた方がいい
リストビューだけ変えるにはオーナードローしかないんじゃね

218 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:14:15 ]
フォーカスの外れたタイミングでSelectedItemsのBackColorとForeColorかえてやるとか

219 名前:デフォルトの名無しさん [2009/10/22(木) 20:37:24 ]
すいません。教えてください。

クライアント複数(C#でWinアプリ)→サーバー(SqlServer2005Express)というアプリを作りたいです。
このアプリを配布する前提なのですが、どのように作成したらよいでしょうか。
「サービスベースのデータベース」で作成してサーバーでのデータベース運用にできるのでしょうか?
また、どのように配布するのでしょうか。

よろしくお願いいたします。


220 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 21:47:28 ]
>>219
1)ASP.NETでつくる。
2)WebServiceでプレゼンテーション層を作り、ClickOnceでクライアントに配布。

便乗で質問してよろしいでしょうか?
XmlWebサービスでDataTableを取得し、コンボボックスのデータソースにしようとしています。
DataTableを取得するまではできたのですがDataSourceにつっこんでも欲しい値がでません。
コンボボックスには〜.DataViewみたいな型情報が出てしまいます。
XmlWebサービスで取得する値は、DBからSelect文で1列だけ取得したものです。
for eachで値が取れていることは確認し、Items.Add()で追加することもできました。
だけど、ComboBox.DataSourece = datatable;の形で値を表示したいです。
なぜ正しくでないのか、そして正しくでる方法を知っている方がいましたら教えてください。

よろしくお願いします。

221 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 21:49:59 ]
>>220 はぜんぜんわかってないとみた。

222 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 08:32:58 ]
>>220
DisplayMember と ValueMember を指定


223 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 12:17:45 ]
>>222
thx。試してみるわ。




224 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 15:50:21 ]
すまん、どっかにオブジェクト参照残ってるぽくて、強制ガベコレしてもデストラクタまでこないんだがどんな風に掴まれてるのかオブジェクトグラフを辿る方法とかない?

225 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 18:14:33 ]
知るか禿げ

226 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 21:33:32 ]
アルゴリズムとデータ構造を勉強しようと思っているんだけれど、言語はC#でいいかな?
本はC言語の方が充実しているみたいだが、C#にも強くなりたいと思っているので。
他にC、Java、JavaScriptの文法ならわかる。

227 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 21:35:18 ]
>>226
今からC++覚える意義は何もないのでC#でいいよ

228 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 21:36:10 ]
Rubyがいいよ

229 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 22:02:00 ]
Haskellにしとけ

230 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 22:12:56 ]
>>228-229
ふざけんな

231 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 22:17:11 ]
ふざけんなとは、どういう意図で言ってるんだ?

232 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 23:10:52 ]
C#スレで別の言語すすめんな!スレ違い!って意味じゃないのかね。
まあ Ruby も Haskell も別にふざけた言語じゃないと思うけど。

ちなみにC#でアルゴリズムの勉強するとしても
Cとほぼ同じレベルの文法しかつかわないと思うよ。
使い方じゃなくて実装の方の勉強をするんでしょ?

233 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 23:18:18 ]
おまえに答えろと言ってねえよ
すっこんでろ



234 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 23:19:46 ]
>>232
うん。
使い方なら、(言語は何であれ)そもそもライブラリが充実しているのでそちらを使えるようになればいいと思っている。
目的はそのための基礎づくり。

235 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 23:21:18 ]
C#のすれでC#でいいかなとかもうばかかと

236 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 23:42:15 ]
なにこのうんこな流れ

237 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 11:36:29 ]
うんこは水に流すしかないな

238 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 12:03:47 ]
別のExeのプロセスをフックするにはどうしたらいいんでしょうか?


239 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 12:40:01 ]
プロセスのフック、なんてものはない。
別プロセスの何をフックしたいんだ?

240 名前:238 mailto:sage [2009/10/24(土) 13:08:39 ]
自己解決しました

241 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 13:14:38 ]
よかったね。

242 名前:238 [2009/10/24(土) 13:28:53 ]
してません。
サブクラス化?って奴だと思うんですが、自身のウィンドウしかできないもので。


243 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 13:32:41 ]
>>238
おれは優しいので教えてあげる

API



244 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 17:59:42 ]
自己解決しました

245 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:09:21 ]
サブクラス化ってことは、ウィンドウメッセージね。
あれは C# じゃ無理。グローバルフックが必要だから。

246 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:23:07 ]
C#でグローバルフックできるよ。

247 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:08:43 ]
へー。どうやってやるの? LL じゃ意味がないのはわかってるよね?

248 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:14:46 ]
>>247
ggrks
www.google.co.jp/search?hl=ja&source=hp&q=C%23+%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E3%83%95%E3%83%83%E3%82%AF&lr=&aq=f&oq=

249 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:19:50 ]
LL じゃん。ウィンドウメッセージをフックしてくれよ。グローバルフックで。

250 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:22:03 ]
まぁ、意味がわかってないバカってことだな。

251 名前:243 mailto:sage [2009/10/24(土) 23:25:50 ]
おれのことスルーしてる?

252 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:27:01 ]
お前ははなから相手にされてない。

253 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 03:31:57 ]
>>251
おれは優しいので教えてあげる

帰れ



254 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 16:07:14 ]
ぐぐっても分からなかったんだけど、LLってなに?

255 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 16:23:33 ]
LightningLazer

256 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 16:24:22 ]
LoveLevolution

257 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 16:46:29 ]
>>254
WH_KEYBOARD_LL, WH_MOUSE_LL

258 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:35:39 ]
LowLevelHook

259 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 15:50:20 ]
体重が100kg以上だとLLサイズになる

260 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 15:51:08 ]
XLは?

261 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 21:15:54 ]
「列挙型はクラスではない」で合っていますか?
あと「文字列や配列はクラスである」という理解でいいんでしょうか?

値型となるのが数値、文字、真理値、構造体
参照型となるのが配列、文字列、クラス、インターフェース、デリゲート
列挙型は特定の数値しか取らない型定義だから、値型。つまり参照型のクラスではない
という論法。

262 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 21:36:56 ]
俺もそういう理解だけど、困ったこと無いからいいんじゃないかな?
間違ってるとして、困った事が起こるのはどんな時?教えて偉い人。

263 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 21:41:09 ]
配列はクラスかというとちょっと微妙だな
配列型の基底クラスであるArrayは確かにクラスだけど配列型そのものは
やっぱりクラスではなく配列型と呼ぶのが普通だろう
デリゲートだってDelegateはクラスだけどデリゲートそのものはデリゲート型と呼ぶだろ(実体はクラス)



264 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 21:43:19 ]
なんですかそのパンダは哺乳類と呼ぶべきで動物じゃない理論は

265 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 21:50:56 ]
動物か植物か矛盾だらけの世界〜♪とかいう歌を最近聴いた気がする。

System.EnumはSystem.ValueTypeを継承してるから値型の一種でいいと思うけど、
struct型の値型とは分類が違う。EnumはEnum型と呼ぶべきだろう。

266 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 22:04:22 ]
列挙型ってCLIのプリミティブ型に型情報をくっつけてるだけだよ
その意味ではInt32やCharなどと同じ

267 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 22:09:04 ]
ILで見ると分かりやすい。
public enum ABC { aa, bb, cc }
が、こうなる。
.class public auto ansi sealed ABC extends [mscorlib]System.Enum
{
  .field public specialname rtspecialname int32 value__
  .field public static literal valuetype ABC aa = int32(0x00000000)
  .field public static literal valuetype ABC bb = int32(0x00000001)
  .field public static literal valuetype ABC cc = int32(0x00000002)
}


268 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 22:40:27 ]
>>261
C#言語仕様14章より
列挙型とは、名前付き定数のセットを宣言する固有の値型 (4.1 を参照) です。

269 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:49:39 ]
C#でネット通信するとき
Webproxy=NULL;
にすると通信がすっごく早くなるのですが、これを使う(プロクシを使用しない)ことによる問題はありますか?
プロクシ通さないと繋がらないPCはおいといて、通常の環境での話です


あと、たとえばWebで
じゃんけんゲームをcgiで作ったとします

ボタンが3つあって、
Aを押すとグー
Bを押すとチョキ
Cを押すとパー

ボタンを押すと相手もランダムに手を出し勝負するという単純なものです


cgiの内部的には、Aというボタンが押された、という情報を受け取って表示をしていることは分かるのですが

C#のアプリ側で
そのAというボタンが押されたという情報を送って、帰ってくる結果を取得するにはどうすればいいのでしょうか?

WebBrowserを用いて直接ボタンを押す以外でです。
わかりにくかったらすいませんorz

270 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:59:09 ]
HTTPがわかればわかる

271 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:05:58 ]
申し訳ありません
説明不足でした

HTTP Header
というもので、どういう情報を送信すればいいかはわかってます
上のやつで
ボタンAが押された場合は
Agaosareta
という情報が送られるようになっています


でも、どうやって送信、取得すればいいのかがわからなくて・・・・・

272 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:08:44 ]
実際の通信の中身が知りたいのか、HTTPRequest等の使い方が知りたいのかどっちよ

273 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:24:17 ]
www.dotup.org/uploda/www.dotup.org315393.png
こんな感じです

おおげさですが
専用ブラウザみたいなものを作りたいといえば通じるようなきがします
元々はシンプルなものを、ローカル側で見やすくして表示するじゃんけんゲーム専用のブラウザを作りたいです

ブラウザなら、ボタンを押せば勝手に情報が送信されますよね?
そして、かえって来た情報を元にテキスト(勝ち負け)を表示


でも、それをローカルのアプリからやる方法がわからないんです
この絵で言うパー(じゃんけんの手を送信)を送信
と、結果を取得(じゃんけんの結果を取得)

がよくわかりません・・・
結果さえ取得できれば
勝ちならif(win)〜
負けならelse if(rose)〜

みたいにして結果のぺーじをかえればいいんだとは思いますが



274 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:30:21 ]
>>271 からPOSTするときの内容もわかってると思っていいの?
って面倒だからググってきた。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/318webpost/webpost.html
こういうのでわかる?

275 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:36:29 ]
>>273
WebClient もしくは HttpWebRequest を使う(前者のほうが簡単)
www.atmarkit.co.jp/fdotnet/dotnettips/302wcget/wcget.html
ブラウザで表示するのとは別のアドレスを用意するか
送信する引数に勝敗だけ返してねーってフラグでも付けて送る
例えばGETでやるならこんな感じかね(非ブラウザからパーを送信)
www.hoge.co.jp/pss.cgi?value=paper&mode=client

CGI側は value の内容から勝敗を決定し単純に勝敗のみを文字で返す
クライアントはダウンロードした文字の内容で結果を判断する

WebClient wc = new WebClient();
byte[] data = wc.DownloadData("www.hoge.co.jp/pss.cgi?value=paper&mode=client");
Encoding enc = Encoding.GetEncoding("Shift_JIS");
string html = enc.GetString(data);
if (html == "勝ち") { } else { }

276 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:37:02 ]
>>274
まさにこれです
本当にありがとうございました

このじゃんけんゲームは自分で作ったので
それぞれ

paagaosareta
guugaosareta
tyokigaosareta

という内容を送信するということは分かってます

それを見てふ、と思ったのですが
googleで検索ボタンを押したときや、たとえば2chに書き込む情報を送るなんていう場合は
色々POSTされているんだと思いますが
そういうのを調べる方法はあるのでしょうか?

277 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:44:52 ]
FirefoxでHTTP Live Headersアドオン入れるのが手軽

278 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:49:03 ]
って中身もか、、、HTTPわかりゃいい、、、というかcgi書いてるなら中身わかると思うが

279 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:52:51 ]
いったいHTTPのことは分かってるのか分かってないのかどっちだ

280 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:53:47 ]
入門書の通り作っただけなのでさっぱりわかってません・・・・
動いた!わーい!

って感じです・・・・






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<58KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef