배포된 애플리케이션의 키보드 이벤트 얻어서 새로운 기능 구현하는 방법

junsa9의 이미지

제가 하려고 하는것은 이미 상용으로 배포되어있는 프로그램의 플러그인을 개발하는 것입니다.
예를 들어 포토샵, 엑셀 같은 툴을 새로 빌드 하지 않고 툴에서 제공하는 api만을 가지고 개발을 해야합니다. 왜냐면 당연히.. 상용프로그램 소스가 없기 때문이죠.

정확히 구현하고 싶은 기능은
특정 키, 예를 들어 'k' 를 누른상태에서 무언가를 하고 싶습니다.
단축키 또는 핫키와 비슷한 기능을 구현하고 싶은 것입니다.

그래서 애플리케이션이 구동중에 키보드 이벤트를 받으려고 하는데
문제는 제공하는 api에서 런타임 이벤트를 관리할 수 이벤트 핸들러 같은것을 지원한다던가
또는 애플리케이션의 업데이트 함수 같은것을 상속받지 못하는 구조인듯 합니다.
때문에 런타임에 접근을 못하고 있습니다.
api 에서 제공하는 디바이스 이벤트라고는 마우스 클릭 이벤트 몇개와 위치정보
그리고 키보드는 컨트롤, 알트, 쉬프트, 방향키, 정도인듯 합니다.

지금 간단히 생각나는 아이디어는 윈도우 자체에서 키보드 이벤트를 후킹하는것,
또는 프로그램 내부에서 새로운 메시지 루프를 돌리는 것,
참고로 제가 사용중인 프로그램 내부스크립트로 파이썬을 지원하기때문에
qt를 이용하여 프로그램 내부에서 새로운 윈도우를 만들고 거기에서 이벤트 루프를 돌려보았지만
제가 하고 싶은것은 그 이벤트를 받아 메인 윈도우에서 무언가를 하고 싶은 것이기 때문에
새로 만든 윈도우에서 이벤트를 받아봤자 메인 윈도우로 어떻게 전달해야 할지 모르겠더군요..

이렇게 막혀 있는 상태에서 키보드 이벤트를 받아 무언가를 하려고 할때 어떻게 접근하면 좋을지 조언을 구합니다.

제가 개발하려고 하는 툴은 autodesk maya 라는 툴이고 c++ api가 제공이 되고 프로그램 내부 스크립트로 python이 임베딩 되어있습니다.

shint의 이미지

후킹'은 허가 받지 않은 접근으로. 불법 일겁니다.

각 회사별로 문의주시면. 개발 하는 방법과 SDK를 알려주실겁니다.

게다가. 예제소스도 제공되고. 더 편할겁니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.