using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Management;
namespace ConsoleApplication7 {
class Program {
static void Main(string[] args) {
Process[] processList = Process.GetProcesses();
Process p = processList.Where(temp => temp.Id == 844).FirstOrDefault();
if (p != null) {
GetCommandLine(p.Id);
}
Console.ReadLine();
}
public static void GetCommandLine(int id) {
using (ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + id)) {
foreach (ManagementObject mo in mos.Get()) {
Console.WriteLine(mo["CommandLine"]);
}
}
}
}
}
Понятно что нужна ещё и практика
- Сколько нужно времени, чтобы научиться управлять самолетом так, чтобы он не разбивался при посадке?
- Пять-шесть.
- Чего? Дней? Недель? Месяцев?
- Самолетов...
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup>
<!-- Вот это самое главное -->
<PublishSingleFile>true</PublishSingleFile>
<!-- Это чтобы тащить за собой рантайм До .NET 6 будут рядом лежать нативные библиотеки jit-а и сборщика мусора-->
<SelfContained>true</SelfContained>
<!-- Это необходимо, чтобы сборщик понимал, для какой ОС нужен экзешник -->
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<!-- Это чтобы ускорить запуск -->
<PublishReadyToRun>true</PublishReadyToRun>
<!-- Эти две строки, чтобы уменьшить размер бинарника -->
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>link</TrimMode>
</PropertyGroup>
</Project>
WITH RECURSIVE
cte AS ( SELECT *, 1 level
FROM category
WHERE id = $category_id
UNION ALL
SELECT cat.*, cte.level + 1
FROM category cat
JOIN cte ON cat.id = cte.parent_id )
SELECT *
FROM cte
ORDER BY level;
SELECT CONCAT_WS('=>', c1.id, c2.id, c3.id, c4.id, c5.id) path
FROM category c1
LEFT JOIN category c2 ON c1.parent_id = c2.id
LEFT JOIN category c3 ON c2.parent_id = c3.id
LEFT JOIN category c4 ON c3.parent_id = c4.id
LEFT JOIN category c5 ON c4.parent_id = c5.id
WHERE c1.id = $category_id
Как интерпретировать информацию с TechEmpower Framework Benchmarks?
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Чтение JSON из файла и десериализация.
string pathToFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "PartnerData.json");
string jsonText = File.ReadAllText(pathToFile, Encoding.UTF8);
var parterAddressesFromFile = JsonSerializer.Deserialize<TriggerData>(jsonText);
// Вывод на консоль.
Display(parterAddressesFromFile);
// Создание нового экземпляра класса TriggerData и его заполнение данными.
var data = new TriggerData()
{
PartnerAddresses = new List<PartnerAddress>()
{
new PartnerAddress()
{
Type = "Тип 0001",
Country = "Страна 0001",
Region = "Регион 0001",
City = "Город 0001",
Presentation = "Представление 0001",
},
new PartnerAddress()
{
Type = "Тип 0002",
Country = "Страна 0002",
Region = "Регион 00021",
City = "Город 0002",
Presentation = "Представление 0002",
}
}
};
// Сериализация.
var options = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.Cyrillic),
WriteIndented = true,
};
var newJsonText = JsonSerializer.Serialize(data, options);
// Вывод на консоль.
Console.WriteLine(newJsonText);
}
private static void Display(TriggerData data)
{
// Способ 1.
foreach (var address in data.PartnerAddresses)
{
// Внутри Console.WriteLine будет вызван метод ToString для
// экземпляра класса PartnerAddress, у которого этот метод переопределён.
// https://source.dot.net/#System.Private.CoreLib/TextWriter.cs,09da57c2c21a3a44
Console.WriteLine(address);
}
// Способ 2.
//for (int i = 0; i < data.PartnerAddresses.Count; i++)
//{
// Console.WriteLine(data.PartnerAddresses[i]);
//}
}
}
}
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace ConsoleApp
{
public class TriggerData
{
[JsonPropertyName("партнерАдреса")]
public List<PartnerAddress> PartnerAddresses { get; set; }
}
}
using System.Text.Json.Serialization;
namespace ConsoleApp
{
public class PartnerAddress
{
[JsonPropertyName("тип")]
public string Type { get; set; }
[JsonPropertyName("страна")]
public string Country { get; set; }
[JsonPropertyName("регион")]
public string Region { get; set; }
[JsonPropertyName("город")]
public string City { get; set; }
[JsonPropertyName("представление")]
public string Presentation { get; set; }
public override string ToString()
{
return $"{Type}, {Country}, {Region}, {City}, {Presentation}";
}
}
}
{
"партнерАдреса": [
{
"тип": "тип1",
"страна": "страна1",
"регион": "регион1",
"город": "город1",
"представление": "представление1"
},
{
"тип": "тип2",
"страна": "страна2",
"регион": "регион2",
"город": "город2",
"представление": "представление2"
},
{
"тип": "null",
"страна": "null",
"регион": "null",
"город": "null",
"представление": "null"
},
{
"тип": "тип3",
"страна": "страна3",
"регион": "регион3",
"город": "город3",
"представление": "представление3"
}
]
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5</TargetFramework>
</PropertyGroup>
<ItemGroup>
<None Update="PartnerData.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
$iframe = $driver->findElement(WebDriverBy::xpath('//iframe[@title=\'проверка recaptcha\']'));
$driver->switchTo()->frame($iframe);
$driver->findElement(WebDriverBy::xpath('//div[@class=\'rc-image-tile-wrapper\']'))->click();