1. C++ / Говнокод #20270

    +3

    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
    #include "stdafx.h"
    #include <Windows.h>
    #pragma comment(lib, "gdiplus.lib")
    #include <gdiplus.h>
    #include <vector>
    #include <chrono>
    
    wchar_t* path =
    L"здесь был путь*";
    
    using namespace Gdiplus;
    using namespace std::chrono;
    
    int main()
    {
    	GdiplusStartupInput gdipInput;
    	ULONG_PTR gdipToken;
    	GdiplusStartup(&gdipToken, &gdipInput, NULL);
    	HWND progman = FindWindowW(L"Progman", NULL);
    	HWND workerw = GetWindow(progman, GW_HWNDPREV);
    	HDC dc = GetDC(workerw);
    	
    	std::vector<Bitmap*> images;
    	WIN32_FIND_DATAW fdata = { 0 };
    	HANDLE hFind = FindFirstFileW(path, &fdata);
    	int
    		scrWidth = GetSystemMetrics(SM_CXSCREEN),
    		scrHeight = GetSystemMetrics(SM_CYSCREEN);
    	UINT width, height;
    	bool isInfoRetrieved = false;
    	std::wstring wmp(path);
    	wmp = wmp.substr(0, wmp.length() - 1);
    	do {
    		Bitmap* bmp = Bitmap::FromFile((wmp + fdata.cFileName).c_str());
    		if (bmp->GetLastStatus() != Gdiplus::Ok) continue;
    		int width = bmp->GetWidth();
    		int height = bmp->GetHeight();
    		double ratio = (double)width / height;
    		if (ratio > 1) {
    			width = scrWidth;
    			height = scrWidth / ratio;
    		}
    		else {
    			width = scrHeight * ratio;
    			height = scrHeight;
    		}
    		Bitmap* resized = new Bitmap(width, height, PixelFormat32bppRGB);
    		Graphics* resizedGr = Graphics::FromImage(resized);
    		resizedGr->DrawImage(bmp, 0, 0, width, height);
    		delete resizedGr;
    		delete bmp;
    		images.push_back(resized);
    	} while (FindNextFile(hFind, &fdata));
    	FindClose(hFind);
    	
    	Graphics* mainGr = Graphics::FromHDC(dc);
    	Bitmap* bufBmp = new Bitmap(scrWidth, scrHeight, PixelFormat32bppRGB);
    	Graphics* bufGr = Graphics::FromImage(bufBmp);
    	
    	int count = images.size();
    	int gap = 1000 / count;
    
    	while (true) {
    		for (auto it = images.begin(); it != images.end(); it++) {
    			milliseconds ms1 = duration_cast<milliseconds>(
    				system_clock::now().time_since_epoch());
    			Bitmap* bmp = *it;
    			int width = bmp->GetWidth();
    			int height = bmp->GetHeight();
    			int xOfs = (scrWidth - width) / 2, yOfs = (scrHeight - height) / 2;
    			bufGr->Clear(Color::Black);
    			bufGr->DrawImage(*it, xOfs, yOfs, width, height);
    			mainGr->DrawImage(bufBmp, 0, 0);
    			milliseconds ms2 = duration_cast<milliseconds>(
    				system_clock::now().time_since_epoch());
    			milliseconds delta = ms2 - ms1;
    			if (gap > delta.count())
    				Sleep(gap - delta.count());
    		}
    	}
    	return 0;
    }

    Код для рисования под иконками рабочего стола на винде
    Да, в винде можно так делать

    Нахуй никому не нужно, но выглядит заебись

    cykablyad, 26 Июня 2016

    Комментарии (7)
  2. C# / Говнокод #20267

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Оффтоп
    
    Пишу либу для гуя в консоли. Столкнулся с проблемой медленного вывода в консоль на линуксе.
    На винде есть няшный WriteConsoleOutput, который может вывести буфер разом на консоль, в линупсе ничего подобного не нашел.
    Если использовать Console.WriteLine или libc-шный puts, все лагает неимоверно
    
    Есть идеи?

    cykablyad, 24 Июня 2016

    Комментарии (168)
  3. PHP / Говнокод #20264

    0

    1. 1
    2. 2
    3. 3
    if (strpos($route, ':') !== false) {
                    $route = str_replace(':any', '([^/]+)', str_replace(':num', '([0-9]+)', str_replace(':all', '(.+)', $route)));
                }

    Очередная обезьяна села высерать свои мысли на PHP ... Уже много говорили тут о mpak и его "cms", вот вам еще одно "чудо": https://github.com/wolfcms/wolfcms

    zenn1989, 24 Июня 2016

    Комментарии (56)
  4. 1C / Говнокод #20263

    −99

    1. 1
    http://1c.ru/news/info.jsp?id=21537

    ну не вирус конечно, но первый дропер на 1С

    znsoft, 24 Июня 2016

    Комментарии (8)
  5. C++ / Говнокод #20262

    +2

    1. 1
    2. 2
    const size_t longstring_size = 1000500; // TODO: O RLY magic constant? => Can't load edges >= 1Mbp
            char longstring[longstring_size];

    Орфография комментариев сохранена.

    Yuuri, 23 Июня 2016

    Комментарии (9)
  6. C# / Говнокод #20261

    +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
    using System;
    using System.Collections.Generic;
    using System.Net;
    using System.Web.Script.Serialization;
    
    namespace Govnokod
    {
    	public class Program
    	{
    		private static string input;
    		private static string[] inputargs;
    		private static int inputargsh = 0;
    
    		private static int eax;
    		private static string hax,hbx;
    
    		public static void CommandActions()
    		{
    			if (inputargs[0] == "download")
    			{
    				if (inputargsh > 1)
    				{
    					hax = inputargs[1];
    					hbx = (inputargsh > 2) ? inputargs[2]:null;
    					if (String.IsNullOrEmpty(hbx))
    						hbx = Environment.CurrentDirectory+"\\"+hax;
    					Console.WriteLine("Downloading...");
    				}
    				else Console.WriteLine("invalid argument: 1\n");
    			}
    			else if (inputargs[0] == "apkinfo")
    			{
    				if (inputargsh > 1)
    				{
    					Console.WriteLine("Apkinfo...");
    				}
    				else Console.WriteLine("invalid argument: 1\n");
    			}
    			else if (input != "")
    				Console.WriteLine("invalid command: "+input+"\n");
    			CommandStart();
    		}
    
    		public static void CommandStart()
    		{
    			if (inputargsh != 0)
    			{
    				Array.Clear(inputargs,0,inputargsh);
    				inputargsh = 0;
    			}
    			input = Console.ReadLine();
    			input = input.Trim();
    			hax = input.ToLower();
    			while (true)
    			{
    				eax = hax.IndexOf(' ');
    				Array.Resize(ref inputargs,inputargsh+1);
    				if (eax != -1)
    				{
    					inputargs[inputargsh] = hax.Substring(0,eax);
    					hax = hax.Substring(eax);
    					hax = hax.TrimStart();
    					inputargsh++;
    				}
    				else
    				{
    					inputargs[inputargsh] = hax;
    					inputargsh++;
    					hax = null;
    					break;
    				}
    			}
    			if (inputargs[0] == "quit")
    			{
    				Console.Clear();
    				Console.Write("Press any key to quit...");
    				Console.ReadKey();
    			}
    			else CommandActions();
    		}
    
    		public static void Main(string[] args)
    		{
    			Console.WriteLine("; Commands:");
    			Console.WriteLine(";\tdownload <apk> <path>");
    			Console.WriteLine(";\tapkinfo <apk> or <index>");
    			Console.WriteLine(";\tquit <>\n");
    			CommandStart();
    		}
    	}
    }

    "Распознователь Команд 6120"

    ReckitRockefeller, 23 Июня 2016

    Комментарии (12)
  7. 1C / Говнокод #20260

    −85

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    может = "ИвановИИ";
    	текущий = ИмяПользователя();
    	Если Не текущий = может Тогда
    		ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыВыполнить.Доступность = РедактироватьУзел;
    		Предупреждение("Запустить обмен может пользователь: " + может );
    	КонецЕсли;

    а если незнающий прог пробел добавит лишний в имя пользователя (или уволится сотрудник)... права лягут, да? ну ок.

    oleganatolievich, 23 Июня 2016

    Комментарии (2)
  8. C++ / Говнокод #20258

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    auto getMaxSize = [](const auto &vec) {
        if (vec.size() == 0)
            return 0;
        const auto &max = *std::max_element(
                    vec.begin(),
                    vec.end(),
                    [](const auto &lhs, const auto &rhs){
            return lhs.size() < rhs.size();
        });
        return max.size();
    };

    Раньше я не понимал актуальность шутки:
    In C++14, you just write auto auto(auto auto) { auto; } The compiler infers the rest from context

    Antervis, 23 Июня 2016

    Комментарии (30)
  9. Куча / Говнокод #20257

    +3

    1. 1
    https://www.google.ru/search?q=-fpermissive

    Почему я не могу узнать, что делает флаг -fpermissive????7777

    Steve_Brown, 23 Июня 2016

    Комментарии (9)
  10. 1C / Говнокод #20256

    −90

    1. 1
    Если ВРЕГ(ДанныеСчета.УсловияЗаполнения)<>"ЛОЖЬ" Тогда

    УПП 1.3 (1.3.75.2)
    ОбщиеМодули.СчетаУчетаВДокументах

    Подскажите если изменятся языковые настройки конфигурации как себя поведет данный код?

    znsoft, 23 Июня 2016

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