掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecuteで呼び出したcplファイルを速やかに終了させるには? (ID:68990)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>私がやりたいことは、インターネットのプロパティ画面を出し、「OK」または >「キャンセル」「×」ボタンをクリックしてダイアログを閉じるまで待機した >いだけなのですが・・・ 待機に時間がかかる原因はわかりませんが、inetcpl.cpl の起動は 実際には rundll32 から Control_RunDLL という関数が呼ばれるようですね。 なので Control_RunDLL を直接呼ぶことでも待機できそうです。 typedef void (CALLBACK *EntryPointW)(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow); ・・・中略 HINSTANCE hLib = LoadLibrary(TEXT("shell32.dll")); if(hLib != NULL) { EntryPointW pControl_RunDLLW = (EntryPointW)GetProcAddress(hLib, "Control_RunDLLW"); if(pControl_RunDLLW != NULL) { (*pControl_RunDLLW)(hWnd, GetModuleHandle(NULL), L"inetcpl.cpl", SW_SHOWDEFAULT); } FreeLibrary(hLib); } コンソールアプリなどで親ウインドウがない場合は デスクトップウインドウのハンドルを渡してみてください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.