如何在程序里调出开始菜单里那个“运行”对话框?(50分)

  • 主题发起人 主题发起人 microyzy
  • 开始时间 开始时间
M

microyzy

Unregistered / Unconfirmed
GUEST, unregistred user!
并且,我想换一个图标以及说明文字。(不是自己做一个窗口来模拟)
 
据我所知:没办法。其实做一个相仿的也不错啊。
 
谁说的?
德国的一套组件中有这个功能。
bu***后面的忘了~!:)
自己去找找看~!
 
有个例子,可是发不上来,是不是对长度有限制?
 
我发不上来,不知何故,提供一个类名,你自己找吧:
; TGxRunDialog
 
多谢各位,我现在知道了有一个api可以做得到。
在shell32.dll中,函数序号为61
但不知如何定位对话框的弹出位置。
参考:http://www.allapi.net/
 
嘿嘿,又学了一招!!!
 
哪位可以告诉我如何定位对话框的弹出位置?
 
shellExcute(handle,nil,pchar('run.exe'),nil,nil,SW_shownormal)
 
自己写一个dialog好了,随你怎么控制。
 
在DELPHI窑洞的ftp站点有ahm for delphi6控件有这个,可以改图标,文字。
 
unit RunDialog;
interface
uses
; Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
; TRunDialog = class(TComponent)
; private
; ; { Private declarations }
; ; FDescription: String;
; ; FHideBrowseButton: Boolean;
; ; FIcon: TIcon;
; ; FInitialDir: String;
; ; FTitle: String;
; ; procedure SetDescription(Value: String);
; ; procedure SetHideBrowseButton(Value: Boolean);
; ; procedure SetIcon(Value: TIcon);
; ; procedure SetInitialDir(Value: String);
; ; procedure SetTitle(Value: String);
; protected
; ; { Protected declarations }
; ; constructor Create(AOwner: TComponent); override;
; ; destructor Destroy; override;
; public
; ; { Public declarations }
; ; procedure Execute;
; published
; ; { Published declarations }
; ; property Description: String read FDescription write SetDescription;
; ; property HideBrowseButton: Boolean read FHideBrowseButton write SetHideBrowseButton;
; ; property Icon: TIcon read FIcon write SetIcon;
; ; property InitialDir: String read FInitialDir write SetInitialDir;
; ; property Title: String read FTitle write SetTitle;
; end;

var
;Flags: LongInt = 0;

const
;RFF_NOBROWSE = 1;

procedure Register;

implementation
procedure RunFileDlgA(OwnerWnd: HWND; Icon: HICON; lpstrDirectory: PAnsiChar;
;lpstrTitle: PAnsiChar; lpstrDescription: PAnsiChar; Flags: LongInt); stdcall;
;external 'Shell32.dll' index 61;
constructor TRunDialog.Create(AOwner: TComponent);
begin
;inherited Create(AOwner);
;FIcon := TIcon.Create;
end;

destructor TRunDialog.Destroy;
begin
;FIcon.Free;
;inherited Destroy;
end;

procedure TRunDialog.Execute;
begin
if FHideBrowseButton = True then
;begin
; Flags := Flags or RFF_NOBROWSE;
;end;
RunFileDlgA(0,FIcon.Handle,PChar(FInitialDir),PChar(FTitle),PChar(FDescription),Flags);
end;

procedure TRunDialog.SetDescription(Value: String);
begin
if Value <> FDescription then
;begin
; FDescription := Value;
;end;
end;

procedure TRunDialog.SetHideBrowseButton(Value: Boolean);
begin
if Value <> FHideBrowseButton then
;begin
; FHideBrowseButton := Value;
;end;
end;

procedure TRunDialog.SetIcon(Value: TIcon);
begin
if Value <> FIcon then
;begin
; FIcon.Assign(Value);
;end;
end;

procedure TRunDialog.SetInitialDir(Value: String);
begin
if Value <> FInitialDir then
;begin
; FInitialDir := Value;
;end;
end;

procedure TRunDialog.SetTitle(Value: String);
begin
if Value <> FTitle then
;begin
; FTitle := Value;
;end;
end;

procedure Register;
begin
; RegisterComponents('Dialogs', [TRunDialog]);
end;
end.
 
多人接受答案了。
 
后退
顶部