Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

Сркытие программы из 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.035 c
1-1107406301
ТехникПТО
2005-02-03 07:51
2005.02.20
Как установить компонент NMHTTP в Delphi 6??


4-1104343103
ancara
2004-12-29 20:58
2005.02.20
Свой файл вместо STDOUT?


1-1107847999
SergP.
2005-02-08 10:33
2005.02.20
SetSystemTime. Проблема с поясами...


9-1100785213
Вась-Вась
2004-11-18 16:40
2005.02.20
Проблемы с заголовочными файлами DirectX SDK!


1-1107156918
vasili
2005-01-31 10:35
2005.02.20
РАБОТА с объектом ActionToolBar, XPColorMap1 и прочим





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский