Школоло / Говнокод #27214 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
procedure ProgramRestart(Sender: TObject);
begin
   Application.Terminate;
   ShellExecute(0,'open',Application.ExeName,'','',SW_NORMAL); // ))
end;

Неделю когда-то пытался понять почему этот код не работает: "Я же программу вырубил? - вырубил... Я же ее запускаю? - запускаю... А че она не запускается?)))..."

Запостил: vovka3003 vovka3003, (Updated )

Комментарии (36) RSS

  • надо было резидент вешать на прерывание и ловить выход программы. по выходу запускать ее опять 🙂
    Ответить
    • Кстати да... Наверное так и сделаю. Я когда понял почему не работает мой говнокод сразу написал другой говнокод (поменял эти строки местами).
      Ответить
    • что за чушь? какой резидент? какое прерывание в защищенном режиме на винде?
      Ответить
      • ну разве не видно что это Pascal а знчит на дворе 1994 год эра развития Win 3.11 и ДОС программирования. так что все честно - нужно хватать прерывание 🙂
        Ответить
          • Ну я не знаю что в паскакале нативная имплементация может они WinExec вызывают 🙂
            Ответить
            • ShellExecute это виндовая функция уровня Shell API, примерно ее ты вызваеш, когда кликаеш на ерлык
              Ответить
  • сначала я убью себя, а потом её
    Ответить
    • Он ходит, дышит, думает не так -Убей!
      И ты уверен в том, что это враг -Убей!
      Не думай ни о чем, ты будешь прав -Убей!
      Во имя счастья, правды и добра
      Убей их всех!

      Вот так!

      Он виноват хотя бы в том,
      Что в стороне стоит сейчас.
      Он плохо помнит наш закон;
      Тот, кто не с нами, - против нас.

      Наплюй на белый флаг,
      Трави их как собак,
      Отныне будет так.

      Убей!
      Убей их всех!
      Всех!
      Убей их всех!
      Начни с себя.
      Ответить
  • Вообще задача была именно "грохнуть" текущий экземпляр (не "подождать корректного закрытия")... Посему наверное оставлю как есть (сначала ее, потом себя))
    Ответить
    • Памагите кенгуру... Кенгуру в своем кармане обнаружула дыру)
      Ответить
      • Сударь, говнокод давно не тот. Мы разделились на два лагеря: уёбков и вахтёров.
        Каждого новопришедшего члены обоих лагерей пытаются склонить на свою сторону: первые ненавидят вахтёров, а вторые советуют "не отвечать уёбкам". На самом деле, разница между философией противников невелика и, строго говоря, уёбками являются и те и другие.

        Выбор за тобой.
        Ответить
        • Ммм.. Ды, как-то похуй)) Меня ж никто не заругает если где-нить "посерединке" постою..?
          Ответить
  • 1. Для любителей повыёбываться. Перезапускайте себя с ключом "-restart", который отслеживайте в запускаемом экземпляре программы + создайте мьютекс, который будете проверять в запускаемом экземпляре, после чего завершитесь. Если программа обнаружит, что запускается с ключом "restart", она должна запуститься со скрытой формой и проверить наличие мьютекса (прога-родитель еще жива). Как только он исчезнет, форму показать.

    2. Создайте restart.exe и не выёбывайтесь.
    Ответить
    • Та прога в которой я этот код писал - не совсем IDE, где можно "Создайте restart.exe и не выёбывайтесь.".. Скорее - огрызок паскаля с ограниченными возможностями (Pascal Script от Карло Кока).
      Посему - "мыши плакали, кололись, но продолжали жрать кактус...)"
      Ответить
  • а за запускаю другой exe, который закрывает все процессы моей программы, потом ее запускает и сам закрывается
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8