Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: Автоматический запуск 1С через VBScript Добавлено: 13.02.11 02:11  

Автор вопроса:  The_Immortal
Ребят, всех приветствую!
В общем, у меня следующая задача: проверять запущена ли процесс 1cv7s.exe и если нет, то запускать 1С, а следом еще одну утилитку.
Решил реализовать ее на VBScript (как/где еще это можно сделать - не знаю - может кто подскажет варианты).
Как проверять процесс не знаю (может тоже подскажите?)... Пока пробую автоматически запуск 1С... В скрипте наткнулся на следующую проблему:

Set WshShell = Wscript.CreateObject("Wscript.Shell")
CmdLine = ""C:\Program Files\1Cv77\BIN\1cv7s.exe" enterprise /DG:\db\1C_SQL\ /N Adm /P 1"
WshShell.Run CmdLine, 1, True[/CODE]

Не может выполнить вторую строчку из-за кавычек... Структура задания переменной такая: var = "..." А у меня в описании самой переменной уже есть кавычки: "C:\Program Files\1Cv77\BIN\1cv7s.exe"
Как быть не знаю... :(
Также пробовал такие варианты:
CmdLine = """C:\Program Files\1Cv77\BIN\1cv7s.exe" enterprise /DG:\db\1C_SQL\ /N Adm /P 1""

CmdLine = Chr(34)& "C:\Program Files\1Cv77\BIN\1cv7s.exe" enterprise /DG:\db\1C_SQL\ /N Adm /P 1 &Chr(34)


Не помогло. По-прежнему пишет: "Предполагается наличие окончания инструкции"

Подскажите, пожалуйста...
Ну или может решение есть какое-нибудь другое...

Буду очень признателен!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #1 Добавлено: 13.02.11 12:05
проверять процесс так
  1.  
  2. On Error Resume Next
  3. Dim strProcName
  4. strProcName = "1cv7s.exe"
  5. Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
  6.  
  7. If Err.Number <> 0 Then
  8.    Wscript.Echo Err.Number & ": " & Err.Description
  9.    Err.Clear
  10.    Wscript.Quit
  11. End If
  12.  
  13. For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & strProcName & "'")
  14.    Wscript.Echo strProcName & " started"
  15.    Wscript.Quit
  16. Next
  17.  
  18. Wscript.Echo strProcName & " not started"
  19. Wscript.Quit



а насчет кавычек не совсем понял
может так
  1.  
  2. CmdLine = """C:\Program Files\1Cv77\BIN\1cv7s.exe""" & " enterprise /DG:\db\1C_SQL\ /N Adm /P 1"
  3. msgbox CmdLine ' посмотри как выглядит эта переменная и если не угадал напиши как должна

Ответить

Номер ответа: 2
Автор ответа:
 The_Immortal



Вопросов: 3
Ответов: 7
 Профиль | | #2 Добавлено: 13.02.11 15:47
Большое спасибо!

Ответить

Номер ответа: 3
Автор ответа:
 The_Immortal



Вопросов: 3
Ответов: 7
 Профиль | | #3 Добавлено: 14.02.11 01:00
Just, а не подскажите еще кое-что, пожалуйста?
  1.  
  2. Dim time
  3. Dim fso, tf, time
  4. Set fso = CreateObject("Scripting.FileSystemObject")
  5. Const ForAppending = 8
  6. Set tf = fso.OpenTextFile("c:\testfile.txt", ForAppending, True)
  7. time = Now()
  8. tf.Write(time)
  9. tf.WriteLine(" Не удалось запустить процесс.")

Как одной строкой вот это можно оформить?
  1.  
  2. tf.Write(time)
  3. tf.WriteLine(" Не удалось запустить процесс.")

Не знаю, как преобразовать переменную time в строку...

Ответить

Номер ответа: 4
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #4 Добавлено: 14.02.11 01:42
полагаю, что CStr(time)

Ответить

Номер ответа: 5
Автор ответа:
 The_Immortal



Вопросов: 3
Ответов: 7
 Профиль | | #5 Добавлено: 14.02.11 02:07
AgentFire, ага спасибо.
  1. tf.WriteLine(time & " Не удалось запустить процесс.")
- так тоже прокатило :)

Но на эту тему созрел еще один вопрос: пусть на входе есть 2 строковые переменные "Люблю " и "Мир!". На выходе надо получить "Люблю Мир!".
Я пытался сделать следующим образом:
  1.  
  2. love = """Люблю """
  3. what = """Мир!"""
  4. res =  l & m
  5. MsgBox res


На выходе у меня получается: "Люблю ""Мир!"
Если же сделать так:
  1. love = "Люблю "
  2. what = "Мир!"
  3. res = """l & m"""
  4. MsgBox res

То оператор & и переменные l,m будут восприниматься как обычные символы, и на выходе получится: "l & m".
А вот как можно загнать эти слова под общие кавычки? И реально ли это осуществить?

Ответить

Номер ответа: 6
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #6 Добавлено: 14.02.11 03:07
  1. res = """" & l & m & """"

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам