프로그램을 작성할 때 때로는 수고를 덜기 위해 또는 다른 목적으로 시스템 대화 상자를 빌려오고 싶은 경우가 종종 있습니다. 그러면 시스템 대화 상자를 어떻게 호출할 수 있습니까? 친구가 VB에서 "연결 프로그램" 대화 상자를 다음과 같이 호출합니다.
winexec(PChar('rundll32shell32,OpenAs_RunDLL'+FilePath),SW_SHOWDEFAULT);
이 코드는 rundll32.exe를 실행하고 shell32.dll의 리소스를 호출함으로써 구현됩니다. 이 방법은 가능하지만, shell32.dll에서 귀중한 리소스를 호출하는 방법을 이해하지 못하는 저 같은 초보자가 많습니다.
내가 부르는 방법은 다음과 같습니다.
1. 시스템 "정보" 대화 상자를 호출합니다.
먼저 SHellApi를 사용에 추가하고,
그런 다음 다음 코드를 작성합니다.
PRocedureTForm1.Button1Click(Sender:TObject);
var
shellapp:변형;
시작하다
ShellAboutW(0,'Timerv1.03','kedyCopyright',1);
끝;
다른 단계에 대해서는 자세히 설명하지 않겠습니다. 실행 후 버튼을 클릭하면 표준 WINDOWS 정보 대화 상자가 나타납니다. 대화 상자의 제목은 "Timerv1.03 정보"입니다. 보시다시피 프로그램에서는 ShellAboutW 함수를 사용했습니다. 이 기능은 MSDN2003에 다음과 같이 설명되어 있습니다.
ShellAboutFunction
saShellAbout대화 상자를 표시합니다.
통사론
intShellAbout(HWNDhWnd,
LPCTSTRszApp,
LPCTSTRsz기타 항목,
HICONh아이콘
);
매개변수
wx
[in]창 핸들은 상위 창입니다. 이 매개 변수는 NULL일 수 있습니다.
szApp
[in]표시될 텍스트를 포함하는 null로 끝나는 문자열에 대한 포인터
셸정보대화상자의제목표시줄과다음대화상자의첫번째줄에
텍스트"Microsoft". 텍스트에 구분 기호(#)가 포함되어 있으면 두 부분으로 나누어야 합니다.
함수는 제목 표시줄에 첫 번째 부분을 표시하고 첫 번째 줄에 두 번째 부분을 표시합니다.
텍스트 뒤에 "Microsoft"가 있습니다.
sz기타 물건
[in]표시될 텍스트를 포함하는 null로 끝나는 문자열에 대한 포인터
버전 및 저작권 정보 후에 대화 상자가 나타납니다.
hIcon
[in] 대화 상자에 함수가 표시하는 아이콘입니다. 이 매개 변수가 NULL인 경우
기능은 Microsoft®Windows® 또는 MicrosoftWindowsNT® 아이콘을 표시합니다.
이 내용을 제가 직접 번역할 필요는 없을 것 같습니다.
2. 종료 대화 상자 호출
코드의 시작 부분만 다음과 같이 변경하면 됩니다.
시작하다
shellapp:=CreateOleObject('Shell.application');
shellapp.ShutDownWindows;
끝;
다른 부분은 변함이 없습니다. 실행하고 버튼을 클릭하면 표준 시스템 종료 대화 상자가 표시됩니다.
실제로 이는 여전히 WindowsAPI 함수 shutdownwindows입니다.
이 부분에서는 Windows shellapplication의 방식으로 두 가지 기능을 사용합니다. 메소드의 다른 기능은 다음과 같습니다.
BrowseForFolder, CascadeWindows, ControlPanelItem, EjectPC, Explore, FileRun, FindComputer, FindFiles, Help, MinimizeAll, NameSpace, Open, RefreshMenu, SetTime, TileHorizontally, TileVertically, TrayProperties, UndoMinimizeALL. 저는 이러한 기능 중 몇 가지만 사용하는 방법을 배웠습니다. 자세한 내용은 MSDN의 shellobject에 대한 내용을 확인하세요.
제가 가장 말씀드리고 싶은 것은 윈도우에서 프로그램을 배우려면 MSDN을 사용해야 한다는 것입니다. 저는 이 도서관의 자료에 정말 놀랐습니다. 여러분도 한 번 보시고 그렇게 생각하실 것입니다.