приложение не видимое по Ctrl-Alt-Del в win98
От: Аноним  
Дата: 07.08.02 11:49
Оценка:
народ подскажите плз как написать сабж, или если естьдоки на эту тему киньте плз на v-voloshin@yandex.ru
Re: приложение не видимое по Ctrl-Alt-Del в win98
От: Dr_Sh0ck Беларусь  
Дата: 07.08.02 12:10
Оценка:
Здравствуйте Аноним, Вы писали:

А>народ подскажите плз как написать сабж, или если естьдоки на эту тему киньте плз на v-voloshin@yandex.ru


Попробуй так:
#pragma hdrstop
#include <condefs.h>
#include <windows.h>
#include <tlhelp32.h>
#include <string.h>
#include <stdlib.h>
USELIB("KERNEL32.lib");
#pragma argsused
extern "C" __stdcall DWORD RegisterServiceProcess(DWORD dwProcessID, DWORD
dwType);
char * ExtractFilePath(const char *Name)
{
 int i = strlen(Name), l = strlen(Name);
 char *res="\0";
 while ((i > 0)&&(Name[i] != '\\')) i--;
 if (i)
 {
   res = (char *)malloc(l - i);
   strcpy(res, Name + i + 1);
   res[l-i-1] = '\0';
 }
 return res;
}
void HideApp(DWORD dwProcessID)
{
 HWND MyHandle = GetTopWindow(0);
 DWORD WindowProcess;
 while (MyHandle != NULL)
 {
   if ((GetWindowThreadProcessId(MyHandle, &WindowProcess) != 0) &&
(WindowProcess == dwProcessID))
   {
    ShowWindow(MyHandle, SW_HIDE);
   }
   MyHandle = GetNextWindow(MyHandle, GW_HWNDNEXT);
 }
 RegisterServiceProcess(dwProcessID, 1);
}
DWORD __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;
}
Do not fake yourself ;)
ICQ#: 198114726
Re[2]: Ой...
От: Dr_Sh0ck Беларусь  
Дата: 07.08.02 12:11
Оценка:
Здравствуйте Dr_Sh0ck, Вы писали:


DS>Попробуй так:


[skipped]

Сорри, тебе же надо было для 98
Do not fake yourself ;)
ICQ#: 198114726
Re[3]: Ой...
От: b_monkey Беларусь  
Дата: 08.08.02 08:43
Оценка:
Здравствуйте Dr_Sh0ck, Вы писали:

DS>Здравствуйте Dr_Sh0ck, Вы писали:



DS>Сорри, тебе же надо было для 98


достаточно оказалось просто RegisterServiceProcess
но всё равно сенкс
WBR,
vitaly voloshin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.