1. C# / Говнокод #17832

    +774

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Form f = new Form1();
    f.FormBorderStyle = FormBorderStyle.FixedToolWindow;
    f.WindowState = FormWindowState.Minimized;
    f.ShowInTaskbar = false;
    f.StartPosition = FormStartPosition.Manual;
    f.Location = new System.Drawing.Point(-2000, -2000);
    f.Size = new System.Drawing.Size(1, 1);
    f.Hide();
    f.Visible = false;
    f.Opacity = 0;
    Application.Run(f);

    Запостил: LispGovno, 21 Марта 2015

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

    • Всеми силами...
      Ответить
    • В чем говно? Может он руками компилит, VS не юзает из принципа
      Ответить
      • А если код почитать?
        Полностью прозрачная минимизированная форма, не отображаемая на панели задач, размером 1*1 с фиксированной границей (вот тут он просчитался, надо было None), помещённая на 2000px за пределы экрана, да ещё и дважды скрытая (эти способы делают одно и то же).
        Ответить
        • > помещённая на 2000px за пределы экрана
          Вот это, походу, не прокатит в винде. Емнип, она на (0; 0) выправляла такие координаты.
          Ответить
          • Ну вроде (-4, -4) - костылизация для максимизированности.
            А вообще, координаты может и прокатят - мы же можем форму за экран убирать, по крайней мере частично. Это вот максимальные размеры ограничены размерами жэкрана плюс 4 или 8.
            Ответить
            • > мы же можем форму за экран убирать, по крайней мере частично
              Годнота, всегда надо так делать!

              Если UltraVNC развернуть на весь экран, по наведению мыши сверху выплывает панелька (аналогичная по смыслу панельке из mstsc). Потом панелька уезжает вверх, временно появляясь на верхнем мониторе, если он есть, и исчезает.
              Ответить
              • Хорошо что временно))))
                Но вообще я говорил про перемещение окна пользователем, из которого должна бы следовать возможность сделать это программно.
                Ответить
        • Коду не хватает комментов:
          Form f = new Form1(); // создаём форму
          f.Hide(); // и прячем её
          f.Visible = false; // хм, не прячется, ну тогда вот так
          f.FormBorderStyle = FormBorderStyle.FixedToolWindow; // ок, уберём ей рамку
          f.WindowState = FormWindowState.Minimized; // и свернём
          f.ShowInTaskbar = false; // бля, на панели задач видно...
          f.StartPosition = FormStartPosition.Manual; // сука, да как тебя скрыть?!
          f.Location = new System.Drawing.Point(-2000, -2000); // пошла нахуй, ёбаная форма!
          f.Size = new System.Drawing.Size(1, 1);
          f.Opacity = 0; // да сдохни уже, сдохни!!!11
          Application.Run(f);
          Ответить
    • А окно всё равно видно? ;)
      Ответить
    • Тоже такую херню разок сотворил, но потом нагуглил message only window. Наверное, именно его и хотел сделать автор.
      Ответить
      • В шарпе есть какая-то херь типа как только умирает главное окно, то процесс закрывается. Автор это так исправил, создав невидимое окно, которое никогда не умирает, чтобы безвозбранно грохать прочие окна приложения.
        Ответить
        • Там есть переключатель - главное или последнее. Да и вообще, тут же вызов Application.Run.
          Ответить
        • Это не херь, это так Application.Run с параметром работает. Не надо такого поведения - не передавайте параметр, в чем проблема?
          Ответить
    • Ох, уж мне этот Андрюша Хейлсберг.
      Ответить

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