[ActiveX] ShellExecute,WinExec,CreateProcess (IE 실행방법)

1. 레지스트리 경로
\software\microsoft\windows\currentversion\app paths\IEXPLORE.EXE
에 보시면 iexplorer.exe 패스가 나옵니다.
win9x, winMe, win2k 동일합니다.

spath는 설치된 경로, surl은 http://www.yahoo.co.kr/
모두 문자열입니다.


STARTUPINFO si;
PROCESS_INFORMATION pi;
memset(&si,0,sizeof(STARTUPINFO));
sprintf(cmd,"%s %s",spath,surl);
CreateProcess (NULL,cmd,NULL,NULL,true, NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi);



항상 새로운 윈도우에 프로그램이 실행됩니다.



2. 항상 새로운 익스플로러 실행

ShellExecute(NULL,"open","iexplore",((SiteInfo*)GetItemData(nItem))->Url,NULL,SW_SHOW);


형식> ShellExecute(NULL,"open","iexplore", url, NULL, SW_SHOW);




3. 마지막으로 실행된 익스플로러를 이용
ShellExecute(NULL,"open",((SiteInfo*)GetItemData(nItem))->Url,NULL,NULL,SW_SHOW);


형식> ShellExecute(NULL,"open", url, NULL, SW_SHOW);



4. 레지스트리에서 경로를 읽어와서 익스플로러 새창을 뛰우기
HKEY hkey;
LONG ReturnValue=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\

App Paths\\IEXPLORE.EXE",0, KEY_ALL_ACCESS,&hkey);


if(ReturnValue==ERROR_SUCCESS)
{
DWORD dwType;
DWORD dwSize = 200;
char szString[255];

LONG lReturn = RegQueryValueEx (hkey, "", NULL,&dwType, (BYTE *)

szString, &dwSize);
if(lReturn==ERROR_SUCCESS )
{
RegCloseKey(hkey);
CString str;
str.Format("%s",szString);
str+=" ";
str+=((SiteInfo*)GetItemData(nItem))->Url;
WinExec(str,SW_SHOW);

}

}

댓글

이 블로그의 인기 게시물

[LINUX] CentOS 부팅시 오류 : UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

[MSSQL] 데이터베이스가 사용 중이어서 배타적으로 액서스할 수 없습니다

구글코랩) 안전Dream 실종아동 등 검색 오픈API 소스를 공유합니다. (구글드라이브연동, 이미지 수집 소스)