Fórum Enviar programa para frente #232173
13/05/2004
0
Function EnumWindowsProc (Wnd: HWND; lb: TListbox): BOOL; stdcall;
var caption: Array [0..128] of Char;
begin
Result := True;
if IsWindowVisible(Wnd) and
((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or
(HWND(GetWindowLong(Wnd, GWL_HWNDPARENT)) = GetDesktopWindow))and
((GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) = 0)
then
begin
SendMessage( Wnd, WM_GETTEXT, Sizeof(caption),integer(@caption));
lb.Items.AddObject( caption,TObject( Wnd ));
end;
end;
e esta para chamar a função
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows( @EnumWindowsProc, integer( listbox1 ));
end;
o problema é que não são formulários do meu sistema, são outros programas do windows. Eu queria que quando selecionasse um destes programas no listbox, como o Internet Explorer por exemplo, O IE fosse enviado para a frete como se fosse um alt+tab
Obrigado pela atenção
Sanses
Sanses
Curtir tópico
+ 0Posts
14/05/2004
Sanses
Gostei + 0
15/05/2004
Adilsond
BringWindowToTop(Integer(ListBox1.Items.Objects[ListBox1.ItemIndex]));
Gostei + 0
15/05/2004
Sanses
Sanses
Gostei + 0
15/05/2004
Sanses
Sabe como posso contornar este problema?
Obrigado pela ajuda
Sanses
Gostei + 0
15/05/2004
Adilsond
procedure TForm1.Button1Click(Sender: TObject); begin EnumWindows(@EnumWindowsProc, Integer(ListBox1 )); end; function TForm1.IsMinimized(Wnd: HWND): Boolean; begin if IsIconic(Wnd) then Result := True else Result := False; end; procedure TForm1.ShowApplication(Wnd: HWND); begin if IsMinimized(Wnd) then ShowWindow(Wnd, SW_RESTORE) else BringWindowToTop(Wnd); end; procedure TForm1.ListBox1Click(Sender: TObject); begin if ListBox1.ItemIndex > -1 then ShowApplication(Integer(ListBox1.Items.Objects[ListBox1.ItemIndex])); end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)