// process가 이미 종료되었는지 확인후 process가 살아 있을경우 CloseMainWindows,kill작업 시작 // 실행한 프로세스 정상종료(CloseMainWindow())를 하고난뒤에도 process가 살아 있을경우 // 강제 kill public void KillProcess(int pid) { try { ManagementObjectSearcher procSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Process WHERE ParentProcessID=" + pid); if (procSearcher.Get().Count > 0) { Process proc = Process.GetProcessById(pid); proc...
Windows
C#에서 외부 프로그램을 실행시 외부 프로그램의 프로세스 부모&자식 PID를 찾는 방법입니다. 프로그램 종료시 자식 프로세스가 종료되지 못하는 경우 PID찾아 kill하면 될것 같습니다. 샘플은 크롬 브라우져 실행해서 PID를 가져오는 방법입니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Management; using System.IO; using System.Diagnostics; using System.Threading; using Microsoft.Win32; namespace ConsoleProcess { /..
윈도우 명령 프롬프트에서 arp -a 실행하면 현재 네트워크 맥어드레스를 가져옵니다. 이 과정을 동일한 프로세스로 구현 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 using System; using System.Collections.Generic; using System.Text.RegularExpressions; namespace ConsoleARP { class Program { static void Main(string[] args) { var pairs = GetMacIpPairs();..
https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-windows-silverlight/ms613054(v=vs.95) SolidColorBrush.Color Property (System.Windows.Media) Namespace: System.Windows.Media Assembly: System.Windows (in System.Windows.dll) Syntax 'Declaration Public Property Color As Color public Color Color { get; set; } - or - - or - - or - - or - - or - - or - XAML Values predefine..
.NET Framework 4.0부터 사용가능 다중쓰레드 안정성 보장 Dictionary보다 속도는 느림 Dictionary와 ConcurrentDictionary 다중 쓰레드 테스트 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 using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Threading; namespace ConsoleApp1 { public class Program { s..
private void tableLayoutPanel1_MouseMove(object sender, MouseEventArgs e) { // 지정영역(셀) redraw tableLayoutPanel1.Invalidate(); } private void tableLayoutPanel1_CellPaint(object sender, TableLayoutCellPaintEventArgs e) { Point pt = tableLayoutPanel1.PointToClient(Cursor.Position); using (SolidBrush brush = new SolidBrush(e.CellBounds.Contains(pt) ? Color.Red : tableLayoutPanel1.BackColor)) e.Graph..