CreateProcessでURLを開く – プログラミング – Home

通知
すべてクリア

CreateProcessでURLを開く


ポッキー
 ポッキー
(@ポッキー)
ゲスト
結合: 23年前
投稿: 1
Topic starter  

CreateProcessでURLを開きたいんだけど

STARTUPINFO si;
PROCESS_INFORMATION pi;
CreateProcess(NULL, http://www.yahoo.co.jp/, NULL, NULL, FALSE,
NORMAL_PRIORITY_CLASS, NULL, curdir, &si, &pi);

ではだめでした。
サイトを開けるようにしたソースを教えてください。


引用解決済
トピックタグ
NGA
 NGA
(@NGA)
ゲスト
結合: 24年前
投稿: 98
 

>CreateProcess(NULL, http://www.yahoo.co.jp/, NULL, NULL, FALSE,
少なくともこのままではURLの http://以降がコメントになる。


返信引用
Ahoo.co.jp
 Ahoo.co.jp
(@Ahoo.co.jp)
ゲスト
結合: 23年前
投稿: 1
 

おいおい初心者は無理しないように。そこ直しただけじゃできないってば。
少なくともどころかCreateProcessでURLを開くことの回答できなくて
悔しくて失敗につけこむようなことしかできない初心者はだまってなさい。
少なくともあなたには回答できる知識がないことがわかったので
あなたはここにレスをつけないでね。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
 

CreateProcess じゃなくて、ShellExecute じゃぁダメなんでしょうか?
そのほうが、簡単に実現できると思いますが。

どうしても、ってことなら
1.HTMLファイル開くアプリをさがす
2.そのHTMLファイルを1でさがしたアプリで開く
って手順になるのかなぁと思いますが。
以下、思いつきサンプルです。ヒントにでもなればよいですが。

(HTMLっていじった事ないですが http://www.yahoo.co.jp/
http://www.yahoo.co.jp/index.html を示すであってましたっけ?)

// ここから
// 対応アプリケーションの検索 /////////////////////////////////////////
char exec_apl[1024];
FindExecutable(
http://www.yahoo.co.jp/index.html,
NULL,
exec_apl);

// 対応アプリケーションの起動 /////////////////////////////////////////
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof( STARTUPINFO ));
si.cb = sizeof( STARTUPINFO );
si.wShowWindow = SW_SHOWNORMAL;
si.dwFlags = STARTF_USESHOWWINDOW;

char lpCommandLine[128];
sprintf( lpCommandLine , %s %s,
exec_apl, http://www.yahoo.co.jp/index.html );

if(CreateProcess( NULL,lpCommandLine, NULL, NULL, FALSE, 0, NULL, NULL,
&si, &pi))
{
// 起動成功
}

// ここまで

> あなたはここにレスをつけないでね。
あなたはここにレスをつけないでね。


返信引用
NGA
 NGA
(@NGA)
ゲスト
結合: 24年前
投稿: 98
 

あ、なんか言われてる。

STARTUPINFO si;
PROCESS_INFORMATION pi;

memset(&si, 0x00, sizeof(si));
si.cb = sizeof(si);

CreateProcess(szExeFilePath, /open http://www.yahoo.co.jp/,
NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);

szExeFilePathは関連付けられたブラウザのパス。

ShellExecute使ったほうが楽だけど。


返信引用
NGA
 NGA
(@NGA)
ゲスト
結合: 24年前
投稿: 98
 

「ん」さんと似てしまいましたようです。

>FindExecutable(
> http://www.yahoo.co.jp/index.html,
> NULL,
> exec_apl);
え~っと、ローカルで実在しないと無理だと思います。
というわけで、空ファイルを作ってからそのファイルを足掛かりにするのはどうでしょう。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
 

> え~っと、ローカルで実在しないと無理だと思います。
という事なので FindExecutable について何通りか試してみました。

1. http://www.yahoo.co.jp/index.htmlを指定→失敗
2.C:\temp\a.html(ローカルにも実在しないファイル名)を指定→失敗
3.C:\temp\home.html(ローカルに存在するファイル名)を指定→成功

という結果になりました。なるほど。
個人的には末尾の拡張子情報から対応するアプリケーションを検索して
くれるものとばかり思っていましたが、ファイルとして存在しないと
だめなんですね。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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