| 
      ...den Ausführen Dialog anzeigen?
     | 
   
   
    | Autor: 
      Thomas Stutz     | 
   
  | [ Tip ausdrucken ] |   |   |   
 
 
 
{1.} 
 
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 } 
{ Dieser Code verwendet die undokumentierte RunFileDlg Funktion, um den Ausführen 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; 
 
 
  
   
     
      
         
          | 
		     Bewerten Sie diesen Tipp: 
		  
		   | 
         
       
     | 
   
 
                      
                       |