-
키움API를 이용한 로그인 구현 주식 c# 초보프로그래밍/c# 2022. 11. 27. 15:28반응형
키움API를 이용해서 로그인을 구현 해 보겠습니다. (개발툴 : visual studio 2017 )
1. 프로젝트를 새로 생성 합니다.
2. 도구상자에서 오른쪽 마우스 클릭후 메뉴에서 항목선택을 합니다.
그리고 COM구성요소에서 KHOpenAPI Control를 선택합니다.
만일 없을 경우 찾아보기클릭 직접 찾아서 선택 하셔야 합니다. (위치:C:\OpenAPI\khopenapi.ocx)
3. 항목을 선택하면 도구상자에 아이콘이 생성됩니다.
4. 도구상자에서 KHOpenAPIControl, 버튼, 라벨 추가하여 화면을 디자인 합니다.
추가한 컨트롤 이름 과 텍스트를 속성창에서 지정해 줍니다.
Name: axKHOpenAPI1 Visible: False
Name: btnLogin, Text:키움API로그인
Name: lblMessage, Text :메시지:
Name:lblAcccnt, Text :계좌수=>
Name:lblAccList, Text: 보유계좌=>
Name:lblUserID, Text: 사용자ID=>
Name:lblUserName, Text: 사용자이름=>
NamelblServergb, Text: 접속서버=>
5. 속성창에서 번개 모양이 있는데 컨트롤에 대한 모든 이벤트가 나열되어 있습니다. 코딩이 필요한 부분을
더블클릭을하면 코딩창으로 넘어 갑니다.
전체 코딩내용입니다. 설명은 주석처리와 코딩 내용을 보시면 알수 있습니다.
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace kiwoomsApp { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } private void axKHOpenAPI1_OnEventConnect(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnEventConnectEvent e) { if (e.nErrCode == 0) { string strACCOUNT_CNT = axKHOpenAPI1.GetLoginInfo("ACCOUNT_CNT"); // 보유계좌 갯수를 반환합니다. string strACCLIST = axKHOpenAPI1.GetLoginInfo("ACCLIST"); //구분자 ';'로 연결된 보유계좌 목록을 반환합니다. string strUSER_ID = axKHOpenAPI1.GetLoginInfo("USER_ID"); //사용자 ID를 반환합니다. string strUSER_NAME = axKHOpenAPI1.GetLoginInfo("USER_NAME"); //사용자 이름을 반환합니다. string strGetServerGubun = axKHOpenAPI1.GetLoginInfo("GetServerGubun"); //접속서버 구분을 반환합니다.(1 : 모의투자, 나머지 : 실거래서버) lblMessage.Text = "메시지: 로그인 성공입니다."; lblAcccnt.Text = "계좌수=> " + strACCOUNT_CNT; lblAccList.Text = "보유계좌=> " + strACCLIST; lblUserID.Text = "사용자ID=> " + strUSER_ID; lblUserName.Text = "사용자이름=> " + strUSER_NAME; lblServergb.Text = "접속서버=> " + strGetServerGubun; } else if (e.nErrCode == 100) { lblMessage.Text = ""메시지: 사용자 정보교환 실패"; } else if (e.nErrCode == 101) { lblMessage.Text = ""메시지: 서버접속 실패"; } else if (e.nErrCode == 102) { lblMessage.Text = ""메시지: 버전처리 실패"; } } private void btnLogin_Click(object sender, EventArgs e) { if (axKHOpenAPI1.CommConnect() != 0) { MessageBox.Show("로그인창 열기 실패"); } } } }
로그인 화면 호출 :
axKHOpenAPI1.CommConnect()
0값을 리턴하면 로그인창 오픈성공, 그외 값이 리턴될 경우 실패
로그인 이벤트: axKHOpenAPI1_OnEventConnect(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnEventConnectEvent e)
e.nErrCode 값
0 => 로그인 성공
100=>사용자 정보교환 실패
101=>서버접속 실패
102=> 버전처리 실패
로그인 정보:
axKHOpenAPI1.GetLoginInfo(sTag);
sTag값
ACCOUNT_CNT : 보유계좌 갯수를 반환합니다.
ACCLIST: 보유계좌 목록을 반환합니다.
USER_ID : 사용자 ID를 반환합니다.
USER_NAME : 사용자 이름을 반환합니다.
GetServerGubun : 접속서버 구분을 반환합니다.(1 : 모의투자, 나머지 : 실거래서버)참조) KOA StudioSA를 참조하여 코딩을 하였습니다. 모든 내용이 다 있으니 꼭 확인하시고 코딩하시면 됩니다.
7. 이제 F5키를 눌러 실행해 봅니다.
7. 실행을 할때 마다 로그인을 하는게 싫은 분들을 위해서 자동로그인 하는 방법에 대해서 알아 보겠습니다.
- 시스템 트레이 아이콘들 중에 오른쪽 아랫부분에 깜빡 거리는 아이콘이 있는데 오른쪽 마우스 클릭을 한 후
계좌비밀번호 저장을 클릭합니다.
- 비밀번호입력후 등록,전체계좌에 등록후 Auto체크를 하고 닫기를 클릭하면 적용이 됩니다.
반응형'프로그래밍 > c#' 카테고리의 다른 글
주식프로그램1 키움API를 이용한 주식관련 프로그램 개발 준비 c# (0) 2022.11.19