[Инструкция]Запуск и остановка PostgreSQL вместе с HM/PT (Win)

    • VGramm
      VGramm
      Бронза
      На форуме с: 08.02.2010 Сообщения: 78
      Используете компьютер не только для покера?
      Не хотите отдавать PostgreSQL часть ресурсов компьютера, когда в нём нет нужды?
      Не доверяете стороннему софту?
      Тогда эта тема для Вас!

      Есть как минимум 2 способа запускать/останавливать PostgreSQL вместе с программой статистики:

      Первый способ. Запуск/Остановка службы Postgre вручную:
      1. Найти службу PostgreSQL

      2. Открыть окно службы


      3. Запустить службу


      4. Запустить программу сбора статистики

      5. Закрыть программу статистики

      6. Найти службу PostgreSQL

      7. Остановить службу

      И так каждый раз, когда решите запустить HM/PT :s_frown:
  • 6 ответов
    • VGramm
      VGramm
      Бронза
      На форуме с: 08.02.2010 Сообщения: 78
      Второй способ. Запуск/Остановка службы Postgre вместе с программой статистики автоматически, с помощью скрипта:
      Использованы только документированные средства Windows :f_ugly:


      1. Создать текстовый документ

      2. Скопировать следующий текст в текстовый документ, заменив выделенный текст на соответствующие значения:
        SET pr_dir=%Адрес папки, в которой лежит HM/PT/другая программа статистики%
        SET exe_name=%Имя файла, запускающего вашу программу статистики%.exe
        SET pg_sv_name=%Название службы Postgre%

        sc start %pg_sv_name%
        CHDIR /D %pr_dir%
        start /wait %exe_name%
        sc stop %pg_sv_name%


        Как узнать %Название службы Postgre%

      3. Сохранить текстовый документ с расширением .bat



      4. Запускать скрипт от имени администратора.



      Пример готового скрипта:
      code:
      SET pr_dir=E:\poker\Holdem Manager 2
      SET exe_name=HoldemManager.exe
      SET pg_sv_name=postgresql-x64-9.2
      
      sc start %pg_sv_name%
      CHDIR /D %pr_dir%
      start /wait %exe_name%
      sc stop %pg_sv_name%
    • VGramm
      VGramm
      Бронза
      На форуме с: 08.02.2010 Сообщения: 78
      1. Открыть окно управления службами Windows:

      для Windows 7

      1. Нажать кнопку "Пуск"

      2. В строке поиска ввести "services.msc"

      3. Нажать "Enter"


      для Windows XP

      1. Нажать кнопку "Пуск"

      2. Выбрать пункт "Выполнить"

      3. В строке запуска ввести "services.msc"

      4. Нажать "Enter" или кнопку "ОК"




      2. Найти в списке службу, название которой начинается с "postgresql":



      3. Открыть окно службы и скопировать(для XP - записать, т.к. копировать нельзя) имя службы:





      Вернуться к началу инструкции
    • VGramm
      VGramm
      Бронза
      На форуме с: 08.02.2010 Сообщения: 78
      резерв2
    • vpmarat
      vpmarat
      Модератор
      Модератор
      На форуме с: 22.01.2008 Сообщения: 83.729
      Лишнее это.
      И даже в некоторых случаях - вредное.
    • VGramm
      VGramm
      Бронза
      На форуме с: 08.02.2010 Сообщения: 78
      Инструкцию дописал, вроде-бы :f_grin:


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

      А насчет того, что лишнее - я просто оставлю эту инструкцию тут, кому пригодиться - воспользуется.

      P.S. Будут идеи насчет того, как изменить инструкцию, скрипт - пишите.
    • Morpheuzis
      Morpheuzis
      Золото
      На форуме с: 03.09.2009 Сообщения: 3.315
      нужно делать проверку на то, что служба запустилась.
      я использую скрипт *.vbs для запуска службы


      Set network = WScript.CreateObject("WScript.Network")
      Set fso = WScript.CreateObject("Scripting.FileSystemObject")
      Set WshShell = Wscript.CreateObject("Wscript.Shell")

      'Start Service
      strServiceName = "postgresql-x64-9.1"
      Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
      Set colListOfServices = objWMIService.ExecQuery ("Select * from Win32_Service Where Name ='" & strServiceName & "'")
      For Each objService in colListOfServices
      objService.StartService()
      Next


      хотя потом перешел на программу xStarter.