using System.Net.Http;
using System.Text;
using (var client = new HttpClient())
{
var url = "https://dns.api.gandi.net/api/v5/zones/93cc9312-a214-408b-a75b-9d4172984746/records";
// можно просто строку (string) сделать, как будет удобно
var data = new StringBuilder();
data.AppendLine("www IN A 192.168.0.1");
data.AppendLine(" IN A 192.168.0.2");
data.AppendLine(" IN A 192.168.0.2");
data.AppendLine("@ IN MX 10 spool.mail.gandi.net.");
using (var content = new StringContent(data.ToString(), Encoding.UTF8, "text/plain"))
{
// HttpMethod.Post, если нужен POST
using (var request = new HttpRequestMessage(HttpMethod.Put, url))
{
// request.Headers.Authorization = new AuthenticationHeaderValue("", "");
request.Headers.Add("X-Api-Key", "$APIKEY");
request.Content = content;
// using (var response = await client.SendAsync(request)
using (var response = client.SendAsync(request).Result)
{
// выбросить исключение, если сервер вернул ошибку
response.EnsureSuccessStatusCode();
// var result = await response.Content.ReadAsStringAsync();
var result = response.Content.ReadAsStringAsync().Result;
// в result будет ответ сервера
}
}
}
}
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string className, string windowTitle);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool ShowWindow(IntPtr hWnd, ShowWindowEnum flags);
[DllImport("user32.dll")]
private static extern int SetForegroundWindow(IntPtr hwnd);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetWindowPlacement(IntPtr hWnd, ref Windowplacement lpwndpl);
private enum ShowWindowEnum
{
Hide = 0,
ShowNormal = 1, ShowMinimized = 2, ShowMaximized = 3,
Maximize = 3, ShowNormalNoActivate = 4, Show = 5,
Minimize = 6, ShowMinNoActivate = 7, ShowNoActivate = 8,
Restore = 9, ShowDefault = 10, ForceMinimized = 11
};
private struct Windowplacement
{
public int length;
public int flags;
public int showCmd;
public System.Drawing.Point ptMinPosition;
public System.Drawing.Point ptMaxPosition;
public System.Drawing.Rectangle rcNormalPosition;
}
private void BringWindowToFront()
{
IntPtr wdwIntPtr = FindWindow(null, "Put_your_window_title_here");
//get the hWnd of the process
Windowplacement placement = new Windowplacement();
GetWindowPlacement(wdwIntPtr, ref placement);
// Check if window is minimized
if (placement.showCmd == 2)
{
//the window is hidden so we restore it
ShowWindow(wdwIntPtr, ShowWindowEnum.Restore);
}
//set user focus to the window
SetForegroundWindow(wdwIntPtr);
}
HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response
параметр DelayBeforeAcceptance.
void UntilSuccess(Action action) {
if (action == null)
throw new ArgumentNullException();
while (true) {
try
{
action.Invoke();
break;
}
catch { Thread.Sleep(300); }
}
}
// Использовать так:
UntilSuccess(() => File.WriteAllText(@"C:\\serv1.txt", "text"));
var listt = new List<string>();
System.Threading.Tasks.Parallel.For(0, 30, (iter,state) => {
System.Threading.Thread.Sleep(iter*500);
iter.Dump("Iter");
lock(ListSyncer)
{
listt.Add(iter.ToString());
}
});
static readonly object ListSyncer = new object();
IEnumerable<int> Range(int fromInclusive, int toExclusive)
{
for (var i = fromInclusive; i < toExclusive; i++) yield return i;
}
void Main()
{
var listt = new List<string>();
var range = Range(0, 30);
System.Threading.Tasks.Parallel.ForEach(range, (iter,state) => {
System.Threading.Thread.Sleep(iter*500);
iter.Dump("Iter");
lock(listt) {
listt.Add(iter.ToString());
}
});
listt.Dump();
}
// Define other methods and classes here