На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Creating an Interactive Process



The following code fragment shows how a Win32 service process could use the STARTUPINFO structure in a CreateProcess call to create a process that has access to the user's interactive window station and default desktop. A noninteractive Win32 service could use this technique to interact with the logged on user. The new process could then use a named pipe or some other means of interprocess communication to communicate with the Win32 service.

To create an interactive process as shown in this example, a Win32 service must be logged in to the LocalSystem account.

#include

STARTUPINFO si;
PROCESS_INFORMATION ProcessInformation;

si.cb = sizeof(STARTUPINFO);
si.lpReserved = NULL;
si.lpTitle = NULL;
si.lpDesktop = "WinSta0\\Default";
si.dwX = si.dwY = si.dwXSize = si.dwYSize = 0L;
si.dwFlags = 0;;
si.wShowWindow = SW_SHOW;
si.lpReserved2 = NULL;
si.cbReserved2 = 0;
if (CreateProcess(NULL, lpszCmdLine, NULL, NULL, FALSE,
0, NULL, NULL, &si, &ProcessInformation)) {
CloseHandle(ProcessInformation.hProcess);

CloseHandle(ProcessInformation.hThread);
}



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Создание Диалогового Процесса



Кодовый фрагмент следующего показывает как процесс услуги Win32 мог бы использовать структуру STARTUPINFO на вызове CreateProcess, чтобы создавать процесс, который имеет доступ к станции диалогового окна потребителя и встроенной настольной системы. Услуга noninteractive Win32 могла бы использовать эту технику, чтобы взаимодействовать с зарегистрированным на потребителе. Новый процесс мог затем использовать поименованную трубу или некоторые другие средства межпроцессовой связи, чтобы связываться с услугой Win32.

Чтобы создавать диалоговый процесс как показано в этом примере, услуга Win32 должна быть зарегистрирована в на счет LocalSystem.

#include

si STARTUPINFO;
PROCESS_INFORMATION ProcessInformation;

si.cb = sizeof(STARTUPINFO);
si.lpReserved = НЕДЕЙСТВИТЕЛЬНЫЙ;
si.lpTitle = НЕДЕЙСТВИТЕЛЬНЫЙ;
si.lpDesktop = "WinSta0\\Default";
si.dwX = si.dwY = si.dwXSize = si.dwYSize = 0L;
si.dwFlags = 0;;
si.wShowWindow = SW_SHOW;
si.lpReserved2 = НЕДЕЙСТВИТЕЛЬНЫЙ;
si.cbReserved2 = 0;
если (CreateProcess(НЕДЕЙСТВИТЕЛЬНЫЙ, lpszCmdLine, НЕДЕЙСТВИТЕЛЬНЫЙ, НЕДЕЙСТВИТЕЛЬНЫЙ, ЛОЖНЫЙ, 0, НЕДЕЙСТВИТЕЛЬНЫЙ, НЕДЕЙСТВИТЕЛЬНЫЙ, &si, &ProcessInformation)) { CloseHandle(ProcessInformation.hProcess);

CloseHandle(ProcessInformation.hThread);
}



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz