HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
lpOperation : edit(.doc, .txt), explore(탐색기로 연다), find(탐색기 형태), open(normal), print
lpFile : 실행할 파일 이름
lpParameters : 실행의 커맨드 라인
lpDirectory : 실행할 디렉토리
nShowCmd : 윈도우 설정. SW_SHOW SW_HIDE
(1) 파일과 연관(association)된 프로그램으로 파일을 엽니다
ShellExecute(Handle, 'open', PChar('test.txt'), nil, nil, SW_SHOW);
(2) notepad.exe 에 파라미터로 config.sys 파일을 주어 메모장을 실행합니다
ShellExecute(Handle, 'open', 'notepad', 'c:\config.sys', nil, SW_SHOW);
(3) PC에 설치된 기본 웝브라우저로 지정한 사이트를 엽니다.
ShellExecute(Handle, 'open', 'www.howto.pe.kr', nil, nil, SW_SHOW);
(4) 특정 폴더를 시작 폴더로 하는 윈도우즈 탐색기를 엽니다
ShellExecute(Handle, 'explore', PChar('c:\windows)', nil, nil, SW_SHOW);
(5) readme.doc 파일을 연결된 프로그램으로 인쇄하고 화면을 닫습니다
ShellExecute(Handle, 'print', 'readme.doc', nil, nil, SW_SHOW);
(6) rMyDelphiFile.pas 파일을 wordpad 프로그램으로 인쇄하고 화면을 닫습니다
ShellExecute(Handle, 'print', 'wordpad.wxe', 'MyDelphiFile.pas', nil, SW_SHOW);
(7) readme.doc 파일을 프린터를 선택하여 연결된 프로그램으로 인쇄하고 화면을 닫습니다
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
S: String;
hDeviceMode: THandle;
begin
Printer.PrinterIndex := -1; // 프린터 인덱스를 지정합니다. 여기서는 기본 프린터(-1) 선택
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
S := Format('"%s" "%s" "%s"',[Device, Driver, Port]);
ShellExecute(Handle, 'printto', 'readme.doc', Pchar(S), nil, SW_HIDE);
(8) 기본 메일 프로그램을 실행합니다.
ShellExecute(Handle, nil, 'mailto:cozy@howto.pe.kr', nil, nil, SW_SHOW);
(9) DOS 명령어를 실행하고 화면을 닫습니다
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c copy file1.txt file2.txt'), nil, SW_SHOW);
(10) DOS 명령어를 실행하고 화면을 닫지 않습니다
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/k dir'), nil, SW_SHOW);
(11) ShellExecute()의 리턴값은 실행된 프로그램의 핸들이거나 에러코드입니다
리턴값이 32 이하이면 에러가 발생한것으로 각각은 아래와 같은 의미가 있습니다
'My Study > Function' 카테고리의 다른 글
ExitThread (0) | 2010.02.25 |
---|---|
ExitThread (0) | 2010.02.24 |
GetTempPath (0) | 2010.02.24 |
SetFileTime (0) | 2010.02.24 |
CreatePipe (0) | 2010.02.24 |