Как перезапустить мою программу в vb6? - PullRequest
0 голосов
/ 02 января 2011

Как перезапустить (закрыть и запустить) мою программу в vb6

Ответы [ 4 ]

3 голосов
/ 03 января 2011

Лучший способ сделать это, вероятно, - создать приложение-наблюдатель, которое вы запускаете в своем основном приложении, прежде чем завершить его.

Во-первых, основное приложение должно создать мьютекс или семафор при запуске. Если вы хотите перезапустить приложение, пусть основное приложение запустит наблюдателя. Приложение-наблюдатель должно подождать, пока мьютекс / семафор основного приложения не исчезнет, ​​а затем повторно запустить основное приложение.

Я недавно выпустил класс семафоров, написанный на VB6, который позаботится о некоторых тяжелых работах: http://www.vbforums.com/showthread.php?t=634635

0 голосов
/ 08 сентября 2012

Попробуйте это.

Основной проект:

Private Sub Command2_Click()
Call Shell(App.Path & "\Restart.exe", 1)

End Sub

Перезапустить проект:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Const WM_CLOSE = &H10

Private Sub Form_Load()
    Dim WinWnd As Long

    WinWnd = FindWindow(vbNullString, "Form1") 'Replace Form1 with Whatever your Form's Caption is

    If WinWnd <> 0 Then
        PostMessage WinWnd, WM_CLOSE, 0&, 0&
    Else
        MsgBox "No window of that name exists."
    End If

    Call Shell("Main.exe", 1)

End Sub

найдено здесь http://www.vbforums.com/showthread.php?600511-RESOLVED-Application-restarting-itself

0 голосов
/ 03 января 2011

Другим подходом может быть создание командного файла, запускающего исполняемый файл. Вызовите это с помощью асинхронного вызова.

Затем вам понадобится немного логики, чтобы убедиться, что у вас не запущены два экземпляра одновременно. Если есть., Новый может подождать секунду или около того. Если он все еще там, пользователь может получить предупреждение.

0 голосов
/ 02 января 2011

Остановите исполняемый в данный момент исполняемый файл (нажмите кнопку с изображением квадратного блока в IDE), а затем нажмите Shift + F5, чтобы перезапустить программу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...