|
Дождаться завершения Эксель. | ☑ | ||
---|---|---|---|---|
0
shamannk
10.10.13
✎
12:27
|
Запускаю эксель жду завершения и патом обрабатываю (тут все ок). Но если до запуска был запущен какойто файлик экселя то ожидание не происходит. Как тогда?
ЗапуститьПриложение(Путь,,Истина); |
|||
1
wms
10.10.13
✎
12:39
|
убей в диспетчере процесс
|
|||
2
smaharbA
10.10.13
✎
12:41
|
Запустить новый экземпляр
|
|||
3
smaharbA
10.10.13
✎
12:41
|
в путь не одинокий файл вписать
|
|||
4
shamannk
10.10.13
✎
13:12
|
(3) Не понял. Можно подробней?
|
|||
5
smaharbA
10.10.13
✎
13:15
|
(4) у Вас "Путь" - это файл екселя ?
|
|||
6
shamannk
10.10.13
✎
13:17
|
(5)Да.
|
|||
7
KishMish
10.10.13
✎
13:22
|
возмможно потому, что открывается в этом же экземпляре Екселя.
попробуй перед ЗапуститьПриложение(ТвойфФайл) Запускать Ексель, новый экземпляр, тогда файл будет открываться в нем. Возможно проканает. |
|||
8
Зойч
10.10.13
✎
13:24
|
Ехсель = Новый комобъект;
Ексель.Открыть(*) |
|||
9
smaharbA
10.10.13
✎
13:43
|
(6) он будет открываться в запущенном уже, вариант
Процедура КнопкаВыполнитьНажатие(Кнопка) // Вставить содержимое обработчика. Перем КодВозврата; Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.Фильтр="Екскль (*.xls*)|*.xls*"; ДиалогОткрытияФайла.МножественныйВыбор=Ложь; Если Не ДиалогОткрытияФайла.Выбрать() Тогда Возврат; КонецЕсли; Файл=ДиалогОткрытияФайла.ВыбранныеФайлы.Получить(0); ЗапуститьПриложение("cmd /v:on /q /c ""set z= &&for /f ""tokens=2* delims=="" %x in ('assoc .xls') do (for /f ""tokens=2* delims=="" %y in ('ftype %x') do set z=%y)&&set z=!z:""%1""=!&&set z=!z:%1=!&&!z! """+Файл+"""""",,Истина,КодВозврата); Сообщить(КодВозврата); КонецПроцедуры |
|||
10
shamannk
10.10.13
✎
13:59
|
(9) Спасибо!!! Работает)
|
|||
11
smaharbA
10.10.13
✎
14:08
|
я бы, Немного поправил
Файл=Новый Файл(ДиалогОткрытияФайла.ВыбранныеФайлы.Получить(0)); ЗапуститьПриложение("cmd /v:on /q /c ""set z= &&for /f ""tokens=2* delims=="" %x in ('assoc "+Файл.Расширение+"') do (for /f ""tokens=2* delims=="" %y in ('ftype %x') do set z=%y)&&set z=!z:""%1""=!&&set z=!z:%1=!&&!z! """+Файл.ПолноеИмя+"""""",,Истина,КодВозврата); |
|||
12
shamannk
10.10.13
✎
14:27
|
А в фоне cmd запустить?
|
|||
13
shamannk
11.10.13
✎
11:17
|
Нашлись юзверы, закрывают окно cmd и ломается. Может как то можно в фоне запустить?
|
|||
14
smaharbA
11.10.13
✎
12:43
|
можно, но cmd был специально выбран, что бы без ком объектов
|
|||
15
smaharbA
11.10.13
✎
12:55
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика. Перем КодВозврата; Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.Фильтр="Екскль (*.xls*)|*.xls*"; ДиалогОткрытияФайла.МножественныйВыбор=Ложь; Если Не ДиалогОткрытияФайла.Выбрать() Тогда Возврат; КонецЕсли; Файл=Новый Файл(ДиалогОткрытияФайла.ВыбранныеФайлы.Получить(0)); Временный=Новый Файл(ПолучитьИмяВременногоФайла(".txt")); Текст=Новый ТекстовыйДокумент; ЗапуститьПриложение("cmd /v:on /q /c ""set z= &&for /f ""tokens=2* delims=="" %x in ('assoc "+Файл.Расширение+"') do (for /f ""tokens=2* delims=="" %y in ('ftype %x') do set z=%y)&&set z=!z:""%1""=!&&set z=!z:%1=!&&echo !z!>"""+Временный.ПолноеИмя+"""""",,Истина,КодВозврата); Если Не КодВозврата=0 Тогда СтрокаЗапуска=Файл.ПолноеИмя; Иначе Текст.Прочитать(Временный.ПолноеИмя); СтрокаЗапуска=Текст.ПолучитьСтроку(1)+" """+Файл.ПолноеИмя+""""; Текст.Очистить(); КонецЕсли; Сообщить(СтрокаЗапуска); Если Временный.Существует() Тогда УдалитьФайлы(Временный.ПолноеИмя); КонецЕсли; ЗапуститьПриложение(СтрокаЗапуска,,Истина,КодВозврата); Сообщить(КодВозврата); КонецПроцедуры |
|||
16
shamannk
11.10.13
✎
13:39
|
WshShell = Новый COMОбъект("WScript.Shell");
RetCode = WshShell.Run("cmd /v:on /q /c ""set z= &&for /f ""tokens=2* delims=="" %x in ('assoc .xls') do (for /f ""tokens=2* delims=="" %y in ('ftype %x') do set z=%y)&&set z=!z:""%1""=!&&set z=!z:%1=!&&!z! """+Путь+"""""", 0, Истина); Сделал так. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |