메뉴 닫기

C# 윈도우 핸들

C# 핸들값찾기
C#
2012.03.01 03:59
1. API함수를 이용한 핸들찾기
핸들을 찾기위해 알아야 할 기초적 API함수들을 알아 보도록 하겠다.
1_1.FindWindow()
가장 최상위의 핸들을 찾는 함수이며 인자값으로 클래스이름과 캡션값을 넘겨준다.
C#에서의 선언하기
[DllImport(“user32.dll”)] public  static extern int  FindWindow(string  lpClassName,string  lpWindowName);
첫번째 인자값은 찾고자하는 클래스이름,두번째는 캡션값을 넘겨준다.
둘중 하나의 값만 주어도 찾을수 있지만 캡션명이 똑같은 프로그램이 실행중이라면,
클래스명이 필요할것이다.리턴값은 그 캡션명과 클래스 이름을 가지고 있는 핸들값이다.
이런 캡션명과 클래스명은 spy++프로그램을 통해서 알수 있다.
하지만 이함수는 단지 한프로그램의 최상위 핸들 값만 리턴해줄 뿐이고,
자식들의 핸들값들은 FindWindowEX()라는 함수를 통해 알 수가 있다.
참고자료:ms-help://MS.VSCC/MS.MSDNVS.1042/winui/windows_03sn.htm
1_2.FindWindowEX()
2017. 10. 16. Ryu School :: C# 핸들값찾기
http://ryuschool.tistory.com/entry/C-%ED%95%B8%EB%93%A4%EA%B0%92%EC%B0%BE%EA%B8%B0 2/16
인자값으로 받은 핸들의 자식 핸들을 찾는 클래스이다.
[C#에서의 선언] [DllImport(“user32.dll”)] public  static extern int  FindWindowEx(int  hWnd1,int  hWnd2,string  lpsz1,string  lpsz2);
첫번째 인자값은 바로 위의 부모값을 주고, 두번째 인자값은 0이나 null을 주자.
세번째와 네번째 인자값에는 FindWindow와 마찬가지로 클래스명과 캡션명을 넘겨주면
첫번째 인자로 넘겨주었던 핸들자식중에 세번째 네번째 주었던 인자값의 해당하는 핸들을 찾는것이다.
만약 핸들을 찾으면 핸들값을 리턴해주고 그렇지 않으면 0을 리턴한다.
참고자료:ms-help://MS.VSCC/MS.MSDNVS.1042/winui/windows_1zjs.htm
2. SPY++따라하기
이 두개의 함수만으로도 일단 왠만한 핸들은 다 접근할수 있을거라 생각한다.
그렇다면 이제 SPY++을 통해 캡션명과 클래스이름을 알아 보는 방법을 보자.
[그림1]SPY++의 실행
2017. 10. 16. Ryu School :: C# 핸들값찾기
http://ryuschool.tistory.com/entry/C-%ED%95%B8%EB%93%A4%EA%B0%92%EC%B0%BE%EA%B8%B0 3/16
[그림2] 기본 메뉴의 설명
[그림3] SPY++캡션명과 클래스명
2017. 10. 16. Ryu School :: C# 핸들값찾기
http://ryuschool.tistory.com/entry/C-%ED%95%B8%EB%93%A4%EA%B0%92%EC%B0%BE%EA%B8%B0 4/16
[그림4] SPY++의 핸들 속성
이 SPY++을 주물럭 주물럭 하다보면 쉽게 익숙해 질것이다.
그렇다면 이제 한번 예제를 통해서 핸들값을 가져오는 연습을 한번 해보자
아래의 예제는 위에 [그림4] 에 나오는 필자의 msn메신저5.0버전을
FindWindow와 FindWindowEX를 통해서 한번 접근해 본것이다.
3. 핸들값 찾기 예제(ConSole Program)
using System;
using System.Runtime.InteropServices; //추가.. namespace _1_1Con
{
class Class1
{
//API함수를 선언한다.
[DllImport(“user32.dll”)] public  static extern int  FindWindow(string  lpClassName,string
lpWindowName);
2017. 10. 16. Ryu School :: C# 핸들값찾기
http://ryuschool.tistory.com/entry/C-%ED%95%B8%EB%93%A4%EA%B0%92%EC%B0%BE%EA%B8%B0 5/16
[DllImport(“user32.dll”)] public  static extern int  FindWindowEx(int  hWnd1,int
hWnd2,string  lpsz1,string  lpsz2);
[STAThread] static void Main(string[] args)
{
Console.WriteLine(“메신저의 핸들값은?”);
Console.WriteLine(“캡션값만 입력한 핸들값 :
“+FindWindow(null,”MSN Messenger”).ToString());
Console.WriteLine(“클래스명만 입력한 핸들값
:”+FindWindow(“MSNMSBLClass”,null).ToString());
//클래스명과 핸들값둘중 하나만 입력해도 값은 똑같이 리턴이 된
다.
//그렇다면 이제 부모핸들값을들 저장시키면서 한번 그림 4에 있는
대화상대 추가 핸들값을 알아내보자.             int
hw1=FindWindow(null,”MSN Messenger”);
Console.WriteLine(“핸들값1:”+hw1.ToString());
int hw2=FindWindowEx(hw1,0,”PluginHostClass”,null);
Console.WriteLine(“핸들값2:”+hw2.ToString());
int hw3=FindWindowEx(hw2,0,”MSNMSBLGeneric”,null);
Console.WriteLine(“핸들값3:”+hw3.ToString());
//여기까지 눈으로 내려온것이 확인이 되었다면 밑에 클래스 명들
을 살펴보자.
//그러면 분면 클래스 이름 두개가 같은것이 확인이 될것이다.그러
기에 반드시 여기에는 캡션명을 같이 해주어야한다.
int hw4=FindWindowEx(hw3,0,”MSNMSBLGeneric”,”Task List”);
Console.WriteLine(“핸들값4:”+hw4.ToString());
int hw5=FindWindowEx(hw4,0,”Button”,”전화 걸기”);
Console.WriteLine(“핸들값5:”+hw5.ToString());
//여기까지 출력이 되었다면 버튼 핸들값까지 알아내는것이 성공!!
2017. 10. 16. Ryu School :: C# 핸들값찾기
http://ryuschool.tistory.com/entry/C-%ED%95%B8%EB%93%A4%EA%B0%92%EC%B0%BE%EA%B8%B0 6/16
}
}
}
[결과] 핸들값을 가져오는것이 성고했다면..다음과같은 숫자들이 출력될것이고,
실패하였을 경우 전부0을 리턴하게 될 것이다.
===============================================================================
1. 찾기 힘든 핸들값?!
2017. 10. 16. Ryu School :: C# 핸들값찾기
http://ryuschool.tistory.com/entry/C-%ED%95%B8%EB%93%A4%EA%B0%92%EC%B0%BE%EA%B8%B0 7/16
앞의 강좌에 삘(Feel)을 받아 이것저것 많은 이벤트 보내기 실습을 해본 사람이라면..
여러 응용프로그램의 핸들을 찾던 도중 안풀리는 몬가의 문제거리를 발견 했을거라 생각한다.
물론 이강좌를 이해하려면 앞의 예제를 다른 프로그램에 많이 응용을 해봐야 한다.
그리고 어떤 문제거리를 받아 보아야만 이 강좌가 엄청의 감동의 물결을 가져다 줄것이다.
그렇다면 몬가 안풀리는 문제거리를 그림을 통해서 살펴보도록 하자.
그림1(몬가 이상한 핸들구조)
위에서 본 그림을 살펴보면..
한 응용프로그램의 핸들아래 세개의 핸들이 있는 구조이다..(색칠한 부분)
그리고 자기가 이벤트를 보내고자하는 부분은 그 핸들들의 첫번째핸들에 속해있는 버튼인 것이다.
근데 세개의 핸들이 클래스명 자리에 #32770 이라는 클래스명이 들어가있다.
이것은 MFC에서 개발을 할때 클래스 명을 숨겨버렸기에 #32770이라는 결과가 나오는 것이다.
캡션값도 없고..클래스명도 없고 이럴 때는 어떻게 핸들을 찾아 갈것인가??
대략 난감하다.._-_
만약 #32770이 한개라면 findwindowEx()함수에 클래스명을 #32770이라고 써주면 잘 찾게 되지만.
위와같은 구조에서는 자기가 얻고자하는 핸들을 정확히 가지고 올수 없다..
이것을 해결하기 위해서는 트리구조의 원리를 가지고 접근을 해야한다는 것이다.
윈폼에서 작업했던 트리노드를 생각해보자. 자식의 부모의..모 이런식의 개념인 것이다.
그렇다면 여기서 알아야할 API함수가 있다..바로 GetWindow() 라는 함수이고
이함수가 이문제의 해결을 해줄수 있는 해결책이다.
2. GetWindow()함수를 이용하여 핸들값 찾기
2017. 10. 16. Ryu School :: C# 핸들값찾기
http://ryuschool.tistory.com/entry/C-%ED%95%B8%EB%93%A4%EA%B0%92%EC%B0%BE%EA%B8%B0 8/16
C#에서의 선언은 다음과 같다.
[DllImport(“user32.dll”)] public static extern IntPtr GetWindow(IntPtr hWnd, int uCmd);
첫번째 인자는 대상이 되는 핸들값이고 바로 두번째가 그 대상핸들의 자식,혹은 바로 아래 핸들.
부모핸들..이런 식으로0~5까지 값으로 구별하여 접근할수가 있는것이다.
const int GW_HWNDFIRST = 0;
const int GW_HWNDLAST = 1;
const int GW_HWNDNEXT = 2;
const int GW_HWNDPREV = 3;
const int GW_OWNER = 4;
const int GW_CHILD = 5;
정의는 다음과 같다.대충 보면 어떤 값들인지 알것이다.
위의 그림을 보자..최상위 핸들값을 hwnd_main이라고 하고
한번 두번째 자식의 값을 가져오고 싶다면 다음과 같이 접근하면될것이다.
int hwnd_first=GetWindow(hwnd_main,GW_CHILD); //첫번째 자식의 핸들값->바로 자식의 핸들값을 가져오므로
int hwnd_second=GetWindow(hwnd_first,GW_HWNDNEXT); //첫번째 아래에 있는 핸들값 바로 두번째 핸들값
이런식으로 접근을 하면 두번째 핸들을 정확히 접근할수 있을 것이다.
이부분의 예제는 생략하겠다. 나중에 핸들을 찾다가 다음과 같이 접근이 불가능 한 상황이 되었다면
GetWindow()함수를 사용하라는 것만 전해주고 싶다.
그럼 핸들에 관련된 여러 API함수를 알아 보도록 하겠다.
3.여러가지 핸들 관련 함수들
*GetWindowText()
[DllImport(“user32.dll”)] private static extern int GetWindowText(int hWnd, StringBuilder title, int size);
이 함수는 핸들값을 넘겨주면 그 핸들값이 가지고 있는 캡션값을 반환하여준다.
첫번째 인자는 알아내고자하는 핸들대상이고..그 윈도우의 캡션값은 두번재 인자값으로
반환하여 준다. 세번째는 받을 텍스트값의 최대 크기를 정해주는 것이다.
2017. 10. 16. Ryu School :: C# 핸들값찾기
http://ryuschool.tistory.com/entry/C-%ED%95%B8%EB%93%A4%EA%B0%92%EC%B0%BE%EA%B8%B0 9/16
*ShowWindowAsync()
[DllImport(“user32.dll”)] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
이 함수는 윈도우의 창의 상태를 변경시킨다. 두번째 인자값을 어떻게 넘겨주느냐에 따라서 상태가 변하고.
첫번째는 변화시키고자 하는 핸들값이다.
상태에 대한 값은 아래 값들을 참고하길..
private const int SW_HIDE = 0;
private const int SW_SHOWNORMAL = 1;
private const int SW_SHOWMINIMIZED = 2;
private const int SW_SHOWMAXIMIZED = 3;
private const int SW_SHOWNOACTIVATE = 4;
private const int SW_RESTORE = 9;
private const int SW_SHOWDEFAULT = 10;
이밖에도 핸들에 관련된 함수는 많이 있지만 가장 많이 사용하는 함수 두개만 뽑아봤다.
http://www.hoonsbara.com/hoons/lecture/2_1/WindowHiderSource.zip
그리고 이주소는 한 외국 사이트에 있는 api관련 핸들 예제이다. 이 예제를 참고하여 살펴보기를 바라면서.
오늘의 강좌는 여기서 마치도록 하고 내일(혹은 내일모레) 에 강좌에서는 SendMessage()에 관한
자세한 이벤트에 대해서 몇글자 끄적거려 보려고 한다.그럼..

250 Comments

  1. she g

    I feel that is one of the such a lot important info for
    me. And i am satisfied studying your article. But want to commentary on few normal
    things, The web site taste is ideal, the articles is truly excellent :
    D. Excellent task, cheers

  2. Hayley Studier

    I just want to mention I am just newbie to blogs and really liked this web site. More than likely I’m planning to bookmark your blog post . You certainly come with superb article content. Thank you for sharing with us your web-site.

  3. black friday cbd oil sale

    An excellent share, I just offered this onto an associate that was doing a little analysis on this. And he in fact got me breakfast because I located it for him. smile. So let me reword that: Thnx for the treat! Yet yeah Thnkx for spending the time to review this, I really feel highly concerning it as well as enjoy reading more on this topic. When possible, as you come to be experience, would certainly you mind upgrading your blog with more information? It is extremely handy for me. Big thumb up for this blog post!

  4. had me going

    I found your blog website on google and examine a few of your early posts. Continue to maintain the very good run. I just extra up your RSS feed to my MSN Information Reader. Seeking forward to finding out more from you later on!?

  5. Google

    Good day! I could have sworn I’ve visited this website before but after looking at a few of the articles I realized it’s new to me. Anyways, I’m definitely delighted I came across it and I’ll be book-marking it and checking back often!

  6. Robby Dixon

    Aw, this was an actually nice article. In idea I want to put in creating similar to this in addition? taking some time and actual initiative to make a very good write-up? yet what can I state? I procrastinate alot and also by no means seem to obtain something done.

  7. bandar judi bola bwinbet365

    You are so interesting! I don’t suppose I have read something like this before. So good to find somebody with a few genuine thoughts on this issue. Seriously.. many thanks for starting this up. This web site is one thing that is required on the web, someone with a little originality!

  8. mandiriqq

    This is the perfect website for anybody who hopes to understand this topic. You know a whole lot its almost tough to argue with you (not that I actually will need to…HaHa). You certainly put a new spin on a topic that has been discussed for a long time. Great stuff, just great!

  9. microgaming

    Howdy! This blog post could not be written much better! Reading through this post reminds me of my previous roommate! He always kept talking about this. I most certainly will forward this post to him. Pretty sure he’s going to have a very good read. I appreciate you for sharing!

  10. aplikasi dingdongtogel

    After exploring a number of the blog articles on your web page, I honestly appreciate your technique of blogging. I bookmarked it to my bookmark webpage list and will be checking back in the near future. Please visit my website as well and tell me what you think.

  11. Sbobet999

    Can I just say what a relief to uncover someone that really knows what they’re discussing on the internet. You definitely realize how to bring a problem to light and make it important. More and more people have to read this and understand this side of the story. I was surprised that you aren’t more popular given that you surely have the gift.

  12. Judi online

    The next time I read a blog, I hope that it won’t disappoint me as much as this one. I mean, Yes, it was my choice to read, however I genuinely believed you would have something useful to say. All I hear is a bunch of moaning about something that you could possibly fix if you were not too busy searching for attention.

  13. totobet hk

    This is the perfect site for everyone who would like to find out about this topic. You understand a whole lot its almost hard to argue with you (not that I really would want to…HaHa). You certainly put a brand new spin on a topic that’s been discussed for years. Wonderful stuff, just excellent!

  14. styrofoam

    I absolutely love your site.. Excellent colors & theme. Did you make this website yourself? Please reply back as I’m trying to create my own site and would love to find out where you got this from or exactly what the theme is called. Many thanks!

  15. Konsultan SMK3

    An outstanding share! I have just forwarded this onto a co-worker who was doing a little homework on this. And he actually ordered me breakfast due to the fact that I discovered it for him… lol. So allow me to reword this…. Thank YOU for the meal!! But yeah, thanks for spending the time to discuss this subject here on your web page.

  16. sbobet777

    After I initially left a comment I seem to have clicked the -Notify me when new comments are added- checkbox and from now on every time a comment is added I get four emails with the exact same comment. Perhaps there is a means you are able to remove me from that service? Appreciate it!

  17. 188loto

    I blog often and I really thank you for your content. The article has truly peaked my interest. I will bookmark your blog and keep checking for new information about once a week. I opted in for your Feed as well.

  18. trang soi cau thethaobet

    I would like to thank you for the efforts you have put in penning this site. I am hoping to check out the same high-grade blog posts by you later on as well. In fact, your creative writing abilities has motivated me to get my own site now 😉

  19. soi cau thethaobet

    I’m amazed, I have to admit. Seldom do I come across a blog that’s equally educative and entertaining, and without a doubt, you’ve hit the nail on the head. The issue is an issue that not enough folks are speaking intelligently about. I’m very happy that I came across this in my search for something concerning this.

  20. Slot Pulsa

    I blog quite often and I genuinely thank you for your information. This great article has truly peaked my interest. I’m going to take a note of your blog and keep checking for new information about once a week. I subscribed to your RSS feed too.

  21. poker88 download

    Nice post. I learn something totally new and challenging on sites I stumbleupon on a daily basis. It will always be interesting to read through content from other writers and practice a little something from their websites.

  22. apk idn poker

    An outstanding share! I’ve just forwarded this onto a co-worker who has been conducting a little research on this. And he actually ordered me lunch due to the fact that I discovered it for him… lol. So allow me to reword this…. Thank YOU for the meal!! But yeah, thanks for spending some time to talk about this subject here on your website.

  23. investigate this site

    There are some intriguing moments in this short article yet I don?t understand if I see every one of them center to heart. There is some credibility however I will take hold viewpoint until I consider it additionally. Great write-up, thanks and we want extra! Contributed to FeedBurner too

  24. download joker123

    Hi there, There’s no doubt that your blog could be having internet browser compatibility problems. Whenever I look at your website in Safari, it looks fine however, if opening in IE, it has some overlapping issues. I simply wanted to provide you with a quick heads up! Aside from that, great site!

  25. joker slot apk

    An outstanding share! I have just forwarded this onto a coworker who has been doing a little research on this. And he actually ordered me breakfast simply because I found it for him… lol. So allow me to reword this…. Thank YOU for the meal!! But yeah, thanx for spending some time to discuss this topic here on your internet site.

  26. mybest poker

    I have to thank you for the efforts you’ve put in writing this blog. I am hoping to view the same high-grade blog posts by you in the future as well. In truth, your creative writing abilities has encouraged me to get my own site now 😉

  27. Mobil bekas jakarta selatan

    I’m impressed, I have to admit. Seldom do I encounter a blog that’s equally educative and engaging, and let me tell you, you’ve hit the nail on the head. The problem is something which not enough men and women are speaking intelligently about. Now i’m very happy that I stumbled across this during my search for something regarding this.

  28. cover lagu Indonesia

    Next time I read a blog, I hope that it doesn’t disappoint me as much as this particular one. I mean, Yes, it was my choice to read, but I actually believed you would have something useful to say. All I hear is a bunch of moaning about something that you could fix if you weren’t too busy seeking attention.

  29. RekomenQQ

    I’m impressed, I have to admit. Seldom do I encounter a blog that’s equally educative and entertaining, and without a doubt, you have hit the nail on the head. The problem is something that not enough men and women are speaking intelligently about. I’m very happy that I stumbled across this during my hunt for something regarding this.

  30. jagadpoker

    The very next time I read a blog, I hope that it doesn’t fail me just as much as this particular one. After all, I know it was my choice to read, but I actually believed you would probably have something useful to talk about. All I hear is a bunch of whining about something you can fix if you were not too busy seeking attention.

  31. kayak storage ideas garage

    Can I simply just say what a comfort to uncover someone who actually knows what they are talking about online. You definitely know how to bring a problem to light and make it important. A lot more people must check this out and understand this side of the story. I was surprised that you are not more popular since you most certainly have the gift.

  32. dingdong online

    After checking out a handful of the blog articles on your web page, I seriously appreciate your way of blogging. I saved as a favorite it to my bookmark site list and will be checking back in the near future. Take a look at my website too and let me know how you feel.

  33. dingdong togel daftar

    The next time I read a blog, I hope that it does not fail me just as much as this particular one. After all, Yes, it was my choice to read through, however I genuinely believed you’d have something useful to talk about. All I hear is a bunch of crying about something you could fix if you were not too busy looking for attention.

  34. kelasjudi.net

    Hi there, There’s no doubt that your website might be having web browser compatibility problems. When I take a look at your site in Safari, it looks fine however, if opening in Internet Explorer, it’s got some overlapping issues. I merely wanted to give you a quick heads up! Apart from that, wonderful site!

  35. daftar di bwinbet365

    After I originally commented I seem to have clicked on the -Notify me when new comments are added- checkbox and now whenever a comment is added I get four emails with the exact same comment. Is there a way you can remove me from that service? Many thanks!

  36. s128 live

    After going over a handful of the blog posts on your site, I truly appreciate your way of writing a blog. I saved it to my bookmark website list and will be checking back soon. Please visit my website as well and let me know what you think.

  37. download s128

    Hi, I do believe this is an excellent website. I stumbledupon it 😉 I am going to return once again since I book-marked it. Money and freedom is the best way to change, may you be rich and continue to help others.

  38. s128

    After I initially commented I seem to have clicked on the -Notify me when new comments are added- checkbox and now each time a comment is added I receive 4 emails with the same comment. Perhaps there is an easy method you are able to remove me from that service? Kudos!

  39. Sbobet88

    Oh my goodness! Awesome article dude! Many thanks, However I am experiencing problems with your RSS. I don’t understand the reason why I can’t join it. Is there anybody else getting similar RSS problems? Anyone who knows the solution can you kindly respond? Thanx!!

  40. Sbobet777 Indonesia

    Hi, I do believe this is a great site. I stumbledupon it 😉 I’m going to return once again since i have saved as a favorite it. Money and freedom is the greatest way to change, may you be rich and continue to guide other people.

  41. sabung ayam online

    I’m amazed, I must say. Rarely do I come across a blog that’s equally educative and interesting, and let me tell you, you’ve hit the nail on the head. The issue is something not enough folks are speaking intelligently about. I’m very happy that I found this in my hunt for something relating to this.

  42. hop over to this website

    There are some fascinating times in this post yet I don?t recognize if I see all of them center to heart. There is some credibility however I will hold opinion up until I consider it further. Great short article, many thanks and we want extra! Contributed to FeedBurner also

  43. s128

    Hello! I could have sworn I’ve been to your blog before but after looking at many of the posts I realized it’s new to me. Anyhow, I’m certainly delighted I came across it and I’ll be bookmarking it and checking back regularly!

  44. Situs Judi QiuQiu

    You’re so awesome! I don’t think I’ve truly read through a single thing like this before. So great to discover another person with some original thoughts on this subject matter. Seriously.. thank you for starting this up. This website is something that is needed on the internet, someone with a bit of originality!

  45. Judi Slot Online

    I’m very pleased to uncover this page. I wanted to thank you for ones time for this wonderful read!! I definitely enjoyed every little bit of it and i also have you bookmarked to look at new information in your site.

  46. Agen Domino qq

    I seriously love your website.. Great colors & theme. Did you make this website yourself? Please reply back as I’m attempting to create my own personal blog and want to learn where you got this from or just what the theme is named. Many thanks!

  47. senang domino

    I must thank you for the efforts you’ve put in penning this site. I’m hoping to view the same high-grade blog posts by you in the future as well. In truth, your creative writing abilities has inspired me to get my very own site now 😉

  48. king4d

    Oh my goodness! Amazing article dude! Thanks, However I am going through problems with your RSS. I don’t know why I am unable to join it. Is there anybody getting identical RSS problems? Anyone that knows the solution will you kindly respond? Thanks!!

  49. judi slot online

    Howdy! This post could not be written much better! Going through this article reminds me of my previous roommate! He constantly kept preaching about this. I most certainly will send this article to him. Fairly certain he’ll have a very good read. Thanks for sharing!

  50. agen slot deposit pulsa

    Howdy, I do think your site may be having browser compatibility problems. Whenever I look at your blog in Safari, it looks fine however when opening in Internet Explorer, it’s got some overlapping issues. I just wanted to give you a quick heads up! Aside from that, fantastic blog!

  51. login totobet terbaru

    After I initially commented I appear to have clicked the -Notify me when new comments are added- checkbox and from now on every time a comment is added I recieve four emails with the same comment. Perhaps there is an easy method you can remove me from that service? Thanks!

  52. daftar totobet

    Can I simply just say what a relief to discover someone who genuinely knows what they’re talking about online. You certainly realize how to bring a problem to light and make it important. A lot more people need to read this and understand this side of your story. I was surprised you are not more popular because you definitely possess the gift.

  53. agen dominoqq

    I truly love your site.. Very nice colors & theme. Did you develop this amazing site yourself? Please reply back as I’m attempting to create my very own blog and would like to find out where you got this from or just what the theme is named. Appreciate it!

  54. situs bandarq online

    When I originally left a comment I seem to have clicked on the -Notify me when new comments are added- checkbox and from now on each time a comment is added I get four emails with the exact same comment. Is there an easy method you can remove me from that service? Thanks!

  55. 21naga

    An intriguing discussion is worth comment. I think that you need to write more on this subject, it may not be a taboo subject but generally folks don’t speak about such topics. To the next! Kind regards!!

  56. asik dewa

    The next time I read a blog, Hopefully it doesn’t disappoint me just as much as this one. After all, Yes, it was my choice to read, however I actually believed you’d have something interesting to talk about. All I hear is a bunch of crying about something you could possibly fix if you weren’t too busy looking for attention.

  57. www.elevenconsignment.com

    May I just say what a comfort to find someone who truly knows what they are talking about on the web. You actually realize how to bring a problem to light and make it important. More and more people have to check this out and understand this side of the story. I can’t believe you’re not more popular because you surely have the gift.

  58. rezgamer.com

    I’m very happy to discover this website. I want to to thank you for ones time just for this fantastic read!! I definitely appreciated every part of it and i also have you saved to fav to check out new things on your web site.

  59. totobet login

    Next time I read a blog, Hopefully it does not disappoint me as much as this one. I mean, Yes, it was my choice to read, however I really believed you would have something helpful to talk about. All I hear is a bunch of crying about something you could possibly fix if you weren’t too busy looking for attention.

  60. dindong casino

    I seriously love your blog.. Very nice colors & theme. Did you build this site yourself? Please reply back as I’m trying to create my own personal website and want to learn where you got this from or what the theme is named. Kudos!

  61. s128

    An outstanding share! I’ve just forwarded this onto a colleague who has been conducting a little research on this. And he in fact bought me dinner due to the fact that I found it for him… lol. So allow me to reword this…. Thanks for the meal!! But yeah, thanks for spending the time to talk about this issue here on your website.

  62. resep masakanku

    You are so awesome! I don’t think I have read something like this before. So nice to find another person with genuine thoughts on this topic. Really.. thank you for starting this up. This site is something that is needed on the web, someone with a little originality!

  63. mystargarden.com

    I’m impressed, I have to admit. Rarely do I come across a blog that’s both educative and entertaining, and without a doubt, you have hit the nail on the head. The problem is something that too few folks are speaking intelligently about. Now i’m very happy I found this during my search for something concerning this.

  64. vivoslot

    I’m impressed, I have to admit. Rarely do I encounter a blog that’s both educative and entertaining, and without a doubt, you’ve hit the nail on the head. The problem is something that not enough people are speaking intelligently about. Now i’m very happy that I stumbled across this during my search for something relating to this.

  65. joker123.net

    I’m impressed, I must say. Seldom do I encounter a blog that’s both equally educative and engaging, and without a doubt, you’ve hit the nail on the head. The issue is something too few people are speaking intelligently about. I am very happy I stumbled across this during my search for something relating to this.

  66. joker128.net

    Hello, I think your blog might be having browser compatibility problems. When I look at your site in Safari, it looks fine however, if opening in IE, it has some overlapping issues. I simply wanted to provide you with a quick heads up! Aside from that, great blog!

  67. s128.net

    I really love your site.. Very nice colors & theme. Did you build this website yourself? Please reply back as I’m attempting to create my own site and want to learn where you got this from or just what the theme is named. Kudos!

  68. internet

    Youre so amazing! I don’t mean Ive check out anything similar to this before. So good to discover somebody with some original thoughts on this subject. realy thanks for beginning this up. this web site is something that is required online, a person with a little creativity. valuable task for bringing something new to the net!

  69. idnpoker

    Hi there! I could have sworn I’ve been to this site before but after looking at many of the articles I realized it’s new to me. Anyhow, I’m certainly happy I stumbled upon it and I’ll be bookmarking it and checking back frequently!

  70. judionline

    Hello there! I could have sworn I’ve visited this website before but after browsing through many of the articles I realized it’s new to me. Anyhow, I’m definitely delighted I found it and I’ll be book-marking it and checking back regularly!

  71. fafa slot

    Right here is the perfect webpage for anybody who wishes to understand this topic. You know so much its almost hard to argue with you (not that I personally will need to…HaHa). You definitely put a new spin on a subject that’s been discussed for decades. Excellent stuff, just excellent!

  72. joker123 slot

    Oh my goodness! Amazing article dude! Thanks, However I am having issues with your RSS. I don’t know the reason why I am unable to join it. Is there anyone else getting the same RSS problems? Anyone who knows the solution can you kindly respond? Thanks!!

  73. jokerslot

    I’m amazed, I have to admit. Seldom do I encounter a blog that’s equally educative and entertaining, and let me tell you, you have hit the nail on the head. The problem is something that not enough men and women are speaking intelligently about. I am very happy that I came across this during my search for something relating to this.

  74. https://ebolafc.net/

    This is the perfect web site for everyone who wishes to understand this topic. You understand a whole lot its almost hard to argue with you (not that I really would want to…HaHa). You certainly put a fresh spin on a subject that has been discussed for many years. Wonderful stuff, just great!

  75. BaliQQ

    Oh my goodness! Impressive article dude! Many thanks, However I am experiencing difficulties with your RSS. I don’t know why I cannot subscribe to it. Is there anybody getting identical RSS issues? Anybody who knows the answer can you kindly respond? Thanks!!

  76. Canon Printer

    I blog often and I seriously thank you for your content. This article has truly peaked my interest. I’m going to take a note of your blog and keep checking for new information about once a week. I opted in for your RSS feed too.

  77. Sofa Sudut L

    Good post. I learn something new and challenging on blogs I stumbleupon on a daily basis. It will always be interesting to read through articles from other writers and practice something from other websites.

  78. judi qq

    I’m excited to find this site. I want to to thank you for your time just for this fantastic read!! I definitely loved every part of it and I have you saved as a favorite to look at new stuff on your site.

  79. Ponseloka.com

    I would like to thank you for the efforts you’ve put in writing this blog. I’m hoping to see the same high-grade content from you in the future as well. In fact, your creative writing abilities has encouraged me to get my own, personal website now 😉

  80. https://www.aplikasidewasa.com

    Can I simply say what a relief to discover a person that actually knows what they are talking about over the internet. You certainly understand how to bring an issue to light and make it important. More and more people should check this out and understand this side of the story. I can’t believe you are not more popular since you most certainly have the gift.

  81. Pokerpelangi1.link

    Hello, I think your website could possibly be having internet browser compatibility issues. Whenever I look at your website in Safari, it looks fine however when opening in I.E., it has some overlapping issues. I merely wanted to provide you with a quick heads up! Other than that, wonderful blog!

  82. jokerwin123

    Hi there! This post could not be written any better! Reading through this article reminds me of my previous roommate! He constantly kept preaching about this. I am going to forward this post to him. Fairly certain he’ll have a great read. Many thanks for sharing!

  83. agen joker123

    You are so awesome! I don’t think I’ve truly read anything like that before. So good to find someone with a few unique thoughts on this issue. Really.. thank you for starting this up. This site is one thing that is required on the internet, someone with a bit of originality!

  84. apk joker123

    May I simply just say what a relief to find someone who really understands what they’re discussing on the web. You definitely realize how to bring a problem to light and make it important. A lot more people ought to look at this and understand this side of your story. I was surprised that you’re not more popular since you definitely possess the gift.

  85. http://107.152.32.187/

    I have to thank you for the efforts you’ve put in writing this blog. I really hope to check out the same high-grade content by you in the future as well. In fact, your creative writing abilities has inspired me to get my very own website now 😉

  86. http://103.194.171.205/

    May I simply say what a comfort to uncover someone who genuinely understands what they’re discussing on the internet. You definitely understand how to bring an issue to light and make it important. More and more people have to check this out and understand this side of the story. It’s surprising you’re not more popular given that you most certainly have the gift.

  87. http://103.194.171.205/

    I’m impressed, I have to admit. Rarely do I encounter a blog that’s both educative and engaging, and without a doubt, you have hit the nail on the head. The issue is something which too few people are speaking intelligently about. I am very happy I came across this during my search for something concerning this.

  88. https://hermes21.net/

    An impressive share! I have just forwarded this onto a colleague who was doing a little homework on this. And he in fact ordered me lunch due to the fact that I found it for him… lol. So allow me to reword this…. Thank YOU for the meal!! But yeah, thanx for spending the time to talk about this matter here on your web page.

  89. have a peek at this website

    There are some interesting moments in this post however I don?t recognize if I see every one of them center to heart. There is some legitimacy yet I will certainly take hold opinion till I check into it better. Excellent write-up, many thanks and also we desire much more! Contributed to FeedBurner too

  90. Elle

    Hi I am so grateful I found your weblog, I really found you by mistake, while I was searching on Askjeeve for something else, Anyways I am here now and would just like to say thanks for a marvelous post and a all round interesting blog (I also love the theme/design), I don’t have time to look over it all at the minute but I have book-marked it and also included your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the excellent job.

댓글 남기기

이메일은 공개되지 않습니다.