скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Показать диалог для запуска приложения 2



Оформил: DeeCo


 { 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;





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook