Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как скрыть прогу в Task Bar, System Tray


Автор: chipset 7.4.2005, 21:58
Исходный код:

Код


/*apphider.cpp*/
/* Alexey Chubar & Paul Ishenin*/
#pragma hdrstop
#include
#include
#include
#include
#include
USELIB("KERNEL32.lib");
#pragma argsused
extern "C" fastcall FindID(const char *FName)
{
HANDLE h;
PROCESSENTRY32 p;
h=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
p.dwSize=sizeof(p);
if(!Process32First(h,&p))
 return -1;
if(strcmp(strlwr((char *)FName), strlwr(ExtractFilePath(p.szExeFile)))==0)
{
   CloseHandle(h);
   return p.th32ProcessID;
 }
while(Process32Next(h,&p))
 if(strcmp(strlwr((char *)FName), strlwr(ExtractFilePath(p.szExeFile)))==0)
 {
   CloseHandle(h);
   return p.th32ProcessID;
  }
 CloseHandle(h);
 return -1;
}
int main(int argc, char* argv[])
{
 if (argc > 1)
 {
  DWORD ProgID=FindID(argv[1]);
  if(ProgID != (DWORD)-1)
   HideApp(ProgID);
  }
  return 0;
}






или:
Исходный код:

Код

 _asm{
  mov eax,1
  push eax
  dec eax
  push eax
  call dword ptr[pRegisterServiceProcess]
 }





А теперь более подробно. Невидимость по Alt-Tab:
Исходный код:

Код

var  WnHnd   : Integer;
WnHnd := GetWindowLong(Application.Handle, GWL_EXSTYLE);
WnHnd := WnHnd or WS_EX_TOOLWINDOW; {Типа Tools-окно}
SetWindowLong(Application.Handle, GWL_EXSTYLE, WnHnd);





Невидимость в Панели Задач:
Исходный код:
Код


ShowWindow[Async](Application.Handle,SW_HIDE)




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)