Codesoft 2015, VBScript & hellip; Изменение даты для первого символа только за несколько месяцев? Ошибка Microsoft Complication [дубликат]

  SELECT DISTINCT (t1.ProdId), t1.Quantity FROM Dummy t1 INNER JOIN (SELECT ProdId, MAX (количество) как MaxQuantity FROM Dummy GROUP BY ProdId) t2 ON t1.ProdId = t2.ProdId AND t1.  Количество = t2.MaxQuantity ORDER BY t1.ProdId  

это даст вам идею.

0
задан msd_2 19 September 2013 в 17:03
поделиться

1 ответ

В вашем скрипте есть несколько проблем.

В ответ на ваш вопрос причина, по которой вы получаете сообщение об ошибке, связана с тем, что VBScript поддерживает только один тип данных - вариант. В вашей функции «Create_Shortcut» вы определяете свои параметры как конкретные типы данных, такие как «As String» и «As Integer». Удалите объявления типа данных, и вы исправили свою проблему - вид.

Следующая проблема заключается в том, что VBScript не поддерживает необязательные параметры. Таким образом, вам нужно также удалить ключевое слово Optional в вашей сигнатуре метода «Create_Shortcut». В конечном итоге подпись метода будет выглядеть так:

Private Sub Create_ShortCut(TargetPath, ShortCutPath, ShortCutname, WorkPath, Window_Style, IconNum)

Еще одна проблема, связанная с этим сценарием, заключается в том, что она выглядит так, как будто она обрабатывает щелчок на кнопке (Private Sub Command1_Click), если это сценарий VB, а не приложение VB 6, вам не нужен обработчик нажатия кнопки Однако вам нужно вызвать вашу функцию, поэтому, если вы удалите подпись для нажатия кнопки, а также закрытие «End Sub», вы будете правильно выполнять свою функцию. Однако ....

У кода в методе «Create_Shortcut» также есть проблема. Как и в приведенном выше описании, существует только один тип данных - Variant - поэтому удалите «As Object» из двух строк, объявляющих переменные.

Функция все еще не работает, но эта последняя проблема заключается в том, что при вызове метода вы пропускаете пустой путь к каталогу; требуется рабочий каталог, поэтому просто не забудьте передать его вашему методу. Измените свой код:

Create_ShortCut "C:\MyApp\bin\test_application.exe", "Desktop", "My-Test", , 0, 1

на

Create_ShortCut "C:\MyApp\bin\test_application.exe", "Desktop", "My-Test", "C:\MyApp\bin" , 0, 1

Итак, в конечном счете, ваш файл VBS будет выглядеть следующим образом:

Create_ShortCut "C:\MyApp\bin\test_application.exe", "Desktop", "My-Test", "C:\MyApp\bin" , 0, 1

Private Sub Create_ShortCut(TargetPath, ShortCutPath, ShortCutname, WorkPath, Window_Style, IconNum)
    Dim VbsObj
    Set VbsObj = CreateObject("WScript.Shell")

    Dim MyShortcut
    ShortCutPath = VbsObj.SpecialFolders(ShortCutPath)
    Set MyShortcut = VbsObj.CreateShortcut(ShortCutPath & "\" & ShortCutname & ".lnk")
    MyShortcut.TargetPath = TargetPath
    MyShortcut.WorkingDirectory = WorkPath
    MyShortcut.WindowStyle = Window_Style
    MyShortcut.IconLocation = TargetPath & "," & IconNum
    MyShortcut.Save
End Sub
4
ответ дан Jay Taplin 15 August 2018 в 19:35
поделиться
  • 1
    Теперь это сработало, что делать, если мое приложение .exe принимает некоторые входные параметры. например, Create_ShortCut "C: \ MyApp \ bin \ test_application.exe localhost 1500 -exec =" Excute this & quot; "," Desktop "," My-Test ", C: \ MyApp \ bin & quot; , 0, 1 – msd_2 19 September 2013 в 18:37
  • 2
    Вы устанавливаете аргументы для ярлыка, используя свойство Arguments, например: MyShortcut.Arguments = & quot; some args & quot; – Jay Taplin 19 September 2013 в 18:45
  • 3
    Спасибо, что сработали ... но даже если я задал стиль Window как 0 (Invisible), созданный ярлык обычно открывает окно. Существует ли какой-либо другой способ, с помощью которого окно может быть открыто для невидимости – msd_2 19 September 2013 в 18:53
Другие вопросы по тегам:

Похожие вопросы: