<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Форум программистов и сисадминов Киберфорум - Блоги - Константин_2012</title>
		<link>https://www.cyberforum.ru/blogs/350057/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Fri, 21 Aug 2026 12:27:20 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - Константин_2012</title>
			<link>https://www.cyberforum.ru/blogs/350057/</link>
		</image>
		<item>
			<title>Получить цвет пикселя монитора</title>
			<link>https://www.cyberforum.ru/blogs/350057/3411.html</link>
			<pubDate>Wed, 18 Mar 2015 09:29:14 GMT</pubDate>
			<description>---Цитата (сообщение от EvilFromHell)--- 
Решил я проверить на деле известные мне способы, дабы...</description>
			<content:encoded><![CDATA[<div>
<table width="95%"  class="bbcode_maincontainer"><tr><td>
	<div class="bbcode_container">
	  <div class="bbcode_quote">
	    <div class="btbtbt">
		<div class="quote_container">
	      	<div class="bbcode_quote_container"></div>
	       	<div class="bbcode_postedby">
	         	
				<img loading="lazy" decoding="async" title="Цитата" src="//cyberstatic.net/images/buttons/quote_icon.png" alt="Цитата" />
				Сообщение от <strong>EvilFromHell</strong>
				<a href="showthread.php?p=4176477"><img loading="lazy" decoding="async" class="inlineimg" src="//cyberstatic.net/images/buttons/viewpost-right.png" border="0" alt="Посмотреть сообщение" /></a>
	         	
	        </div>
	        <div class="message">Решил я проверить на деле известные мне способы, дабы прекратить споры и сомнения.<br />
Для этого написал вот такой класс:<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="845900502"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="845900502" style="height: 350px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
</pre></td><td class="de1"><pre class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">class</span> FastGetPixel
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;user32.dll&quot;</span>, EntryPoint <span class="sy0">=</span> <span class="st0">&quot;ReleaseDC&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">extern</span> IntPtr ReleaseDC<span class="br0">&#40;</span>IntPtr hWnd, IntPtr hDC<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;gdi32.dll&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw4">int</span> BitBlt<span class="br0">&#40;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr hdcDest, <span class="co1">// handle to destination DC</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> nXDest, &nbsp;<span class="co1">// x-coord of destination upper-left corner</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> nYDest, &nbsp;<span class="co1">// y-coord of destination upper-left corner</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> nWidth, &nbsp;<span class="co1">// width of destination rectangle</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> nHeight, <span class="co1">// height of destination rectangle</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr hdcSrc, &nbsp;<span class="co1">// handle to source DC</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> nXSrc, &nbsp; <span class="co1">// x-coordinate of source upper-left corner</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> nYSrc, &nbsp; <span class="co1">// y-coordinate of source upper-left corner</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UInt32 dwRop &nbsp; &nbsp;<span class="co1">// raster operation code</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;gdi32.dll&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw4">uint</span> GetPixel<span class="br0">&#40;</span>IntPtr hDC, <span class="kw4">int</span> x, <span class="kw4">int</span> y<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;user32.dll&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="kw1">return</span><span class="sy0">:</span> MarshalAs<span class="br0">&#40;</span>UnmanagedType<span class="sy0">.</span><span class="kw4">Bool</span><span class="br0">&#41;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw4">bool</span> GetWindowRect<span class="br0">&#40;</span>HandleRef hWnd, <span class="kw1">out</span> RECT lpRect<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>StructLayout<span class="br0">&#40;</span>LayoutKind<span class="sy0">.</span><span class="me1">Sequential</span><span class="br0">&#41;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">struct</span> RECT
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">int</span> Left<span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// x position of upper-left corner</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">int</span> Top<span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// y position of upper-left corner</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">int</span> Right<span class="sy0">;</span> &nbsp; &nbsp; &nbsp; <span class="co1">// x position of lower-right corner</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">int</span> Bottom<span class="sy0">;</span> &nbsp; &nbsp; &nbsp;<span class="co1">// y position of lower-right corner</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;user32.dll&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">extern</span> IntPtr GetDesktopWindow<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;user32.dll&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">extern</span> IntPtr GetWindowDC<span class="br0">&#40;</span>IntPtr hWnd<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">const</span> Int32 SRCCOPY <span class="sy0">=</span> <span class="nu0">13369376</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> IntPtr hWnd<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> Bitmap innerbitmap<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">bool</span> screenmade <span class="sy0">=</span> <span class="kw1">false</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> BitmapData bmpData<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">int</span> byteLen <span class="sy0">=</span> <span class="nu0">4</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">byte</span><span class="br0">&#91;</span><span class="br0">&#93;</span> bitmapBuffer<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> Color col <span class="sy0">=</span> Color<span class="sy0">.</span><span class="me1">Empty</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> FastGetPixel<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hWnd <span class="sy0">=</span> GetDesktopWindow<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> FastGetPixel<span class="br0">&#40;</span>IntPtr hWndsource<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hWnd <span class="sy0">=</span> hWndsource<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> IntPtr Handle<span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">get</span><span class="br0">&#123;</span> <span class="kw1">return</span> hWnd<span class="sy0">;</span><span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">set</span> <span class="br0">&#123;</span> <span class="kw1">try</span> <span class="br0">&#123;</span> innerbitmap<span class="sy0">.</span><span class="me1">UnlockBits</span><span class="br0">&#40;</span>bmpData<span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">catch</span> <span class="br0">&#123;</span> <span class="br0">&#125;</span> <span class="kw1">try</span> <span class="br0">&#123;</span> innerbitmap<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">catch</span> <span class="br0">&#123;</span> <span class="br0">&#125;</span> bitmapBuffer <span class="sy0">=</span> <span class="kw1">null</span><span class="sy0">;</span> screenmade <span class="sy0">=</span> <span class="kw1">false</span><span class="sy0">;</span> &nbsp;hWnd <span class="sy0">=</span> <span class="kw1">value</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> Color GetLockedPixel<span class="br0">&#40;</span><span class="kw4">int</span> Xpos, <span class="kw4">int</span> Ypos<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> index <span class="sy0">=</span> bmpData<span class="sy0">.</span><span class="me1">Stride</span> <span class="sy0">*</span> Ypos <span class="sy0">+</span> Xpos <span class="sy0">*</span> byteLen<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; col <span class="sy0">=</span> Color<span class="sy0">.</span><span class="me1">FromArgb</span><span class="br0">&#40;</span>bitmapBuffer<span class="br0">&#91;</span>index <span class="sy0">+</span> <span class="nu0">2</span><span class="br0">&#93;</span>, bitmapBuffer<span class="br0">&#91;</span>index <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span>, bitmapBuffer<span class="br0">&#91;</span>index <span class="sy0">+</span> <span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">catch</span> <span class="br0">&#123;</span> col <span class="sy0">=</span> Color<span class="sy0">.</span><span class="me1">Empty</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> col<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">bool</span> LockWindowImage<span class="br0">&#40;</span>PixelFormat PF<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>screenmade<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RECT rectal <span class="sy0">=</span> <span class="kw3">new</span> RECT<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetWindowRect<span class="br0">&#40;</span><span class="kw3">new</span> HandleRef<span class="br0">&#40;</span><span class="kw1">null</span>, hWnd<span class="br0">&#41;</span>, <span class="kw1">out</span> rectal<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; innerbitmap <span class="sy0">=</span> <span class="kw3">new</span> Bitmap<span class="br0">&#40;</span>rectal<span class="sy0">.</span><span class="me1">Right</span>, rectal<span class="sy0">.</span><span class="me1">Bottom</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Graphics loGraphics <span class="sy0">=</span> Graphics<span class="sy0">.</span><span class="me1">FromImage</span><span class="br0">&#40;</span>innerbitmap<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr lnDst <span class="sy0">=</span> loGraphics<span class="sy0">.</span><span class="me1">GetHdc</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr hDC <span class="sy0">=</span> GetWindowDC<span class="br0">&#40;</span>hWnd<span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BitBlt<span class="br0">&#40;</span>lnDst, <span class="nu0">0</span>, <span class="nu0">0</span>, rectal<span class="sy0">.</span><span class="me1">Right</span> <span class="sy0">-</span> rectal<span class="sy0">.</span><span class="me1">Left</span>, rectal<span class="sy0">.</span><span class="me1">Bottom</span> <span class="sy0">-</span> rectal<span class="sy0">.</span><span class="me1">Top</span>, hDC, <span class="nu0">0</span>, <span class="nu0">0</span>, SRCCOPY<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">ReleaseHdc</span><span class="br0">&#40;</span>lnDst<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">Flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ReleaseDC<span class="br0">&#40;</span>hWnd, hDC<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bmpData <span class="sy0">=</span> innerbitmap<span class="sy0">.</span><span class="me1">LockBits</span><span class="br0">&#40;</span><span class="kw3">new</span> Rectangle<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span>, innerbitmap<span class="sy0">.</span><span class="me1">Width</span>, innerbitmap<span class="sy0">.</span><span class="me1">Height</span><span class="br0">&#41;</span>, ImageLockMode<span class="sy0">.</span><span class="kw1">ReadOnly</span>, PF<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bitmapBuffer <span class="sy0">=</span> <span class="kw3">new</span> <span class="kw4">byte</span><span class="br0">&#91;</span>bmpData<span class="sy0">.</span><span class="me1">Stride</span> <span class="sy0">*</span> bmpData<span class="sy0">.</span><span class="me1">Height</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Marshal<span class="sy0">.</span><span class="me1">Copy</span><span class="br0">&#40;</span>bmpData<span class="sy0">.</span><span class="me1">Scan0</span>, bitmapBuffer, <span class="nu0">0</span>, bitmapBuffer<span class="sy0">.</span><span class="me1">Length</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byteLen <span class="sy0">=</span> bmpData<span class="sy0">.</span><span class="me1">Stride</span> <span class="sy0">/</span> bmpData<span class="sy0">.</span><span class="me1">Width</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; screenmade <span class="sy0">=</span> <span class="kw1">true</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="kw1">false</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">catch</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="kw1">false</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">true</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">bool</span> LockWindowImage<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>screenmade<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RECT rectal <span class="sy0">=</span> <span class="kw3">new</span> RECT<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetWindowRect<span class="br0">&#40;</span><span class="kw3">new</span> HandleRef<span class="br0">&#40;</span><span class="kw1">null</span>, hWnd<span class="br0">&#41;</span>, <span class="kw1">out</span> rectal<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; innerbitmap <span class="sy0">=</span> <span class="kw3">new</span> Bitmap<span class="br0">&#40;</span>rectal<span class="sy0">.</span><span class="me1">Right</span>, rectal<span class="sy0">.</span><span class="me1">Bottom</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Graphics loGraphics <span class="sy0">=</span> Graphics<span class="sy0">.</span><span class="me1">FromImage</span><span class="br0">&#40;</span>innerbitmap<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr lnDst <span class="sy0">=</span> loGraphics<span class="sy0">.</span><span class="me1">GetHdc</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr hDC <span class="sy0">=</span> GetWindowDC<span class="br0">&#40;</span>hWnd<span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BitBlt<span class="br0">&#40;</span>lnDst, <span class="nu0">0</span>, <span class="nu0">0</span>, rectal<span class="sy0">.</span><span class="me1">Right</span> <span class="sy0">-</span> rectal<span class="sy0">.</span><span class="me1">Left</span>, rectal<span class="sy0">.</span><span class="me1">Bottom</span> <span class="sy0">-</span> rectal<span class="sy0">.</span><span class="me1">Top</span>, hDC, <span class="nu0">0</span>, <span class="nu0">0</span>, SRCCOPY<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">ReleaseHdc</span><span class="br0">&#40;</span>lnDst<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">Flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ReleaseDC<span class="br0">&#40;</span>hWnd, hDC<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bmpData <span class="sy0">=</span> innerbitmap<span class="sy0">.</span><span class="me1">LockBits</span><span class="br0">&#40;</span><span class="kw3">new</span> Rectangle<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span>, innerbitmap<span class="sy0">.</span><span class="me1">Width</span>, innerbitmap<span class="sy0">.</span><span class="me1">Height</span><span class="br0">&#41;</span>, ImageLockMode<span class="sy0">.</span><span class="kw1">ReadOnly</span>, PixelFormat<span class="sy0">.</span><span class="me1">Format32bppArgb</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bitmapBuffer <span class="sy0">=</span> <span class="kw3">new</span> <span class="kw4">byte</span><span class="br0">&#91;</span>bmpData<span class="sy0">.</span><span class="me1">Stride</span> <span class="sy0">*</span> bmpData<span class="sy0">.</span><span class="me1">Height</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Marshal<span class="sy0">.</span><span class="me1">Copy</span><span class="br0">&#40;</span>bmpData<span class="sy0">.</span><span class="me1">Scan0</span>, bitmapBuffer, <span class="nu0">0</span>, bitmapBuffer<span class="sy0">.</span><span class="me1">Length</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byteLen <span class="sy0">=</span> <span class="nu0">4</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; screenmade <span class="sy0">=</span> <span class="kw1">true</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="kw1">false</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">catch</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="kw1">false</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">true</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">bool</span> LockWindowImage<span class="br0">&#40;</span><span class="kw4">int</span> Left, <span class="kw4">int</span> Top, <span class="kw4">int</span> Width, <span class="kw4">int</span> Height, PixelFormat PF<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>screenmade<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; innerbitmap <span class="sy0">=</span> <span class="kw3">new</span> Bitmap<span class="br0">&#40;</span>Width, Height<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Graphics loGraphics <span class="sy0">=</span> Graphics<span class="sy0">.</span><span class="me1">FromImage</span><span class="br0">&#40;</span>innerbitmap<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr lnDst <span class="sy0">=</span> loGraphics<span class="sy0">.</span><span class="me1">GetHdc</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr hDC <span class="sy0">=</span> GetWindowDC<span class="br0">&#40;</span>hWnd<span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BitBlt<span class="br0">&#40;</span>lnDst, <span class="nu0">0</span>, <span class="nu0">0</span>, Width, Height, hDC, Left, Top, SRCCOPY<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">ReleaseHdc</span><span class="br0">&#40;</span>lnDst<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">Flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loGraphics<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ReleaseDC<span class="br0">&#40;</span>hWnd, hDC<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bmpData <span class="sy0">=</span> innerbitmap<span class="sy0">.</span><span class="me1">LockBits</span><span class="br0">&#40;</span><span class="kw3">new</span> Rectangle<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span>, innerbitmap<span class="sy0">.</span><span class="me1">Width</span>, innerbitmap<span class="sy0">.</span><span class="me1">Height</span><span class="br0">&#41;</span>, ImageLockMode<span class="sy0">.</span><span class="kw1">ReadOnly</span>, PF<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bitmapBuffer <span class="sy0">=</span> <span class="kw3">new</span> <span class="kw4">byte</span><span class="br0">&#91;</span>bmpData<span class="sy0">.</span><span class="me1">Stride</span> <span class="sy0">*</span> bmpData<span class="sy0">.</span><span class="me1">Height</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Marshal<span class="sy0">.</span><span class="me1">Copy</span><span class="br0">&#40;</span>bmpData<span class="sy0">.</span><span class="me1">Scan0</span>, bitmapBuffer, <span class="nu0">0</span>, bitmapBuffer<span class="sy0">.</span><span class="me1">Length</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byteLen <span class="sy0">=</span> bmpData<span class="sy0">.</span><span class="me1">Stride</span> <span class="sy0">/</span> bmpData<span class="sy0">.</span><span class="me1">Width</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; screenmade <span class="sy0">=</span> <span class="kw1">true</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="kw1">false</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">catch</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="kw1">false</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">true</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">void</span> Clear<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">try</span> <span class="br0">&#123;</span> innerbitmap<span class="sy0">.</span><span class="me1">UnlockBits</span><span class="br0">&#40;</span>bmpData<span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">catch</span> <span class="br0">&#123;</span> <span class="br0">&#125;</span> <span class="kw1">try</span> <span class="br0">&#123;</span> innerbitmap<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">catch</span> <span class="br0">&#123;</span> <span class="br0">&#125;</span>bitmapBuffer <span class="sy0">=</span> <span class="kw1">null</span><span class="sy0">;</span> screenmade <span class="sy0">=</span> <span class="kw1">false</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>И устроил вот такие замеры(в каждом цикле сбрасываются цвета пикселей с экрана в массив):<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="909253722"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="909253722" style="height: 350px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
</pre></td><td class="de1"><pre class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Stopwatch SW0 <span class="sy0">=</span> <span class="kw3">new</span> Stopwatch<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SW0<span class="sy0">.</span><span class="me1">Start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span> listing <span class="sy0">=</span> <span class="kw3">new</span> List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Bitmap some <span class="sy0">=</span> <span class="kw3">new</span> Bitmap<span class="br0">&#40;</span>Screen<span class="sy0">.</span><span class="me1">PrimaryScreen</span><span class="sy0">.</span><span class="me1">Bounds</span><span class="sy0">.</span><span class="me1">Width</span>, Screen<span class="sy0">.</span><span class="me1">PrimaryScreen</span><span class="sy0">.</span><span class="me1">Bounds</span><span class="sy0">.</span><span class="me1">Height</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Graphics er <span class="sy0">=</span> Graphics<span class="sy0">.</span><span class="me1">FromImage</span><span class="br0">&#40;</span>some<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; er<span class="sy0">.</span><span class="me1">CopyFromScreen</span><span class="br0">&#40;</span><span class="kw3">new</span> Point<span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">0</span><span class="br0">&#41;</span>, <span class="kw3">new</span> Point<span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">0</span><span class="br0">&#41;</span>,<span class="kw3">new</span> Size<span class="br0">&#40;</span>Screen<span class="sy0">.</span><span class="me1">PrimaryScreen</span><span class="sy0">.</span><span class="me1">Bounds</span><span class="sy0">.</span><span class="me1">Width</span>, Screen<span class="sy0">.</span><span class="me1">PrimaryScreen</span><span class="sy0">.</span><span class="me1">Bounds</span><span class="sy0">.</span><span class="me1">Height</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; er<span class="sy0">.</span><span class="me1">Flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; er<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> Screen<span class="sy0">.</span><span class="me1">PrimaryScreen</span><span class="sy0">.</span><span class="me1">Bounds</span><span class="sy0">.</span><span class="me1">Height</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> j <span class="sy0">&lt;</span> Screen<span class="sy0">.</span><span class="me1">PrimaryScreen</span><span class="sy0">.</span><span class="me1">Bounds</span><span class="sy0">.</span><span class="me1">Width</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listing<span class="sy0">.</span><span class="kw1">Add</span><span class="br0">&#40;</span>some<span class="sy0">.</span><span class="me1">GetPixel</span><span class="br0">&#40;</span>j, i<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SW0<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Stopwatch SW1 <span class="sy0">=</span> <span class="kw3">new</span> Stopwatch<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SW1<span class="sy0">.</span><span class="me1">Start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span> listing2 <span class="sy0">=</span> <span class="kw3">new</span> List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FastGetPixel pi <span class="sy0">=</span> <span class="kw3">new</span> FastGetPixel<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pi<span class="sy0">.</span><span class="me1">LockWindowImage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> Screen<span class="sy0">.</span><span class="me1">PrimaryScreen</span><span class="sy0">.</span><span class="me1">Bounds</span><span class="sy0">.</span><span class="me1">Height</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> j <span class="sy0">&lt;</span> Screen<span class="sy0">.</span><span class="me1">PrimaryScreen</span><span class="sy0">.</span><span class="me1">Bounds</span><span class="sy0">.</span><span class="me1">Width</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listing2<span class="sy0">.</span><span class="kw1">Add</span><span class="br0">&#40;</span>pi<span class="sy0">.</span><span class="me1">GetLockedPixel</span><span class="br0">&#40;</span>j, i<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pi<span class="sy0">.</span><span class="me1">Clear</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SW1<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Stopwatch SW2 <span class="sy0">=</span> <span class="kw3">new</span> Stopwatch<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SW2<span class="sy0">.</span><span class="me1">Start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List<span class="sy0">&lt;</span><span class="kw4">int</span><span class="sy0">&gt;</span> listing3 <span class="sy0">=</span> <span class="kw3">new</span> List<span class="sy0">&lt;</span><span class="kw4">int</span><span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> j <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listing3<span class="sy0">.</span><span class="kw1">Add</span><span class="br0">&#40;</span>autoit<span class="sy0">.</span><span class="me1">PixelGetColor</span><span class="br0">&#40;</span>j, i<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SW2<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Stopwatch SW3 <span class="sy0">=</span> <span class="kw3">new</span> Stopwatch<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SW3<span class="sy0">.</span><span class="me1">Start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span> listing4 <span class="sy0">=</span> <span class="kw3">new</span> List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr hWnd <span class="sy0">=</span> GetDesktopWindow<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> j <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntPtr hDC <span class="sy0">=</span> GetWindowDC<span class="br0">&#40;</span>hWnd<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">uint</span> pixel <span class="sy0">=</span> GetPixel<span class="br0">&#40;</span>hDC, j, i<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ReleaseDC<span class="br0">&#40;</span>hWnd, hDC<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listing4<span class="sy0">.</span><span class="kw1">Add</span><span class="br0">&#40;</span>Color<span class="sy0">.</span><span class="me1">FromArgb</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw4">byte</span><span class="br0">&#41;</span><span class="br0">&#40;</span>pixel <span class="sy0">&amp;</span> 0x000000FF<span class="br0">&#41;</span>, <span class="br0">&#40;</span><span class="kw4">byte</span><span class="br0">&#41;</span><span class="br0">&#40;</span><span class="br0">&#40;</span>pixel <span class="sy0">&amp;</span> 0x0000FF00<span class="br0">&#41;</span> <span class="sy0">&gt;&gt;</span> <span class="nu0">8</span><span class="br0">&#41;</span>, <span class="br0">&#40;</span><span class="kw4">byte</span><span class="br0">&#41;</span><span class="br0">&#40;</span><span class="br0">&#40;</span>pixel <span class="sy0">&amp;</span> 0x00FF0000<span class="br0">&#41;</span> <span class="sy0">&gt;&gt;</span> <span class="nu0">16</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SW3<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Stopwatch SW4 <span class="sy0">=</span> <span class="kw3">new</span> Stopwatch<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SW4<span class="sy0">.</span><span class="me1">Start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span> listing5 <span class="sy0">=</span> <span class="kw3">new</span> List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IntPtr hWnd2 <span class="sy0">=</span> GetDesktopWindow<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> j <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IntPtr lnSrc <span class="sy0">=</span> GetWindowDC<span class="br0">&#40;</span>hWnd2<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Bitmap bitmp <span class="sy0">=</span> <span class="kw3">new</span> Bitmap<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Graphics loGraphics <span class="sy0">=</span> Graphics<span class="sy0">.</span><span class="me1">FromImage</span><span class="br0">&#40;</span>bitmp<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IntPtr lnDst <span class="sy0">=</span> loGraphics<span class="sy0">.</span><span class="me1">GetHdc</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BitBlt<span class="br0">&#40;</span>lnDst, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">1</span>, <span class="nu0">1</span>, lnSrc, j, i, SRCCOPY<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loGraphics<span class="sy0">.</span><span class="me1">ReleaseHdc</span><span class="br0">&#40;</span>lnDst<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loGraphics<span class="sy0">.</span><span class="me1">Flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loGraphics<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReleaseDC<span class="br0">&#40;</span>hWnd2, lnSrc<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;listing5<span class="sy0">.</span><span class="kw1">Add</span><span class="br0">&#40;</span>bitmp<span class="sy0">.</span><span class="me1">GetPixel</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bitmp<span class="sy0">.</span><span class="me1">Dispose</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SW4<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Stopwatch SW5 <span class="sy0">=</span> <span class="kw3">new</span> Stopwatch<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SW5<span class="sy0">.</span><span class="me1">Start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span> listing6 <span class="sy0">=</span> <span class="kw3">new</span> List<span class="sy0">&lt;</span>Color<span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FastGetPixel pi2 <span class="sy0">=</span> <span class="kw3">new</span> FastGetPixel<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> j <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pi2<span class="sy0">.</span><span class="me1">LockWindowImage</span><span class="br0">&#40;</span>j,i,<span class="nu0">1</span>,<span class="nu0">1</span>,PixelFormat<span class="sy0">.</span><span class="me1">Format32bppPArgb</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;listing6<span class="sy0">.</span><span class="kw1">Add</span><span class="br0">&#40;</span>pi2<span class="sy0">.</span><span class="me1">GetLockedPixel</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pi2<span class="sy0">.</span><span class="me1">Clear</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SW5<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MessageBox<span class="sy0">.</span><span class="me1">Show</span><span class="br0">&#40;</span>SW0<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span><span class="sy0">.</span><span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; &quot;</span> <span class="sy0">+</span> SW1<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span><span class="sy0">.</span><span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; &quot;</span> <span class="sy0">+</span> SW2<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span><span class="sy0">.</span><span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; &quot;</span> <span class="sy0">+</span> SW3<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span><span class="sy0">.</span><span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; &quot;</span> <span class="sy0">+</span> SW4<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span><span class="sy0">.</span><span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; &quot;</span> <span class="sy0">+</span> SW5<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span><span class="sy0">.</span><span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></td></tr></table></div></td></tr></tbody></table></div>Результат получился вот такой(в миллисекундах):<br />
<br />
<b>Шарповские CopyFromScreen+GetPixel по экрану 1920x1080 (SW0) - 1594</b><br />
<b>Класс FastGetPixel(тот, что выше) по экрану 1920x1080 (SW1)- 253</b><br />
<br />
Остальные методы непомерно долгие, но позволяют взять 1 единственный пиксель с разных окон:<br />
<b>Autoit -  квадрат 10x10 (SW2) -  2062</b><br />
<b>Метод, указанный в посте Goal - квадрат 10x10 (SW3) - 2102</b><br />
<b>BitBlt в битмап 1x1 и шарповский GetPixel с него - квадрат 10x10 (SW4) - 2119</b><br />
<b>Класс FastGetPixel для пикселей по отдельности(как будто с разных окон)  - квадрат 10x10 (SW5) - 2069</b><br />
<br />
Из этого следует, что из представленных методов  самый быстрый тот, что в классе выше. Если вы знаете другие, более быстрые, или найдете ошибки, возможности для ускорения или еще что полезное представленных-очень прошу отписаться. Результаты чуть варьируют, но соотношение примерно то же. Оптимизацию пробовал включать и выключать, особо не меняются соотношения.</div>
	      </div>
			</div> 
		</div>
	</div>
</td></tr></table>Здравствуйте, а  у вас, случайно, исходника нет?</div>

]]></content:encoded>
			<dc:creator>Константин_2012</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/350057/3411.html</guid>
		</item>
	</channel>
</rss>
