Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2013, 14:39   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию Process.Start("WinWord.exe")

Здравствуйте Уважаемые программисты!
Работаю с vb в VS 2010.
Подскажите пожалуйста, как обратиться к созданному кодом:
Process.Start("WinWord.exe", "/t" & "c:\1.dot") документу?
Т.е. таким кодом создается новый документ word на основе шаблона 1.dot. Подскажите как этому документу присвоить переменную Word.Document, чтобы можно было далее работать с элементами word (ActiveDocument.AttachedTemplate и др.).
Спасибо.
ольгаг вне форума Ответить с цитированием
Старый 27.11.2013, 16:55   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

А зачем вы его так создаёте? Подключите библиотеку и работайте как обычно
Код:
Dim wdApp As New Word.Application
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 28.11.2013, 07:16   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Я создаю его таким способом, потому что так получается (отследив процесс winword.exe) создать новый документ word в уже запущенном процессе winword.exe.
ольгаг вне форума Ответить с цитированием
Старый 29.11.2013, 04:55   #4
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

Microsoft.VisualBasic.Interaction.G etObject(, "Word.Application") в помощь
AndVGri вне форума Ответить с цитированием
Старый 29.11.2013, 07:10   #5
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Подскажите пожалуйста, как прописать чтобы не создавался новый пустой документ Word в результате следующего кода:
System.Diagnostics.Process.Start("W INWORD.EXE")?
Пробовала
System.Diagnostics.Process.Start("W INWORD.EXE",vbNull)
получается, но с ошибкой.
Спасибо.
ольгаг вне форума Ответить с цитированием
Старый 29.11.2013, 08:41   #6
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

Прочитайте Использование параметров командной строки для запуска Word 2010, Word 2007, Word 2003, Word 2002 и Word 2000
И, позвольте поинтересоваться, а то любопытство мучает, зачем столь странным образом работать с Microsoft Word? Чем вам работа с Dim wdApp As New Word.Application не подходит?
AndVGri вне форума Ответить с цитированием
Старый 29.11.2013, 09:17   #7
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Dim wdApp As New Word.Application создает новый экземпляр приложения. А я хочу открыть документ в уже запущенном экземпляре.
Код:
System.Diagnostics.Process.Start("W INWORD.EXE")
создает новый документ word, затем я регистрирую Word в таблице ROT (Running Object Table). Далее открываю свой word-документ.
Но в такой ситуации не знаю как убрать лишний пустой word (например, убрать его сразу после регистрации или запускать скрыто)?
Спасибо.

Последний раз редактировалось ольгаг; 29.11.2013 в 09:41.
ольгаг вне форума Ответить с цитированием
Старый 29.11.2013, 09:45   #8
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

System.Diagnostics.Process.Start("W INWORD.EXE") вообще-то создаёт новый экземпляр Word.
Цитата:
Запускает ресурс процесса путем указания имени документа или файла приложения и связывает ресурс с новым компонентом System.Diagnostics.Process.
Если уж вам нужно выяснить, есть процесс winword, то получите массив, используя
System.Diagnostics.Process.GetProce ssesByName("Winword")
если массив не нулевой длины, то какой-то word уже запущен.
AndVGri вне форума Ответить с цитированием
Старый 29.11.2013, 13:14   #9
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Спасибо!
Подскажите пожалуйста, как запустить
System.Diagnostics.Process.Start("W INWORD.EXE")
в свернутом виде. Возможно такое?
ольгаг вне форума Ответить с цитированием
Старый 29.11.2013, 13:31   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вам надо с вордом работать через интероповские враперы
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Не открывает exe файл через Process.Start DarkPower C# (си шарп) 2 24.03.2013 20:38
Process::Start("IExplorer.exe", "www.yandex.ru"); msemenikhin Visual C++ 0 02.02.2012 16:53
Ошибка при билдежке проекта "Can't start preprocessor (2)" PilGrim Общие вопросы .NET 1 13.05.2010 16:58
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04