Единственные окна экземпляра формируют приложение и как получить ссылку на нем?

URL-адрес модуля хранится в .gitmodules в корне вашей песочницы. Этот файл отслеживается как часть Git-репозитория. Если вы внесете изменения и подтвердите их, они будут видны другим пользователям репозитория Git.

Когда вы звоните git submodule sync, а затем git submodule init, URL-адрес разрешается и копируется в .git/config. Когда вы звоните git submodule update, подмодуль клонируется, и его URL также находится в .git/modules/<module-name>/config.

Чтобы навсегда изменить URL, отредактируйте .gitmodules и снова вызовите git submodule sync и git submodule init.

Чтобы временно изменить URL-адрес, вместо этого выполните следующие два изменения:

Измените URL-адрес в .git/config для подмодуля

Войдите в подмодуль и вызовите:

git remote set-url origin <new-url-with-https>

Вторая команда обновит URL в .git/modules/<module-name>/config, который является папкой .git для субмодуля.

5
задан Clack 30 March 2009 в 14:19
поделиться

3 ответа

Платформа.NET предлагает очень хорошее универсальное решение для этого. Проверьте нижнюю часть этой статьи MSDN Magazine. Используйте StartupNextInstanceHandler () обработчик событий для передачи произвольных команд рабочему экземпляру, как "выход".

6
ответ дан 13 December 2019 в 05:42
поделиться

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

Process thisProcess = Process.GetCurrentProcess();
        Process[] allProcesses = Process.GetProcessesByName(thisProcess.ProcessName);
        Process otherProcess = null;
        foreach (Process p in allProcesses )
        {
            if ((p.Id != thisProcess.Id) && (p.MainModule.FileName == thisProcess.MainModule.FileName))
            {
                otherProcess = p;
                break;
            }
        }

       if (otherProcess != null)
       {
           //note IntPtr expected by API calls.
           IntPtr hWnd = otherProcess.MainWindowHandle;
           //restore if minimized
           ShowWindow(hWnd ,1);
           //bring to the front
           SetForegroundWindow (hWnd);
       }
        else
        {
            //run your app here
        }

Существует другой вопрос об этом здесь

5
ответ дан 13 December 2019 в 05:42
поделиться

Это - несколько быстрое-и-грязное решение, которое Вы, вероятно, хотели бы совершенствовать:

[STAThread]
static void Main()
{
    var me = Process.GetCurrentProcess();
    var otherMe = Process.GetProcessesByName(me.ProcessName).Where(p => p.Id != me.Id).FirstOrDefault();

    if (otherMe != null)
    {
        otherMe.Kill();
    }
    else
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

Если экземпляр приложения уже запускается, тот процесс уничтожается; иначе приложение обычно запускается.

1
ответ дан 13 December 2019 в 05:42
поделиться
Другие вопросы по тегам:

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