[CDR X4 и ранее] VBA Закрыть приложение.

  • Автор темы Автор темы Thender
  • Дата начала Дата начала
  • Теги Теги
    vba
Статус
Закрыто для дальнейших ответов.

Thender

Участник
Топикстартер
Сообщения
4
Реакции
0
Добрый день, уважаемые знатоки корелдроу.
Хочу что бы после выполнения скрипта что бы закрывалось приложение, как это сделать
Application.close нет в явном виде
Просто close не работает
 
Код:
Sub QuitApp()
  Quit
End Sub
 
Интересно будет ли работать SendKey Alt+F4
 
Будет, но при отладке из под VBE шорткат пошлётся уже ему, забавные эффекты бывают. А чем Quit не устраивает?
 
Quit выдаёт ошибку:
Method 'Quit' of object 'IDrawApplication' failed
 
Ну тогда попробуйте
Код:
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Const WM_COMMAND = &H111

Sub KillDraw()
  Dim hwCorel As Long
  hwCorel = CorelDRAW.AppWindow.Handle
  Call SendMessage(hwCorel, WM_COMMAND, 32773, ByVal 0&)
End Sub
или уже упомянутый SendKeys
Код:
Sub CloseDraw()
  SendKeys "%{F4}"
End Sub
 
killdraw работает спасибо.
а sendkeys не хочу использовать, так как планирую запускать программу из эксель, и тогда при использовании sendkeys непонятно что будет закрываться.
 
А можно еще как нибудь отключить запрос на сохранение?
 
можно пробежаться по документам чем-то вроде:
Код:
Sub cl()
  For Each d In CorelDRAW.Documents
    d.Dirty = False
    d.Close
  Next d
End Sub
В данном примере закроются даже файлы с несохраненными изменениями. Возможно Вам требуется их сохранение без запроса под тем-же или сгенерированным именем?
 
Статус
Закрыто для дальнейших ответов.