最新閲覧日:

CraeteProcess( ) を使ってサイトを新しいウインドウで
開くためのSDK、BCC32用のソースを教えてください。
ShellExecute(NULL,"open","http://~",NULL,NULL,SW_SHOWNORMAL);
ではIEの設定に左右されるらしいから CraeteProcess( ) で
やろうと思いました。

もう1つ質問なんだけど、C に限らず、
  真理値は偽なら 0 、真なら 0 以外。
ということ説明をたまに見かけます。
実際やった結果では、どれも
真理値は偽なら 0 、真なら 1。
でした。
真の場合に 1 意外の値を返す場合があるから
1 ではなく、 0 以外 というふうに書いてあるんだと思うんだけど
真で 1 意外の値が帰って来た経験がある方はいらっしゃいますか?

A 回答 (2件)

Windows XP + VC++6.0 で試したのですが、とりあえず問題なかったけど、何かミスがあるのかな・・・。



私のところでもログオンしてから30~60秒くらいは、シェル関係の呼び出しが、ちゃんと出来ません。デバイスを全て認識するのに時間がかかっていて、待たされるようです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
そういえば、Windows っていうOSは、起動して
というか、起動し始めて、しばらく待たないと
一見、落ち着いたように見えても、正常に動作しない
部分があるらしいですねー。

BCC32 でコンパイルして、Win98 でまだ成功していません。

お礼日時:2002/02/12 02:09

自分でも使えそうなので作ってみました。

適当にリファインしてみてください。

static TCHAR iesk[] = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\IEXPLORE.EXE");
static TCHAR url[] = _T("http://oshiete.goo.ne.jp/");
static TCHAR curdir[] = _T("C:\\");
TCHAR cmdline[1024];
HKEY key;
DWORD type = REG_SZ;
DWORD size = 1024;
STARTUPINFO si;
PROCESS_INFORMATIONpi;

RegOpenKeyEx(HKEY_LOCAL_MACHINE, iesk, 0, KEY_QUERY_VALUE, &key);
RegQueryValueEx(key, NULL, NULL, &type, (LPBYTE)cmdline, &size);
lstrcat(cmdline, _T(" "));
lstrcat(cmdline, url);
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.wShowWindow = SW_SHOW;
CreateProcess(NULL, cmdline, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, curdir, &si, &pi);

この回答への補足

ありがとうございます。
もう少しでできそうなとこまでいきました。

新しいウインドウで開くことができたけど、
Win98から、IEのページ違反だったかな?
何かのエラーダイアログが表示されて、
IEが使えなくなってしまうんです。
IEを使うためにはWin98を再起動する必要がある状態です。
再起動してもう1度、EXEを実行しても、
CreateProcess は実行されません。
起動後にしばらくパソコンを使うと、いつのまにか
CreateProcess が使える状態になっています。

今は、IEのエラーダイアログの原因より、
この、起動後すぐには CreateProcess が使えない
という原因究明を考えています。
だいたい、起動後10分ぐらい、適当にパソコンを使っていると
CreateProcess が実行できるようになります。
実行できない時の場合はエラー表示はありません。
今は CreateProcess でメモ帳を指定してやっています。
メモ帳なら、ページ違反とかいう問題もなく
CreateProcess で実行できているけど、Win98起動後すぐに
は CreateProcess でメモ帳も起動することができません。

補足日時:2001/12/03 12:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


おすすめ情報