Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CreateProcess

43K
04 июня 2010 года
Yokka
14 / / 23.05.2010
как с помощью CreateProcess взять дескриптор файла. Я делаю так но ничего не выходит.
Код:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
STARTUPINFO cif;
        ZeroMemory(&cif,sizeof(STARTUPINFO));
        PROCESS_INFORMATION pi;
if(!(CreateProcess(NULL,"D:\ololo.pdf", NULL, NULL, FALSE, 0,
                  NULL, NULL, &cif, &pi )));
ShowMessage("LOX");
HWND H=pi.hProcess; //дескриптор
CloseWindow(H);
}
пишет что я "LOX". Как правильно работать с CreateProcess?
7
04 июня 2010 года
@pixo $oft
3.4K / / 20.09.2006
Дескриптор файла,НЯЗ,получается с помощью CreateFile.Так вы сможете получить только дескриптор процесса…и то,придётся кое-что подправить

Читаем про CP
43K
04 июня 2010 года
Yokka
14 / / 23.05.2010
Ясно. А что надо поменять в коде чтобы функция CreateProcess не возвращяла ноль?
43K
04 июня 2010 года
Yokka
14 / / 23.05.2010
Вот немного подправил код.
void __fastcall TForm1::Button2Click(TObject *Sender)
Код:
{
STARTUPINFO cif;
        ZeroMemory(&cif,sizeof(STARTUPINFO));
        PROCESS_INFORMATION pi;
if(!(CreateProcess(NULL,"D:\ololo.pdf", NULL, NULL, FALSE, 0,
                  NULL, NULL, &cif, &pi )));
ShowMessage("LOX");
CloseWindow(pi.hProcess);//пытаюсь свернуть файл
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
Компилятор не ругается, но CreateProcess все равно возвращяет ноль.
297
04 июня 2010 года
koodeer
1.2K / / 02.05.2009
"D:\ololo.pdf" - не экранирован бэкслэш?

Цитата: @pixo $oft
Читаем про CP


[COLOR="DimGray"]Child Porno ?[/COLOR] :D

43K
04 июня 2010 года
Yokka
14 / / 23.05.2010
Цитата: @pixo $oft
Дескриптор файла,НЯЗ,получается с помощью CreateFile.Так вы сможете получить только дескриптор процесса…и то,придётся кое-что подправить

Немного помыслив мне начинает казаться что и CloseWindow(pi.hProcess); работать тоже не будет.
А как тогда осуществить сворачевание файла?

43K
04 июня 2010 года
Yokka
14 / / 23.05.2010
Цитата: koodeer
"D:\ololo.pdf" - не экранирован бэкслэш?



Это просто путь с именем файла.

А может ли CreateProcess открывать не .exe файлы? Просто куда не посмотрю у всех примерах .exe стоит.

1
04 июня 2010 года
kot_
7.3K / / 20.01.2000
Цитата: Yokka
Это просто путь с именем файла.


послушайте юное создание - вы либо читаете то что вам пишут - либо я прекращаю вашу активную деятельность на форуме. Поэтому - это не просто путь с именем файла - это ваша грубейшая ошибка.

Цитата: Yokka

А может ли CreateProcess открывать не .exe файлы? Просто куда не посмотрю у всех примерах .exe стоит.


было бы странно, если бы было по другому.
Что бы у вас все работало так как вам хочется - вам нужно вызывать приложение, которое связанно с тем типом файла, что вы хотите открыть, а в качестве параметров передавать ему путь к файлу, который вы открываете.
[COLOR="Red"]Предупреждаю - размещение вопросов в тематических разделах предполагает, что вы как минимум ознакомились с общедоступной информацией по вопросу - если же вы считаете, что за вас должны делать другие, то вынужден вас разочаровать. Ваши темы будут закрываться и удалятся, а ваш доступ будет блокирован. [/COLOR]

332
04 июня 2010 года
Valiant
416 / / 27.09.2004
Зачем же Вы стругаете примеры в которых ничего не понимаете? Вся информация даётся для размышления и осознания того что преподнесено ...

Бездумное копирование примеров Вас до добра не доведёт:
 
Код:
STARTUPINFO si;
        PROCESS_INFORMATION pi;
        ZeroMemory(&si,sizeof(STARTUPINFO));
        String taburetka = "C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRd32.exe D:\\ololo.pdf";
        bool res;
        res = CreateProcess(NULL,taburetka.c_str(),
                        NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi);
        if(res != true){
                ShowMessage(GetLastError());
                }
7
04 июня 2010 года
@pixo $oft
3.4K / / 20.09.2006
Valiant,а ты уверен,что там именно в такой папке программа?:)
Лично я сомневаюсь.Можно было бы попробовать Start…но в этом я тоже сомневаюсь.Это вроде только в WinExec работает
332
07 июня 2010 года
Valiant
416 / / 27.09.2004
Я написал для примера. О вычислениии пути к программе вопроса не задавалось ...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог