Questione : ShellExecute SW_HIDE

Quando using ShellExecute SW_HIDE, come ottenete la maniglia ONU-nascondete l'applicazione using ShowWindow? class= del

Risposta : ShellExecute SW_HIDE

Il classname per il blocchetto per appunti non è notepad.exe…
Tuttavia, qui è qualcosa che potreste essere interessato dentro. Peter qui sotto al salvataggio ancora…


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:
unità Unit1;

interfaccia

usi
  Windows, messaggi, SysUtils, varianti, codici categoria, grafici, comandi, forme,
  Dialoghi, StdCtrls, ShellAPI, TlHelp32;

tipo
  TForm1 = codice categoria (TForm)
    Button1: TButton;
    procedura Button1Click (mittente: TObject);
  riservato
    {Dichiarazioni riservate}
  pubblico
    {Dichiarazioni pubbliche}
  estremità;

varietà
  Form1: TForm1;

esecuzione

{$R *.dfm}

tipo
  TEnumData = annotazione
    hW: HWND;
    pID: DWORD;
  estremità;

funzione EnumProc (hw: HWND; dati di varietà: TEnumData): Bool; stdcall;
varietà
  pID: DWORD;
cominciare
  Risultato: = allineare;
  se (GetWindowLong (hw, GWL_HWNDPARENT) = 0) e
     (IsWindowVisible (hw) o IsIconic (hw)) allora
  cominciare
    GetWindowThreadProcessID (hw, @pID);
    Se pID = data.pID allora
    cominciare
      data.hW: = hW;
      Risultato: = falso;
    estremità; {Se}
  estremità; {Se}
estremità; {EnumProc}

funzione WindowFromProcessID (pID: DWORD): HWND;
varietà
  dati: TEnumData;
cominciare
  data.pID: = pID;
  data.hW: = 0;
  EnumWindows (@EnumProc, longint (@data));
  Risultato: = data.hW;
estremità; {WindowFromProcessID}

funzione WindowFromAppname32 (appname: Stringa): HWND;
  {Introito soltanto il nome di schedario di applicazione, percorso non pieno!
    Necessità di passare l'estensione pure. }
varietà
  fotografia istantanea: Manico a t;
  processEntry: TProcessEntry32;
cominciare
  Risultato: = 0;
  appName: = maiuscola (appname);
  fotografia istantanea: = CreateToolhelp32Snapshot (
                TH32CS_SNAPPROCESS,
                0);
  se fotografia istantanea <> 0 allora
  prova
    processEntry.dwSize: = Sizeof (processEntry);
    se Process32First (fotografia istantanea, processEntry) allora
    ripetizione
      se AnsiCompareText (
           appname,
           ExtractFilename (StrPas (processEntry.szExeFile))
           ) = 0
      allora
      cominciare
        Risultato: = WindowFromProcessID (processEntry.th32ProcessID);
        Rottura;
      estremità; {Se}
    fino non a Process32Next (fotografia istantanea, processEntry);
  infine
    CloseHandle (fotografia istantanea);
  estremità; {prova}
estremità; {WindowFromAppname32}

procedura TForm1.Button1Click (mittente: TObject);
varietà
  x: Manico a t;
cominciare
  ShellExecute (0, “si apre„, “c:\WINDOWS\notepad.exe„, '', '', SW_SHOW);
  x: = WindowFromAppname32 (“NotePad.exe ");
  ShowMessage (IntToStr (x));
estremità;

estremità.
Altre soluzioni  
 
programming4us programming4us