Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mostrar y ocultar ventanas por PID (https://www.clubdelphi.com/foros/showthread.php?t=89745)

Ramsay 28-01-2016 17:59:41

Mostrar y ocultar ventanas por PID
 
Hola , estoy tratando de mostrar y ocultar ventanas por PID u otro dato que les muestro a continuacion :

Código Delphi [-]
function EnumProcess(Handle: hWnd; lParam: Integer): Bool; stdcall;
var
  pID : Cardinal;
  Title : String;
  ClassName : String;
begin
  If Handle = NULL Then
    begin
    Result := False;
  end
  Else
    begin
    GetWindowThreadProcessID(Handle,pID);
    SetLength(ClassName,255);
    SetLength(ClassName,GetClassName(Handle,PChar(ClassName),Length(ClassName)));
    If ClassName = '' Then
      ClassName := 'Empty';
    SetLength(Title,255);
    SetLength(Title,GetWindowText(Handle,PChar(Title),Length(Title)));
    If Title = '' Then
      Title := 'Empty';
    If IsWindowVisible(Handle) Then
      begin
      Form1.Memo1.Lines.Add('Class Name = ' + ClassName);
      Form1.Memo1.Lines.Add('Handle = ' + IntToStr(Handle));
      Form1.Memo1.Lines.Add('PID = ' + IntToStr(PID));
      Form1.Memo1.Lines.Add('Title = ' + Title);
      Form1.Memo1.Lines.Add('');
    end;
    Result := True;
  end;
end;

procedure TForm1.btnTestClick(Sender: TObject);
var
  Last : Integer;
begin
  EnumWindows(@EnumProcess,Last);
end;

No encuentro informacion en google sobre esto.

¿ Alguno sabe como hacer esto ?

Neftali [Germán.Estévez] 29-01-2016 09:23:41

El código que has puesto lista todas las ventanas que hay visibles en el sistema.
A partir del handle de cada una (que ya lo tienes ahí) puedes ocultar y mostrar las que desees.

Por ejemplo, si usas un Edit y escribes uno de los handles de esa lista, un código como este te hará lo que comento.

Código Delphi [-]
var
  h:HWND;
begin
  // Obtener el handle
  h := StrToInt(Edit1.Text);
  // ocultar
  ShowWindow(h, SW_HIDE);
  Sleep(4000);
  // visualizar
  ShowWindow(h, SW_SHOW);

Ramsay 30-01-2016 04:51:52

Hola Neftali , gracias por la ayuda.Tengo un pregunta , ¿ porque casi ninguna aplicacion responde al show o hide ? , lo digo porque solo puedo ocultar los iconos , pero firefox,crome,delphi,ni las carpetas,ninguno responde,intente como administrador y nada.


La franja horaria es GMT +2. Ahora son las 03:50:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi