Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Createprocess выдает ошибку в 98
|
|||
|---|---|---|---|
|
#18+
Уважаемые Коллеги есть код. name:='C:\Program Files\Microsoft Office\Office\WINWORD.EXE '+nameDok; P1:=Pchar(name); FillChar(Si,SizeOf(Si),0); if not Createprocess(nil,P1,nil,nil,false,Create_default_error_mode,nil,nil,si,p) then begin ShowMessage( 'CreateProcess failed.' ); Exit; end; CloseHandle( p.hThread ); Waitforsingleobject(p.hProcess,infinite); CloseHandle( p.hProcess ); //kod..... DeleteFile(nameDok); т.е. Открывается WordPad и туда загружается документ, ждем когда он закроется и что0то делаем. ( с WORDом почему-то не отрабатывает ожидание конца процесса). Так вот ... в XP все пашет на пять баллов, а в 98 ыкидывает ошибку. Кно-то сталкивался как с этим бороться или я что не так делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 06:40 |
|
||
|
Createprocess выдает ошибку в 98
|
|||
|---|---|---|---|
|
#18+
Попробуй такой функцией посмотреть: extern void displayError() { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &lpMsgBuf, 0, NULL ); Это на си, под делфи сам конверть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 06:57 |
|
||
|
Createprocess выдает ошибку в 98
|
|||
|---|---|---|---|
|
#18+
Заверни CreateProcess в Win32Check и оно тебе скажет в чем дело. Win32Check - это на самом деле удобная обертка того самого FormatMessage от предыдущего коллеги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 12:47 |
|
||
|
Createprocess выдает ошибку в 98
|
|||
|---|---|---|---|
|
#18+
Уважаемый Dankov, стыдно признаться, но не знаю как это сделать. Если можно разжевать, в разумных пределах, то буду премного благодарен. И еще. Если будет выяснена ошибка, то как можно ее вылечить. Ну будет что-то типа регистры не имеют значение или еще какое системное непотребство, есть механизмы лечения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 12:58 |
|
||
|
Createprocess выдает ошибку в 98
|
|||
|---|---|---|---|
|
#18+
Вместо if not Createprocess(nil,P1,nil,nil,false,Create_default_error_mode,nil,nil,si,p) then надо написать Win32Check(CreateProcess(nil,P1,nil,nil,false,Create_default_error_mode,nil,nil,si,p)) в случае ошибки, Win32Check сгенерит понятное исключение. А как лечить - зависит от природы ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:22 |
|
||
|
Createprocess выдает ошибку в 98
|
|||
|---|---|---|---|
|
#18+
Но причина ошибки, скорее всего, в пробеле в пути к файлу. Так как первый параметр NULL, то экзешник определяется в командной строке по первому пробелу (это в хелпе написано по CreateProcess). Чтобы такой неопределенности не было, обычно путь к экзешнику вкладывают в первый параметр, а хвост командной строки во второй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:28 |
|
||
|
Createprocess выдает ошибку в 98
|
|||
|---|---|---|---|
|
#18+
Но причина ошибки, скорее всего, в пробеле в пути к файлу. Так как первый параметр NULL, то экзешник определяется в командной строке по первому пробелу (это в хелпе написано по CreateProcess). Чтобы такой неопределенности не было, обычно путь к экзешнику вкладывают в первый параметр, а хвост командной строки во второй ---------------------------------------------------- Спасибо за подсказку. Развел вызов редактора и командной строки. P1:=Pchar('wordpad.exe'); P2:=Pchar('name.doc'); Createprocess(P1,P2,nil,nil,false,Create_default_error_mode,nil,nil,si,p); и ошибка ушла, но теперь запускается wordpad с новым документов, а не с моим документом т.е. не схватывает параметр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 05:56 |
|
||
|
Createprocess выдает ошибку в 98
|
|||
|---|---|---|---|
|
#18+
Работает все следующим образом P1:=Pchar('wordpad.exe'); P2:=Pchar('wordpad.exe name.doc'); Createprocess(P1,P2,nil,nil,false,Create_default_error_mode,nil,nil,si,p); тогда открывается документ и в ХР работает безупречно, но в 98 если name.doc пустой вылетает ошибка. Попытаюсь локализовать ошибку или есть выход определять пустой name.doc или нет и тогда открывать бес параметров, но это не есть хорошо. А вообще задача такая. Есть база MSSQL где в BLOB полях документи вордовские их надо открыть, отредоктировать и сохранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 06:56 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2117828]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
124ms |
get topic data: |
6ms |
get first new msg: |
3ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 402ms |

| 0 / 0 |
