polorbear
72
2019-11-25 21:09:52
0
516

win32 api 관련 하여 질문 드립니다.



void FindTalkcollect(HWND hWnd, UINT uMsg) { // 카톡 리스트를 뽑아오기 위한 함수 입니다.  

		// if (g_talk_cnt == 0) return;

		srand(time(NULL));
		// ran = (rand() % g_talk_cnt);
		Talklst* q = g_talk_lst;
		for (int i = 0; i < g_talk_cnt; i++) {
			if (NULL != my_win_edit) { // 문제??? 
				// SetWindowPos(my_win_edit, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
				
				// ctrl+a 를 통해 전체 선택
				PostMessage(g_talk_lst[i].h_talk_collect, WM_KEYDOWN, 0x00000011, 0x001D0001);// ctrl key down
				PostMessage(g_talk_lst[i].h_talk_collect, WM_KEYDOWN, 0x00000041, 0x001E0001);// a key down
				PostMessage(g_talk_lst[i].h_talk_collect, WM_CHAR, 0x00000001, 0x001E0001);// CHAR
				PostMessage(g_talk_lst[i].h_talk_collect, WM_KEYUP, 0x00000011, 0xC01D0001);// ctrl key up
				PostMessage(g_talk_lst[i].h_talk_collect, WM_KEYUP, 0x00000041, 0xC01E0001);// a key up

				//  ctrl+c 를 통해 전체 복사
				PostMessage(g_talk_lst[i].h_talk_collect, WM_KEYDOWN, 0x00000011, 0x001D0001);// ctrl key down
				PostMessage(g_talk_lst[i].h_talk_collect, WM_KEYDOWN, 0x00000043, 0x002E0001);// c key down
				PostMessage(g_talk_lst[i].h_talk_collect, WM_CHAR, 0x00000003, 0x002E0001);// CHAR
				PostMessage(g_talk_lst[i].h_talk_collect, WM_KEYUP, 0x00000011, 0xC01D0001);// ctrl key up
				PostMessage(g_talk_lst[i].h_talk_collect, WM_KEYUP, 0x00000043, 0xC02E0001); // c key up 

				// OnBnClickedFromClipboard(g_talk_lst[i].h_talk_collect); // 클립보드 내용을 문자열로 저장


			}
		  }
	}

win32 api 를 이용 하여 카카오톡의 대화 내용을 가져 오려 하고 있습니다. 

가져오는 방법은 카톡의 대화 리스트 핸들에서 직접 ctrl+a , ctrl+c 를 통해 클립보드로 가져 오는것으로 구현 중 입니다. 

여기서 문제는 이상하게도 자동으로 가져 와야 하는데 ctrl+v 키를 눌러야 선택이 되고 클립보드로 가져와 지네요

질문은 _ 

1. 무었 때문에 이런 문제가 발생을 하는것 일까요?

2. 어떻게 해야 대화를 자동으로 복사하고 가져올수 있을 까요? 

3. 그리고 이런 방법 말고 다른 방법이 또 있을까요?? 


위 코드가 대화 내용을 복사하는 코드 입니다. 

 전체 소스 <- 전체 소스파일  입니다. 

0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.