Code:

uses

ComObj;

 

procedure TForm1.FormCreate(Sender: TObject);

var

ShellApplication: Variant;

begin

ShellApplication := CreateOleObject('Shell.Application');

ShellApplication.FileRun;

end;

 

 

{*****************************}

 

{2.}

 

{ This code uses the undocumented RunFileDlg function to show the "run" dialog }

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

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить