WPF 에서 Keyboard 입력 하기 Winfom SendKeys 같은..
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/a80296be-e810-449a-843e-bba4a31c1b0e/
KeyEventArgs enter = new KeyEventArgs( Keyboard.PrimaryDevice , Keyboard.PrimaryDevice.ActiveSource , 0, Key.Enter );
enter.RoutedEvent = Keyboard.KeyDownEvent;
enter.Source = 대상객체;
InputManager.Current.ProcessInput(enter);
'# 3) .Net ( Vs 2008 ) > WPF' 카테고리의 다른 글
이벤트를 한곳에 몰아주기?? (0) | 2015.09.09 |
---|---|
WPF Textbox의 Numeric! (0) | 2015.09.05 |
FlexGrid : WPF 콤보 컬럼 (Combo Column Type) (0) | 2010.09.07 |
IValueConverter 사용 데모 (0) | 2010.09.06 |
WPF 쓰레드 ( 프로그래스바 ) (0) | 2010.08.10 |
MyCodeGen ] 웁쓰... 망했다.
Grid 를 만들고 나서... 이거 저거 하다보니... 망했다.
그래서 이번 플젝은 그냥 예전 사용하던 툴을 꺼내 일부 필요한 부분만 추가해 넣은 후 사용하기로 함..
굿센용 4개의 레이어에 대한 컨트롤을 직접 만들고 이에 대한 반영을 하려고 했는데... 꼬였다...
'# 9) My Program(.NET)' 카테고리의 다른 글
웹 사이트 배포툴 ] 사이트 배포... (0) | 2012.11.26 |
---|---|
Dev Tools [ Idea ] (0) | 2012.07.06 |
MyCodeGen ] 그리드를 만들다!!! (1) | 2011.08.27 |
My CodeGen ] 프로젝트 디자이너 [ 가제 ] (0) | 2011.08.25 |
My CodeGen ] 새프로젝트 ? 템플릿? 코드젠 (0) | 2011.08.22 |
MyCodeGen ] 그리드를 만들다!!!
아래 사진 둘은 그리드를 만든것임.
현재 WPF 의 레이아웃 컨트롤인 그리드의 모방하여 만든것임.
높이값이나 가로 값이 지정되지 않으면 자동으로 분할되도록 만들었으며
중간에 Row 0과 Row2는 값이 할당되어 있어 자동분할에서 제외되는 것을 아래 그림으로 보여준다.
이건 CodeGen을 만들때 이 레이아웃 컨트롤의 Cell에 따라 컨트롤들이 자리잡게 되며
각각 배치된 컨트롤엔 WPF 그리드 컨트롤처럼 하위 컨트롤은 Index, Span의 프로퍼티를 가지게 되어
자신의 위치값등을 조정할 수 있다.
그리드를 만들때 Row와 Col과 그리고 Cell의 기술에 있다.
초기 만든 그리드는 구조를 잘못잡아서 컨트롤과의 상호작용을 표현하기 어려웠는데 ... 바로 잡았다.
'# 9) My Program(.NET)' 카테고리의 다른 글
Dev Tools [ Idea ] (0) | 2012.07.06 |
---|---|
MyCodeGen ] 웁쓰... 망했다. (0) | 2011.09.05 |
My CodeGen ] 프로젝트 디자이너 [ 가제 ] (0) | 2011.08.25 |
My CodeGen ] 새프로젝트 ? 템플릿? 코드젠 (0) | 2011.08.22 |
나만에 개발 프레임웍 dll Helper 문서. (0) | 2010.05.12 |
My CodeGen ] 프로젝트 디자이너 [ 가제 ]
WPF용으로 만들고 있는 코드제너레이터의 디자이너 UI임. 역시나 UI그리는 내 솜씨(?)는 ...
도구상자, 속성창은 디자이너에 도킹 설정/해제가 가능하고
아래는 WPF 레이아웃 컨트롤 GRID를 내 입맛대로 그려둔 것 임.
컨텐츠를 보강하고 프로젝트에 맞도록 컨트롤을 도구상자에 등록하며
이후 디자인이 완료되면 Xaml로 즉시 뽑고, 또 개발 프레임웍에 맞춘 코드컨버터를 이용하게되면
현업 프로젝트를 수행시 코드 노가다를 안해도 된다.
물론 CnP( Copy & Paste )라는 막강 기술이 있지만... 역시나 손이 많이 가는 작업이다..
설게 구상대로 라면 SP 작업이 완료되면 바로 프로젝트를 찍어낼 수 있게 되며, 최소한의 수작업!만 있게 된다.
고로... 업무구현에 좀더 열을 올릴수 있게되며,
새 프로젝트 현장에 가서도 해당 개발 프레임웍 구성을 분석 후 필요한 컨텐츠 보강후 바로 사용가능할 듯 하다.
프로젝트 기간에 10% 정도만 분석에 사용하여도 나머지 90%를 거저 먹는 꼴이 될...
오늘도 자뻑!!!
'# 9) My Program(.NET)' 카테고리의 다른 글
MyCodeGen ] 웁쓰... 망했다. (0) | 2011.09.05 |
---|---|
MyCodeGen ] 그리드를 만들다!!! (1) | 2011.08.27 |
My CodeGen ] 새프로젝트 ? 템플릿? 코드젠 (0) | 2011.08.22 |
나만에 개발 프레임웍 dll Helper 문서. (0) | 2010.05.12 |
드디어 내 프로그램이 완료 되었다!! (0) | 2010.03.28 |
My CodeGen ] 새프로젝트 ? 템플릿? 코드젠
새 프로젝트로 생성 시
작업효율을 높이려면 코드스나이프를 이용해 반복작업을 줄여야 하고...
sp별로 파라미터 생성을 도구없이 한다면... 순수 타이핑 또는 카피하여 수정 ...
: 매 프로젝트마다 새로 만들면 CnP가 ... 반복적이어야 함.
템플릿으로 생성 시
기존 새프로젝트를 생성 후 템플릿 형태로 모두 구현하여 테스트 한 이후 템플릿으로 내보내고나면
새프로젝트 생성시 프로젝트 언어 선택시 VisualStudio 를 선택하면 등록된 템플릿이 나타남.
이걸 추가한 후에도 참조링크를 별도로 설정하고 컨트롤명을 바꾸고, SP등은 동일한 방법을 이용해야 함.
: 초기작업( 새프로젝트를 만들어서 원하는 템플릿 형태로 소스를 수정) 이후 sp고치는 작업등... 은 수동...
코드젠으로 생성하면...
프로젝트에 사용되는 컨트롤들을 모두 코딩해서 변환하고,
원하는 모양으로 우선 디자인 하고, 이것을 cs단에서 핸들링 할 소스에 대한
코드변환기를 직접 만들어 코드젠에 적
템플릿화 하고.. 이를 이용해서 소스변환을 시도할 수 있음.
: 초기 준비작업( 컨트롤 만들고, 변환기 만들고 ... )이 후 작업은 일사천리...
'# 9) My Program(.NET)' 카테고리의 다른 글
MyCodeGen ] 그리드를 만들다!!! (1) | 2011.08.27 |
---|---|
My CodeGen ] 프로젝트 디자이너 [ 가제 ] (0) | 2011.08.25 |
나만에 개발 프레임웍 dll Helper 문서. (0) | 2010.05.12 |
드디어 내 프로그램이 완료 되었다!! (0) | 2010.03.28 |
참조경로 관하여.. (0) | 2010.03.24 |
Vs2008] 성능 카운터
카운터의 카테고리를 가져온것임.
이를 이용해 값을 쉽게 가져올 수 있음.
<<프로그램으로 카테고리의 카운터값, 인스턴스값을 추출해서 보여주는 프로그램>>
성능카운터를 이용해서 카테고리를 가져온 결과...
CategoryName="Telephony"
CategoryName="Terminal Services"
CategoryName="LogicalDisk"
CategoryName="Thread"
CategoryName="SMSvcHost 4.0.0.0"
CategoryName="SQLServer:Resource Pool Stats"
CategoryName="Job Object"
CategoryName="UDPv4"
CategoryName="UDPv6"
CategoryName="Browser"
CategoryName="SQLAgent:Jobs"
CategoryName="System"
CategoryName="Teredo Client"
CategoryName="RAS Port"
CategoryName="SQLServer:Replication Dist."
CategoryName="SQLAgent:Statistics"
CategoryName="MSDTC Bridge 3.0.0.0"
CategoryName="SQLServer:Catalog Metadata"
CategoryName="SQLServer:Buffer Partition"
CategoryName="Synchronization"
CategoryName="ICMPv6"
CategoryName="SQLServer:Backup Device"
CategoryName="Search Indexer"
CategoryName="SQLServer:Replication Agents"
CategoryName="Memory"
CategoryName=".NET CLR Networking 4.0.0.0"
CategoryName="Processor"
CategoryName="SQLServer:Replication Snapshot"
CategoryName="SQLServer:Replication Logreader"
CategoryName="SQLServer:Broker TO Statistics"
CategoryName="SQLServer:Cursor Manager by Type"
CategoryName="SQLAgent:JobSteps"
CategoryName="IPv4"
CategoryName="SQLServer:Broker Statistics"
CategoryName="Process"
CategoryName="ServiceModelEndpoint 3.0.0.0"
CategoryName="Print Queue"
CategoryName="ICMP"
CategoryName="Generic IKEv1, AuthIP, and IKEv2"
CategoryName="ReadyBoost Cache"
CategoryName="Per Processor Network Interface Card Activity"
CategoryName="USB"
CategoryName="NBT Connection"
CategoryName="SQLServer:Broker/DBM Transport"
CategoryName="IPsec IKEv2 IPv6"
CategoryName="SQLServer:Workload Group Stats"
CategoryName="IPsec IKEv2 IPv4"
CategoryName="Job Object Details"
CategoryName="SQLServer:Buffer Manager"
CategoryName="ServiceModelService 3.0.0.0"
CategoryName="SQLAgent:Alerts"
CategoryName="SQLServer:Broker Activation"
CategoryName="WFP"
CategoryName="SQLServer:Plan Cache"
CategoryName="Pacer Pipe"
CategoryName="Processor Information"
CategoryName="Paging File"
CategoryName="Power Meter"
CategoryName="Redirector"
CategoryName="SQLServer:Cursor Manager Total"
CategoryName="SQLServer:Wait Statistics"
CategoryName="IPsec AuthIP IPv4"
CategoryName="IPsec AuthIP IPv6"
CategoryName="SQLServer:Transactions"
CategoryName="PhysicalDisk"
CategoryName="TCPv6"
CategoryName="WFPv4"
CategoryName="WFPv6"
CategoryName="SQLServer:Databases"
CategoryName="SQLServer:SQL Errors"
CategoryName="Server Work Queues"
CategoryName="MSDTC Bridge 4.0.0.0"
CategoryName="Server"
CategoryName="IPsec IKEv1 IPv4"
CategoryName="Terminal Services Session"
CategoryName="IPsec IKEv1 IPv6"
CategoryName="Per Processor Network Activity Cycles"
CategoryName="Teredo Server"
CategoryName="SQLServer:Exec Statistics"
CategoryName="SQLServer:Memory Manager"
CategoryName="SQLServer:Replication Merge"
CategoryName="Windows Workflow Foundation"
CategoryName="Teredo Relay"
CategoryName="SQLServer:User Settable"
CategoryName="DTC(Distributed Transaction Coordinator)"
CategoryName=".NET Data Provider for Oracle"
CategoryName="Event Tracing for Windows"
CategoryName="RAS Total"
CategoryName="Cache"
CategoryName="Objects"
CategoryName="SQLServer:Database Mirroring"
CategoryName="SQLServer:Access Methods"
CategoryName="SMSvcHost 3.0.0.0"
CategoryName="TCPv4"
CategoryName="SQLServer:Buffer Node"
CategoryName="SQLServer:General Statistics"
CategoryName="IPv6"
CategoryName="Network Interface"
CategoryName="SQLServer:SQL Statistics"
CategoryName=".NET CLR Data"
CategoryName="SQLServer:Latches"
CategoryName="SQLServer:Deprecated Features"
CategoryName="SQLServer:CLR"
CategoryName="ServiceModelOperation 3.0.0.0"
CategoryName="SQLServer:Locks"
CategoryName=".NET CLR Networking"
CategoryName=".NET Data Provider for SqlServer"
CategoryName="IPsec Driver"
CategoryName="Event Tracing for Windows Session"
CategoryName="IPHTTPS Global"
'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글
LINQ] GroupBy (0) | 2011.10.12 |
---|---|
컨텐츠 판넬 이전/ 다음 구현.. (0) | 2011.09.14 |
vs2008] WMI 관련.. (0) | 2011.08.16 |
노트북 셋팅.. (0) | 2011.08.02 |
[LINQ] group by 여러조건 넣기. (0) | 2010.11.08 |
vs2008] WMI 관련..
WMI 로 쿼리 할수 있는 객체 정보를 볼수 있는 쿼리는 다음과 같음.
//WMI ~~
using (System.Management.ManagementObjectSearcher s = new System.Management.ManagementObjectSearcher())
{
s.Query = new System.Management.ObjectQuery(
@"SELECT * FROM Meta_Class WHERE __Class LIKE ""%Win32%"" ");
//s.Query = new System.Management.ObjectQuery(@"SELECT * FROM Win32_Process WHERE NAME = ""NateOnMain.exe"" ");
//s.Query = new System.Management.ObjectQuery("Select * from Win32_Processor");
//Win32_Processor
var k = s.Get();
foreach (var M in k)
{
foreach (var Q in M.Qualifiers)
{
string text = string.Format(
"Q}} Name:{0}, Value:{1}",
Q.Name,
Q.Value
);
this.textBox1.AppendText(text + Environment.NewLine);
}
foreach (var P in M.Properties)
{
string text = string.Format(
"P}} Name:{0}, Value:{1}",
P.Name,
P.Value
);
this.textBox1.AppendText(text + Environment.NewLine);
}
this.textBox1.AppendText(
Environment.NewLine
);
}
}
위처럼 하면 쿼리 할수 있는 객체들로 나타나고.. 이를 바탕으로 정보를 쿼리 할 수 있음.
여기서
디스크 정보를 알고 싶을때 : Win32_LogicalDisk 관련 객체를 위 쿼리결과에서 찾아보고
파라미터명으로 GetPropertyValue를 통해서 값을 취할수 있다.
s.Query = new System.Management.ObjectQuery("Select * from Win32_LogicalDisk");
var k = s.Get();
foreach (var M in k)
{
this.textBox1.AppendText("> " + M.GetPropertyValue("Caption") + Environment.NewLine);
this.textBox1.AppendText(
Environment.NewLine
);
}
> \\DOKEBI-PC\ROOT\cimv2:Win32_LogicalDisk
Q} Name:dynamic, Value:True
Q} Name:Locale, Value:1033
Q} Name:provider, Value:CIMWin32
Q} Name:SupportsUpdate, Value:True
Q} Name:UUID, Value:{8502C4B7-5FBB-11D2-AAC1-006008C78BC7}
P} Name:Access, Value:
P} Name:Availability, Value:
P} Name:BlockSize, Value:
P} Name:Caption, Value:
P} Name:Compressed, Value:
P} Name:ConfigManagerErrorCode, Value:
P} Name:ConfigManagerUserConfig, Value:
P} Name:CreationClassName, Value:
P} Name:Description, Value:
P} Name:DeviceID, Value:
P} Name:DriveType, Value:
P} Name:ErrorCleared, Value:
P} Name:ErrorDescription, Value:
P} Name:ErrorMethodology, Value:
P} Name:FileSystem, Value:
P} Name:FreeSpace, Value:
P} Name:InstallDate, Value:
P} Name:LastErrorCode, Value:
P} Name:MaximumComponentLength, Value:
P} Name:MediaType, Value:
P} Name:Name, Value:
P} Name:NumberOfBlocks, Value:
P} Name:PNPDeviceID, Value:
P} Name:PowerManagementCapabilities, Value:
P} Name:PowerManagementSupported, Value:
P} Name:ProviderName, Value:
P} Name:Purpose, Value:
P} Name:QuotasDisabled, Value:
P} Name:QuotasIncomplete, Value:
P} Name:QuotasRebuilding, Value:
P} Name:Size, Value:
P} Name:Status, Value:
P} Name:StatusInfo, Value:
P} Name:SupportsDiskQuotas, Value:
P} Name:SupportsFileBasedCompression, Value:
P} Name:SystemCreationClassName, Value:
P} Name:SystemName, Value:
P} Name:VolumeDirty, Value:
P} Name:VolumeName, Value:
P} Name:VolumeSerialNumber, Value:
'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글
컨텐츠 판넬 이전/ 다음 구현.. (0) | 2011.09.14 |
---|---|
Vs2008] 성능 카운터 (0) | 2011.08.16 |
노트북 셋팅.. (0) | 2011.08.02 |
[LINQ] group by 여러조건 넣기. (0) | 2010.11.08 |
MS-Chart Demo (0) | 2010.11.05 |
계약? ... 왠지 모르게 찜찜해...
음..
... 하긴 해야 되는데... 짐쌀까? ...
왠지모르게 성우랑 굿센이랑 나랑 꼬인것 같은 기분이 드네..
집앞 플젝으로 옮겨볼까나..?
후 ~
'--- 취미 > 생각하기' 카테고리의 다른 글
흠.. 덥다... (0) | 2012.07.29 |
---|---|
ERP 개발이 드디어 2월 29일 종료되었다. (0) | 2012.03.02 |
7월 28일 목포의 하늘 (0) | 2011.07.29 |
책 4권 구입... (0) | 2011.07.22 |
불치병 _ 사마천 (0) | 2011.06.15 |
노트북 셋팅..
Win7 으로 복구시스템을 돌려 초기상태로 복구.
VS 2008 설치
MSSQL 2008을 설치... 중 에러!!
...
설치하다보니 VS2008 SP1을 설치하라고 해서 받아서 설치... 중 에러!!
( 무한..?루프 또는 생각보다 설치시간이오래 걸려서 ... 노트북 전원 off시간은 2시간 제한 되있음 )
찾아보니... SP1을 설치할때 무한 도는 것처럼 되는것은 이전에 깔린 HotFix 문제로 이를 패치하여 제거하는 패치가 따로 있었고 이를 설치 하여 해결함.
모두 설치 완료...
'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글
Vs2008] 성능 카운터 (0) | 2011.08.16 |
---|---|
vs2008] WMI 관련.. (0) | 2011.08.16 |
[LINQ] group by 여러조건 넣기. (0) | 2010.11.08 |
MS-Chart Demo (0) | 2010.11.05 |
포스트 잇 처럼 메모하는 레이아웃!! (0) | 2010.09.30 |
ArrayList.Sort 하기...
ArrayList 에 담아 있는 데이타를 순서에 맞춰 정렬하는 부분에 대해 구현한 것임.
간단하다... 아래처럼 하면
간단히 담는놈(ArrayList)에 담겨질놈(SortunitClass)을 담아서,
정렬할 방법을 가지고 있는 놈( SortunitClassCompare )에게 넘겨준다.
// 훈스에 올라온 질문글에 대한 답글로 단 소스임.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ArrayList ar = new ArrayList();
ar.Add(new SortunitClass() { Index = 9, Data = "아홉" });
ar.Add(new SortunitClass() { Index = 3, Data = "셋" });
ar.Add(new SortunitClass() { Index = 5, Data = "다섯" });
ar.Add(new SortunitClass() { Index = 11, Data = "열하나" });
ar.Add(new SortunitClass() { Index = 1, Data = "하나" });
ar.Sort(new SortunitClassCompare());
}
}
public class SortunitClassCompare : IComparer, IComparer<SortunitClass>
{
public int Compare(SortunitClass x, SortunitClass y)
{
return x.Index.CompareTo(y.Index);
}
public int Compare(object x, object y)
{
return Compare((SortunitClass)x, (SortunitClass)y);
}
}
public struct SortunitClass
{
public int Index { get; set; }
public string Data { get; set; }
}
'# 4) .Net ( Vs 2010 ) > C#' 카테고리의 다른 글
.Net] 버튼 Pressed Event!! (0) | 2012.05.09 |
---|---|
.NET ] 멀티 랭귀지 지원 ... (0) | 2012.03.06 |
[IPC] Event 추가 ~~ (0) | 2011.05.14 |
LINQ] 로또 구하기? (1) | 2011.04.25 |
[C#]Box 그리기... (0) | 2010.11.29 |