WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Delphi
  Програмеры помогите спрятать одну прогу другой(моей)

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Програмеры помогите спрятать одну прогу другой(моей)
DedRevolt опубликован 02-01-2002 00:47 MSK   Click Here to See the Profile for DedRevolt   Click Here to Email DedRevolt  
Вот такую прячущую прогу и надо сделать - чтобы по указанному Title нужной проги она прятала ее по типу RegisterServiceProcess и убирала у окна атрибут OnTop а также ставила Visible:=false
DedRevolt опубликован 02-01-2002 00:53 MSK     Click Here to See the Profile for DedRevolt  Click Here to Email DedRevolt     
Вобщем я имел ввиду что имеется чужая(не моя)прога уже давно скомпилированная и при запуске она висит как AlwaysOnTop и ее видно и на TaskBar'e и в списке задач(ctrl+alt+del)
Надо ее убрать из этих мест и вообще спрятать ее окно ДРУГОЙ ПРОГОЙ - вот мне надо сделать такую ПРОГУ на дельфи - ИМХО надо юзать EnumWindows (АПИ)
Demo_S опубликован 02-01-2002 02:35 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
не обязхательно EntmWindow
подойдет и FindWindow.
А потом просто надйенному окну посылаешь
ShowWindow(hwnd,SW_HIDE)
вроде так.
а можно ли для этого RegisterServiceProcess прикрутить не знаю, возможно, унего по моему первый параметр тоже hwnd окна, которое нужно спрятать, хотя ожметь быть это и ID процесса... в таком случае теюе будет уже сложенее, нужно по окну восстановить процесс и его упрятать...
Dadon опубликован 23-01-2002 10:11 MSK     Click Here to See the Profile for Dadon  Click Here to Email Dadon     
Я так понял, окно ее ты видишь. Вот тебе код, когда стерминатишь, ищи где лежит сама и удаляй!!! Проще всего определить путь к 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.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.