티스토리 툴바




♪  작년에 만들었던 그 프로그램( http://topnanis.tistory.com/140 )이 죽지도 않고~ ㅋㅋ 

어르신들이나 장애인들도 쉽게 이용할 수 있는 소셜네트워크 공유 프로그램이라는 기본컨셉을 유지한 채, 코드는 사실 처음부터 다시 짰답니다.. 

많이 이용하여 주시구, 혹시 버그 발견하시면 알려주세용~




PC에 .net framework 4.0이 설치되어 있지 않아 에러가 난다면 이것도 설치 해 주세요(OS에 따라 다를수 있습니다)




아래는 배포 공지사항 입니다 -  



안녕하세요? 



정보적 약자들을 위한 트윗방송 시스템 - TwitDJ를 이용해 주셔서 감사합니다.



TwitDJ(트윗디제이)는 비상업적인 목적에 한하여, 자유롭게 사용할 수 있습니다.

  - 비상업적인 목적 : 트윗디제이를 이용한 직접적인 수익이 없는 경우.



사용 중 불편하신 점이나 개선에 관한 아이디어가 있으시면 언제든 블로그에 오셔서 글을 남겨 주시기 바랍니다.


(음성파일을 만드는 중이니, 로딩중 채널 변경이나 창 이동은 새소리 효과음이 날때까지 조금만 기다려 주세요 ^^;)

 

더 좋은 프로그램이 되도록 최선을 다해 노력하겠습니다. 



블로그  http://topnanis.tistory.com/ 

메일  topnanis@nate.com




### 트윗디제이 2.3 버젼 추가 사항 ###


메인창에서의 채널변경및 볼륨변경


(순차가 아닌, 마우스 호버 이벤트로 채널을 선택할수 있습니다) 


기타 UI 수정, 버그 제거


### 기타사항 ###



각 채널방송 내용은 포털에서 제공하는 내용 및 트위터에서 추천하는 각 분야별 유명인사 TOP 20명의 파싱정보로


제작자의 소견과는 무관함을 밝힙니다. 


음원은 OS기본 샘플음원으로 기타 문제되는 내용은 알려주시면 바로 조치하도록 하겠습니다. 



 

Posted by 준환이형님

댓글을 달아 주세요

  1. h0ney 2012/01/13 18:57  댓글주소  수정/삭제  댓글쓰기

    오오오오!! 오픈소스 오픈소스~ ㅋㅋㅋㅋ
    수고 많았심 ㅋㅋ

  2. 변지현 2012/01/13 21:23  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 행님 지현입니더 ㅎㅎ
    방금 사용해보고 있는데 상당히 매력적인데요~ ㅎㅎ
    감히 제가 몇가지 괜찮을 것 같은 아이디어를 내도 괜찮을까요?ㅠ
    1. UX
    - 메인화면에서 배경음악과 DJ 볼륨 크기를 조정 할 수 있으면 좋을 것 같아요^^ㅎ
    - 카테고리를 마우스 좌우측 버튼도 상당히 편한데 카테고리 형식으로 보여지고 선택할 수 있는 창
    (예를 들면 재생목록 선택하듯이.. 그런것도 있으면 좋을 것 같아요 ㅎㅎ)
    2. 기능
    - 사용자가 원하는 문구가 삽입된 것들도 서칭해서 방송 해줄수 없을까요? 사용자 수정 채널 ㅎ 맞춤형 서비스?ㅎ
    (예를 들면 네이버 실시간 검색 처럼요 ㅎ)

    근데 정말 멋지게 만드셨어요.. 아이디어 매우 돋보인다는!!

    • 준환이형님 2012/01/13 22:54  댓글주소  수정/삭제

      ㅋㅋ 이런 고마운 서울여대 앱 대상 수상자님 같으니라구 ㅋㅋ 지난 버젼( http://topnanis.tistory.com/140)이랑 해서 볼륨조절이랑, 특히 채널부분에 고민을 많이 했었어 편리함이랑 단순함이랑 사이에서(지난번엔 채널을 펼쳐놓았거든).. 보통은 채널을 고정할 꺼라는 생각이 많이 들어서 이렇게는 했는데..고민을 좀 더 해봐야겠다. 문구 삽입 서칭 생각못했는데 되게 좋네 포탈이 막아 놓은 것 같긴 했는데. 이거 일단 포함시켜야겠다. 고마워 :D

  3. JuHong 2012/01/26 17:01  댓글주소  수정/삭제  댓글쓰기

    형 이거 만드실 때 어떤거 쓰신거예요? C#인가요? WINAPI인가요? MFC인가요?

    • 준환이형님 2012/01/26 23:21  댓글주소  수정/삭제

      C#(닷넷프레임워트 4.0)과 WPF를 사용하였답니다~ 최근 파워블로거님~ ㅋㅋ

    • Juhong 2012/01/27 23:14  댓글주소  수정/삭제

      에이 형만 하겠습니까.
      최근 들어서 갑자기 투데이가 올라서 조금 불안하네요.
      왜 갑자기 늘어난건지 -_-;;; 3일 연속 90이상 투데이를 찍어서 너무 기분이 좋네요 ㅋㅋㅋ

  4. JuHong 2012/01/28 22:03  댓글주소  수정/삭제  댓글쓰기

    아 참, 이거 로딩하는 동안 창 이동이 안되는 것 같은데 이걸 쓰레드로 하면 어떨까 합니다.


C# 만지다보면 아리송해서 가끔씩 찾아보는 아이들 ㅋㅋㅋ


출력(printf)

Console.Write("Hello, world!");
Console.WriteLine
("Hello, world!");  // +"\n"

입력(scanf)
 

string str;
str = System.Console.ReadLine();
 int Num = int.Parse(str);                 //스트링을 정수로

랜덤(rand()%num)
 
using System;

//선언
Random randomNumber = new Random();

//로컬(0 에서 19까지 총 20개)
randomNumber.Next(20 - 1);

//로컬(10 에서 20까지 총 21개)
randomNumber.Next(10, 20) ;

 
현재시간(스트링출력) 
using System;
 
DateTime.Now.ToShortTimeString();



웹페이지다운로드 (파일로 저장)
           
using System.Net;
         
//선언  
WebClient web = new WebClient();

//로컬   
          web.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 9.0; Windows;)");

//첫째인자의 주소내용을, 두번째 인자의 파일로 저장함 .\\ 경로는 루트이므로 debug/ 혹은 realease/ 폴더          
web.DownloadFile("http://translate.google.com",".\\test.txt");   



웹페이지 받아오기(파일로 저장하는게 아니라 스트링을 받아옴)

using System.Net;

//선언
         HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://naver.com/");
         HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
         StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.GetEncoding("UTF-8"));    // Encoding.GetEncoding("EUC-KR")      //페이지가 깨지면 주석내용으로 바꾸어사용
         html = streamReader.ReadToEnd();          //바구니에 담음


C# Form의 Alt + F4 막기

1. Form 의 KeyPreview 속성을 True로 바꿈
 
2. From 의 KeyDown 이벤트 추가 후 다음 코드 삽입
 
        private void form1_KeyDown(object sender, KeyEventArgs e)
        {
            //Alt + F4로 인한 종료 방지
            if (e.Alt && e.KeyCode == Keys.F4)
            {
                e.Handled = true;
            }
        }
Posted by 준환이형님

댓글을 달아 주세요


예전에 dll을 통해 mp3를 재생하는 방법( http://topnanis.tistory.com/136)을 올렸었는데 주석을 원하시는 분들이 계셔서 다시 한번 포스팅합니다. 

우선 이 방법은 mp3뿐만 아니라 유사한 방법으로 mpg, wav와 같은 비디오 재생도 가능한듯 보이구요.
( http://blog.naver.com/dinho3/120027507526 )


이해하기 좋으시라고 바로 쓸수 있는 예제로 편집해 보았습니다. 아래 코드는 재생을 위한 최소한의 코드입니다.


using System;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace Playing_MP3_songs
{
    public partial class Form1 : Form
    {

//c코드로 작성된 dll을 부르기 위함. C#에서 지원하는게 아니므로 네이티브코드에서 작성된 코드를 활용한다는 거네요 
        [DllImport("winmm.dll")]
//dll 속에 있는 이 메소드를 사용하겠다. 물론 dll속의 파일을 편집하거나 디버깅을 할수는 없답니다. (.h)에 제공해주시는 것만 쓰는거죠
        private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);


        public Form1()
        {
//            form1내에 버튼등의 UI라 주석처리해봤구요 
//            InitializeComponent();

//파일명은 경로를 찍어주시면 됩니다. debug나 release 폴더 내에 있는 파일을 바로 쓰실때에는 " .\\abc.mp3"
            mciSendString("open \"" + "c:\\0.mp3" + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
            mciSendString("play MediaFile", null, 0, IntPtr.Zero);

        }
    }
}
  

끝. 재생이 되는 코드는  임폴트1줄, 전역2줄, 지역에 경로1줄, 실행1줄 총 네줄 입니다.

콘솔창(form에 띄우지 않고) 실행은 되지 않습니다. dll이라 에러문은 뜨지 않습니다. 


파일을 리스트에 넣어 곡을 일시정지시키거나 다음곡, 전곡 등의 확장된 기능을 가진 라이브러리를 첨부합니다. 필요하신 분들 사용하세요~


 
 
Posted by 준환이형님

댓글을 달아 주세요

  1. 다람군 2012/01/05 12:26  댓글주소  수정/삭제  댓글쓰기

    옛날엔 이걸 많이 썼는데 요즘엔 libZPlay라던가 FMOD를 사용하고 있어요
    게임이라던가에서는 요걸로는 많이 부족해서요 ㅜㅜ

  2. 준환이형님 2012/01/05 19:35  댓글주소  수정/삭제  댓글쓰기

    찾았음! 다중재생을 위해서 (wmp.dll을 참조하는 WMPLib) 아래주소를 참조하세요~

    http://babym.tistory.com/entry/%EC%9D%8C%EC%95%85-%EC%9E%AC%EC%83%9D



어느덧 즐거웠던 한 해가 지나가네요.

31일 아쉬움이 묻어나는 날짜의 오늘은 블로그에다가 평소 잘 적지 않는 개인적인 이야기를 몇자 적을까 합니다.


처음부터 재미로 학교과제를 밤새며 만들게 되었고, 또 워낙 코드를 잘까먹다 보니 레퍼런스를 위해 블로그에 갈무리 해놓았던 것이

전공 블로그가 되어 어느덧 (제 기준으로)많은 분들이 찾아주셨는데 아직 감사의 인사도 드리지 못했군요.

(하루 100분도 넘게 다녀가시더라도.. 사실 혼자만 보는 블로그란 느낌도 자주든답니다. 그치만 방문자 카운터는 쑥쑥 잘 올라가지요 :D)


* 운영자가 손님처럼 들어가서 카운터를 올리는 모습예


지난 해에 이어 저는 계속 많은 친구들과 과제를 하고 학부공부를 하며 알차게 지냈답니다.

감사하게도 시(市) 대회에서 상을 받았구요. 특별히 이번 해에는 타지역을 오가며 배우고 활동을 할 기회까지 얻게 되었었습니다.

여러 분야가 다 그렇겠지만 IT분야에 있으면서 저는 늘 많은 고마운 분들과 업계의 지원으로 쾌적한 환경에 공부를 하고 있다는 생각을 하게 된답니다.
(당장 레퍼런스 때문에 구글창에 검색해도 누군가가 정성스럽게 올려놓으신 포스팅을 보게 되니까요)


'따뜻하게 즐기는 코딩한잔'블로그를 저는 딱딱한 코딩만으로 채우고 싶은 생각은 없었으니 지금은 한해의 출발선 앞에서 자리를 빌어

이 분야에 대한 자신의 적성과 비젼에 대해 고민하는 후배들 이야기를 들은 적이 있어 새해인사와 함께 약간의 사견을 이야기 해보려구요.


저는 지금을 프로그래밍하기 좋은 시기라고 생각을 하고 있습니다. 

많은 전공 학부생 분들이 선배 개발자분들이 힘들다 힘들다는 이야기에 지레 겁을 많이 먹지만 또 한편으로는 이만큼은 힘들지 않고 편하게 보수를 받을수 있는 일은 세상에 얼마나 많을지..  

과거에는 소수의 인재들에게만 프로그래밍이 맡겨졌다죠.. 그게 불과 몇십년 전이었구.. 후에 다시 그렇게 될지도 모르겠습니다만

개인의 적성에 따라 다르겠지만 프로그래밍을 하면서 저는

학생으로서 '이렇게 재밌는 일을, 특별하지 않은 머리로, 적은 자본을 가지고도, 강력한 인프라를 제공받을 수 있는 특혜'에 놀란답니다.

특히나 작고하신 스티븐잡스와 같은 분들의 영향력에 힘입어 사회적 수요가 한층 강해지고 있는 지금에 자원이 없는 서비스기반의 세계로 뻗어나갈 한국에서

프로그래밍을 배울 수 있는 것은 행복한 일일 수 있다고 생각합니다.

(저는 그런 덕을 참 많이 보고 있는 사람 중의 한명이구요. 그래서 함께 공유하기 위해 블로그를 지금도 계속 하고 있는 건지도 모르겠어요)  


게다가..

NIKON CORPORATION | NIKON D80



까다로운 고급유저들과 좋은 번역서들, 블로그자료, 뛰어난 선배분들, 그리고



세계적인 IT기업들이 우리나라에 있구요. 


물론.. 나쁜면을 보시는 분들도 계시겠지만
 

축제와 같은 21세기 초, 지금 시기에 우리는 함께 프로그래밍으로 밤새며,


팀 회의로 갈등도 하고, 다시 타협접을 찾아나가며 성숙하지요


이 곳에서 고민을 하고, 절망하고, 위로받고, 카타르시스를 맛보고,


이렇게 막 발을 담근 우리가 목표를 뚜렷히 하여 젊음을 녹일 수 있는 건 참으로 멋지고 의미있는 일이라는 생각을 하고 있답니다.


요즘들어 저는 한층 프로그래머로서 영어의 필요성을 많이 느끼게 되어 열공중이구요.(늘 느끼는 거지만 이 분야에는 참 똑똑한 아이들도 많고,

공부를 하다보니 영문 원서의 도움 받을일도 갈수록 많아 지더라구요) 사회인으로 나가기 위한 준비도 열심히 하고 있답니다.

그래서인지 아직 많이 부족하지만 내년 시간은 벌써부터 두근구든 기대가 되네요.


두서 없이 시작해서 또 이렇게 급히 마무리 하게 되는데..;; 

혹시 구글 검색하다가 우연히 들어오신 많은 프로그래머 혹은 예비프로그래머 분들이나 정기적으로 방문해주시는 여러 친구들이

블로그에서 같이 IT정보와 생각들을 공유하며, 쉬어가며 힘을 얻으실 수 있다면 좋겠습니다. 

저도 계속해서 곁에서 친구처럼 도움이 되고 푸념도 나눌수 있는, 좋은 내용의 블로그를 만들도록 노력하겠습니다.


아무쪼록, 새해 복 많이 받으시고 추운 날씨지만 환기도 한번씩 시키시궁.. 늘 평안하세요 ^^


Posted by 준환이형님

댓글을 달아 주세요

  1. JuHong 2011/12/31 04:07  댓글주소  수정/삭제  댓글쓰기

    형님 한 달 같이 프로젝트 하면서 계속 붙어있었는데 이렇게 떨어져 있으니까 이상하네요.
    이렇게 글 올리시는 것을 보니 그 동안 잘 지내신 것 같고....
    난중에 혹시 올라오시거나 혹은 제가 내려가면 뵈면 좋겠네요.

    조만간 택배로 나이 배송 받으시겠네요. ㅎㅎㅎ
    새해에는 복 많이 많이 받으세요.

    • 준환이형님 2011/12/31 10:06  댓글주소  수정/삭제

      그래 쥬홍아~ 너도 새해 복 많이 받으렴. 우리팀원들 새벽에 함께 내려가 맥모닝을 사먹던 그때가 그립구나. 잘지내고 있니?

  2. 나른한감자 2011/12/31 11:04  댓글주소  수정/삭제  댓글쓰기

    히히 저네요? 올해
    한해도 수고하셨습니다 ㅎ

    새해복많이받으세용

    • 준환이형님 2011/12/31 12:15  댓글주소  수정/삭제

      저 사진이 내가 한참 시달리던 시절이지 ㅋㅋ

      방송탄거 잘봤다.. 스스로 인정하는 '현업에 가도 전혀 부족함없는 개발자!!' 작년 이맘때도 '이제부터는 나는 열심히 하지 않겠다'는 충격발언을 했었지ㅋㅋㅋ 멋져 ㅋㅋ

  3. h0ney 2011/12/31 12:06  댓글주소  수정/삭제  댓글쓰기

    ㅋㅋㅋ 한해를 마무리하는 블로그~ 영업이는 회사 들어가자말자
    그 후로 블로그를 쓰는것을 보지 못했다.. ㅋㅋ

  4. 신재명 2011/12/31 12:15  댓글주소  수정/삭제  댓글쓰기

    행님 블로그 더 번창하세여!! ㅎㅎ
    가끔 센터 놀러오시면 완전 반겨드릴꼐용 Happy new year !!

    • 준환이형님 2011/12/31 12:23  댓글주소  수정/삭제

      많은 아해들이 나의 지갑도 반겨주겠지 ㅋㅋㅋ

      재명 새해 복 많이 받아. 우리 내년에도 달리자.. 게다가 자넨 가야지 K대학원 ㅋㅋ

  5. 우성웃엉 2011/12/31 19:04  댓글주소  수정/삭제  댓글쓰기

    형님 센터에서 뵙고싶습니다~~
    새해 복 많이 받으세요!!!!!!!!!!

    • 준환이형님 2011/12/31 19:10  댓글주소  수정/삭제

      자네도 새해 복 많이 받아. 요즘 스피릿 정식버젼 개발은 잘되는지 궁금하구나. 키넥트퀴즈도 내년 상반기에는 상을 또 휩쓸겠구나.
      형이 내려오기전에 너에게 싸인을 받아왔어야 했는데..ㅠ


예전 만들었던 프로그램(TwitDJ : 정보적 약자들을 위한 트윗방송 시스템 -  http://topnanis.tistory.com/140 )을 리메이크 하고 있는데..

아쉽군요. 게으름으로 좋은 대회들을 다 놓쳐버렸으니., (요새용돈도하나도없음엉엉내가왜이걸여기다적고있니 

아쉽지만.. 이 참에 다시 하나씩 만져가며 사용하기 좋은 예제 소스를 공유하려고 합니다.

Twitterizer 라이브러리를 이용하였구요. 사용법은 어렵지 않으나 라이브러리 버젼과 프레임워크 버젼에 유의하여야 합니다. 예제에는 

(Twitterizer2.3을 사용하였습니다. 프레임워크 버젼은 4.0 이예요)

 



시작을 하면 채널번호를 물어보는데 1에서 5번까지의 미리 만들어 놓은 샘플 채널의 현재 타임라인을 부를 수 있습니다.

트윗API를 사용하기 위해서는 


1. 트윗 아이디 생성

2. 토큰값을 받는 등의 인증절차

3. Twitterizer 라이브러리를 소스에 연결

4. 소스 코딩 



순으로 조금 까다로운 절차가 필요합니다. 아래는 소스 설명입니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

//라이브러리를 포함시킵니다. 레퍼런스해서 Twitterizer.dll 연결해주면 됩니다.
using Twitterizer;
using System.Collections.Generic;

namespace TwitDjLight
{
    class Program
    {
        static int whoIsDj = 0;

        static OAuthTokens tokens;                  
 
        static void Main(string[] args)
        {

//메인에서의 기능은 [채널선택]과 [타임라인]을 뿌려주는 것입니다. 
 
            SelectDj();

            PrintTimeline();

            return;
        }
        

        static void PrintTimeline()
        {
               
//친구의 타임라인을 4개만 뿌려주라는 거지요. 이것은 옵션을 통해 자신의 글만 보거나, 쪽지 글을 읽는 등의 선택을 할 수 있습니다.
 
            TwitterResponse<TwitterStatusCollection> Collection = TwitterTimeline.FriendTimeline(tokens, new TimelineOptions { Count = 4 });

            TwitterStatusCollection T = Collection.ResponseObject;  
             
//흔히 예제에는 foreach문으로 되어 있는데 편의에 따라 for문으로 바꾸었습니다. 발신자명, 발신시각, 해시값, 내용 등입니다.
          
            for (int i = 0; i < T.Count; i++)
            {
                Console.WriteLine(T[i].User.Name);
                Console.WriteLine(T[i].CreatedDate);          
                Console.WriteLine("@" + T[i].User.ScreenName);
                Console.WriteLine(Convert.ToString(T[i].Id));
                Console.WriteLine(T[i].CreatedDate);
                Console.WriteLine(T[i].Text);
            }     
            
            return;
        }


        static void SelectDj()
        {
// 채널입력부 입니다. printf, scanf의 C#버젼이네요
 
            Console.Write("Input who is DJ? ");

            string str;
            str = System.Console.ReadLine();
            whoIsDj = int.Parse(str);

            Console.WriteLine("start whoIsDj : " + whoIsDj);

            tokens = new OAuthTokens();

            switch (whoIsDj)
            {
//미리 만들어 놓은 인증키입니다. 원하시는 내용의 타임라인이 있으시다면 해당 아이디의 인증을 받아 아래에 덮어써주세요
 
                // 방송언론
                case 1:
                    tokens.AccessToken = "355431986-c4cibrUfhqLB4FixLgdX4OqO47glElUuPdY9faGz";
                    tokens.AccessTokenSecret = "hD2ykJpUf7kYQ9fBWjS6Oi6ZEPyDhrxNsTiql7Vzsh8";
                    tokens.ConsumerKey = "qZLf2Yi7pw3neUquwjrg";
                    tokens.ConsumerSecret = "vVIWxy5A5NhCrjT00tzdYFe21KIe3TAsYiWnjNito";
                    
                    break;

                // 경제
                case 2:
                    tokens.AccessToken = "355441089-6ukgY8pk2FeJOkvpLuy5Miy25sbyI54ApNtfXAta";
                    tokens.AccessTokenSecret = "ckNs4rqxQD0Ea0QVmXIHpqZmz4WyXCD3BxeRjNeqEG4";
                    tokens.ConsumerKey = "Iopjaxuu77CtTu9oRlmCsQ";
                    tokens.ConsumerSecret = "jFzzxHtOnZYQlCWgeF1OB3Ddzfoev9d6oeJBqaYmf8";

                    break;

                // 복지의학
                case 3:
                    tokens.AccessToken = "355449483-NsvsaGdQ8X4AYlzLOjKHhwF7zQlK8usvJOW3SZXZ";
                    tokens.AccessTokenSecret = "zJGs61E9TbLeBFyED7RpdCbO8jPFN2WSb0t4X11yT8g";
                    tokens.ConsumerKey = "Glh64NT9P0DBpiEryYhg";
                    tokens.ConsumerSecret = "gGx3fjd3DLvcrG92aQ9g696JJV4ONemwUQIMZ5l6M";

                    break;

                // 정치
                case 4:
                    tokens.AccessToken = "356327076-dsCfMDar6qzcW4R76j0i13m3MxQCackJJ2IqKB8q";
                    tokens.AccessTokenSecret = "9NSLjYP7VXb5pPijnx2ZoI3tbzGGu7AV5drli5ZLQQ";
                    tokens.ConsumerKey = "x2eCHQbxZyy1ETJ1fSQuag";
                    tokens.ConsumerSecret = "IEgTkmpu2DPhfzRlcSkTKs2fhGjBNChOvhuKzZDmR8";

                    break;

            // 연예오락
                case 5:                  
                    tokens.AccessToken = "356333815-I6nsBxtG0vswjxiTBWjzJoTvuCbxIR2HV0JfE1R6";
                    tokens.AccessTokenSecret = "3jVCCAaodyBJTH94lQXidD6bVsPCxZ81OZG7MNcg4";
                    tokens.ConsumerKey = "NKFHIMwnBulTQqSVCrgig";
                    tokens.ConsumerSecret = "aMRFvptID3WWiMm23JdPxhGW7aQ0jk2OlgUi0n88PQ";

                    break;
             
                default:     return;   break;
            }
        }        
    }
}


아래에 소스를 첨부합니다~



 
Posted by 준환이형님

댓글을 달아 주세요