Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Помогите разобраться! ( как нужно..............

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Пн Мар 18 2002 10:35    Заголовок сообщения: Помогите разобраться! ( как нужно.............. Ответить с цитатой

Мне требуется открыть файл, путь к которому прописан в таблице "dbf." Tdocum в поле "pathdoc".

Я пробовал так:
AnsiString f;
Tdocum->Edit();
f = Tdocum->FieldValues["pathdoc"];
Tdocum->Cancel();

if (DBGrid1->SelectedRows)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
if(!CreateProcess(f.c_str(),NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)).. MessageBox(this->Handle,"Не могу открыть файл!","Ошибка!",MB_OK);
}
else
{
ShowMessage ("Выберите запись.");
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mike



Зарегистрирован: 17.11.2001
Сообщения: 339
Откуда: ekb

СообщениеДобавлено: Вт Мар 19 2002 07:39    Заголовок сообщения: Re: Помогите разобраться! ( как нужно.............. Ответить с цитатой

1. Если хочешь открыть файл, который ассочиирован с определенным приложением (Word, Excel , и т.д.) - тогда надо использовать ShellExecute
2. Если хочешь запустить процесс, то тогда надо внимательно посмотреть, правильно ли задаешь переметры
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Вт Мар 19 2002 12:42    Заголовок сообщения: Re: Помогите разобраться! ( как нужно.............. ПОМОГИТЕ.. Ответить с цитатой

Я пробовал и так, но не могу увидеть что не то ошибки нет, но и результата нет.

AnsiString f;
f = DM->Tdocum->FieldValues["pathdoc"];

ShellExecute(Handle,"open","f",..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mike



Зарегистрирован: 17.11.2001
Сообщения: 339
Откуда: ekb

СообщениеДобавлено: Вт Мар 19 2002 12:49    Заголовок сообщения: Re: Помогите разобраться! ( как нужно.............. ПОМОГИТЕ.. Ответить с цитатой

Проверь код ошибки, возвращаемый ShellExecute
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Вт Мар 19 2002 15:31    Заголовок сообщения: а как? Ответить с цитатой

>>Проверь код ошибки, возвращаемый ShellExecute
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mike



Зарегистрирован: 17.11.2001
Сообщения: 339
Откуда: ekb

СообщениеДобавлено: Вт Мар 19 2002 16:02    Заголовок сообщения: Re: а как? Ответить с цитатой

Return Values

If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.
If the function fails, the return value is an error value that is less than or equal to 32. The following table lists these error values:

Value Meaning
0 The operating system is out of memory or resources.
ERROR_FILE_NOT_FOUND The specified file was not found.
ERROR_PATH_NOT_FOUND The specified path was not found.
ERROR_BAD_FORMAT The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).
SE_ERR_ACCESSDENIED The operating system denied access to the specified file.
SE_ERR_ASSOCINCOMPLETE The filename association is incomplete or invalid.
SE_ERR_DDEBUSY The DDE transaction could not be completed because other DDE transactions were being processed.
SE_ERR_DDEFAIL The DDE transaction failed.
SE_ERR_DDETIMEOUT The DDE transaction could not be completed because the request timed out.
SE_ERR_DLLNOTFOUND The specified dynamic-link library was not found.
SE_ERR_FNF The specified file was not found.
SE_ERR_NOASSOC There is no application associated with the given filename extension.
SE_ERR_OOM There was not enough memory to complete the operation.
SE_ERR_PNF The specified path was not found.
SE_ERR_SHARE A sharing violation occurred.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Anatoliy



Зарегистрирован: 15.04.2002
Сообщения: 681
Откуда: Moscow

СообщениеДобавлено: Ср Мар 20 2002 11:35    Заголовок сообщения: Re: а как? Ответить с цитатой

ето я видел в справке, но не разобрался как юзать (конечно я ламер, но....)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mike



Зарегистрирован: 17.11.2001
Сообщения: 339
Откуда: ekb

СообщениеДобавлено: Ср Мар 20 2002 11:44    Заголовок сообщения: Re: а как? Ответить с цитатой

На самом деле просто: надо сравнить значение, возвращаемое этой функцией со значениями из этого списка и посмотреть, чему соответствует, т.е. какая ошибка происходит. Очень удобно такие вещи делать оператором switch(ShellExecute(......))
{
case 0: ............ break;
case ERROR_FILE_NOT_FOUND: .... break;
case ERROR_PATH_NOT_FOUND : .... break;
}
ну и так далее
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...