[C#] Using HTML Agility pack

CSharp
C# Using HTML Agility pack ExpressionDescriptionnodenameSelects all child nodes of the named node지정된 노드의 모든 자식 노드를 선택합니다/Selects from the root node루트 노드로부터 선택//Selects nodes in the document from the current node that match the selection no matter where they are상관없이 그들이 어디에 선택과 일치하는 현재 노드에서 문서의 노드를 선택하지 않습니다.Selects the current node현재 노드를 선택합니다..Selects the parent of the current node현재 노드의 부모를 선택@Selects attributes속성을 선택합니다 간단하게 설명을 기록하였습니다.매번 찾기보다는 블로그에 남겨 놓기 위해서 입니다.
Read More

[C#] 내장 IE 랜더링시 a 태그 새창을 현재창으로 하기

CSharp
[C#] 내장 IE 랜더링시 a 태그 새창을 현재창으로 하기 webbrowser을 이용할 경우에 HTML 태그에서 A 링크가 새창을 바로면은 바로 윈도우 기본 브라우저로 띄워 버립니다.이렇게 될 경우에 원하는 자료를 다시 받으려면은 URL를 다시 이동하거나 해야 하는데 그냥 새창 필요없이 바로 현재창의 페이지를 변경해서 나오도록 하는것입니다. // 새창을 내부에서 처리 하기 private void webBrowser1_NewWindow(object sender, CancelEventArgs e) { string newUrl = webBrowser1.StatusText.ToString(); webBrowser1.Navigate(newUrl ); e.Cancel = true; }
Read More

[C#] 모니터 off 하기

CSharp
[C#] 모니터 off 하기 public partial class MainForm : Form { const int WM_SYSCOMMAND = 0x0112; const int SC_MONITORPOWER = 0xF170; const int MONITOR_ON = -1; const int MONITOR_OFF = 2; const int MONITOR_STANBY = 1; [DllImport("user32.dll")] private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam); public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { Console.WriteLine(this.Handle.ToInt32()); int ScreenHeight = 0; System.Windows.Forms.Screen[] screens = System.Windows.Forms.Screen.AllScreens; if (screens.Length >= 1) { foreach (Screen screen in screens) { if (screen.Primary) { ScreenHeight = screen.Bounds.Height; Console.WriteLine(ScreenHeight); } } } else { ScreenHeight = screens[0].Bounds.Height; } } // 모니터 Off private void button1_Click(object sender, EventArgs e) { SendMessage(this.Handle.ToInt32(), WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF); } }
Read More

[C#] 내장 IE 랜더링 버전 변경하기

프로그램
[C#] 내장 IE 랜더링 버전 변경하기 #32bit [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] # 64bit [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION] 위에 해당 하는 레지스트리 위체어서 DWORD값을 추가 하면 됩니다. 예제 그림이 없어도 보시면은 아마 쉽게 하실수 있을 것입니다. 바로가기 : https://msdn.microsoft.com/ko-kr/library/ee330730(v=vs.85).aspx#browser_emulation Value Description 11001 (0x2AF9 Internet Explorer 11. Webpages are displayed in IE11 edge mode, regardless of the declared !DOCTYPE directive. Failing todeclare a !DOCTYPE directive causes the page to load in Quirks. 11000 (0x2AF8) IE11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 edge mode. Default value for IE11. 10001 (0x2711) Internet Explorer 10. Webpages are displayed in IE10 Standards mode, regardless of the !DOCTYPE directive. 10000 (0x02710) Internet Explorer 10. Webpages containing standards-based !DOCTYPE directives are displayed in IE10 Standards mode. Default value for Internet Explorer 10. 9999 (0x270F) Windows Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the declared !DOCTYPE directive. Failing…
Read More

[C#] webBrowser 에 HTML 또는 URL로 바로 가기

CSharp
[C#] webBrowser 에 HTML 또는 URL로 바로 가기 로컬 파일을 읽어 들여서 웹브라우저에 바로 표시 할 수 있습니다.알면 편하고 빠르게 할 수 있지만 모르면은 헤매일수 있기에 간단히 기록만 해 둡니다. # 소스파일로 표시하기webBrowser1.DocumentText = HTMLSource; #URL 로 가기webBrowser1.Navigate(URL);
Read More
[C#] herbalife 스크래핑

[C#] herbalife 스크래핑

CSharp
[C#] herbalife 스크래핑 로그인 처리가 힘들어서 C#으로 제작하게 되었습니다. 제작 : C# .NetFrameWork 4.5 사용 : Windows10(x86), Windows7(x86) 사용 라이브러리 : HtmlAgilityPack(https://htmlagilitypack.codeplex.com/) 1. 로그인 처리를 하고 원하는 페이지로 이동을 합니다. 이곳에서 현재 URL값과 요청한 URL 정보가 동일할 경우에만 작동을 하도록 하였습니다. 2. 카테고리를 가져와서 링크주소를 획득하고 List로 가지고 있습니다. 이때 카테고리 링크만 가지고 다시 한번더 페이지를 접속해서 각 상품의 URL 주소를 획득 합니다. 3. 각 페이지에 접속해서 원하는 정보를 추출하여서 가공후 DB에 저장을 합니다. 각 페이지 접속을 하기 때문에 숫자가 많을수로 대기 시작이 길어 집니다. 이 단계에서는 필요한 이미지 파일로 링크를 추출 하여서 저장을 합니다. 개인정보가 나오는 부분은 모두 캡쳐 하지 않았습니다. 해당 페이지의 제품을 검색하고 각 제품코드 및 설명 이미지를 가져와서 개인 DB화 시키는 작업을 한것에 대해서 간단히 캡쳐 해 놓은 것입니다.
Read More

[C#] winform 단축키(핫키) 설정

CSharp
[C#] winform 단축키(핫키) 설정 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { Keys key = keyData & ~(Keys.Shift | Keys.Control); switch (key) { case Keys.F: if ((keyData & Keys.Control) != 0) { MessageBox.Show("Ctrl+F"); return true; } break; case Keys.F5: MessageBox.Show("f5"); return true; break; } return base.ProcessCmdKey(ref msg, keyData); }
Read More

[C#] DateTime 표현 예제

CSharp
  형식 문자열설명 dd한 자리 또는 두 자리 날짜입니다. dd두 자리 날짜입니다. 한 자리로 된 날짜 값 앞에는 0이 옵니다. ddd세 문자로 된 요일 약어입니다. dddd요일의 전체 이름입니다. h12시간 형식의 한 자리 또는 두 자리 시간입니다. hh12시간 형식의 두 자리 시간입니다. 한 자리로 된 값 앞에는 0이 옵니다. H24시간 형식의 한 자리 또는 두 자리 시간입니다. HH24시간 형식의 두 자리 시간입니다. 한 자리로 된 값 앞에는 0이 옵니다. m한 자리 또는 두 자리 분입니다. mm두 자리 분입니다. 한 자리로 된 값 앞에는 0이 옵니다. M달을 나타내는 한 자리 또는 두 자리 숫자입니다. MM달을 나타내는 두 자리 숫자입니다. 한 자리로 된 값 앞에는 0이 옵니다. MMM세 문자로 된 달의 약어입니다. MMMM달의 전체 이름입니다. s한 자리 또는 두 자리 초입니다. ss두 자리 초입니다. 한 자리로 된 값 앞에는 0이 옵니다. t한 문자로 된 A.M./P.M. 약어이며, A.M.은 "A"로 표시됩니다. tt두 문자로 된 A.M./P.M. 약어이며, A.M.은 "AM"으로 표시됩니다. y한 자리 연도이며, 2001은 "1"로…
Read More
[c#] 로컬 네트워크 어뎁터 IPv4 정보 획득

[c#] 로컬 네트워크 어뎁터 IPv4 정보 획득

프로그램
[c#] 로컬 네트워크 어뎁터 IPv4 정보 획득 각자 컴퓨터의 IP 세팅을 처음 하거나 세팅이후에 변경해야 될 값이 있어서 네트워크 정보에 들어가서 IP 정보를 수정해야 될 일이 있었는데 모두에게 반복된 이야기나 혹은 들어가는 순서를 PPT등을 제작을 해야 하는 불편함이 있어서 어려움이 있었습니다. 그래서 현재 세팅되어 있는 IP정보를 가져와서 IP, 서브넷마스크, 게이트웨이, DNS1, DNS2 번등의 정보를 모두 가져와서 쉽게 입력하고 많은 항목을 꼭 변경되야 될 항목만으로 제한하여서 프로그램을 주고 이 부분만 변경을 하고 적용 누르면 된다고 하니 모두들 편하게 할 수 있었습니다. 해당 프로그램을 만들던중 일단 기존 세팅된 정보를 가져오는 부분입니다.※ 네트워크 어뎁터(랜카드)가 1개라는 가정하에서 소스를 변경하였습니다. #정보 획득 부분 foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) { //Console.WriteLine(ni.Name); // Only display informatin for interfaces that support IPv4. if (ni.Supports(NetworkInterfaceComponent.IPv4) == true) { foreach (GatewayIPAddressInformation gipi in ni.GetIPProperties().GatewayAddresses) { string GeteWay = Convert.ToString(gipi.Address); MainForm.MainApp.InvokeText(MainApp.txtBox4,…
Read More
Subscribe 설명서

Subscribe 설명서

프로그램
Subscribe 설명서 RSS를 구독하는것을 만들고 싶어서 이것 저것 하다가 뭔가 이상하게 방향이 잡혀 나갔지만은 그냥 기록을 해 놓으려고 한다. 분류도 나만의 분류를 만들어서 만들어서 사용을 할 수 있고, RSS 주소를 등록, 필요한 키워드를 등록해서 분류해 놓을 수 있다. 개발환경 : Windows10, .Net FrameWork 4.5 언어 : c# 테스트 환경 : Windows10, Windows7 1. 서버 구성 간단한 원리 입니다. PHP로 DB에 저장된 URL에 따라서 사이트에 접속하여서 해당 사이트 HTML소스를 가지고 옵니다. 이후에 HTML 파싱 작업을 해서 원하는 정보를 추출해서 DB에 저장을 해 놓으면은 사용자 프로그램이 특정 주소로 XML 요청을 하면은 해당 값을 찾아서 리턴을 해 주는것입니다. 사용자단에서 모두 처리해도 되지만은 일정한 시간마다 수집하고 어디서나 동일한 정보를 위해서 중간에 서버를 두고 서버에서 수집하고 있습니다. 2. 사용자 프로그램 실행 화면 #20150919   - 2주일간 RSS 수집된 내역을 요일별로 볼 수 있습니다.( 날짜는 원하는…
Read More

[c#] 어셈블리 버전 정보 확인

프로그램
using System.Reflection; Assembly assemObj = Assembly.GetExecutingAssembly(); Version v = assemObj.GetName().Version; // 현재 실행되는 어셈블리..dll의 버전 가져오기 int majorV = v.Major; // 주버전 int minorV = v.Minor; // 부버전 int buildV = v.Build; // 빌드번호 int revisionV = v.Revision; // 수정번호
Read More