1. Pascal / Говнокод #21929

    −107

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    function FindTask(run:boolean=false):boolean;
    
    var
      TaskService: ITaskService;
      Folder: ITaskFolder;
      Tasks: IRegisteredTaskCollection;
      Task: IRegisteredTask;
      RTask:IRunningTask;
      Action:IAction;
      i: Integer;
      Path:string;
    begin
      Result:=false;
      OleCheck(CoInitialize(nil));
      try
        OleCheck(CoCreateInstance(CLSID_TaskScheduler, nil, CLSCTX_INPROC_SERVER, IID_ITaskService, TaskService));
        OleCheck(TaskService.Connect(Null, Null, Null, Null));
        OleCheck(TaskService.GetFolder('\', Folder));
        OleCheck(Folder.GetTasks(0, Tasks));
        if Tasks.Count > 0 then
        begin
          for I:=1 to Tasks.Count do
          begin
            Task:=Tasks.Item[i];
            if Task <> nil then
            begin
              if WideSameText(Task.Name, AppTaskName) then
              begin
                if task.Definition.Actions.Count >0 then
                begin
                  Action:=task.Definition.Actions.Item[1];
                  Path:=IExecAction(Action).Path;
                  Path:=StringReplace(Path,'"','',[rfReplaceAll]);
                  if not WideSameText(Path, ParamStr(0)) then
                  Break;
                end
                else
                Exit;
                if Run then
                //begin
                  OleCheck(Task.Run(Null, RTask));
                //  try
                //    Sleep(3000);
                //    Rtask.Refresh;
                  //  Result:=(rTask.State=TASK_STATE_RUNNING);
                //  except
                //  end;
                //  Exit;
                //end
                //else
                //begin
                  Result:=true;
                  Break;
                //end;
              end;
              Task:=nil;
            end;
          end;
        end;
        TaskService:=nil;
      finally
        TaskService:=nil;
        Action:=nil;
        Folder:=nil;
        Tasks:=nil;
        Task:=nil;
        RTask:=nil;
        CoUninitialize();
      end;
    end;

    Олеблядство. Код на строке 45 кидает исключение "Ни один экземпляр задачи не запущен", ибо метод Run асинхронен.
    Костыль на строке 43 призван предотвратить исключение.

    Кто знает, как сделать правильно (дождаться запуска приложения)?

    Запостил: rotretS, 31 Декабря 2016

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

    • #TaskManager,#WindowsTasks,#Com,#Ole
      Ответить
    • Да, sleep при старте программы - это известный паттерн многопоточного программирования.
      Ответить
      • причем чем больше слип -- тем стабильнее программа
        Ответить
    • оле оле оле оле

      Стертор осваивает коооом
      Ответить
      • Доктор Стертор изрядно "наосваивался", когда учил бейсик, это было лет пять назад. Там без COM-а вообще не прожить, разве что на голом API писать.
        Так что - мимо.
        Ответить
        • показать все, что скрытоСтертор, а зачем ты осваивал заведомо устаревшее говно пять лет назад? Можно же было взять дотнет.
          Ответить
          • Опа, и кто же там минусатор-то расчехлил? :)
            Ответить
          • Пять лет назад я был скрипт-кидди, ничего, кроме VBS не знющим и в программировании не разумеющим.
            Я начинал с азов, о дотнете ничего не знал, да и если бы знал, не разобрался бы.
            Программистом знать не стремился, о VB узнал случайно.
            Ответить
            • Стертор, какой же добрый человек посоветовал тебе изучить дельфи в 2012 году?
              Ответить
              • Какая разница когда учить, если ради опыта. Вон в вузах до сих пор на семерке учат.
                Ответить
              • Вы так говорите, как будто в 2012-м году Дельфи уже не выпускали. Или это намёк на то, что в 2012-м нужно было не ЯП изучать, а готовиться к Концу Света™?
                Ответить
                • Конечно, выпускают. Надо же на чем-то тотал коммандеры писать.
                  Ответить
            • Вот я тоже в 14 лет выбирал между с++ и бейсиком. Мне тогда только купили компьютер, я ничего не знал про программирование, не знал ни одного живого программиста и у меня не было интернета. Но я зачем-то решил попробовать научиться этому делу.
              В итоге я тогда выбрал с++, и посмотри, какая между нами разница теперь. Я профессиональный программист с профильным образованием и работой по специальности, а ты анскил с дельфи. Я очень благодарен случаю, что тогда выбрал с++, а не бейсик. Такие мелочи могут круто влиять на нашу жизнь.
              Ответить
              • А я выбрал бейсик, лол.
                Ответить
                • А я вообще не выбирал. Когда мне было 14 лет, своего компьютера не было, а в школе преподавали Бейсик. Так что Бейсик выбрал меня. Я обречён всю жизнь быть анскилом с Бейсиком...
                  Ответить
                  • Да это хуйня. У нас в школе тоже начался бейсик в то же время, когда я начал учить плюсы. Один иф в неделю написать в классе - это не программирование.
                    Ответить
                    • > Один иф в неделю написать в классе - это не программирование.
                      Если б не этот один иф в неделю, я б вообще про программирование не знал и полировал бы багры. Программирование в школе - это отличный старт.
                      Ответить
                  • В четырнадцать меня уже учили писать на плюсах после нескольких лет паскаля и сишечки. И теперь я вообще химфизик.
                    Ответить
              • Невнимательный химфизик. Читая такие опусы, сам собой напрашивается вывод, что ты рукожопый профессиональный программист с профильным образованием и работой по специальности, а ты анскил с дельфи.

                @Программистом знать не стремился, о VB узнал случайно.
                В нашей школе не преподавали ни паскаля ни бейсика, да и компа у меня тогда не было. Интерес к кодингу разгорелся много лет спустя.
                Ответить
            • Но теперь ты случайно узнал о актуальных языках...
              Ответить
        • Речь идет о Visual Basic 6.0, VBA или о VBS?
          Хотя в любом случае ты прав: COM/ActiveX единственный вменяемый API к винде из этих ЯПов.

          Советую еще изучить FoxPro и Lotus Notes, кстати
          Ответить
          • Закопайте уже стюардессу.
            Хотя если идти делать карьеру в госорганах, лотус может помочь.
            Ответить
            • Не скажи. Знание VBA весьма востребовано, ведь на нем пишут макросы для электронных таблиц.
              Если даже в нашей глубинке-дыре-трущобе их юзают, то что говорить о крупных организациях?
              Ответить
              • Я это писал про фокспро и лотус. К VBA вопросов нет, эксель-автоматизация вполне себе рулит.
                Ответить
    • ГК завален массой бредокомментов, варьирующейся степени дебильности, написанных одинаково недалёкими людьми. Скажу честно: мне уже неинтересно с Вами. Я очень во многих разочарован.
      Месить дерьмо и переливать из пустого в порожнее с успехом можно можно и на других форумах. Интересных тем давно нет, как и стимула заходить.
      Ответить
      • room_full_of_people_who_care.jpg
        Это интернеты, добро пожаловать.
        Ответить
        • Это, блять, хуинтернеты.
          Ответить
          • Exactly. Других не завезли. Вот как Бёрнерс-Ли придумал, так и маемся. Я думаю, что где-то есть RFC, в котором прописано посылание нахуй по любому поводу (и "мамку твою ебал" тоже). Без этого интернеты - не интернеты, а локалка какая-то.
            Ответить
            • Что-то нашёл, но там всё по-английски:
              http://www.ietf.org/rfc/rfc1855

              Много буков, не осилил.
              Ответить
              • FLAME ON
                Какая-то хуита, кто в здравом уме будет всё это соблюдать?
                FLAME OFF
                :-)
                Ответить
                • Офтопик. Я узнал, что FUBAR означает “fucked up beyond all repair”:
                  http://www.ietf.org/rfc/rfc3092
                  Ответить
                  • Было ещё про "..any recognition". Военные, они вообще любят аббревиатуры.
                    Ответить
                    • ... либо любят надо всем производить операцию “fucking up”.
                      Ответить
                      • Это же армия. To fuck up - это её основной род деятельности.
                        Ответить
                        • Кстати, когда вижу слово “workaround”, почему-то рефлекторно заменяю его на “fuckaround”.
                          Ответить
              • Unless you are using an encryption device (hardware or software), you should assume that mail on the Internet is not secure. Never put in a mail message anything you would not put on a postcard.
                Ответить
      • Освой нормальные технологии - и появятся друзья. Может быть.
        Ответить
        • Анальные, как у тебя? Сегодня опять выебали?
          Ответить
          • Что у вас хачей за фантазии? Бабы не дают, ибо традиции? Или ты на работе ебанулся? Что с тобой не так-то, вырожденец?
            Ответить
            • Анальная фиксация как правило наблюдается у тех, кто не может принять свою скрытую гомосексуальность. То есть он (она) её осознаёт, но пугается этого, и начинает себя вести гипертрофированно гомофобски. Хотя, по сути, некоторая гомосексуальность присутствует у всех, в разной степени.
              Ответить
              • > Хотя, по сути, некоторая гомосексуальность присутствует у всех, в разной степени.
                Проигрываю с таких тезисов. Хуи не сосет, но все же пидор. Инь-янь.
                Ответить
                • Пидор, хуидор. Не обязательно сосать хуй. Как и девкам необязательно лезть с головой в штаны подруги только потому, что она охуенна по-хорошему привлекательна.
                  Ответить
                  • ...У подростка 14-17 лет на всю стену развернут баннер с полуголым чаком норрисом, каждый раз после тренировок юноша подходит к нему и замирает, сравнивая толщину мускулов с норрисовыми. Это латентная гомосексуальность?
                    Ответить
                    • Где-то может быть и да. Кстати, у Чака не то чтобы сильная раскачка, он скорее хорошо просушен.
                      Ответить
                      • И да, в этом есть нечто символичное: обсуждение куска (говно)кода на паскале привело к обсуждению сексуальных перверсий.
                        А теперь - дискотека! https://www.youtube.com/watch?v=LK167swgoG8
                        Ответить
                        • Исправил, не благодарите: обсуждение куска (говно)кода привело к обсуждению сексуальных перверсий.
                          Ответить
                          • (две минуты вычитывал, искал опечатку в перверсиях. не нашёл.)
                            Ответить
                            • Что и требовалось доказать: язык программирования не важен. Всё можно свести к перверсиям, было бы желание.
                              Ответить
                              • Exactly. Все мы немножко перверты.
                                Ответить
                                • Вот ещё интересный феномен: у нас самые грязные ругательства происходят от названий сексуальных ролей, сексуальных взаимоотношений и т. п., а в квебекском диалекте французского неприличные ругательства происходят от названий церковной утвари и церковных обрядов.

                                  https://en.wikipedia.org/wiki/Quebec_French_profanity

                                  http://rusmontreal.com/kvebekskij-francuzskij-yazyk/

                                  Почему?
                                  Ответить
                                  • Мм, интересный факт. Может быть когда-то в будущем оскорблением будет что-то типа "твоя мамка держит почту на мэйлру".
                                    Ответить
                                    • Да собственно это уже сейчас оскорбление, чо там.
                                      Ответить
                                    • Я твой TLS сертификат шатал, айпи логировал, куки крал.
                                      Ответить
                                      • Закоммитил в твою репу, проверь.
                                        Ответить
                                        • Запушил свой в твой бранч, мержи.

                                          Нет, ну вполне себе ругательства.
                                          Ответить
                                          • "Отревьюил твой коммит, откатывай"
                                            Ответить
                                            • Напитон гигабайт напушили? Откатывайте теперь!
                                              Ответить
                                              • "Твоя мамка жрёт столько, что хватило бы на численное решение уравнения Навье-Стокса на питоне, запущенное в софтовом эмуляторе amd64 процессора, написанном на Java"
                                                Ответить
                                                • Методом конечных разностей, методом конечных элементов или методом граничных элементов? Для классической линейной механики или с учётом «наворотов»?
                                                  Ответить
                                                  • Методом конечных объёмов для обычной ньютоновской жидкости.
                                                    Ответить
                                  • Джек Лондон во время визита в Лондон отметил, что английские ругательства отличаются от американских тем, что одни строятся на богохульстве, а другие на сексе. Что к чему относится, я уже не помню, правда.
                                    Ответить
                                    • Исходя из того, что немцы вполне себе ficken и arsch, думаю, что Джек малость покривил душой. Ну или может быть в его семье предпочитали богохульствовать, а не мамкутвюебать, вот он и проникся.
                                      Ответить
                                    • В каком-то отечественном фильме слышал фразу: «Чёрту, богу душу, мать!» На чём построена эта фраза?
                                      Ответить
                                      • Здешняя аудитория не может три матерных слова связать вместе, так что этот вопрос в пустоту.
                                        Ответить
                                        • Но тут же вроде даже далеко не матерные слова. Кстати, прекрасный пример ругательств без мата — сказка «Конёк-горбунок».

                                          Грязный пёс! Свиное рыло!
                                          Чтоб тебя в дугу скрутило!
                                          Чтоб ты лаптем подавился!
                                          Чтоб сквозь землю провалился!

                                          Чтоб пропасть тебе, собаке,
                                          Чтоб подохнуть в буераке!
                                          Чтоб тебе на том свету
                                          Провалиться на мосту!


                                          Не отсюда ли пошли свинособаки?
                                          Ответить
                                          • Из старых текстов я помню: "Якове, брате, еби лёжа". Мол, не выёбывайся и будь как все. Ну и "лайном" (говном) тоже ругались. То есть ничего нового.
                                            Ответить
                • > Проигрываю с таких тезисов. Хуи не сосет, но все же пидор. Инь-янь.
                  Пидор - это не профессия, а состояние души. Это не почтальон или гардеробщик, чтобы по будням с 8 до 17 показывать делом свою ориентацию.

                  А вот, например, человек сидит в интернетах, на улицу к реальным людям не выходит и думает о тёплой ламповой тян. Какая у него, по-вашему, ориентация?
                  Ответить
                  • Анимешник. Ну не может нормальный человек подолгу не выходить на улицу.
                    Ответить
                  • Не, ну Сёма-то доказывает.
                    Ответить
                  • Уни-пассив.
                    Ответить
                  • А хуй его знает. Как показывает мой личный опыт, с реальным гетеросексуальным половым спариванием мечты таких кадров слабо связаны, как и с реальными тян.
                    Думаю, они извращенцы, а не гетеросексуалы. Так же как зоофил испытывает половое влечение к собакам, а копрофаг - к говну, так и девственник-домосед возбуждается от весьма необычного объекта - своих мечтаний. Ты же не пытаешься определить копрофила в гомо- или гетеросексуалы? Вот и тридцатилетнего девственника не надо.
                    ВОЗ приравняла тридцатилетних девственников к инвалидам, и я думаю, это правильно. Они больные.
                    Ответить
                    • А ссылочкой на решение ВОЗ не поделитесь?
                      Ответить
                      • https://lenta.ru/news/2016/10/21/single/
                        Ответить
                        • А пенсию по инвалидности выдавать будут?
                          Ответить
                          • В рашке вряд ли.
                            Ответить
                            • Ну и кому тогда нужна такая инвалидность?
                              Ответить
                              • Бесплатный проезд в автобусе дадут
                                Ответить
                                • Куда обращаться за проездным билетом?
                                  Ответить
                                  • Можно запилить пост, где анонимные говнопостояльцы пожалуются на жизнь (её отсутствие), поноют на тему "тян не нужны" и поделятся советами по разнообразию своего личного досуга.
                                    Ответить
                                    • > Можно запилить пост, <...>
                                      /rf/
                                      Ответить
                                      • Я не ориентируюсь в дваче (это же дваче, а не, например, рсдн?).

                                        И как, помогло?
                                        Ответить
                                        • > И как, помогло?
                                          Другим посетителям борды? Скорее да, чем нет. Ибо другие разделы почистили от этих историй успеха...
                                          Ответить
                                          • Т.к. я женат много лет, я больше могу дать толковых советов про семейную жизнь. Но про знакомства тоже чото слышал.

                                            Ты за то, чтобы не ворошить муравейник?
                                            Ответить
                                            • > Ты за то, чтобы не ворошить муравейник?
                                              This. А то можно случайно задеть людей с тонкой душевной организацией :)
                                              Ответить
                                    • Можно запилить пост, где дефекейт повыебывается своей нормальностью и высокой зарплатой, поучит других жить.
                                      Ответить
                                      • Лучше про пидаров и политику? Ну нахер.
                                        Ответить
                                      • @повыебывается своей нормальностью и высокой зарплатой

                                        Почему бы и нет? Быть состоятельным не так уж и плохо, тем паче, коли эти деньги заработаны не любовью, а умом. Главное при таком раскладе - быдлом не стать.
                                        Ответить
                          • Зачем платить пенсию человеку, и так умеющему метать файерболлы и левитировать?
                            Ответить
                            • Зачем платить пенсию человеку, и так умеющему метать файерболлы и левитировать, если его можно отправить в армию?
                              Ответить
                              • Тактическая ударная группировка "белые салфетки"?
                                Ответить
                            • фаерболом за интернет не заплатишь
                              Ответить
                              • > фаерболом за интернет не заплатишь
                                Ну почему - можно кочегаром поработать.
                                Ответить
                              • Зато когда сосед такое увидит, может сам пароль от вайфая скажет.
                                Ответить
                    • Я к тому, что сексуальные предпочтения - не совсем и не всегда прямой сексуальный контакт. Кто-то дрочит на автомобили, но он же не ебёт свежекупленный х6 в выхлопную трубу. Просто в какой-то момент понимаешь, что вот тот чувак - он весьма себе ничего, ну или вон та барышня - с ней можно было бы недурно зажечь. У некоторых люденй в голове в этот момент срабатывает самостоп, и они в порядке компенсации начинают гипертрофированно демонстрировать свою гетеросексуальность. У меня есть такой знакомый чувак, в обычной жизни - зож и всё такое, а в подпитии - рассуждения о том, что порядочная девка должна давать в жопу, и любование своим телом. Это неправильно.
                      Ответить
                      • А, да. Это пишет чувак, который счастливо женат и очень рад дочке. Размытие гендерных ролей и отличий - это, наверное, основное достижение нашего времени, и это охуенно.
                        Ответить
                        • Добавлю ещё ссылочку на музыканта с псевдонимом Lain, но который на самом деле She. Такой музыке место наверное скорее на старых дващах, но уж коли они померли, то здесь тоже неплохо.
                          https://www.youtube.com/watch?v=SzClkMxdsgI
                          Ответить
                          • Мне очень жаль, но bakagaijin производит впечатление пассивного гея.
                            Ответить
                            • И он таковым не является. Вот такие бывают повороты.
                              Ответить
                              • > Просто в какой-то момент понимаешь, что вот тот чувак - он весьма себе ничего
                                > Размытие гендерных ... отличий - это ... охуенно.
                                у меня для тебя плохие новости

                                говнокод стал какой-то площадкой для каминаутов
                                теперь вот у нас есть бисексуал с дочкой, который рад размытию гендерных отличий - чтобы мальчик-девочка какая в жопу разница
                                Ответить
                                • что дальше?
                                  attack helicopter?
                                  Ответить
                                  • > attack helicopter?
                                    Девочка-волшебница же.
                                    Ответить
                                  • Что значит attack helicopter в контексте обсуждения девиаций?
                                    Ответить
                                    • > Что значит attack helicopter
                                      I sexually Identify as an Attack Helicopter. Ever since I was a boy I dreamed of soaring over the oilfields dropping hot sticky loads on disgusting foreigners. People say to me that a person being a helicopter is Impossible and I’m fucking retarded but I don’t care, I’m beautiful. I’m having a plastic surgeon install rotary blades, 30 mm cannons and AMG-114 Hellfire missiles on my body. From now on I want you guys to call me “Apache” and respect my right to kill from above and kill needlessly. If you can’t accept me you’re a heliphobe and need to check your vehicle privilege. Thank you for being so understanding.
                                      Ответить
                                      • Спасибо, годная паста. Из той же серии:
                                        -- Men who like skinny women are disgusting! Only dogs go for bones.
                                        -- Actually I identify myself as a dogkin. You just made me feel oppressed and objectified.
                                        -- I-I'm sorry...
                                        -- Check your privilege!
                                        Ответить
                                        • Men who like skinny women are disgusting! Only dogs go for bones.


                                          Обычно так говорят девушки весрм 86 кг
                                          Ответить
                                          • В оригинале это был комикс (у меня не сохранился), и так говорила сторонница движения "beautiful at any weight".
                                            Ответить
                                      • творческий перевод:

                                        а я хочу быть чайкой
                                        и весело летая
                                        на головы всем срать
                                        Ответить
                                • Тут десятком комментов выше жаловались, мол, говнокодач скушный стал. Вот, пожалуйста, получайте нескушный.
                                  Ответить
                      • > У меня есть такой знакомый чувак
                        Один мой знакомый?
                        Ответить
                        • Так обычно пишут в Ответах mail.ru, когда задают вопрос про геморрой или про заболевания, передающиеся половым путём.
                          Ответить
                          • Ну тут из контекста понятно, что "тот чувак" - это явно не я.
                            Ответить
            • @Бабы не дают, ибо традиции? Или ты на работе ебанулся? Что с тобой не так-то, вырожденец?

              Со мной всё так, но 3_14dar
              Ответить
    • Что-то я заебался... Кто знает, как отправить команду в прогу с ком-сервера?
      Есть значок в контекстном меню дисков (приложение регистрирует COM-сервер). При клике по значку надо отправить в основную прогу команду (букву диска). Пытался сделать с помощью PostMessage: не катит, недостаточно прав: моя прога работает от админа, а проводник - нет. Как это реализовано в антивирусах и прочем софте?
      Ответить
      • У тебя shell extension handler?
        Типа такого: https://msdn.microsoft.com/ru-ru/library/windows/desktop/cc144110(v=vs.85).aspx ?

        А твое приложение это _другое_ приложение которому ты хочешь сообщить что юзер клинкнул на твою говноиконку на диске?

        Если у тебя не достаточно высок уровень привелегий, то у тебя нет права срать Windows Messages в другое окно:

        Starting with Windows Vista, message posting is subject to UIPI. The thread of a process can post messages only to message queues of threads in processes of lesser or equal integrity level.

        UIPI: https://en.wikipedia.org/wiki/User_Interface_Privilege_Isolation

        Тут написано что нужно сделать: подписать свое приложение и поставиться в program files.

        UI Accessibility Applications can be allowed bypass UIPI by setting their "uiAccess" value to TRUE as part of their manifest file. However, for this flag to be honored by Windows UIPI, the application must be installed in the Program Files or Windows directory, and the application must be signed by a valid code signing authority. To install an application to either of these locations requires at least a user with local administrator privilege running in an elevated process with high integrity level.



        Но мне кажется что это треш и говно и, вероятно, можно подумать в сторону нормального IPC: (примерно как в юниксе юзать сигналы вместо unix domain sockets для общения между процессами)

        IPC в спер Microsoft Windows бывают:
        https://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx

        Выбирай)

        Я бы сделал твое приложение COM сервером чтобы оно запускалось само при первом обращении (не уверен правда что у тебя будут права, Гг)
        Или использовал бы сокеты или shared mem (file mappings или как там его в винде)

        ---------------
        зы: расскажите мне еще разок как в виндуосе все просто и интуитивно понятно
        Ответить
        • pps: педивики тоже считает что нехуя слать месседжи, а лучше делать кошерный IPC:
          "High IL and Low IL processes can still communicate with each other by using files, Named pipes, LPC or other shared objects. The shared object must have an integrity level as low as the Low IL process and should be shared by both the Low IL and High IL processes."
          Ответить
          • Я, вероятно, воспользуюсь FileMapping. Запишу туда структуру, одним из полей которой будет указатель на процедуру в приложении, которой будет передаваться буква диска.

            Ответить
            • на процедуру в каком приложении?

              так-то у приложений разный address space. Данные между ними гонять можно, а вот код -- куда сложнее этоне джаваскрипт.


              Сейчас придет Борманд и расскажет что можно пометить страницу как Execute и сделать самомодифириуемый код
              Ответить
              • Приложение создаёт маппинг и пишет туда структуру.
                Ком-сервер каждый раз пытается получить хэндл (если не каждый раз - будет АВ, если прога будет выгружена), разыменовывает указатель, пишет в поле структуры букву диска и вызывает метод по указателю, из другого поля.

                @Сейчас придет Борманд и расскажет что можно пометить страницу как Execute и сделать самомодифириуемый код
                Борманд идёт смотреть аниме.
                Ответить
                • > будет АВ, если прога будет выгружена
                  Если каждый раз - тоже будет, но редко, не с вероятностью 100%.

                  > вызывает метод по указателю
                  Как ты будешь звать функцию из другого процесса? Поместишь весь нужный код в shared memory, как предлагает barop?

                  > Борманд идёт смотреть аниме.
                  Ваших ужастиков начитаешься - хрен уснёшь потом. Вот и приходится аниме смотреть...
                  Ответить
                  • @Как ты будешь звать функцию из другого процесса?
                    Ох. И то правда. Спутал с dll...

                    всё-таки, кошерный IPC делается через мейлслоты... Надыбаидзе л код на делфях, сижу, разбираю.
                    Ответить
                    • То, что не убивает сразу, делает нас сильнее.
                      Запилил на мейлслотах, работает.
                      Ответить
        • С каждой версией затягивают гайки.
          Мы в 10ке тем не менее решали и решили задачу запуска из службы с правами систем оконного приложения в интерактивной сессии юзера (даже близко не админа) с правами систем, без предупреждений uac.

          Что же про ipc - если писать под винду на современных инструментах, то http rest локальный обмен поднимается за 5 минут.
          Ответить
          • >> из службы с правами систем
            звучит не очень секурно
            https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms684190(v=vs.85).aspx )

            Как root, даже хуже (ибо act as computer on network)

            Он, кстати, умеет interact with desktop (кажется), а вот другим надо ставить галочку "allow service interact with desktop".

            >> - если писать под винду на современных инструментах
            Стертор пишет на дельфях;)
            Ответить
            • @Что же про ipc - если писать под винду на современных инструментах, то http rest локальный обмен поднимается за 5 минут.
              @Стертор пишет на дельфях;)

              А что, делфи вызывает какие-то иные API? Что за бред?
              Ответить
              • Если бы ты писал, скажем, под .NET, то у тебя был бы очень дешевый способ получить REST.
                А так как у тебя нет ничего кроме стандартной библиотеки дельфей и голого Win32 API над голов под нею, то остается довольствоваться теми IPC, которые предлагает винда. Благо их правда много
                Ответить
                • @Если бы ты писал, скажем, под .NET
                  Боже упаси.
                  Ответить
                  • Ты, наверное, думаешь что я сейчас буду что-то тебе доказывать?
                    Ответить
                    • Нет. Просто я на секунду представил весь этот ужас и не смог сдержать эмоций. Продукты майкрософт - зло. Я, будучи фанатом борланд, пытался осилить делфи под .net (delphi 8) - и то бросил, ибо кошмар.
                      Ответить
                      • Ну и славно.
                        Тебя ждет увлекательное путешествие в мир COM, интерфейса IUnknown, языка IDL, понятия "апартаменты",и длинных CLSID.

                        А когда ты захочешь чтобы твоя программа работала на соседней машине, то к тебе придет DCOM, работающий поверх никак не документированного RPC, и придется уметь RPC over HTTP чтобы оно ходило через файрволы итд.

                        Вообще COM был очень крутым, конечно. В те времена, когда Win2K была "сервером приложений"
                        Ответить
                        • С COM я знаком, начинал ещё в бейсике... В делфи, кстати, есть фабрика. В общем, проблем нет с этим. Проблема была с обменом данными.

                          Я не программист. Деньги на хлеб насущный зарабатываю совсем иным. В качестве источника дохода свои знания IT не рассматриваю вовсе.
                          Зачем же мне парить мозги с .net, если кроме FreeWare ничего не напишу?..
                          Ответить
                          • Ты и так людям мозги паришь вопросами "а как мне сделать в делфи то, что на дотнете легко гуглится". А вообще, иди нахуй.
                            Ответить
                            • То, что на дотнете "легко гуглится", на более низкоуровневом языке (да-да, на делфи) сводится к банальному вызову API-функции, а с обёртками я не заморачиваюсь.

                              @А вообще, иди нахуй.
                              Это твой удел.
                              Ответить
                              • > сводится к банальному вызову API-функции
                                Ну-ну.
                                Ответить
                                • А что. Сложно, зато прозрачно. Никаких ебанутых параметров, вроде IntPtr(0) и прочей хуйни. Стринг билдеры, какие-то. Муть.
                                  Ответить
                                  • Пиши на асме. Сложно, зато прозрачно. Никаких ебанутых параметров, вроде nil и прочей хуйни. Строки какие-то, классы. Муть.
                                    Ответить
                                    • Я думал над этим. Но мои задачи не те, чтобы на асме писать. Я не драйверописец.
                                      Ответить
                                      • > драйверописец
                                        Ты удивишься, но драйверописцы сейчас тоже не юзают асм :) В ядре тех же винды или линуха тоже всё через 100500 прослоек, абстракций и API.
                                        Ответить
                                        • Взваливают нагрузку со своих плеч на "плечи" процессора?
                                          Ответить
                              • Так вызывай себе банально, но ты каждую мелкую хуйню спрашиваешь жи.
                                Ответить
                                • Наверно, это оттого, что я - самоучка. До многого дошёл сам, спросить было не у кого, опыта нет ,MSDN - лажа. Интерес к серьезному кодингу проснулся слишком поздно, я тогда был уже был на старших курсах медшаражки. Свернуть с рельс не мог.

                                  @каждую мелкую хуйню спрашиваешь
                                  Мне очень помогли товарищи, борманд, d... ++, 1024--. Инканус, кегги, тарас и роман кашицын иногда давали ценные советы.
                                  Кстати, не так давно я затронул тему сериализации данных - оказалось, что это далеко не тривиальная задача.
                                  Ответить
                                  • Что тебе мешает изучать нормальные языки в которых есть актуальные библиотеки для всего?
                                    Ответить
                                  • > оказалось, что это далеко не тривиальная задача
                                    Блядь, я хуею, дорогая редакция. В жаве или питоне это один вызов. А json высрать вообще раз плюнуть.
                                    Ответить
                                    • @Блядь, я хуею, дорогая редакция. В жаве или питоне это один вызов

                                      Возможно, ты очень умный человек, профессионал, но такое взрывное поведение очень тебе мешает, ибо ты склонен делать преждевременные выводы.

                                      Речь шла о структурированных данных, специального формата - например, база сигнатур антивируса. Заголовок базы содержит количество сигнатур. Сама сигнатура содержит хэш вируса, его тип, дату добавления, фамилию сотрудника. А теперь прикинь: при добавлении сигнатуры в лабе выбило свет и файл был поврежден, половина сигнатур накрылась. Внимание, вопрос: как ты узнаешь, валидный ли файл?
                                      Ответить
                                      • ACID транзакции, sqlite и банальные чексумы придумали стопицот лет назад.
                                        Ответить
                                        • Двачую адеквата.
                                          Даже голые файлы можно безопасно обновлять.
                                          Ответить
                                        • @В жаве или питоне это один вызов. А json высрать вообще раз плюнуть.
                                          Ответить
                                • Нашел классный сайт для стертора http://dgmag.in/
                                  Ответить
            • > не очень секурно
              Нормально звучит. Это не для посторонних. Тот самый случай, когда МС угадал, обозвав "Этот компьютер" вместо "Мой компьютер"
              Ответить

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