当前位置:主页>仓库管理软件> 列表

使外部系统窗口 总在最前 或 变为我的程序的子窗口 找管家婆财务软件官网

销售管理软件版1楼: 使用以下方法可以调出系统自带的"属性"窗口,那么如何使此窗口总在最前?或者如何使此窗口变成我的程序的一个子窗口?
function ShowFileProperties(FileName: String; Wnd: HWND):Boolean;
var
sfi: TSHELLEXECUTEINFO;
begin
with sfi do
begin
cbSize := SizeOf(sfi);
lpFile := PAnsiChar(FileName);
Wnd := Wnd;
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_INVOKEIDLIST or SEE_MASK_FLAG_NO_UI;
lpVerb := PAnsiChar(''properties'');
lpIDList := nil;
lpDirectory := nil;
nShow := 0;
hInstApp := 0;
lpParameters := nil;
dwHotKey := 0;
hIcon := 0;
hkeyClass := 0;
hProcess := 0;
lpClass := nil;
end;
Result := ShellExecuteEX(@sfi);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowFileProperties(''c:\'', Handle);
end;

2楼: function ShowFileProperties(FileName: String; Wnd: HWND):Boolean;
var
sfi: TSHELLEXECUTEINFO;
begin
with sfi do


begin
cbSize := SizeOf(sfi);
lpFile := PAnsiChar(FileName);
Wnd := Wnd;
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_INVOKEIDLIST or SEE_MASK_FLAG_NO_UI;
lpVerb := PAnsiChar(''properties'');
lpIDList := nil;
lpDirectory := nil;
[red] nShow := SW_SHOWNORMAL;
hInstApp := hInstance;[/red]
lpParameters := nil;
dwHotKey := 0;
hIcon := 0;
hkeyClass := 0;
hProcess := 0;
lpClass := nil;
end;
Result := ShellExecuteEX(@sfi);
end; 如管家婆财务软件官网

3楼: 感谢 zqw0117 ,属性窗口的确成为主程序的子窗口了,但是主程序窗口总在最前的时候,属性窗口是在其后方的,该这么解决?

4楼: 没有解决的方法么?没办法结帖啊.

5楼: 路过

6楼: if findwindow(nil,pchar(文件名不包括扩展名+'' 属性''))<>null then
begin
subdlg:=findwindow(nil,pchar(文件名不包括扩展名+'' 属性''));
SetWindowPos(subdlg,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE OR SWP_NOMOVE);
finddlg.Enabled:=false;
end;

销售管理软件版7楼: 只能这样了,接受吧.