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


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

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



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

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

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

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

449 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 23:26:11 ]
遊ばれてる人々

450 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 23:31:57 ]
他人がネタで書いてるだけだってば。

451 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 23:44:30 ]
ID無い板で冬休み
そういうことだ

452 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:17:40 ]
>>437
こんなあほ相手にするだけ無駄だったな。


453 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:20:15 ]
>>432
お前も勘違いしてる。


454 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 03:05:56 ]
初めまして。
現在COMのiTunes 1.12 Type Libraryを利用して、
iTunesで曲が再生される度にListViewに曲目を追加していくアプリを開発しています。
再生開始時にListViewに追加できるようにするため、一通りコードを書いたのですが
以下のコードがうまく動かずに頓挫しています。

具体的には、関数ShowSongInfoOnList()において
リストを表示する手前でMessageBoxを出すと、曲目が表示されるのですが、
(ゆえに、曲目は正常に取れているはず)
その次の行のAddする時にうまく行っていないようで、困っています。
Addさえうまく行けば…と思い、苦労しております。

解決法をご存知の方、どうかご教授ください。

455 名前:454のコード1 mailto:sage [2009/12/31(木) 03:07:34 ]
namespace WindowsFormsApplication1
{

public partial class Form1 : Form
{
// iTunes操作のためのインスタンス
private iTunesApp iTunes;

public Form1()
{
// 初期化
InitializeComponent();

// リスト形式で表示するためのコード
listView1.FullRowSelect = true;
listView1.GridLines = true;
listView1.Sorting = SortOrder.Ascending;
listView1.View = View.Details;
listView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
listView1.Columns.Add("楽曲名", 145, HorizontalAlignment.Left);
listView1.Columns.Add("アーティスト", 145, HorizontalAlignment.Left);
listView1.Columns.Add("アルバム", 100, HorizontalAlignment.Left);
listView1.Columns.Add("再生日時", 200, HorizontalAlignment.Left);

// インスタンス生成
iTunes = new iTunesAppClass();



456 名前:454のコード2 mailto:sage [2009/12/31(木) 03:08:20 ]
// イベントハンドラ群
iTunes.OnPlayerPlayEvent += new _IiTunesEvents_OnPlayerPlayEventEventHandler(iTunesPlayEvent);
iTunes.OnPlayerStopEvent += new _IiTunesEvents_OnPlayerStopEventEventHandler(iTunesStopEvent);
iTunes.OnAboutToPromptUserToQuitEvent += new _IiTunesEvents_OnAboutToPromptUserToQuitEventEventHandler(iTunesQuitEvent);
}
// 再生開始イベント
private void iTunesPlayEvent(Object iTrack)
{
ShowSongInfoOnList((IITTrack)iTrack);
}
// 再生終了イベント
private void iTunesStopEvent(Object iTrack)
{
}

// iTunes終了イベント
private void iTunesQuitEvent()
{
this.Close();
}

private void ShowSongInfoOnList(IITTrack itrack)
{
// 曲情報を格納
DateTime dt = DateTime.Now;
// デバッグ用
MessageBox.Show(itrack.Name + itrack.Artist + itrack.Album + dt.ToString());
// リスト表示
this.listView1.Items.Add(new ListViewItem(new String[] { itrack.Name, itrack.Artist, itrack.Album, dt.ToString() }));
}
}
}

457 名前:454 mailto:sage [2009/12/31(木) 03:11:17 ]
自己解決しました。スレ汚し失礼しました。



458 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 22:29:20 ]
ある値を返す関数FUNCがあるとします。FUNCが返す値は、FUNC内で取得や生成がされるものではなく、他のコールバック関数CBがきた時点でCB内で取得できるものです。
この場合、FUNCによってCBで得られた値を返すにはどのような方法をとればいいのでしょうか。

CB内の処理で適当なフラグをONにして、FUNC内でそのフラグがONになるのをwhileループで待つというのは微妙な方法だと思います。
またThread.Sleepで処理を待つというのも、この場合FUNCの反応速度が1ms単位になってしまうので若干の妥協を強いられることになってしまいます。

この場合どのような手段が最適なのでしょうか。
ちなみにこの情報が役に立つかはわかりませんが、具体的にやりたいことはDirectShowでUSBカメラのキャプチャを行うことの複雑さをクラスによって隠蔽しようとしています。
DirectShowのISampleGrabberCB.BufferCBが上記のコールバック関数CBにあたり、クラスでキャプチャ画像を取得する関数が上記のFUNCに相当します。
よろしくお願いします。

459 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 22:35:25 ]
FUNCだけでやりたい、ってことなら、ポーリングするしかない。
普通に考えれば、コールバックなりイベントなりを使うだろうけどね。

460 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 02:08:29 ]
要約するとこう?
| コールバック関数にキャプったデータが非同期で順次渡され、FUNCで現在のデータを取り出す
| しかし、まだカメラの準備ができていなくてデータがないときはFUNCをブロックしたい

いずれにしても、同期制御の基本的な部分が分らないんだろうな
キーワード: イベントオブジェクト、EventWaitHandle

461 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 05:13:05 ]
>>460
笑(笑)

462 名前:458 mailto:sage [2010/01/01(金) 17:19:47 ]
すいません自己解決しました。

463 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 17:34:25 ]
よかったね。死ね。

464 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 18:01:31 ]
すみません自己解凍しました。

465 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 21:09:16 ]
>>459-460
レスありがとうございます。極力クラスを利用するほうには簡単に見せたかったので、イベントやコールバックも控えていたんです。
EventWaitHandleなどについて調べてみたいと思います。


466 名前:デフォルトの名無しさん [2010/01/03(日) 13:47:18 ]
DataGridView を継承したクラス を作っているんですが、CellValuePushed イベント内で
e.ColumnIndex の値が書き変わってしまいます。
関数内で this(あるいはキャストした sender).Rows[].Cells[].Value のように、cell.Value
を実行したのが原因のようですが、これはしてはいけないことなんでしょうか?

467 名前:466 mailto:sage [2010/01/03(日) 14:17:02 ]
自己解決しました



468 名前:466 [2010/01/03(日) 14:20:14 ]
偽者が出たので再度カキコ

DataGridView を継承したクラス を作っているんですが、CellValuePushed イベント内で
e.ColumnIndex の値が書き変わってしまいます。
関数内で this(あるいはキャストした sender).Rows[].Cells[].Value のように、cell.Value
を実行したのが原因のようですが、これはしてはいけないことなんでしょうか?

469 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 14:26:37 ]
>>468
偽者なんてわかってるのに二重書き込みとかいちいちうざいよ。

470 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 14:54:31 ]
>>469
チミ自身は「うざ」くないと思ってるの?w
こういう「俺様棚上げ君」って頭オカシイんじゃないのかねホント。

471 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 14:56:15 ]
>>466
意味がわかんない。e.Value使えばいいんじゃね?
確かめたわけじゃないけど、Cellsのインデックスはカラム順じゃないキガス

それと467==469だな、うん。ゴミレスが根拠。470も同類ウザ

472 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 14:59:43 ]
467だけど469ではないです。
あと466解決しました。

473 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:00:10 ]
まったく同じこと書きなおす奴は読んでる人のことは全然考えてない

474 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:02:26 ]
>>470
チミとかきんもーっ☆

475 名前:デフォルトの名無しさん [2010/01/03(日) 15:11:11 ]
>>471
「==」わろた

476 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:13:28 ]
まぁマ板だし

477 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:29:54 ]
いやム板でしょ



478 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:37:12 ]
だから自己解決したときも答えを書けといってるのに

479 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:42:20 ]
>>466-479
ここまで自演

480 名前:デフォルトの名無しさん [2010/01/03(日) 15:43:16 ]
だからいちいちトリップつけろよめんどくさい

481 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:49:59 ]
>>466
試してみた。
現象としては違うんだけど、デバッグ文とかで
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value
を参照すると、e.Valueが何故か消えるな・・・

String mes1 = "row:" + e.RowIndex + ", col:" + e.ColumnIndex + ", val:" + e.Value;
String mes2 = "row:" + e.RowIndex + ", col:" + e.ColumnIndex + ", val:" + dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;

そもそも CellValuePushed の中じゃ dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value は
入力以前の値だから見ても意味がない。
やっぱり e.Value を使えばいい。変更前の値ならデータストアを見る。


482 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 15:52:37 ]
あと、ColumnIndexは表示のカラムとは無関係だった。(カラムの順番を手で移動しても変わらない)

483 名前:466 mailto:sage [2010/01/03(日) 17:31:14 ]
>>471 >>481 >>482
レスありがとうございます。
Rows[].Cells[].Value で同行の他列を参照したいので、e.Value は使えないんです。
最初に e.ColumnIndex を保存しておくとかも考えたんですが、CellValuePushed 内で
他列を参照しない方がいいですね…
アドバイスどおり、おとなしく元データのほうを参照するようにします。

484 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 21:06:37 ]
32bitOSで作ったC#アプリは
64bitOSでも使えますか?

485 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 21:15:00 ]
動く

486 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 21:16:22 ]
動くようにも作れる

487 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 21:25:25 ]
動かないように作る方が難しいと思うけどw
IntPtr使うところわざとint使ったりでもしなきゃ動くんじゃないのか



488 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 21:57:04 ]
まあ普通に作れば動くわな。
アンマネージ使う場合くらい注意。


489 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 22:24:56 ]
あとは32ビット版しかないCOMコンポーネントとか要注意だな。

490 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 22:30:46 ]
今は直ってた気がするけど、
昔、LINQ to SQL 使うと64ビットで動かなかったことが。

491 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 22:35:26 ]
LINQってなんですかぁ?
Linkの派生版ですかぁ?
ハイパーリンク出来るんですかぁ?
よくわかりません><

492 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 22:39:13 ]
>>491
和製英語で臨海空港のこと。
臨海空港 ⇒ りんくう ⇒ LINQ
一つお勉強になったね

493 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 23:05:22 ]
つまんね

494 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 00:46:57 ]
Properties.Settingsで、起動時にuser.configを読み込むタイミングで
validateを差し込む方法はあるでしょうか?

ユーザがuser.configを自分で無効な値に書き換えた場合などに、
キャンセルしてデフォルト値を読み込めるようにしたいのですが。

495 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 02:17:26 ]
どうしても出来ない事があって、質問しようと今までやってきたことを書き連ねてたら、
突然ひらめいて解決できた。

ありがとう、本当にありがとう。

496 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 02:19:48 ]
そういうもんだ。

497 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 02:25:12 ]
文章書くことで頭が整理される




498 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 05:23:16 ]
脳が活性化されるからね

499 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 09:01:53 ]
文章というか可視化だな

500 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 09:33:12 ]
そうそう、先輩や後輩に相談しようとして話してたら閃くことってたまにあるw
やっぱ整理するって大事なのね

501 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 09:37:27 ]
アウトプットしないと人間馬鹿になるっていうしな

502 名前:デフォルトの名無しさん [2010/01/07(木) 14:06:00 ]
ありすぎて笑う

503 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 23:05:19 ]
仮死化

504 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 23:14:25 ]
ドキュメントを残していれば誰かが引き継いでくれるのを期待することですね

505 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 01:51:05 ]
先生、このロンゴロンゴ文字解読できません!

506 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 02:32:56 ]
C#WindowsアプリからWEBブラウザを起動し、
WindowsFormに入力した値をブラウザ上に自動入力する
プログラムを作っています。

通常のiFrame(インラインフレーム)等を使わないページであれば
mshtmlを使用する事によりWindowsフォームに入力した値を
ブラウザに設定する事が出来ているのですが、

指定したページ内部にiFrameを使用しているページの場合には
どうしても自動で入力をする事が出来ません。

どうすれば指定したページ(URL)にiFrameが使用されている場合にも
ページの特定項目にmshtmlを使用して自動入力をさせる事が出来るのでしょうか?

507 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 02:59:46 ]
>>506
javascriptでのやり方と一緒です
iframeをDOMで取得して中のドキュメントを取得すれば
そこから先はiframeを使っていない場合と同じ
トップのドキュメントとフレームのドメインが異なるなら無理です
絶対不可能かというとそうでもないんだがセキュリティ上の制約です



508 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 19:24:09 ]
Ctrl + Mを改行に割り当てられますか。
Mはアウトライン関連の2ストロークの最初の文字みたいだったんで、それらを削除してみたんだが。

509 名前:508 mailto:sage [2010/01/08(金) 19:53:31 ]
失礼、残ってた、アウトラインのCtrl + M関連全部削除したら、できました。ありがとうございます。

510 名前:デフォルトの名無しさん [2010/01/09(土) 12:47:14 ]
OrderdOyについてなのですが
var seq = from item in container orderby item.Key1 , item.Key2 select item;
この複数キーでソートするorderbyに直接対応する拡張メソッドが無いようなのですが
これって、どうやって呼び出されているかご存じの方おられますか?


511 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 13:14:41 ]
ThenBy

512 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 15:58:38 ]
>>512

513 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 20:56:36 ]
逆コンパイルしたらすぐわかるのに

514 名前:デフォルトの名無しさん [2010/01/10(日) 03:20:21 ]
ダイアログを、タスクトレイがどこに配置されていても、タスクトレイの直上(or 直下)に
開くようにコーディングしたいのですが、どうすればよいでしょうか。

515 名前:506 mailto:sage [2010/01/10(日) 04:11:58 ]
折角ご回答頂いたのにお返事が遅くなりまして申し訳ありません。
※規制されていました。

>>507
フレーム内の要素にアクセスしようと思い
次の様なコードを書いてみたのですが
次の「ERROR_POINT」と書いた部分でエラーが発生してしまいます。
一体何が原因なのでしょうか?

アクセスが拒否されました。(HRESULT からの例外: 0x80070005(E_ACCESSDENIED))


iCol = HTMLDoc.getElementsByTagName("iframe");
foreach (mshtml.IHTMLElement IhtmlIE in iCol)
{
  if (IhtmlIE.getAttribute("id", 1) != null) // ERROR_POINT
  {
    sString = (string)IhtmlIE.getAttribute("id", 1);

  if (sString == "inputBody_ifr")
  {

  }
}


また、mshtml を使用して自動でiframe内の要素に自動入力が
出来ない場合には、Windows APIを使用して画面内のiFrameの位置をクリックし
文字列を入力したいと思うのですが、
そもそもWindows APIを使用して画面内の特定座標をクリックし
そこに対して文字列を入力する事など可能なのでしょうか?

516 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 09:13:30 ]
>>515
>一体何が原因なのでしょうか?
507でもいったけどトップのドキュメントとフレームのドメインが同じかどうか確認したかい?
それもせずに、ソース丸投げでデバッグしてくれはないだろ

517 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 19:18:02 ]
>>516
それが不思議な事にそのサイトは、コードを見ても次の様になっていて
(SRCにJavaScriptになっています。)
ドメインが同じかどうかの確認をする事が出来ません。

しかも、ブラウザから見て入力を行うと(例えば"あいうえお")
iFrame内の<body>タグ内になぜか文字が入るのです。
(FireBugで要素を調査したと結果)
<body>あいうえお</body>

■iFrame内のコード
<iFrame src="Javascript:">
<html>
  <head>
  </head>

  <body>
  </body>
</html>
</IFrame>




518 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 19:45:47 ]
そのサイトを教えてくれたら俺が作ってやるのに

519 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 19:58:48 ]
>>518
実は会社から自分のブログへアクセスし
書き込みをする事が出来ない為、

これまで仕事中にこっそりブログのネタをテキストファイルに書込みを行い、
メールで自宅に送信し、そのネタをブログの本文に貼り付けていたのですが、
毎回それを手動でするのは面倒なので、自動で受信メールの内容を

ブログにログインし本文に貼り付けようとしているのですが、
iFrameのトラップがある事を知り断念している状況です。

結構難易度が高く私のスキルではどうもiFramewを使ってるところに
自動で入力をする事が出来ません。。。

お手数ですがもし可能でしたらlivedoorの本文に自動入力する方法をご伝授頂けると助かります。

520 名前:519 mailto:sage [2010/01/10(日) 20:01:55 ]
>>519 ですが、仕事中にブログのネタを書いてる・・・の件はシカトして下さい><;

521 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:03:02 ]
そのブログ主だって会社にばれたときタイムスタンプについてどういいわけするのか
まずそこから考えたほうがいいと思うよ

522 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:04:24 ]
そういうのはどうでもいい。

523 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:04:57 ]
よし
龍馬伝見てから考える

524 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:06:29 ]
DOMでやるのはあきらめて、HttpWebRequestでやれば?
ログイン->クッキーもらう->ブログの書き込み内容をPOST、みたいな感じだろうし。

525 名前:519 mailto:sage [2010/01/10(日) 20:11:37 ]
>>521 >>521 >.523
(だって仕事詰まらないんですもの。)

>>524
httpWebRequestはあまり詳しく無いので
Windows APIでも駆使して何とかして
自動化したいんです。

(仕事中にじっくりネタを考えてるせいもあって、お陰様で結構人気です。)


526 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:13:01 ]
何とかして、って何ともなってねーじゃんw

527 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:14:36 ]
だなw



528 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:15:07 ]
だいたい「ちゃんと目的のページを読み込めたか」の例外処理のほうがむずかしいっつーの
プログラムってのはコードの実行性だけを示すんじゃないんだけどなぁ

529 名前:519 mailto:sage [2010/01/10(日) 20:33:31 ]
>>526 >>527 >>528
私のスキルではどうもiFrameを使ってるところの自動
入力させるのは難しいです。

どなたかこの様な事を出来る方はいませんか?

530 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:40:01 ]
ひとつ言っておくけど、この件でAPIはほとんど役立たず。
せいぜい、キー入力を送るくらい(これなら、SendKeysで充分だけど)。

531 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:42:53 ]
>>530
一言余計だと思うんだけどなぁ

532 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:45:46 ]
龍馬伝おわた
風呂入ってくる。

533 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:47:43 ]
答え書かれてるじゃん。一連の認証と送信手続きを動作確認しながらすればいいって。
意味わかんないなら誰かに金払って作ってもらいなよ。それか携帯でブログ更新するかだね。仕事中に。

534 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 21:17:34 ]
>>525
>それが不思議な事にそのサイトは、コードを見ても次の様になっていて
>(SRCにJavaScriptになっています。)
>ドメインが同じかどうかの確認をする事が出来ません。
それはドメインが異なるのと同じ扱いになってる(勝手に解釈して情報省くな)
まあ、どう考えても自動操作はめんどくさいだけだから
524の言うようにhttpWebRequestでやるか
もう少し扱いが簡単なWebClient使って頑張るかだな

535 名前:519 mailto:sage [2010/01/10(日) 21:33:15 ]
>>530
SendKeyで試そうしているのですが
例えばタイトル項目にフォーカスを当ててからSenkeyで
"{TAB}あいうえお" という文字列を送ろうとして次のコードを書いたところエラーが出てしまいます。

■コード
 // mshtml.IHTMLElement IhtmlIE
 IhtmlIE.Focus();

■エラー内容
 mshtml.IHTMLElement' に 'Focus' の定義がありません。

VB.netだと普通にFocus(); が出切るのになぜC#だと出来ないのでしょうか?






536 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 21:36:45 ]
mshtml.IHTMLElement' に 'Focus' の定義がないからだろ。

537 名前:519 mailto:sage [2010/01/10(日) 21:39:46 ]
>>532
お風呂から上がられましたら>>532さんのテクニックに期待してます。

>>533 >>534
mshtmlを操作して入力→ボタンのクリックをした方が一番簡単かと思っているのですが
その認証を行う為には、>>534さんのおっしゃってる様に
httpWebRequest か WebClient を使うしか無いのでしょうか。

また、mhstmを使用しても出来ない場合には、
本文の入力エリアは決まった位置に表示されるので、WindowsAPIを使用して
iFrameで定義されたiFrame内の要素をクリック→文字列の送信をする方法を考えているのですが

Windows APIで特定の座標をクリック→文字列の送信をするにはどうすれば良いでしょか?




538 名前:519 mailto:sage [2010/01/10(日) 21:40:29 ]
>>536
VB.netだと Focus();が普通に使えてました。

539 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 21:41:42 ]
じゃぁ、VB.NETでやれよ。

540 名前:519 mailto:sage [2010/01/10(日) 21:58:49 ]
C#の方がコードが見やすいのでC#でやりたいです。

541 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:02:19 ]
>>537
534だが、mshtmlを操作するよりWebClientのほうが簡単だ
DOMによる操作セキュリティ制限に引っかかっていて難しい
キー操作でどうにかするならレイアウト変わるたびにメンテ
マウスなら座標取るためにDOMが必要だから非現実的
どの方法も不可能とは言わないが、WebClientが圧倒的に簡単
根性でキー入力するなら文字はクリップボードから貼り付ければw

542 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:23:48 ]
いい加減、mshtmlの使い方はスレチだと気付け

543 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:51:17 ]
うーん。ログインしてタイトルと本文入れるとこまでできた。
でも投稿できない。本文を入れなければ投稿するけど
本文を入れて下さいのエラーがでる。今日はつかれたからこの辺にしておこう。

544 名前:519 mailto:sage [2010/01/10(日) 23:07:18 ]
>>541
WebClientにも挑戦してみようと思います。
というよりちょっと疑問なのですが、
>DOMによる操作セキュリティ制限に引っかかっていて難しい
この様な情報ってどこから知られたのでしょうか?
私の方でも色々とぐぐってみたのですが見つかりませんでした。

>>543
ええっ!?風呂入ってもうそこまで出来たのですか!?ぱねーっす。
私はタイトルの入力まででだいたい5時間位時間がかかったのに、、、
お暇な時で結構ですので本文の入力方法をご教示下さい。


(仕事がつまらないから、こっそりブログのネタを考えてる俺って社会人として最低かなw?
まだ、自覚症状があるだけましと勝手に解釈しています。)


545 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:08:31 ]
いいから死ねよ。

546 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:27:16 ]
背筋がゾワゾワってするぐらい気持悪い

547 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:33:35 ]
>>544
どこのブログ使ってんの?



548 名前:519 mailto:sage [2010/01/10(日) 23:43:21 ]
>>547
live door っす

549 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:53:29 ]
ATOM APIにも一応対応してるんだな。サポート外らしいけど。






[ 続きを読む ] / [ 携帯版 ]

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

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