■42221 / inTopicNo.12) |
Re[11]: ブラウザ補助アプリを作っていますが・・・ |
□投稿者/ Jitta (602回)-(2009/10/09(Fri) 22:44:04)
|
■No42104 (海空 さん) に返信
ちょ...怒るよ。
どの様になることを期待して、実際にはどうなるのか。
それがわからないと、どうにも出来ないのよ。
実際には、
private void button2_Click(object sender, EventArgs e)
{
process1.Start();
}
ここで、例外が発生します。
process1.StartInfo.FileName が、次のように定義されていました。
string navigateURL = ((ComboItem)comboBox1.SelectedItem).url + "search?q=" + t;
navigateURL への設定や、URL そのものがおかしいのかと思っていたのに、
こんな定・・・どわぁ〜! No.42086 か。。。
「processにどうURLに変数(TextBox)を埋め込めばいいのかも分かりません。」
ということか。それで、直接埋め込んじゃったのね。。。orz
いやぁ、質問する方も、質問を受ける方も、難しいね。
読み取れなかったお詫び。動くように変更しました。
class ComboItem
{
public string name;
public string url;
public bool needEncode;
public ComboItem(string n, string u, bool encode)
{
name = n;
url = u;
needEncode = encode;
}
// 表示上はnameだけ
// この方法は、あまり勧められないので、出来れば修正してください。
public override string ToString()
{
return name;
}
}
private void button2_Click(object sender, EventArgs e)
{
// ComboBox の選択肢から、ComboItem を取り出す。
ComboItem item = comboBox1.SelectedItem as ComboItem;
if (item == null) { return; }
// url には、文字埋め込みが出来る文字列を設定しました。
// その「埋め込み出来る場所」に、「検索文字列」を埋め込みます。
string navigateURL = string.Format(item.url, textBox1.Text);
Uri navigateUri = new Uri(navigateURL);
// エンコードの有無は、実際に動かして調べた。
if (item.needEncode == true) {
// エンコードしていい場合
process1.StartInfo.FileName = navigateUri.AbsoluteUri;
} else {
// エンコードしてはいけない場合
process1.StartInfo.FileName = navigateUri.ToString();
}
process1.Start();
}
private void Form1_Load_1(object sender, EventArgs e)
{
// "{0}" の位置に、上の string.Format で、検索文字列を埋め込みます。
comboBox1.Items.Add(new ComboItem("ぐーぐる",
"http://www.google.co.jp/search?q={0}", true));
// わんくまは、エンコードすると化けた
comboBox1.Items.Add(new ComboItem("わんくま",
"http://bbs.wankuma.com/search.cgi?no=0&word={0}&andor=and&logs=.%2Fpost.dat&PAGE=20", false));
// おまけ1。Bing! の場合。
comboBox1.Items.Add(new ComboItem("びんご!",
"http://www.bing.com/search?q={0}&go=&form=QBLH&filt=all", true));
// おまけ2。Yahoo! の場合。
comboBox1.Items.Add(new ComboItem("やっほー",
"http://search.yahoo.co.jp/search?p={0}&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=", true));
// それぞれの検索 URL は、Opera で調べた。
}
|
|