рдФрд░ рдлрд┐рд░ рд╕реЗ, рдПрдХ-рдХреНрд▓рд┐рдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ (C #)

рд╕рд╛рд░


рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ рдореИрдВрдиреЗ C # рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдмрд╣реБрдд рдЬрд▓реНрдж рдкреНрд░рдпреЛрдЧ рдХреБрдЫ рдЖрд╕рд╛рди, рд╕рд░рд▓ рд▓рд┐рдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдореЗрдВ рдмрдврд╝ рдЧрдП, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдкрдпреЛрдЧреА рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднреАред рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рдкреИрджрд╛ рд╣реБрдЖ рдерд╛ред рдореБрдЭреЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдИ рднреА рдПрдирд╛рд▓реЙрдЧ рдирд╣реАрдВ рдорд┐рд▓реЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рд╕рдм рдЕрдкрдиреЗ рдЖрдк рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд▓реЗрдХрд░ рдЖрдпрд╛ред

рджрд┐рд▓


рддреЛ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдХрдард┐рдирд╛рдЗрдпреЛрдВ


рдФрд░ рдЕрдм рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛, рдЬреЛ, рд╢рд╛рдпрдж, рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдореБрд╢реНрдХрд┐рд▓ рдХреНрд╖рдгреЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ

рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓реА рдереА рд╡рд╣ рдереА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рддреНрд░реБрдЯрд┐: рдЫрд╡рд┐ рд▓реЛрдб рд╣реЛ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХрд╣реАрдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдПред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдкрд╛рдпрд╛ рдЧрдпрд╛:
using System; using System.IO; using System.Net; using System.Text; namespace ImgurExample { class Program { static void Main(string[] args) { PostToImgur(@"C:\Users\ashwin\Desktop\image.jpg", IMGUR_ANONYMOUS_API_KEY); } public static void PostToImgur(string imagFilePath, string apiKey) { byte[] imageData; FileStream fileStream = File.OpenRead(imagFilePath); imageData = new byte[fileStream.Length]; fileStream.Read(imageData, 0, imageData.Length); fileStream.Close(); string uploadRequestString = "image=" + Uri.EscapeDataString(System.Convert.ToBase64String(imageData)) + "&key=" + apiKey; HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://api.imgur.com/2/upload"); webRequest.Method = "POST"; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ServicePoint.Expect100Continue = false; StreamWriter streamWriter = new StreamWriter(webRequest.GetRequestStream()); streamWriter.Write(uploadRequestString); streamWriter.Close(); WebResponse response = webRequest.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader responseReader = new StreamReader(responseStream); string responseString = responseReader.ReadToEnd(); } } 

рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдереАрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реБрдИред рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмреА рдФрд░ рджрд░реНрджрдирд╛рдХ рдЦреЛрдЬ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдЬрдорд╛рдП рд╣реБрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛ рдХрд┐ рдмреЗрд╕ 64 рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реНрд▓реИрд╢ рдХреЗ рдХрд╛рд░рдг рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЙрдиреНрд╣реЗрдВ рдкрд▓рд╛рдпрди рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдерд╛: рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдВрдШрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреЙрд▓ рд╕реНрдЯреНрд░реАрдорд░рд╛рдЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛ред Write (рдЕрдкрд▓реЛрдбRequestString)), base64 рдЕрдиреБрдХреНрд░рдо рдФрд░ t рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ рдПрдиред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рдРрд╕реЗ рдкреЛрд╕реНрдЯ рдорд┐рд▓реЗ рдЬрд┐рдирдореЗрдВ рд╕реНрд▓реИрд╢ рдХрд╛ рднреА рд╕рдВрджреЗрд╣ рдерд╛ред

рдореИрдВрдиреЗ StackOverflow рдкрд░ рдкрд╛рдП рдЧрдП рдХреЛрдб рдХреЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛:
 using (var w = new WebClient()) { var values = new NameValueCollection { { "key", "433a1bf4743dd8d7845629b95b5ca1b4" }, { "image", Convert.ToBase64String(File.ReadAllBytes(@"hello.png")) } }; byte[] response = w.UploadValues("http://imgur.com/api/upload.xml", values); Console.WriteLine(XDocument.Load(new MemoryStream(response))); }"> 

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдШрдбрд╝реА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ - рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд▓рд┐рдВрдХ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдкреВрд░реЗ рдЙрддреНрддрд░ред

рд╢реЙрд░реНрдЯрдХрдЯ

рджреВрд╕рд░реА рдХреБрдВрдЬреА рдЧрд░реНрдо рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрджрд╛ рд╣реБрдИред рд╣рд░ рдЬрдЧрд╣ рдЧреНрд▓реЛрдмрд▓ рд╣реЙрдЯ рдХреАрдЬрд╝ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП RegisterHotKey рдлрдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╣реБрдХ рдХреЛ рд╣реБрдХ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ WndProc рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рдХреЛ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдХрдард┐рдирд╛рдИ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдХрдард┐рдирд╛рдИ рдпрд╣ рдереА рдХрд┐ рдореЗрд░рд╛ рдЖрд╡реЗрджрди рд╡рд┐рдВрдбреЛрд▓реЗрд╕ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рдирдлреЙрд░реНрдореНрд╕) рдерд╛, рдЗрд╕рд▓рд┐рдП рди рддреЛ рд░рдЬрд┐рд╕реНрдЯрд░рд╣реЙрдЯрдХреЗрдИ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдВрдбреЛ рд╣реИрдВрдбрд▓ рдерд╛, рди рд╣реА рдПрдХ рд╡рд┐рдВрдбреЛ рд╣реА рдЬрд╣рд╛рдВ WndProc рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдореИрдиреБрдЕрд▓ рдХреЗ рдЧрд╣рди рдзреВрдореНрд░рдкрд╛рди рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрджреЗрд╢ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрд╕ рдереНрд░реЗрдб рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ RegisterHotKey рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╕рдВрджреЗрд╢ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ред рдХреБрдЫ рдФрд░ рдХреЙрдлреА рдХреЗ рдЧрд┐рд▓рд╛рд╕ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдорд┐рд▓рд╛: Application.AddMessageFilter () ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ "рдлрд╝рд┐рд▓реНрдЯрд░" рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ WM_HOTKEY рдХреЛ рдкрдХрдбрд╝рд╛ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреНрд▓рд┐рдХ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмреБрд▓рд╛рдпрд╛ред рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдмрд╛рдзрд╛рдПрдВ рдирд╣реАрдВ рдереАрдВред

рдкрдВрдЦ


рдЖрд╡реЗрджрди, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдлреНрд░реАрд╡реЗрдпрд░ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб, рдореИрдВрдиреЗ рднреА рдЦреБрд▓рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреЛрдб рдХреЗ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреА, рдЬреЛ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ, рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдХреЛрдИ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднрд╛рд╖рд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╣реИред рдЖрд╡реЗрджрди .NET 4.0 рдХреЗ рддрд╣рдд VS2010 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдЗрдХрди iconfinder.com рдкрд░ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрд░реЗ рд╣рд╛рдереЛрдВ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдореИрдВ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЖрдпрд╛ рдФрд░ рд▓реЗрдЦ рдореЗрдВ рдЙрдирдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред

рдпреБрдкреАрдбреАред рдмрд╛рдЗрдирд░реА рдХреЛ рдЕрд▓рдЧ рд╕реЗ рднрд░ рджрд┐рдпрд╛ рддрд╛рдХрд┐ рдЖрдк рдкреВрд░реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ: ScreenPaste.exe

Source: https://habr.com/ru/post/In132541/


All Articles