インターネット検索をする – プログラミング – Home

インターネット検索をする
 
通知
すべてクリア

[解決済] インターネット検索をする


nepiaa
 nepiaa
(@nepiaa)
ゲスト
結合: 17年前
投稿: 35
Topic starter  

環境はWinXP VisualStudio.NET2003 VC++ MFC です。
また質問です。

画面にはエディットボックス1つ、ボタン1つを貼っています。

インターネット検索をします。
1.エディットボックスに検索したいキーワードを入力します。
2.ボタンを押します。
3.ブラウザが開き1のキーワードを使い、グーグルでインターネット検索した結果が表示され
ます。

3の部分がわかりません。
処理の方法を教えてください。


引用未解決
トピックタグ
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

3の部分を段階的に分けましょう。

3''. ブラウザを起動する。
3'. ブラウザを起動し、グーグルのトップページを表示する。
3. ブラウザが開き1のキーワードを使い、グーグルでインターネット検索した結果が表
示される。

どこまでできます?


返信引用
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

グーグルの検索のURLのsearch?q=のあとにURLエンコードしたキーワードをつなげ
ShellExecuteで実行という方法はどうかな?

やったことないので成功するか知りませんが
検索してみるとできそうな感触。


返信引用
nepiaa
 nepiaa
(@nepiaa)
ゲスト
結合: 17年前
投稿: 35
Topic starter  

たいちうさん
3'.までできます。
3.はわかりません。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

> 3'.までできます。

3'は、どんなコードですか。

> 3.はわかりません。

wclrp ( 'o')さんが書いている通りです。
3'で使ったURLを、パラメータ付きのURLに換えるようなイメージです。
(HTTPのGETメソッドを使う)

3'と3の間にもう1ステップあっても良かったかもしれない。

「グーグルの検索結果が表示されているURLをコピーして、
プログラムにあらかじめ書いておいて、
ブラウザを起動し、グーグルの検索結果のページを表示する。」


返信引用
nepiaa
 nepiaa
(@nepiaa)
ゲスト
結合: 17年前
投稿: 35
Topic starter  

> 3'は、どんなコードですか。
サンプルプログラムを探してきてURLの部分を変えました。
ボタンをクリックするとグーグルのトップページが表示されます。

void CTree_basisView::OnBnClickedButton1()
{
CString ss1 = _T( http://www.google.co.jp/);
HINSTANCE ret = ShellExecute(NULL, _T(open), _T(iexplore.exe),
ss1, NULL, SW_SHOWNORMAL);
}


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

URLを次のものに差し換えると?
http://www.google.co.jp/search?hl=ja&q=%E3%82%89%E3%82%89%E3%82%89
(関連検索の科学の子に笑った)

あとは、URLエンコードのみ。以下が参考になると思う。
http://www31.ocn.ne.jp/~yoshio2/vcmemo20-1.html


返信引用
nepiaa
 nepiaa
(@nepiaa)
ゲスト
結合: 17年前
投稿: 35
Topic starter  

ボタンを押してもトップが表示されるだけです。
どこを直せばいいですか?
m_urlはCString型のエディットボックスのメンバ変数です。

void CTree_basisView::OnBnClickedButton3()
{
CString strURL;
CString strChar;

for(int i = 0; m_url[i] != '\0'; i++){
// 英数字 _ . - は変換しないでそのまま
if(isalnum((BYTE)m_url[i]) || m_url[i] == '_' || m_url[i]
== '.' || m_url[i] == '-'){
strChar = m_url[i];
}
// スペースは + に変換
else if(m_url[i] == ' ')
{
strChar = '+';
}
// それ以外は %3B のような形式に変換
else
{
strChar.Format(%%%02X, (BYTE)m_url[i]);
}
strURL += strChar;
}
CString ss1 = http://www.google.co.jp/search?hl=ja&lr=&q= + strURL;
HINSTANCE ret = ShellExecute(NULL, _T(open), _T(iexplore.exe),
ss1, NULL, SW_SHOWNORMAL);
}


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

関数の最初で、UpdateData(TRUE); が必要ではなかったっけ。
だとすると、m_urlに何が入っているか調べれば、
辿り付けたのではと思う。


返信引用
nepiaa
 nepiaa
(@nepiaa)
ゲスト
結合: 17年前
投稿: 35
Topic starter  

> 関数の最初で、UpdateData(TRUE); が必要ではなかったっけ。
検索ができるようになりました。
ありがとうございました。


返信引用
nepiaa
 nepiaa
(@nepiaa)
ゲスト
結合: 17年前
投稿: 35
Topic starter  

解決です。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました