Почему при открытии процесса при помощи CreateProcess мой WindowXP не пускает окно
LPTSTR lpCommandLine;
LPSECURITY_ATTRIBUTES lpProcessAttributes;
LPSECURITY_ATTRIBUTES lpThreadAttributes;
BOOL bInheritHandles;
DWORD dwCreationFlags;
LPVOID lpEnvironment;
LPCTSTR lpCurrentDirectory;
LPSTARTUPINFO lpStartupInfo;
LPPROCESS_INFORMATION lpProcessInformation;
STARTUPINFO si = {0};
PROCESS_INFORMATION pi = {0}
lpApplicationName = "c:\calc.exe";
lpCommandLine = NULL;
lpProcessAttributes = NULL;
lpThreadAttributes = NULL;
bInheritHandles = FALSE;
dwCreationFlags = CREATE_DEFAULT_ERROR_MODE |
CREATE_NEW_CONSOLE |
HIGH_PRIORITY_CLASS;
lpEnvironment = NULL;
lpCurrentDirectory = NULL;
lpStartupInfo = &si;
lpProcessInformation = π
si.cb = sizeof(si); .
si.dwX = 100;
si.dwY = 100;
si.dwXSize = 400;
si.dwYSize = 200;
si.dwXCountChars = NULL;
si.dwYCountChars = NULL;
si.dwFillAttribute = FOREGROUND_RED ;
si.dwFlags = STARTF_USEPOSITION | STARTF_USESIZE ;
si.wShowWindow = NULL;
si.cbReserved2 = NULL;
CreateProcess(
lpApplicationName ,
lpCommandLine,
lpProcessAttributes,
lpThreadAttributes,
bInheritHandles,
dwCreationFlags,
lpEnvironment,
lpCurrentDirectory,
lpStartupInfo,
lpProcessInformation
);
WaitForSingleObject( pi.hProcess, INFINITE );
……………….;
……………….;
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
Прошу прощения за корявый формат текста, в этом редакторе он почему-то выводится не так, как я его форматирую.
LPTSTR lpCommandLine;
LPSECURITY_ATTRIBUTES lpProcessAttributes;
LPSECURITY_ATTRIBUTES lpThreadAttributes;
BOOL bInheritHandles;
DWORD dwCreationFlags;
LPVOID lpEnvironment;
LPCTSTR lpCurrentDirectory;
LPSTARTUPINFO lpStartupInfo;
LPPROCESS_INFORMATION lpProcessInformation;
STARTUPINFO si = {0};
PROCESS_INFORMATION pi = {0}[COLOR="Red"];[/COLOR]
lpApplicationName = "c:[COLOR="#ff0000"]\[/COLOR]\calc.exe";
lpCommandLine = NULL;
lpProcessAttributes = NULL;
lpThreadAttributes = NULL;
bInheritHandles = FALSE;
dwCreationFlags = CREATE_DEFAULT_ERROR_MODE |
[COLOR="#ff0000"]CREATE_NEW_CONSOLE[/COLOR] | //почему консоль-то?
[COLOR="#ff0000"]HIGH_PRIORITY_CLASS[/COLOR]; //нафига HIGH_PRIORITY???
lpEnvironment = NULL;
lpCurrentDirectory = NULL;
lpStartupInfo = &si;
lpProcessInformation = π
si.cb = sizeof(si); .
si.dwX = 100;
si.dwY = 100;
si.dwXSize = 400;
si.dwYSize = 200;
si.dwXCountChars = NULL;
si.dwYCountChars = NULL;
si.dwFillAttribute = FOREGROUND_RED ;
si.dwFlags = STARTF_USEPOSITION | STARTF_USESIZE ;
si.wShowWindow = NULL;
si.cbReserved2 = NULL;
CreateProcess(
lpApplicationName ,
lpCommandLine,
lpProcessAttributes,
lpThreadAttributes,
bInheritHandles,
dwCreationFlags,
lpEnvironment,
lpCurrentDirectory,
lpStartupInfo,
lpProcessInformation
);
WaitForSingleObject( pi.hProcess, INFINITE );
……………….;
……………….;
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
Или, точнее, "Калькулятор плюс Я"
Калькулятор П(!!!)люс чуете разницу?!
По сему, давай спокойно и культурно.
Цитата:
Phodopus
вот ведь так и знал!
Код:
hWindow = FindWindow(NULL, "Калькулятор плюс");
hWindow = FindWindow(NULL, "Калькулятор Плюс");
чуешь разницу?! а из-за тебя пришлось этот "долбаный "Калькулятор Плюс"" качать и ставить!
Конец цитаты.
Я думал что это принятый здесь стиль общения. С большим уважением после ответов отношусь к Phodopus (без всякой иронии!). Про "Калькулятор Плюс" я, мне кажется, доступно объяснил - это модельный пример, у меня задача совсем другая. По поводу того, что здесь все с чем-нибудь бьются, мне кажется, что это для форума нормально. Разве не так?
Не нужно плодить по несколько тем, достаточно одной.
исходя из моего скудного опыта в Buildere и WinAPI могу все же сделать вывод - CreateProcess в Buildere и WinAPI это все равно что 2*2 основа таблицы умножения. И то, что никто из экспертов, специалистов, ветеранов, пенсионеров и.т.п не хочет (не может) ответить, почему
2*2<>4 свидетельствует либо о жлобстве, либо о некомпетентности. Вместо ответов:
GIZMO - Не нужно плодить по несколько тем, достаточно одной.
Ну так и в первой теме ответ так и не был найден.
Тень Пса - Автор, не нервничай и не груби, ок?... Тебе ж никто не должен. А то, что ты бьёшься с этим калькулятором, вообще проблемы, опять же, не формучан ) и таки тебе отвечают.
По сему, давай спокойно и культурно.
Никакой грубости и рядом не стояло
Нездешний -
CREATE_NEW_CONSOLE | //почему консоль-то?
HIGH_PRIORITY_CLASS; //нафига HIGH_PRIORITY???
Вопрос-то исходил от меня, я надеялся на ответ, а не на иронические высказывания.
Ну если не знаете ответа (кстати в этом ничего предосудительного и плохого нет) зачем других уделывать.
Нездешний вам предложил самостоятельно разобраться в семантике выделенных флагов, они действительно не к месту использованы.
Вы правда думаете, что вероятность ответа зависит от количества топиков? Скорее тут обратная пропорциональность :))
Ну не смог я самостоятельно разобраться, поэтому в форум и обращаюсь. Флаги перепробовал все, которые нашел. Про темы - не связаны эти вопросы, их объединяет только использование общедоступного "Калькулятор Плюс".
Вам не кажется киса - что вы заслуживаете наказания?
В связи с хронической невнимательностью автора тема закрыта.
Решение что сделать с вами - я выставляю на обсуждение в модераторском разделе - может быть у кого-то будет что либо в вашу защиту или наоборот.
Если вам чтото хочется сказать в свое оправдание - используйте личные сообщения кому либо из модераторов - например мне или GIZMO.
До момента пока по вас не будет принято решение - ЛЮБАЯ попытка разместить сообщение в ЛЮБОМ из разделов будет расцениваться как спам. Надеюсь я понятно объяснил?
З.Ы. С чего вы решили что у нас тут демократия? Вы грубейшим образом ошиблись.:D