Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Сркытие программы из Alt+Tab и панели задач   Найти похожие ветки 

 
Davinchi ©   (2005-01-06 14:13) [0]

Моя прога помещает свою икону в SystemTray и все происходит от туда. Так, чтобы все совсем класно было хочу "спрятать прогу", т.е. сделать так, чтобы она не размещала свою кнопочку на TaskBar"е и не добовляла себя в список по Alt+Tab...
Раньше на Win98 я это кажется делал с испльзованием:

Function RegisterServiceProcess(dwProcessID, dwType : DWord): DWord; stdcall external "Kernel32.dll" name
"RegisterServiceProcess";

на что WinXp отвечает: "не найдена точка входа в Kernel32.dll..."

Как быть, как можно еще спрыть прогу по ВинХР


 
kaZaNoVa ©   (2005-01-06 14:18) [1]

Davinchi ©   (06.01.05 14:13)

> на что WinXp отвечает: "не найдена точка входа в
> Kernel32.dll..."

там НЕТ этой функции:((
- тама сложно скрыть


 
kaZaNoVa ©   (2005-01-06 14:19) [2]

Davinchi ©   (06.01.05 14:13)
по сабжу сделай поток в другом процессе - 100% скрытие в процессах, так как процесса то и не будет :))
+ пиши на апи БЕЗ ФОРМ :))) - и не будет на панели :)


 
Davinchi ©   (2005-01-06 14:31) [3]

Да я безобидную вещь на самом деле пишу и форма там одна и без нее никак, она должа открывать по клику на иконе в систрее - это есть, тока вот висит она там и висит, а в процессе лишнее окно на панели задач болтается и мешается.... По ХР есть же проиги которые нормально сидят в трее и с формами, значит это просто и реально... Скорее в ХР должен быть аналог RegisterServiceProcess


 
kaZaNoVa ©   (2005-01-06 14:35) [4]

Davinchi ©   (06.01.05 14:31) [3]
а, ну, тогда понятно, тогда и скрывать имхо незачем :))

попробуй этот код, (автор имхо Игорь Шевченко © )
unit main;

interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus;

type
TForm1 = class(TForm)
  MainMenu1: TMainMenu;
  File1: TMenuItem;
  Exit1: TMenuItem;
  N1: TMenuItem;
  Showchild1: TMenuItem;
  procedure Showchild1Click(Sender: TObject);
  procedure FormActivate(Sender: TObject);
protected
  procedure CreateParams (var Params : TCreateParams); override;
end;

var
Form1: TForm1;

implementation
uses
Child;

{$R *.DFM}

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
with Params do
  ExStyle := ExStyle or WS_EX_APPWINDOW;
end;

procedure TForm1.Showchild1Click(Sender: TObject);
begin
with TForm2.Create(Application) do
  Show;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE);
end;

end.

unit Child;

interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm2 = class(TForm)
  Button1: TButton;
  Button2: TButton;
  procedure Button1Click(Sender: TObject);
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
  procedure FormCreate(Sender: TObject);
  procedure Button2Click(Sender: TObject);
public
  procedure CreateParams(var Params : TCreateParams); override;
end;

var
Form2: TForm2;

implementation
uses
ModalForm;
{$R *.DFM}

var ChildInstance : Integer;

procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
end;

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle OR WS_EX_APPWINDOW;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Inc(ChildInstance);
Caption := Format("Child %d", [ChildInstance]);
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
with TForm3.Create(Application) do
  try
    ShowModal;
  finally
    Free;
  end;
end;

end.

object Form2: TForm2
Left = 192
Top = 107
Width = 544
Height = 375
Caption = "Child form"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
OldCreateOrder = False
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
  Left = 256
  Top = 316
  Width = 75
  Height = 25
  Cancel = True
  Caption = "Close"
  Default = True
  TabOrder = 0
  OnClick = Button1Click
end
object Button2: TButton
  Left = 348
  Top = 316
  Width = 75
  Height = 25
  Caption = "Show Dialog"
  TabOrder = 1
  OnClick = Button2Click
end
end



 
Davinchi ©   (2005-01-06 14:42) [5]

kaZaNoVa ©   (06.01.05 14:35) [4]
а, ну, тогда понятно, тогда и скрывать имхо незачем :))

Если в смысле сверх супперского скрытия как у всякой заразы типа вирусняков и траянов мне такого чудо не надо, мне просто разгрузить панель и список по Alt+Tab и как мона проще...


 
kaZaNoVa ©   (2005-01-06 14:47) [6]

Davinchi ©   (06.01.05 14:42) [5]
а я сперва подумал, что ты троян пишешь :))))

код из [4] пробовал?


 
Davinchi ©   (2005-01-06 14:57) [7]

Да не, я чета, как-то не очень в него вник, вломы две формы додстраивать под эти модули... дальше по инету шарю...
А стоит?!?!?!?  это на ХР работает????
лучше на мыльник искодники кинь... буду очень благодарен!!!!


 
DeadMeat ©   (2005-01-06 15:10) [8]


> Davinchi ©  

RegisterServiceProcess и то, что тебе надо, это какбы разные вещи...

---
...Death Is Only The Begining...


 
TUser ©   (2005-01-06 15:11) [9]


> код из [4] пробовал?

Это про то, как добавить иконку на ПЗ. А скрыть вот так
ShowWindow(Application.Handle,SW_HIDE);


 
Davinchi ©   (2005-01-06 15:20) [10]

я же говорил, что все просто:

SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW);


 
TUser ©   (2005-01-06 15:57) [11]

Тогда так
SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) and not (WS_EX_APPWINDOW or WS_EX_TOOLWINDOW));



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
1-1107819015
KOLIG
2005-02-08 02:30
2005.02.20
проблема с вставлением текста в RichEdit


14-1106832227
syte_ser78
2005-01-27 16:23
2005.02.20
Четверговая загадка


3-1106654671
atruhin
2005-01-25 15:04
2005.02.20
Как в FIB настроить нестандартный номер порта коннекта


9-1100760359
Дина
2004-11-18 09:45
2005.02.20
Как проверить, что введенный текст в DBEdit соответствует формату


14-1107225865
X9
2005-02-01 05:44
2005.02.20
mail.com