Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.58.113.193] |
|
Сообщ.
#1
,
|
|
|
Вот такую прячущую прогу и надо сделать - чтобы по указанному Title нужной проги она прятала ее по типу RegisterServiceProcess и убирала у окна атрибут OnTop а также ставила Visible:=false
|
Сообщ.
#2
,
|
|
|
Вобщем я имел ввиду что имеется чужая(не моя)прога уже давно скомпилированная и при запуске она висит как AlwaysOnTop и ее видно и на TaskBar'e и в списке задач(ctrl+alt+del)
Надо ее убрать из этих мест и вообще спрятать ее окно ДРУГОЙ ПРОГОЙ - вот мне надо сделать такую ПРОГУ на дельфи - ИМХО надо юзать EnumWindows (АПИ) |
Сообщ.
#3
,
|
|
|
не обязхательно EntmWindow
подойдет и FindWindow. А потом просто надйенному окну посылаешь ShowWindow(hwnd,SW_HIDE) вроде так. а можно ли для этого RegisterServiceProcess прикрутить не знаю, возможно, унего по моему первый параметр тоже hwnd окна, которое нужно спрятать, хотя ожметь быть это и ID процесса... в таком случае теюе будет уже сложенее, нужно по окну восстановить процесс и его упрятать... |
Сообщ.
#4
,
|
|
|
Я так понял, окно ее ты видишь. Вот тебе код, когда стерминатишь, ищи где лежит сама и удаляй!!! Проще всего определить путь к EXE_шнику через ToolHelp(с ним разбирайся сам, мне лень это сейчас тебе писать).
//------------------------------------------ unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls; type TForm1 = class(TForm) Button1: TButton; ListView: TListView; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; m: array[0..255] of HWND; I: Integer; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var hTmp: HWND; wText: PChar; begin I := 0; hTmp := FindWindow(nil, nil); m[I] := hTmp; with ListView.Items.Add do begin Caption := IntToStr(hTmp); GetWindowText(hTmp, wText, 255); SubItems.Add(wText); end; repeat hTmp := GetNextWindow(hTmp, GW_HWNDNEXT); m[I] := hTmp; with ListView.Items.Add do begin Caption := IntToStr(hTmp); GetWindowText(hTmp, wText, 255); SubItems.Add(wText); end; until (hTmp = 0); // Тут находишь окно этой проги end; procedure TForm1.Button2Click(Sender: TObject); var hTmp: HWND; ID: DWORD; hPr: THandle; begin If ListView.SelCount = 0 then Exit; hTmp := StrToInt(ListView.Selected.Caption); GetWindowThreadProcessID(hTmp, @ID); hPr := OpenProcess(PROCESS_TERMINATE, False, ID); TerminateProcess(hPr, 0); end; end. //------------------------------------------ На форме - ListView c 2-мя колумсами и стилем vsReport. |