Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
All Гость
|
Добавлено: Пт Мар 22 2002 11:06 Заголовок сообщения: Как открыть файл, если путь прописан в таблице |
|
|
Как открыть файл, если путь прописан в таблице |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Пт Мар 22 2002 13:46 Заголовок сообщения: Народ, вы учитесь вопросы нормально задавать!!! (+) |
|
|
А то читать тупь а-ля "Не работает прога, помогите" просто задолбало, а отвечать на это тем более в облом, точнее на такой вопрос ответить нельзя В ПРИНЦИПЕ!!! Сложно что-ли построить вопрос в виде: 1) Дано. 2) Надо получить. 3) Пытался вот так-то и так-то. 4) "Оно" мне ответило то-то и то-то.
и только после этого писать слова "Помогите, пожалуйста" |
|
Вернуться к началу |
|
|
Anatoliy
Зарегистрирован: 15.04.2002 Сообщения: 681 Откуда: Moscow
|
Добавлено: Пт Мар 22 2002 16:56 Заголовок сообщения: Думал короче удобнее.... |
|
|
Есть "ДБГрид" содержащий информацию о документе и расположение к ниму. Поле "pathdoc" содержит полный путь к файлу. Требуется двойным "кликом" открыть файл. Пробовал так но не открывается ошибок не пишет:
AnsiString f; f = DM->Tdocum->FieldValues["pathdoc"];
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); } пробовал и так AnsiString f; f = DM->Tdocum->FieldValues["pathdoc"];
if(DBGrid1->SelectedRows) { ShellExecute(Handle,"open","f",NULL,NULL,SW_SHOWDEFAULT); }
Думаю, что неправильно указал переменную и процесс не видет файла.
Буду признателен за помощь. |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Сб Мар 23 2002 08:27 Заголовок сообщения: Re: Думал короче удобнее.... |
|
|
Во-первых, f надо передавать без кавычек. Во-вторых, посмотри какое значение возвращает ShellExecute. Returns a value greater than 32 if successful, or an error value that is less than or equal to 32 otherwise. The following table lists the error values. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Microsoft® Windows® applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an integer and compare it with the value 32 or one of the error codes below. |
|
Вернуться к началу |
|
|
Mike
Зарегистрирован: 17.11.2001 Сообщения: 339 Откуда: ekb
|
Добавлено: Сб Мар 23 2002 13:32 Заголовок сообщения: Re: Думал короче удобнее.... |
|
|
Надо писать не "f", а f.c_str() |
|
Вернуться к началу |
|
|
|