Cuestión : ShellExecute SW_HIDE

¿Cuándo usar ShellExecute SW_HIDE, cómo usted consigue la manija O.N.U-oculta el uso usar ShowWindow? class= del

Respuesta : ShellExecute SW_HIDE

El classname para la libreta no es notepad.exe…
Sin embargo, aquí está algo que usted puede ser que esté interesado adentro. Peter abajo al rescate otra vez…


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
unidad Unit1;

interfaz

aplicaciones
  Windows, mensajes, SysUtils, variantes, clases, gráficos, controles, formas,
  Diálogos, StdCtrls, ShellAPI, TlHelp32;

tipo
  TForm1 = clase (TForm)
    Button1: TButton;
    procedimiento Button1Click (remitente: TObject);
  privado
    {Declaraciones privadas}
  público
    {Declaraciones públicas}
  extremo;

var
  Form1: TForm1;

puesta en práctica

{$R *.dfm}

tipo
  TEnumData = expediente
    hW: HWND;
    pID: DWORD;
  extremo;

función EnumProc (hw: HWND; datos del var: TEnumData): Bool; stdcall;
var
  pID: DWORD;
comenzar
  Resultado: = verdad;
  si (GetWindowLong (hw, GWL_HWNDPARENT) = 0) y
     (IsWindowVisible (hw) o IsIconic (hw)) entonces
  comenzar
    GetWindowThreadProcessID (hw, @pID);
    Si pID = data.pID después
    comenzar
      data.hW: = hW;
      Resultado: = falso;
    extremo; {Si}
  extremo; {Si}
extremo; {EnumProc}

función WindowFromProcessID (pID: DWORD): HWND;
var
  datos: TEnumData;
comenzar
  data.pID: = pID;
  data.hW: = 0;
  EnumWindows (@EnumProc, longint (@data));
  Resultado: = data.hW;
extremo; {WindowFromProcessID}

función WindowFromAppname32 (appname: Secuencia): HWND;
  ¡{Toma solamente el nombre de fichero del uso, trayectoria no llena!
    Necesidad de pasar la extensión también. }
var
  foto: Manilla en forma de T;
  processEntry: TProcessEntry32;
comenzar
  Resultado: = 0;
  appName: = mayúscula (appname);
  foto: = CreateToolhelp32Snapshot (
                TH32CS_SNAPPROCESS,
                0);
  si foto <> 0 entonces
  intento
    processEntry.dwSize: = Sizeof (processEntry);
    si Process32First (foto, processEntry) entonces
    repetición
      si AnsiCompareText (
           appname,
           ExtractFilename (StrPas (processEntry.szExeFile))
           ) = 0
      entonces
      comenzar
        Resultado: = WindowFromProcessID (processEntry.th32ProcessID);
        Rotura;
      extremo; {Si}
    hasta no Process32Next (foto, processEntry);
  finalmente
    CloseHandle (foto);
  extremo; {intento}
extremo; {WindowFromAppname32}

procedimiento TForm1.Button1Click (remitente: TObject);
var
  x: Manilla en forma de T;
comenzar
  ShellExecute (0, “se abre”, “c:\WINDOWS\notepad.exe”, '', '', SW_SHOW);
  x: = WindowFromAppname32 (“NotePad.exe ");
  ShowMessage (IntToStr (x));
extremo;

extremo.
Otras soluciones  
 
programming4us programming4us