Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: WinAPI и системное программирование > Запуск внешней программы. |
Автор: Valior 24.5.2006, 16:48 |
Пишу курсовик, помогите. У меня есть FilelistBox, который в директории DIR, в этой директории есть файл TEST.DOC. Сообственно проблема, необходимо запускать WinWord так, чтобы после изменения в файле, небыло возможности сохранить фаил в директории кроме DIR. Как и с чего вообще начать не представляю. Помогите плиз! |
Автор: bems 26.5.2006, 00:21 |
Начни с ShellExecuteEx, CreateJobObject и AssignProcessToJobObject |
Автор: Nickel 26.5.2006, 07:08 |
Если бы word использовал для вывода диалога GetSaveFileName из comdlg32.dll, тогда бы можно было бы перехватить её и делать всё что угодно, однако программисты мелкософта видимо решили отличиться и создавать диалоги как-то по-другому ![]() ![]() |
Автор: BUGOR 26.5.2006, 08:12 |
Перехват подходит. Можно перехватывать WriteFileA(ZwWriteFile) и смотреть параметры. Ведь Word в файл пишет всё равно посредствам этой апи. |
Автор: Valior 26.5.2006, 10:39 |
procedure TForm2.N3Click(Sender: TObject); Var app : olevariant; CBar: CommandBar; begin app := CreateOleObject('Word.Application'); app.Documents.Add(FileListBox1.FileName); app.ActiveDocument.Saved := true; app.visible := true; app.ChangeFileOpenDirectory(Filelistbox1.Directory); app.CommandBars['Saveas'].Enabled:=false; end; Вот к чему свелась задача. Но при такой конструкции ругается на несоответствие типов. Может кто знает как решить такую проблему? |
Автор: bems 26.5.2006, 14:58 |
Сохранять можно и наверное нужно. Но только в конкретную папку! И я думаю что Ворд - это только для примера, а нужно общее решение |
Автор: Nickel 26.5.2006, 15:33 |
А я бы CreateFile перехватил ![]() |
Автор: bems 26.5.2006, 18:01 |
В реальной проге я бы тоже так сделал. Но в курсовой..? Хотя, че ж это мнения автора не слышно? Nickel, забей. Это уже не надо ![]() |
Автор: Nickel 26.5.2006, 18:09 |
Ну надо или не надо это пусть автор темы решает. |
Автор: Valior 26.5.2006, 22:11 | ||
Ребят всем спасибо, все свелось к
|