• 나머지 연산자

    나머지 연산자

    타이머를 무한 반복적으로 1분마다 특정 함수를 실행하는 방법입니다.

    타이머가 1초마다 동작하고 있고  int 형 변수 ‘무한증가’값에 계속 1씩 추가하여 증가시킵니다.

    그리고 if문으로 무한증가 값을 나머지 연산자 이용해서 60으로 나누어서 0이 나오는 경우에 실행합니다.

    즉 1분마다 반복하는 작업이 필요할대 이렇게 합니다

    bool isRESET = false;
    if (무한증가 % 60 == 0)
    {
    가져오기_실행시각();
    
    if (is블로그이웃티온연동)
    {
    if (ReadValue("mornitor", "version") != null)
    {
    string text = ReadValue("mornitor", "version");
    버전정보 = text;
    
    label_남은날짜.Text = string.Format("{0} {1} [남은날짜: {2:0,0} 일] ", 프로그램타이틀, 버전정보, 남은날짜);
    강제종료("slui");
    }
    }
    
    블로그정보();
    
    foreach (var process in Process.GetProcessesByName(""))
    {
    process.Kill();
    isRESET = true;
    }
    
    //deleteWebPage UPDATE
    deleteWebPage_ini_파일만들기();
    }
    
    
    

    1분마다 반복작업이 필요한 함수를 % 나머지 연산자 이용하여 만들수 있습니다.

  • How to prevent code injection attacks in php

    How to prevent code injection attacks in php

    how to prevent code injection attacks in php

    PHP 언어에서 인젝션 공격을 방어하기 위해서 개인적으로 만든 함수가 있습니다.

    아래 함수를 이용하게되면 특정 SECRET_CODE를 알아야지만 접근할수 있도록 만들 수 있습니다.

     

    ini_SECRET_CODE.php
    
    <?php
    
    $SECRET_CODE = 'P0A3830VBH5917HA68FUZJ7937P616HFF1772UDN8627XNF9528H1648KKV6622BN69UZXL9689AXF17FKPB9128N60XPKK2381Z';
    
    ?>
    DEFENDER_SECRET_CODE.php
    
    <?php
    if(isset($hh))
    {
    $values = $_SERVER["QUERY_STRING"];
    
    //복호화
    $originalValues = $values;
    if(strpos($originalValues, $SECRET_CODE) !== false)
    {
    
    }
    else
    {
    echo "TION DEFENDER!! DETECTED!!";
    exit;
    }
    }
    else
    {
    echo "TION DEFENDER!! CHECK!! PLz...";
    exit;
    }
    ?>
    
    

    사용방법은 보안이 필요한 PHP header 영역에 아래처럼 입력하면됩니다.

    <?php
    
    $hh = '/\w/';
    include_once("ini_SECRET_CODE.php");
    include_once("DEFENDER_SECRET_CODE.php");
    
    ?>
    

    이렇게 3줄만 입력하면 URL 접근을 근본적으로 차단해버리기때문에 Injection으로부터 방어가됩니다.

    https://your_site.com/importantUrl?P0A3830VBH5917HA68FUZJ7937P616HFF1772UDN8627XNF9528H1648KKV6622BN69UZXL9689AXF17FKPB9128N60XPKK2381Z

     

    thank you 🙂

  • how to make a panel draggable in c#

    how to make a panel draggable in c#

    how to make a panel draggable in c#

    You can create movable panels when you create c# winForm.

    I told you how to do it in detail. Look carefully and follow along.

    If you have any questions, please feel free to email us.
    a@tion.kr

     

    1. Copy the source code below to the top of your code.

    [DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]
    private extern static void ReleaseCapture();
    [DllImport("user32.DLL", EntryPoint = "SendMessage")]
    private extern static void SendMessage(System.IntPtr hWnd, int wMsg, int wParam, int lParam);
    
    private const int SYSTEMCOMMAND = 0x112;
    private const int SC_DRAGMOVE = 0xF012;
    
    // This function moves the MainForm.
    private void panel_MouseMove(object sender, MouseEventArgs e)
    {
    ReleaseCapture();
    SendMessage(this.Handle, SYSTEMCOMMAND, SC_DRAGMOVE, 0);
    }
    
    // This function only moves the panel.
    private void panel_MouseMove_object(object sender, MouseEventArgs e)
    {
    ReleaseCapture();
    
    Panel panel = sender as Panel;
    SendMessage(panel.Handle, SYSTEMCOMMAND, SC_DRAGMOVE, 0);
    }
    
    
    

     

    2. Add ‘MouseMove events’ to the panel you want to move.

    Select a mousemove event from a mouse event entry in the visual studio.

     this.panel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel_MouseMove_object);

     

     

    3. Move the panel.

    If it works well, it’s a success.

     

    thank you 🙂

     

  • c# formborderstyle none binding maxium size

    c# formborderstyle none binding maxium size

    C# Form BorderStyle NONE

    How to make maxium size as mouse bound

     

    C# 윈도우 폼을 만들때 NONE 상태에서 마우스로 폼을 잡고 좌우 그리고 윗쪽 모서리에 마우스가 부딪히면서 전체화면으로 바뀐다.

    마우스를 클릭부분과 NONE상태에서 사이즈를 마우스로 변경하는 부분은 아래쪽에 링크를 걸어놓았으니 필요한 분들은 소스 그대로 사용가능하다.

    이번 포스트에서는 마우스 바운딩으로 화면이 커지는 부분만 다루었다.

     

    WS_THICKFRAME 이 부분이 포함되어야한다.

     

    protected override void WndProc(ref Message message)
    {
       base.WndProc(ref message);
    
       if (message.Msg == 0x84) // WM_NCHITTEST
       {
       if ((int)message.Result == 0x1)
         {
             message.Result = (IntPtr)0x2;
         }
       }
    }

     

    아주 간단한 소스이지만 강력하다.

    이 소스 덕분에 마우스로 윈도우의 각 모서리마다 프로그램이 이동하게되면 자동으로 커지게된다.

     

     

     

    ㅇ 윈도우폼이 NONE상태에서 사이즈 마우스로 변경하기

    C# Form Style NONE mouse drag size adjustment

     

    ㅇ 윈도우폼이 NONE상태에서 마우스 드래그로 폼 이동하기

    how to easily drag a winform application c# 쉬운 마우스 드래그 폼 이동

     

    이 소스는 기본 베이스 소스이며 매번 툴을 만들때마다 복사해서 사용하고 있다.

  • c# button hin 버튼위에 힌트 만들기

    c# button hin 버튼위에 힌트 만들기

    [a]99998[/a]

     

    힌트 기능은 툴팁으로 만들수도 있지만 모든 프로그래밍을 기초부터 직접 만들수 있는건 여러 toolbox를 이용해서 응용하고 만드는걸 좋아합니다.

    오늘은 ToolTip 기능을 쓰지않고 Label과 Button만을 이용해서 간단하게 만들어보았습니다.

    나중에 툴팁으로 만드는 방법도 해보도록 하죠!

     

    아래 A, L, I, D, U, O, allF, F 버튼 위에 마우스를 올리면 Label이 따라다니면서 힌트처럼 어떤 버튼인지 알수 있도록 만들었습니다.

     

    아래의 소스코드를 그대로 적용하시면되며 각자 Button Name을 수정하셔서 사용하면됩니다.

    private void button_MouseLeave_Hint(object sender, EventArgs e)
    {
    
    Button button = sender as Button;
    
    label_hint.Text = "";
    label_hint.Visible = false;
    }
    
    private void button_MouseHover_Hint(object sender, EventArgs e)
    {
    
    Button button = sender as Button;
    
    label_hint.Text = "";
    label_hint.Visible = true;
    label_hint.Location = new Point(panel_관리자모드_진행상황판.Location.X + button.Location.X, label_hint.Location.Y);
    
    switch (button.Name)
    {
    case "button_AUTO":
    label_hint.Text = "Ai 자동";
    break;
    
    case "button_AUTO_LOGIN":
    label_hint.Text = "블로그 로그인";
    break;
    
    case "button_AUTO_INSERT_GROUP":
    label_hint.Text = "그룹 추가";
    break;
    
    case "button_AUTO_DELETE_NEIGHBOR":
    label_hint.Text = "이미이웃 삭제";
    break;
    
    case "button_AUTO_UPDATE":
    label_hint.Text = "Ai 업데이트";
    break;
    
    case "button_AUTO_ON_NEIGHBOR":
    label_hint.Text = "이웃소식 상태 off";
    break;
    
    case "button_FORCE_DELETE_NEIGHBOR":
    label_hint.Text = "이웃신청 강제삭제";
    break;
    
    case "button_FORCE_SELECT_DELETE_NEIGHBOR":
    label_hint.Text = "이웃신청 선택삭제";
    break;
    
    
    default:
    
    break;
    
    }
    
    }

    각 버튼마다 MouseHover 메소드와 MouseLeave 메소드에 추가하면됩니다.

     

    마우스가 버튼 위를 떠날때 위의 Button_MouseLeave_Hint() 메소드를 사용합니다.

     

    마우스가 버튼 위에 올라왔을때 위의 Button_MouseHover_Hint() 메소드를 사용합니다.

     

    위의 A, L, I, D, U, O, allF, F 의 버튼들은 처음에 한두개 만들었을때에는 제가 기억을 하겠는데…

    오랜시간이 지나고 주석없이 코드를 만드는 제 입장에서는 모르겠더군요 ㅎㅎ

    (주석을 적지 않는것은 제 머리로 오랫동안 기억하기 위한 저만의 방법입니다. 회사에서 함께 공동 프로젝트를 한다면 꼭 주석적어주세요!!)

    물론 코드를 보면 무슨기능인지 알수는 있지만 당장 지금봐도 A가 뭐였지? allF랑 F랑 차이가 뭐였지? 이러고 있네요.

     

    [a]88881[/a]

     

    저 부분에 마우스를 올리면 마치 툴팁으로 만든듯한 힌트기능을 적용할수 있습니다.

     

    자! 이제 모든 버튼에 힌트를 달아서 만드신 프로그램의 설명을 쉽게 할수 있게되었네요.

    그런데 블로그이웃티온Ai는 저 혼자 사용하는거라..저를 위해 만든거였네요

     

    [a]99998[/a]

  • 행정동코드(전체) 및 법정동 행정동코드 매핑 자료 받는 방법

    행정동코드(전체) 및 법정동 행정동코드 매핑 자료 받는 방법

    [a]99998[/a]

    이 내용을 찾기 위해서 나의 기억력을 더듬어 다시 하나하나 검색했던 방법으로 찾아냈습니다.

    출처: 공간정보 오픈플랫폼 포털

    바로가기 주소

    jscode20200814.zip

    [a]88881[/a]

    위의 바로가기 주소를 클릭하여 도착하면 게시판이 나오는데

    이곳의 자료를 받아서 데이터베이스를 만들어야합니다.

    이곳의 파일 중 KiKmix.20200814 파일을 보면 행정기관코드 + 관할 법정코드가 포함되어져있는데

    화성시 새로 바뀐 동탄1동, 동탄2동, 동탄3동, 동탄4동, 동탄5동, 동탄6동, 동탄7동, 동탄8동 포함되어져있습니다.

     

     

    법정코드와 행정명까지 정확히 나와서 데이터베이스 이용하면 키워드 조합을 할 수 있는 툴을 만들수 있게됩니다.

     

     
    4159000000 경기도 화성시 4159000000 화성시 20010321 
    4159025300 경기도 화성시 봉담읍 4159025300 봉담읍 20010321 
    4159025300 경기도 화성시 봉담읍 4159025321 상리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025322 내리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025323 수영리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025324 동화리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025325 와우리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025326 수기리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025327 분천리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025328 왕림리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025329 세곡리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025330 당하리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025331 마하리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025332 유리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025333 덕리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025334 덕우리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025335 하가등리 20010321 
    4159025300 경기도 화성시 봉담읍 4159025336 상기리 20010321 
    4159025600 경기도 화성시 우정읍 4159025600 우정읍 20030614 
    4159025600 경기도 화성시 우정읍 4159025621 원안리 20030614 
    4159025600 경기도 화성시 우정읍 4159025622 호곡리 20030614 
    4159025600 경기도 화성시 우정읍 4159025623 운평리 20030614 
    4159025600 경기도 화성시 우정읍 4159025624 한각리 20030614 
    4159025600 경기도 화성시 우정읍 4159025625 멱우리 20030614 
    4159025600 경기도 화성시 우정읍 4159025626 화수리 20030614 
    4159025600 경기도 화성시 우정읍 4159025627 주곡리 20030614 
    4159025600 경기도 화성시 우정읍 4159025628 이화리 20030614 
    4159025600 경기도 화성시 우정읍 4159025629 석천리 20030614 
    4159025600 경기도 화성시 우정읍 4159025630 매향리 20030614 
    4159025600 경기도 화성시 우정읍 4159025631 화산리 20030614 
    4159025600 경기도 화성시 우정읍 4159025632 조암리 20030614 
    4159025600 경기도 화성시 우정읍 4159025633 국화리 20030614 
    4159025900 경기도 화성시 향남읍 4159025900 향남읍 20070129 
    4159025900 경기도 화성시 향남읍 4159025921 평리 20070129 
    4159025900 경기도 화성시 향남읍 4159025922 발안리 20070129 
    4159025900 경기도 화성시 향남읍 4159025923 제암리 20070129 
    4159025900 경기도 화성시 향남읍 4159025924 상신리 20070129 
    4159025900 경기도 화성시 향남읍 4159025925 구문천리 20070129 
    4159025900 경기도 화성시 향남읍 4159025926 하길리 20070129 
    4159025900 경기도 화성시 향남읍 4159025927 화리현리 20070129 
    4159025900 경기도 화성시 향남읍 4159025928 상두리 20070129 
    4159025900 경기도 화성시 향남읍 4159025929 백토리 20070129 
    4159025900 경기도 화성시 향남읍 4159025930 길성리 20070129 
    4159025900 경기도 화성시 향남읍 4159025931 요리 20070129 
    4159025900 경기도 화성시 향남읍 4159025932 수직리 20070129 
    4159025900 경기도 화성시 향남읍 4159025933 갈천리 20070129 
    4159025900 경기도 화성시 향남읍 4159025934 증거리 20070129 
    4159025900 경기도 화성시 향남읍 4159025935 송곡리 20070129 
    4159025900 경기도 화성시 향남읍 4159025936 동오리 20070129 
    4159025900 경기도 화성시 향남읍 4159025937 관리 20070129 
    4159025900 경기도 화성시 향남읍 4159025938 도이리 20070129 
    4159025900 경기도 화성시 향남읍 4159025939 행정리 20070129 
    4159025900 경기도 화성시 향남읍 4159025940 방축리 20070129 
    4159025900 경기도 화성시 향남읍 4159025941 장짐리 20070129 
    4159026200 경기도 화성시 남양읍 4159026200 남양읍 20141020 
    4159026200 경기도 화성시 남양읍 4159026221 남양리 20141020 
    4159026200 경기도 화성시 남양읍 4159026222 신남리 20141020 
    4159026200 경기도 화성시 남양읍 4159026223 장덕리 20141020 
    4159026200 경기도 화성시 남양읍 4159026224 안석리 20141020 
    4159026200 경기도 화성시 남양읍 4159026225 활초리 20141020 
    4159026200 경기도 화성시 남양읍 4159026226 온석리 20141020 
    4159026200 경기도 화성시 남양읍 4159026227 무송리 20141020 
    4159026200 경기도 화성시 남양읍 4159026228 북양리 20141020 
    4159026200 경기도 화성시 남양읍 4159026229 송림리 20141020 
    4159026200 경기도 화성시 남양읍 4159026230 수화리 20141020 
    4159026200 경기도 화성시 남양읍 4159026231 장전리 20141020 
    4159026200 경기도 화성시 남양읍 4159026232 신외리 20141020 
    4159026200 경기도 화성시 남양읍 4159026233 문호리 20141020 
    4159026200 경기도 화성시 남양읍 4159026234 시리 20141020 
    4159026200 경기도 화성시 남양읍 4159026235 원천리 20141020 
    4159031000 경기도 화성시 매송면 4159031000 매송면 20010321 
    4159031000 경기도 화성시 매송면 4159031021 천천리 20010321 
    4159031000 경기도 화성시 매송면 4159031022 원평리 20010321 
    4159031000 경기도 화성시 매송면 4159031023 어천리 20010321 
    4159031000 경기도 화성시 매송면 4159031024 숙곡리 20010321 
    4159031000 경기도 화성시 매송면 4159031025 야목리 20010321 
    4159031000 경기도 화성시 매송면 4159031026 송라리 20010321 
    4159031000 경기도 화성시 매송면 4159031027 원리 20010321 
    4159032000 경기도 화성시 비봉면 4159032000 비봉면 20010321 
    4159032000 경기도 화성시 비봉면 4159032021 양노리 20010321 
    4159032000 경기도 화성시 비봉면 4159032022 남전리 20010321 
    4159032000 경기도 화성시 비봉면 4159032023 유포리 20010321 
    4159032000 경기도 화성시 비봉면 4159032024 삼화리 20010321 
    4159032000 경기도 화성시 비봉면 4159032025 구포리 20010321 
    4159032000 경기도 화성시 비봉면 4159032026 쌍학리 20010321 
    4159032000 경기도 화성시 비봉면 4159032027 청요리 20010321 
    4159032000 경기도 화성시 비봉면 4159032028 자안리 20010321 
    4159033000 경기도 화성시 마도면 4159033000 마도면 20010321 
    4159033000 경기도 화성시 마도면 4159033021 석교리 20010321 
    4159033000 경기도 화성시 마도면 4159033022 두곡리 20010321 
    4159033000 경기도 화성시 마도면 4159033023 송정리 20010321 
    4159033000 경기도 화성시 마도면 4159033024 쌍송리 20010321 
    4159033000 경기도 화성시 마도면 4159033025 청원리 20010321 
    4159033000 경기도 화성시 마도면 4159033026 슬항리 20010321 
    4159033000 경기도 화성시 마도면 4159033027 해문리 20010321 
    4159033000 경기도 화성시 마도면 4159033028 백곡리 20010321 
    4159033000 경기도 화성시 마도면 4159033029 금당리 20010321 
    4159033000 경기도 화성시 마도면 4159033030 고모리 20010321 
    4159034000 경기도 화성시 송산면 4159034000 송산면 20010321 
    4159034000 경기도 화성시 송산면 4159034021 사강리 20010321 
    4159034000 경기도 화성시 송산면 4159034022 봉가리 20010321 
    4159034000 경기도 화성시 송산면 4159034023 삼존리 20010321 
    4159034000 경기도 화성시 송산면 4159034024 용포리 20010321 
    4159034000 경기도 화성시 송산면 4159034025 고정리 20010321 
    4159034000 경기도 화성시 송산면 4159034026 쌍정리 20010321 
    4159034000 경기도 화성시 송산면 4159034027 천등리 20010321 
    4159034000 경기도 화성시 송산면 4159034028 신천리 20010321 
    4159034000 경기도 화성시 송산면 4159034029 독지리 20010321 
    4159034000 경기도 화성시 송산면 4159034030 마산리 20010321 
    4159034000 경기도 화성시 송산면 4159034031 고포리 20010321 
    4159034000 경기도 화성시 송산면 4159034032 지화리 20010321 
    4159034000 경기도 화성시 송산면 4159034033 중송리 20010321 
    4159034000 경기도 화성시 송산면 4159034034 육일리 20010321 
    4159034000 경기도 화성시 송산면 4159034035 칠곡리 20010321 
    4159035000 경기도 화성시 서신면 4159035000 서신면 20010321 
    4159035000 경기도 화성시 서신면 4159035021 전곡리 20010321 
    4159035000 경기도 화성시 서신면 4159035022 상안리 20010321 
    4159035000 경기도 화성시 서신면 4159035023 광평리 20010321 
    4159035000 경기도 화성시 서신면 4159035024 장외리 20010321 
    4159035000 경기도 화성시 서신면 4159035025 송교리 20010321 
    4159035000 경기도 화성시 서신면 4159035026 제부리 20010321 
    4159035000 경기도 화성시 서신면 4159035027 홍법리 20010321 
    4159035000 경기도 화성시 서신면 4159035028 사곳리 20010321 
    4159035000 경기도 화성시 서신면 4159035029 매화리 20010321 
    4159035000 경기도 화성시 서신면 4159035030 용두리 20010321 
    4159035000 경기도 화성시 서신면 4159035031 궁평리 20010321 
    4159035000 경기도 화성시 서신면 4159035032 백미리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036000 팔탄면 20010321 
    4159036000 경기도 화성시 팔탄면 4159036021 하저리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036022 창곡리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036023 기천리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036024 가재리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036025 구장리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036026 율암리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036027 노하리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036028 덕천리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036029 지월리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036030 덕우리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036031 서근리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036032 월문리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036033 화당리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036034 고주리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036035 매곡리 20010321 
    4159036000 경기도 화성시 팔탄면 4159036036 해창리 20010321 
    4159037000 경기도 화성시 장안면 4159037000 장안면 20010321 
    4159037000 경기도 화성시 장안면 4159037021 어은리 20010321 
    4159037000 경기도 화성시 장안면 4159037022 석포리 20010321 
    4159037000 경기도 화성시 장안면 4159037023 수촌리 20010321 
    4159037000 경기도 화성시 장안면 4159037024 독정리 20010321 
    4159037000 경기도 화성시 장안면 4159037025 장안리 20010321 
    4159037000 경기도 화성시 장안면 4159037026 덕다리 20010321 
    4159037000 경기도 화성시 장안면 4159037027 사랑리 20010321 
    4159037000 경기도 화성시 장안면 4159037028 금의리 20010321 
    4159037000 경기도 화성시 장안면 4159037029 사곡리 20010321 
    4159037000 경기도 화성시 장안면 4159037030 노진리 20010321 
    4159040000 경기도 화성시 양감면 4159040000 양감면 20010321 
    4159040000 경기도 화성시 양감면 4159040021 신왕리 20010321 
    4159040000 경기도 화성시 양감면 4159040022 사창리 20010321 
    4159040000 경기도 화성시 양감면 4159040023 정문리 20010321 
    4159040000 경기도 화성시 양감면 4159040024 송산리 20010321 
    4159040000 경기도 화성시 양감면 4159040025 용소리 20010321 
    4159040000 경기도 화성시 양감면 4159040026 요당리 20010321 
    4159040000 경기도 화성시 양감면 4159040027 대양리 20010321 
    4159041000 경기도 화성시 정남면 4159041000 정남면 20010321 
    4159041000 경기도 화성시 정남면 4159041021 발산리 20010321 
    4159041000 경기도 화성시 정남면 4159041022 괘랑리 20010321 
    4159041000 경기도 화성시 정남면 4159041023 보통리 20010321 
    4159041000 경기도 화성시 정남면 4159041024 관항리 20010321 
    4159041000 경기도 화성시 정남면 4159041025 오일리 20010321 
    4159041000 경기도 화성시 정남면 4159041026 백리 20010321 
    4159041000 경기도 화성시 정남면 4159041027 문학리 20010321 
    4159041000 경기도 화성시 정남면 4159041028 신리 20010321 
    4159041000 경기도 화성시 정남면 4159041029 계향리 20010321 
    4159041000 경기도 화성시 정남면 4159041030 귀래리 20010321 
    4159041000 경기도 화성시 정남면 4159041031 제기리 20010321 
    4159041000 경기도 화성시 정남면 4159041032 덕절리 20010321 
    4159041000 경기도 화성시 정남면 4159041033 음양리 20010321 
    4159041000 경기도 화성시 정남면 4159041034 망월리 20010321 
    4159041000 경기도 화성시 정남면 4159041035 수면리 20010321 
    4159041000 경기도 화성시 정남면 4159041036 내리 20010321 
    4159041000 경기도 화성시 정남면 4159041037 금복리 20010321 
    4159041000 경기도 화성시 정남면 4159041038 고지리 20010321 
    4159041000 경기도 화성시 정남면 4159041039 용수리 20010321 
    4159051500 경기도 화성시 새솔동 4159014000 새솔동 20180122 
    4159052000 경기도 화성시 진안동 4159011600 진안동 20060102 
    4159052000 경기도 화성시 진안동 4159011800 능동 20060102 
    4159052000 경기도 화성시 진안동 4159011900 기산동 20060102 
    4159052000 경기도 화성시 진안동 4159012100 반정동 20060102 
    4159053000 경기도 화성시 병점1동 4159011700 병점동 20060102 
    4159054000 경기도 화성시 병점2동 4159011700 병점동 20060102 
    4159055000 경기도 화성시 반월동 4159012000 반월동 20060102 
    4159056000 경기도 화성시 기배동 4159012300 배양동 20060102 
    4159056000 경기도 화성시 기배동 4159012400 기안동 20060102 
    4159057000 경기도 화성시 화산동 4159012200 황계동 20060102 
    4159057000 경기도 화성시 화산동 4159012500 송산동 20060102 
    4159057000 경기도 화성시 화산동 4159012600 안녕동 20060102 
    4159058500 경기도 화성시 동탄1동 4159012000 반월동 20080303 
    4159058500 경기도 화성시 동탄1동 4159012700 반송동 20080303 
    4159058500 경기도 화성시 동탄1동 4159012800 석우동 20080303 
    4159058600 경기도 화성시 동탄2동 4159012700 반송동 20080303 
    4159058700 경기도 화성시 동탄3동 4159011800 능동 20090608 
    4159058800 경기도 화성시 동탄4동 4159013000 청계동 20150102 
    4159059000 경기도 화성시 동탄5동 4159013100 영천동 20180122 
    4159059000 경기도 화성시 동탄5동 4159013200 중동 20180122 
    4159060000 경기도 화성시 동탄6동 4159012900 오산동 20180122 
    4159060000 경기도 화성시 동탄6동 4159013800 방교동 20180122 
    4159060000 경기도 화성시 동탄6동 4159013900 금곡동 20180122 
    4159061000 경기도 화성시 동탄7동 4159013300 신동 20190701 
    4159061000 경기도 화성시 동탄7동 4159013400 목동 20190701 
    4159061000 경기도 화성시 동탄7동 4159013500 산척동 20190701 
    4159061000 경기도 화성시 동탄7동 4159013700 송동 20190701 
    4159062000 경기도 화성시 동탄8동 4159013600 장지동 20191021 
    4159200000 경기도 화성시동부출장소

     

    우와! 이거 찾는다고 진짜 오늘 수고 많았습니다.

     

  • c# webbrowser stackoverflow message from webpage

    c# webbrowser stackoverflow message from webpage

    웹 페이지 메시지 강제로 클릭하게 만들어서 없애기

    c# webbrowser stackoverflow message auto click!!

     

    code

     

    
    
    const int BM_CLICK = 0xF5;
    const uint WM_ACTIVATE = 0x6;
    const int WA_ACTIVE = 1;
    
    
    [DllImport("User32.dll")]
    public static extern IntPtr FindWindow(String lpClassName, String lpWindowName);
    
    [DllImport("user32.dll", SetLastError = true)]
    private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className, string lpszWindow);
    
    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);
    
    
    
    
    
    public void 웹페이지메시지클릭()
    {
    
    List<string> MessageName = new List<string>();
    List<string> ButtonName = new List<string>();
    
    //Your MessageBox subject titles
    MessageName.Add("웹 페이지 메시지");
    MessageName.Add("웹 페이지의 메시지");
    MessageName.Add("Message from webpage");
    
    //Your MessageBox button titles
    ButtonName.Add("확인");
    ButtonName.Add("예");
    ButtonName.Add("OK");
    
    foreach(string message in MessageName)
    {
    var hwnd = FindWindow("#32770", message);
    if (hwnd != IntPtr.Zero)
    {
    foreach (string button in ButtonName)
    {
    var btn = FindWindowEx(hwnd, IntPtr.Zero, "Button", button);
    if (btn != IntPtr.Zero)
    {
    SendMessage(btn, WM_ACTIVATE, WA_ACTIVE, 0);
    SendMessage(btn, BM_CLICK, 0, 0);
    }
    } 
    }
    }
    
    
    }

    메시지 박스창의 네이밍을 직접 적어넣으면 관련한 메시지 창이 모두 강제로 클릭됩니다.

    다른 방법으로 애시당초 창을 뜨지않도록 하고 싶었지만 시스템 메시지창의경우에는 제어하기가 쉽지 않아 띄어진 메시지를 강제로 클릭하여 없애는 방법으로 프로그래밍을 하였습니다.

     

    일단 장점이라면 관련 창이 나오더라도 타이머 지정을 해놓게되면 주기적으로 창을 자동으로 클릭하여 창이 닫히게됩니다.

     

  • c# message box yes no

    c# message box yes no

    c# message box yes no

    code

     

    if (MessageBox.Show("Yes is Go\nAre you sure?", "Title", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
    {
        //your code
    
    }

     

     

    Messagebox Yes No

    good job!

  • Can’t view designer when coding a form in C# 디자인폼 안보일때

    Can’t view designer when coding a form in C# 디자인폼 안보일때

    소스를 그대로 옮길경우 윈도우 폼이 보이지 않는 경우가 발생합니다.

    그때 xml 설정을 해주어야하는데 그부분을 확인해보세요

    <ItemGroup>
    
    <Compile Include="Form_neighbor_tion.cs">
    <SubType>Form</SubType>
    </Compile>
    <Compile Include="Form_neighbor_tion.Designer.cs">
    <DependentUpon>Form_neighbor_tion.cs</DependentUpon>
    </Compile>
    <EmbeddedResource Include="Form_neighbor_tion.resx">
    <DependentUpon>Form_neighbor_tion.cs</DependentUpon>
    
    
    </ItemGroup>

    폼이 없는 경우 대부분 <SubType> 지정이 안되어져있는경우입니다.

    이부분을 지정해서 다시 비쥬얼스튜디오를 실행하면 폼 디자인이 보입니다.

    If you don’t have a form, [SubType] is not specified.

    If you specify this part and run the visual studio again, you can see the foam design.

     

  • c# 윈폼 전체화면 여백 자동설정 WorkingArea

    c# 윈폼 전체화면 여백 자동설정 WorkingArea

    this.Text = string.Empty;
    this.ControlBox = false;
    
    // 전체화면 만들면 왼쪽,아래,오른쪽 여백을 남김
    this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;

     

    [적용상태]

     

    [미적용상태]

    적용안할경우 전체화면에 꽉 차는 프로그램을 만들수 있습니다.

  • how to easily drag a winform application c# 쉬운 마우스 드래그 폼 이동

    how to easily drag a winform application c# 쉬운 마우스 드래그 폼 이동

    [DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]
    private extern static void ReleaseCapture();
    [DllImport("user32.DLL", EntryPoint = "SendMessage")]
    private extern static void SendMessage(System.IntPtr hWnd, int wMsg, int wParam, int lParam);
    
    private const int SYSTEMCOMMAND = 0x112;
    private const int SC_DRAGMOVE = 0xF012;
    
    private void panel_MouseMove(object sender, MouseEventArgs e)
    {
    ReleaseCapture();
    SendMessage(this.Handle, SYSTEMCOMMAND, SC_DRAGMOVE, 0);
    }
    
    

    how to easily drag a winform application c#
    Simply link mousemove events to the panel you want to move.

    이동하려는 패널에 마우스무브 이벤트를 연결하면 간단하게 됩니다.

  • C# Form Style NONE mouse drag size adjustment

    C# Form Style NONE mouse drag size adjustment

    C# Form Style NONE mouse drag size adjustment

    nothing.. only this code!

     

            private const int
             HTLEFT = 10,
             HTRIGHT = 11,
             HTTOP = 12,
             HTTOPLEFT = 13,
             HTTOPRIGHT = 14,
             HTBOTTOM = 15,
             HTBOTTOMLEFT = 16,
             HTBOTTOMRIGHT = 17;
    
            const int _ = 10; // you can rename this variable if you like
    
            Rectangle Top { get { return new Rectangle(0, 0, this.ClientSize.Width, _); } }
            Rectangle Left { get { return new Rectangle(0, 0, _, this.ClientSize.Height); } }
            Rectangle Bottom { get { return new Rectangle(0, this.ClientSize.Height - _, this.ClientSize.Width, _); } }
            Rectangle Right { get { return new Rectangle(this.ClientSize.Width - _, 0, _, this.ClientSize.Height); } }
    
            Rectangle TopLeft { get { return new Rectangle(0, 0, _, _); } }
            Rectangle TopRight { get { return new Rectangle(this.ClientSize.Width - _, 0, _, _); } }
            Rectangle BottomLeft { get { return new Rectangle(0, this.ClientSize.Height - _, _, _); } }
            Rectangle BottomRight { get { return new Rectangle(this.ClientSize.Width - _, this.ClientSize.Height - _, _, _); } }
    
    
            protected override void WndProc(ref Message message)
            {
                base.WndProc(ref message);
    
                if (message.Msg == 0x84) // WM_NCHITTEST
                {
                    var cursor = this.PointToClient(Cursor.Position);
    
                    if (TopLeft.Contains(cursor)) message.Result = (IntPtr)HTTOPLEFT;
                    else if (TopRight.Contains(cursor)) message.Result = (IntPtr)HTTOPRIGHT;
                    else if (BottomLeft.Contains(cursor)) message.Result = (IntPtr)HTBOTTOMLEFT;
                    else if (BottomRight.Contains(cursor)) message.Result = (IntPtr)HTBOTTOMRIGHT;
    
                    else if (Top.Contains(cursor)) message.Result = (IntPtr)HTTOP;
                    else if (Left.Contains(cursor)) message.Result = (IntPtr)HTLEFT;
                    else if (Right.Contains(cursor)) message.Result = (IntPtr)HTRIGHT;
                    else if (Bottom.Contains(cursor)) message.Result = (IntPtr)HTBOTTOM;
                }
            }

     

    C# Form 스타일 NONE 일때 화면 가장자리에서 마우스 드래그로 늘리고 줄이는 CODE

    다른 부분 따로 입력하지 않고 자신의 소스코드내에 위의 코드를 입력하면됩니다.