매크로

정보
2015.04.16 10:30

gdip 간단 응용 팁들

조회 수 4098 추천 0 댓글 13

일단 gdip 쓰면서 간단히 주의할 점들 몇개 쓰겠습니다

1. 화면보호기는 gdip 사용시 어떤 문제도 일으키지 않지만 전원옵션을 통해서 모니터 끄기를 한 경우
스크린에 쏘는 그래픽 리소스가 없어져서 gdip 작동안됩니다
다만 물리적으로 모니터를 끄는 것은 문제가 없습니다

2. 이미지 사용하신 후 disposeimage 꼭 해주셔야합니다

이미지 파일이 2~3메가 되기때문에 변수 클리어 안하시면 램 다 잡아먹습니다


아래는 팁들


1. 화면 밖으로 창 밀어내기


아직 2렙이 안되서 딴 게시판들은 못봤지만 일단 이 방법은 굉장히 흔한거 같습니다

다만 gdip를 이용할 경우 듀얼모니터 구성이 전혀 필요없다는 점에서 간편합니다


IfWinNotActive, ahk_id %hwndA%
?? WinActivate, ahk_id %hwndA%
inout := !inout

WinMove, ahk_id %hwndA%,, % inout ? 15 : -1500, % inout ? 15 : -1500,

;위 라인은 아래와 같습니다

/*

if inout
WinMove, ahk_id %hwndA%,,15,15,
else
WinMove, ahk_id %hwndA%,,-1500,-1500,

*/


이런식으로 창을 화면밖으로 (음수 좌표) 밀어버리고 필요하다면


WinSet, Bottom,, ahk_id %hwndA%


까지해서 창을 맨뒤로 보내주면 깔끔합니다


2. 창 숨기기


일단 블루스택으로만 해봤습니다

Parent Window를 이용한 건데요

윈도우에는 progman 이라는 프로세스가 항시 구동중입니다

윈도창을 이 프로세스에 child로 편입시키면

창 표시순서가 바탕화면 바로위로 바뀌면서 시작표시줄에서 해당 창은 사라집니다

블루스택의 경우 윈도와 버그가 있는지 아래와 같은 코드로 child로 편입시키면 창이 아예 보이지 않습니다

하지만 보이지만 않지 창은 계속 존재하므로 child 편입 후 위에 밀어내기 코드를 써주셔야합니다

(밀어내기 안하시면 바탕화면에 블루스택 창 존재하는 위치에 클릭이 안됩니다 ㅎㅎ)

아래 코드로 한번 실험해보시기 바랍니다

shouldn't find it 메시지가 나왔을때


pBitmap := Gdip_BitmapFromHWND(hwndA)
Gdip_SaveBitmapToFile(pBitmap, "test.bmp", 100)


위와 같은 코드로 스샷 저장해서 보시면 보이지만 않지 실제로 정상 작동중임을 확인 할 수 있습니다



SetTitleMatchMode,2

targetwd := "BlueStacks App Player"
WinGet, hw_a, ID, %targetwd%
if hw_a=
{
??? MsgBox, Failure to WinGet target window ID!
??? ExitApp
}
hw_parent := DllCall( "GetParent", "uint", hw_a )
;WinGet, hw_progman, ID, Program Manager ahk_class Progman
WinGet, hw_progman, ID, ahk_class Progman
turnwhat:=DllCall( "SetParent", "uint", hw_a, "uint", hw_progman )
WinActivate, ahk_id %hw_a%
winshow, ahk_id %hw_a%
MsgBox, check the taskbar for the target window button... shouldn't find it
turnwhat1:=DllCall( "SetParent", "uint", hw_a, "uint", hw_parent )
MsgBox, check the taskbar for the target window button... it's back


3. gdip 사용시 창 투명도에 제약을 받지 않습니다


WinSet, Transparent, 0, ahk_id %hwndA%

이런식으로 그냥 안보이게 해놔도 잘 작동합니다


  • 제발등업좀2 2015.04.16 11:20

    어렵네요 ... 크윽.. 여기는 또다른 신세계네요 ..

    여러싸이트 도움으로 간단한 배열부터 기본적인것 배우는데도 힘들어는데..

    이건 이것대로 신세계인듯... ㅡ.ㅜ 정말 오핫의 배움은 끝이 없는것같네요 ;;

    저같이 이쪽 전공 (기계) 아닌?사람은 걍 활성 서치 써먹어야 할듯... ㅋ

  • 우후훅 2015.04.16 11:25
    여기 계신 거의 대부분 유저들이 이쪽계통이 아닐겁니다. 이쪽 계통이면 이미 다른 고급언어 쓰몈서 햇겟죠. 쉽다고하는 오토핫키에 열내지는 않을거에요. 프로그래밍 문외한이 접하기 쉬운게 그나마 오핫이니까요.
    무대뽀로 그냥 해보면서 재미삼아 배우고 잇습니다
  • profile
    외치기 2015.04.16 14:32
    이쪽계열이고 회사에서는 C#으로 작업하지만
    학생시절 오토핫키에 중독되서 업무외에는 전부 오토핫키로 작업합니다. ㅋㅋㅋㅋㅋㅋ
  • 우후훅 2015.04.16 14:40
    외치기님 관련업에서 일하고 계셧군용... 저는 틈틈히 재미붙여서하는거라 수준저질입니다.
  • profile
    외치기 2015.04.16 15:12
    저도 야매로 배운거라 저질이에요 ㅋㅋ
  • 매크로맨서 2015.04.16 13:24

    ImageSearch, x, y, 0,0, 1000, 1000, img/start.bmp *30

    위가 활성이고

    아래가 비활성입니다
    Gdip_ImageSearch(pBitmapNeedle, pBitmapHayStack,? x,? y)

    크게 다를것도 없습니다

    너무 겁먹지 마세요

  • 제발등업좀2 2015.04.16 16:48

    음.. 기본적으로 .. 이걸 써먹을려면 라이브러리 를 끌어다 써야하는건가요 ?
    Gdip_ImageSearch(pBitmapNeedle, pBitmapHayStack, x, y)
    이것 자체를.. 처음보다 보니.. 잘모르겠ㄴㅔ요 ㅋ.

    또폭풍검색을.. 해봐야겠네요 암튼 감사합니다 ^^

  • 매크로맨서 2015.04.16 13:25

    아 그리고 오핫의 경우 배열이 따로 없고 일반 오브젝트를 배열로 쓰는거기 때문에

    배열관련 함수도 없고 다른 언어에 비해서 너무 복잡하고 어렵습니다

    저도 배열 알아볼때는 뭐 이런 언어가 다 있나 했답니다

  • profile
    외치기 2015.04.16 14:32
    언어라기보다는 스크립트에서 시작해서 점점 발전한 형태라 애매하죠 ㅋㅋㅋㅋ
    그래도 최신버전에서는 배열이 다른언어의 배열과 비슷한 형태를 띄고있다고합니다.
  • 제발등업좀2 2015.04.16 16:44
    그렇군요;; 비슷한 형태로 쓰이니깐 배열이라고 하는거지.. 그것자체 가 배열이라고 는 하지않는거군요
    도움이 되는 말씀 감사합니다.
  • 모바게 2015.04.16 19:35
    최신버전은 나름 다른 배열과 비슷하개 생겨먹긴 했죠..
    뭐.. 사실 엉망입니다.
    http://ahkscript.org/docs/misc/Arrays.htm
  • 매크로맨서 2015.04.17 00:50
    근데 사실 저는 씨쁠보다 자바를 먼저 배워서
    이런 class 형 변수가 더 익숙하긴 하네요
    문제는 array 라면 응당 가져야할 sort같은 기본적인 메소드가 없다는게 너무 아쉽죠
    간단한거 까지 손수 작성해야하니 ㄷㄷ
  • 모바게 2015.04.17 15:49
    http://tailstar.net/autohotkey/6669203
    글 작성했습니다. array 확장판이에요 ㅋㅋ

List of Articles
분류 제목 글쓴이 최근변경 추천
자유 근데 OCR로 이미지 판단이 가능할까요? 2 우후훅 2015.04.17 0/0
질문 블택윈도우화면 위로 Gui 텍스트 글자 보이게 하기 3 제주소나이 2015.04.22 0/0
질문 기본 연산자 기호관련해서 질문드려요 15 우후훅 2015.04.17 0/0
질문 지니 비활성화 질문 10 백곰e 2015.04.16 0/0
정보 gdip 간단 응용 팁들 13 매크로맨서 2015.04.18 0/0
정보 Gdip를 이용한 클립보드에 있는 이미지를 통한 이미지서치 11 암드래 2016.07.19 0/0
정보 일정이미지 발견시 다른이미지서치 할수있나요? 2 세나블텍 2015.04.16 0/0
질문 한스크립트안에 여러가지 스크립트를 넣어 놓을수 있나요? 4 세나블텍 2015.04.22 0/0
질문 coc는 매크로 불가능한가요? 8 콘초블레이드 2015.04.16 0/0
질문 gdip_imagesearch 사용하시는 분들 중에 tolerance 건... 12 매크로맨서 2015.10.08 1/0
질문 gui 질문좀할께여 8 백곰e 2015.04.15 0/0
질문 블루스텍 구동시 화면깨짐 현상.. 1 흑염제 2015.04.15 0/0
질문 임의의 숫자가들은 변수를 소트하는방법을 좀 부탁드려요. 14 우후훅 2015.04.15 0/0
질문 지니모션 복제실행 6 나는황제다 2015.04.22 0/0
자유 여기서 개발하시는분들은 보안도 신경쓰셔야할거같아요. 15 외치기 2015.07.26 0/0
질문 화면 해상도 4 나는황제다 2015.04.23 0/0
질문 게임상나오는숫자 이미지서칭으로 찾는방법요 28 우후훅 2015.04.24 0/0
질문 블루스택 터치문제 4 불꽃앞점멸 2015.04.15 0/0
질문 오토핫키 Gui Button 텍스트에 색 입히기 질문 2 아잉뿌잉 2015.04.13 0/0
질문 비활성에 대한 질문입니다. 또 메시지에 대한 질문입니... 13 케리의비밀 2015.04.15 0/0
Board Pagination Prev 1 ... 172173174175176177178179180 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글