Показать диалог для запуска приложения 2
Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch
{ This code uses the undocumented RunFileDlg function to show the "run" dialog }
{ Dieser Code verwendet die undokumentierte RunFileDlg Funktion, um den Ausfuhren Dialog anzuzeigen }
// For Win NT
procedure RunFileDlgW(OwnerWnd: HWND; Icon: HICON; lpstrDirectory: PWideChar;
lpstrTitle: PWideChar; lpstrDescription: PWideChar; Flags: Longint); stdcall ;
external "Shell32.dll" Index 61;
// For Win 9x (Win NT to show standard captions )
procedure RunFileDlg(OwnerWnd: HWND; Icon: HICON; lpstrDirectory: PChar;
lpstrTitle: PChar; lpstrDescription: PChar; Flags: Longint); stdcall ;
external "Shell32.dll" Index 61;
const
RFF_NOBROWSE = 1; //Removes the browse button.
RFF_NODEFAULT = 2; // No default item selected.
RFF_CALCDIRECTORY = 4; // Calculates the working directory from the file name.
RFF_NOLABEL = 8; // Removes the edit box label.
RFF_NOSEPARATEMEM = 14; // Removes the Separate Memory Space check box (Windows NT only).
function ShowRunFileDialg(OwnerWnd: HWND; InitialDir, Title, Description: PChar;
flags: Integer; StandardCaptions: Boolean): Boolean;
var
HideBrowseButton: Boolean;
TitleWideChar, InitialDirWideChar, DescriptionWideChar: PWideChar;
Size: Integer;
begin
if (Win32Platform = VER_PLATFORM_WIN32_NT) and not StandardCaptions then
begin
Size := SizeOf(WideChar) * MAX_PATH;
InitialDirWideChar := nil ;
TitleWideChar := nil ;
DescriptionWideChar := nil ;
GetMem(InitialDirWideChar, Size);
GetMem(TitleWideChar, Size);
GetMem(DescriptionWideChar, Size);
StringToWideChar(InitialDir, InitialDirWideChar, MAX_PATH);
StringToWideChar(Title, TitleWideChar, MAX_PATH);
StringToWideChar(Description, DescriptionWideChar, MAX_PATH);
try
RunFileDlgW(OwnerWnd, 0, InitialDirWideChar, TitleWideChar, DescriptionWideChar, Flags);
finally
FreeMem(InitialDirWideChar);
FreeMem(TitleWideChar);
FreeMem(DescriptionWideChar);
end ;
end else
RunFileDlg(OwnerWnd, 0, PChar(InitialDir), PChar(Title), PChar(Description), Flags);
end ;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowRunFileDialg(FindWindow("Shell_TrayWnd", nil ), nil , nil , nil , RFF_NOBROWSE, True);
end ;
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Показать диалог для запуска приложения 2", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:
Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи , в сообщение обязательно указывайте название или ссылку на статью!