static class Program
    {
        /// <summary>
        /// 해당 응용 프로그램의 주 진입점입니다.
        /// </summary>
        [STAThread]
        static void Main()

        {

           bool isCreatedNew;
            System.Threading.Mutex mutex = new System.Threading.Mutex(true, Application.ProductName, out isCreatedNew);

            if (isCreatedNew)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new FormMain());
                mutex.ReleaseMutex();
            }
        }
      }

 

'.Net > Winform' 카테고리의 다른 글

C# 리소스 언어 설정  (0) 2012.08.22
C# DirectX.AudioVideoPlayback 을 이용한 동영상 재생  (11) 2012.08.21
C# DragDrop & DragEnter  (0) 2012.08.10
C# 디버깅 파일인지 아닌지 체크  (0) 2012.08.10
C# TextBox 실수만 입력받기  (0) 2012.08.08

네이버 지식인 알리미 프로그램입니다.

컴퓨터하다가 관심분야에 새질문이 올라왔는지 안올라왔는지

일일이 수동으로 찾다보니까 귀찮아져서 구현하였습니다ㅡㅡ;

혹시나 문제가 될까바 네이버에 문의하였는데 계속 처리중이네요..ㅡㅡ;

 

프로그램 실행시 닷넷프레임워크2.0 설치가 되어있어야합니다^^

 

 

 

네이버지식인알리미_Setup_v1.0.0.2.exe

 

 

 

 

일정마다 주기적으로 네이버 페이지에 요청을 보내는 작업이라

시간 설정 및 전체보기에 제한을 두었습니다.

2분에 한번 새 질문이 있나 확인할 것이고

전체보기는 3페이지까지 확인하실 수 있습니다.

 

 

네이버에 올린 질문에 대한 답변이 좋지않다면

 글은 삭제 할 것입니다.

현재 고객센터 문의 중....

 

 

 

 

 

 

 

 

 

 

 

 

 

프로그램 사용법에 대해서 설명드리겠습니다.

 

 

[이미지1] 프로그램 실행시 화면

 

 

프로그램 실행시 최초 화면입니다. 제가 예제로 C#이라는 분야와 Dir ID 1040102값을 추가하여놓았습니다.

Dir ID는 카테고리의 ID로써 아래의 이미지를 확인하시고 추가해주시면 되겠습니다.

 

 

 

 

 

[이미지 2] DirID 확인 방법 - 웹프로그래밍 dirID 확인

 

웹프로그래밍은 dirID가 10402이네요

이런식으로 관심분야를 등록하시면 됩니다.

잘 등록되었는지 마우스 오른쪽을 누르시고 바로가기를 눌러보세요.

관심분야로 이동합니다.

 

 

 

[이미지3] 관심분야 추가된 화면

 

자, 알림 받을 분야를 체크하시면

설정-갱신속도에서 설정하신 시간마다 새로운 질문을 확인하여

오른쪽아래의 아래와 같은 알림창을 띄워줍니다.

저는 테스트를 위해 새로운 질문글이 가장 많이 올라오게되는

dirID가 1인 모든질문 분야를 추가하였습니다.

 

 

 

 

[이미지4] 모든질문 분야에 네이버 지식인 질문이 등록된 화면

 

알림에 체크한 모든질문 분야에

네이버 지식인 질문이 등록 되었다는 것을 알리미가 알려줍니다.

바로가기 버튼을 눌를시 해당 질문글로 이동됩니다.

 

앗 화장실 간 사이에 지식인에 질문이 등록되면 어떻게하냐구요!?

확인하지 않은 지식글이 있다면 지속적으로 메세지를 띄웁니다.

메세지창 보기싫으시면 질문글을 읽으시거나

보류로 변경해주시면 된답니다-.-ㅎ

 

 

 

 

 

 

 

[이미지5] 확인하지 않은 질문이 32개나 있네요!

 

 

 

 

 

 

[이미지6] 질문 리스트 확인하기

 

자 본격적으로 질문들을 확인할 차례입니다.

모든 질문보기는 관심분야의

지식인에 올라와있는 모든 지식들을 확인하시는겁니다.

헉...너무 많지않나요?!

맞습니다. 엄청나게 많습니다.

설정-상세설정에서 최대 페이지 개수를 설정 하실 수 있었지만...

막았습니다.......T_T

네이버 고객센터의 답변이 오지 않아서........T__________T

100개의 페이지를 가져오려면 엄청 오래걸리겠죠!

그래서 3페이지의 제한을 두었습니다 T_T

 

 

 

 

 

 

 

 

 

[이미지7] 가져올 최대 Page개수의 의미

 

 

 

 

 

 

 

 

 

 

 

 

 

[이미지8] 모든 질문보기 화면

 

모든 질문 내용의 모습입니다.

마우스 오른쪽 마우스 클릭 후 바로가기 클릭시 페이지로 이동됩니다.

갱신 클릭시 최신 데이터로 갱신됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

[이미지9] 최신 질문보기 화면 

 

 

최신 질문 내용의 모습입니다.

마우스 오른쪽 마우스 클릭 후 바로가기 클릭시 페이지로 이동됩니다.

갱신 클릭시 최신 데이터로 갱신됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

[이미지10] 미확인 질문보기 화면

 

 

미확인 질문 내용의 모습입니다.

마우스 오른쪽 마우스 클릭 후 바로가기 클릭시 페이지로 이동되며

상태가 확인으로 변경됩니다.

갱신시 확인된 데이터는 제거됩니다.

보류는 지금은 바쁘니까 나중에 확인하기 위한 작업입니다.

 

보류나 확인 상태가 되면

미확인 데이터 알림이 새로운 질문글이 등록할때까지

뜨지 않습니다^^

 

 

갱신 클릭시 최신 데이터로 갱신됩니다.

 

 

 

 

 

[이미지11] 알리미 숨기기 기능

 

 

 

 

 

 

 

 

'프로그램 > 네이버지식인알리미' 카테고리의 다른 글

네이버 지식인 알리미 v1.2.0.0  (4) 2012.12.28
        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            string[] datas = (string[])e.Data.GetData(DataFormats.FileDrop);            
        }

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = e.Data.GetDataPresent(DataFormats.FileDrop) ? DragDropEffects.Copy : DragDropEffects.None;
        }


 

        private bool IsAssemblyDebugBuild(string filepath) 
        {
            return IsAssemblyDebugBuild(System.Reflection.Assembly.LoadFile(System.IO.Path.GetFullPath(filepath))); 
        }
        private bool IsAssemblyDebugBuild(System.Reflection.Assembly assembly) 
        {
            foreach (var attribute in assembly.GetCustomAttributes(false)) 
            {
                var debuggableAttribute = attribute as System.Diagnostics.DebuggableAttribute; 
                if (debuggableAttribute != null) 
                {
                    return debuggableAttribute.IsJITTrackingEnabled;
                } 
            } 
            return false; 
        }

 

'.Net > Winform' 카테고리의 다른 글

C# 중복 실행 방지 Mutex  (0) 2012.08.14
C# DragDrop & DragEnter  (0) 2012.08.10
C# TextBox 실수만 입력받기  (0) 2012.08.08
C# Winform에서 Cookie 설정 및 가져오기  (0) 2012.08.07
C# 알림창 폼  (0) 2012.08.07
        [NonSerialized]
        public event SeletecdSpeedChangeEventHandler SelectedSpeedChanged;

위와 같이 진행 했을 시 'NonSerialized' 특성은 이 선언 형식에서 사용할 수 없습니다. 'field' 선언에서만 사용할 수 있습니다. 라는 오류가 뜨게 됩니다.

 

 

아래와 같이 진행하면 됩니다.

 

 

 

        [field:NonSerialized]
        public event SeletecdSpeedChangeEventHandler SelectedSpeedChanged;

 

'.Net > 에러' 카테고리의 다른 글

[Visual Studio 2013] No EditorOptionDefinition Export Found Error  (0) 2014.08.18
C# WebClient 사용시 404 에러  (0) 2012.08.09

http://convertico.org/

 

 

 

 

'유용한 프로그램' 카테고리의 다른 글

토렌트3.0  (0) 2013.02.09
클래스 다이어그램 자동 생성 프로그램  (2) 2013.01.22
순서도(Flow Chart) SmartDraw  (0) 2012.07.12

C# WebClient를 이용한 자동 업데이트 프로그램을 사용 중 특정 확장자에서 서버에 분명 파일이 존재하는데 파일이 없다면서 404 에러가 나타난다.

열심히 구글링 결과 파일이 서버의 IIS 관리자에서 문제되는 확장자의 MIME 형식을 추가해주면 해결된다.

 

 

 

 

 

private void textBox_content_KeyPress(object sender, KeyPressEventArgs e) { int keyCode = (int)e.KeyChar; //46은 점 ( . ) if ((keyCode < 48 || keyCode > 57) && keyCode != 8 && keyCode!=46) { e.Handled = true; } if (keyCode == 46) { //null 일경우 || 이미 .이 있는경우 if (string.IsNullOrEmpty(this.textBox_content.Text) || this.textBox_content.Text.Contains('.') == true) { e.Handled = true; } } }


 

            string id = "id";
            string pw = "pw";
            string name = "테스트";



            //쿠키 값 설정
            string value = string.Format("{0}_{1}_{2}_{3}", DateTime.Now.ToString(), id, pw, name);


            //Cookie 추가
            string url = "http://localhost/";
            string cookieName = "MyTestCookie";

            bool state = NativeInternet.InternetSetCookie(url, cookieName, value);
            state = NativeInternet.InternetSetCookie(url, cookieName, value);


            //Cookie 가져오기
            StringBuilder sbValue = new StringBuilder();
            //sbValue.Capacity 초기 값 : 16
            int valueSize = 0;

            //처음 ManageCookie.InternetGetCookie 메서드를 호출 할 때에는 Value의 Size를 가져옵니다.

            state = NativeInternet.InternetGetCookie(url, cookieName, sbValue, ref valueSize);
            if (state == false)
            {
                //사이즈를 다시 조정합니다.
                sbValue = new StringBuilder(valueSize);
                //얻은 Value의 Size를 이용해서 다시한번 호출합니다.
                state = NativeInternet.InternetGetCookie(url, cookieName, sbValue, ref valueSize);
            }

 

출처 : http://crynut84.tistory.com/47

 

 

 

 

 

 

 

  public partial class NotifyForm : Form
    {

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern int SystemParametersInfo(int uAction, int uParam, out RECT lpvParam, int fuWinIni);

        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int left;
            public int top;
            public int right;
            public int bottom;
        }


        public NotifyForm()
        {
            InitializeComponent();
            this.TopLevel = true;  
        }

        private void SetFormLocationToTray(Form form)
        {
            int SPI_GETWORKAREA = 0x0030; //작업영역을 알아오는 Flag
            RECT r = new RECT();
            SystemParametersInfo(SPI_GETWORKAREA, 0, out r, 0);
            Size s = form.Size;
            Point p = new Point(r.right - s.Width, r.bottom - s.Height);
            form.Location = p;
        }

        private void NotifyForm_Load(object sender, EventArgs e)
        {
            SetFormLocationToTray(this);
        }
    }

+ Recent posts