Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как скрыть кнопку на панели задач? [D6, Win95/98]


Колбасьев ©   (2004-09-12 18:36:00) 

Как скрыть кнопку  на панели задач?
И как запустить процесс "невидимым",

ShellExecute(Handle, 'open', 'MyServer.exe', nil, PChar
(ExtractFileDir(Application.ExeName)), SW_HIDE);


не помогает. Выглядит все также как SW_SHOW.


panov   (2004-09-13 18:50:00) [1]

>Колбасьев ©   (13.09.04 18:01) [4]

И чего тут сложного?:


//Функция для создания нового процесса
//Параметры:
// aCommand:  Строка для выполнения исполняемого файла(полный путь)
// aShow:     Показывать/не показывать окно нового процесса
// aWaitExit: Ожидать/не ожидать завершения процесса
function ExecCmd(const aCommand,aParm: String;const aShow, aWaitExit: Boolean): Boolean;
var
 pi:PROCESS_INFORMATION;
 si:STARTUPINFO;
 cmdLine,Path: String;
begin
 ZeroMemory(@si,sizeof(si));
 si.cb:=SizeOf(si);
 si.dwFlags := STARTF_FORCEONFEEDBACK+STARTF_USESHOWWINDOW;
 if aShow then si.wShowWindow := SW_SHOWNORMAL else si.wShowWindow := SW_HIDE;
 Path := ExtractFilePath(aCommand);
 cmdLine := aCommand+' '+aParm;

 Result :=
        CreateProcess( nil,             // No module name (use command line).
                       PChar(cmdLine),  // Command line.
                       nil,             // Process handle not inheritable.
                       nil,             // Thread handle not inheritable.
                       False,           // Set handle inheritance to FALSE.
                       0,               // No creation flags.
                       nil,             // Use parent's environment block.
                       PChar(Path),     // Use parent's starting directory.
                       si,              // Pointer to STARTUPINFO structure.
                       pi );             // Pointer to PROCESS_INFORMATION structure.
 if Result then
 begin
   if aWaitExit then WaitForSingleObject( pi.hProcess, infinite );
   CloseHandle(pi.hThread);
   CloseHandle(pi.hProcess);
 end;
end;


Колбасьев   (2004-09-13 18:01:00) [2]

Handle  я получаю через FindWindow.
CreateProcess меня не устраивает по одной причине - слишком много заполнять для пустякового дела.

QuasiLamo, ANB - спасибо.


ANB   (2004-09-12 18:51:00) [3]

Вот чтобы получить Application.Handle и придется юзать CreateProcess.


QuasiLamo   (2004-09-12 18:43:00) [4]

с сайта delphiworld
-----------------------
Все запущенные .exe-файлы обозначаются значком на панели задач. А как же сделать, чтобы он стал невидим?

Нужно просто воспользоваться функцией ShowWindow

ShowWindow(Application.Handle, sw_Hide);



Для восстановления видимости значка:

ShowWindow(Application.Handle, sw_Show);


ANB   (2004-09-12 18:38:00) [5]

CreateProcess юзай, тока сразу предупреждаю - пример выслать не смогу - это не мой комп. Полазь по хелпу и посмотри исходники.


Наверх

Титульная страница Поиск, карта сайта Написать письмо