프로그래밍 언어/오토핫키

오토핫키-모바일 푸쉬보내기

원원 2021. 6. 28. 20:30

안녕하세요. 오늘은 모바일 앱 Pushbullet과 오토 핫 키를 연동하여 푸시 메시지를 보내는 것을 해보겠습니다



응용 예시: 모바일 플레이어 (LDPlayer, Nox, 블루스택 등)을 이용해서 게임을 켜놓고 그 캐릭터가 죽었을 때 핸드폰으로 푸시 메시지를 받고 싶은 경우 사용 가능.

저 같은 경우에는 "바람의 나라:연"게임을 하였고, 게임 캐릭터가 죽었을 경우 핸드폰으로 푸시 메시지를 보냈었습니다. 캐릭터가 죽고 나면 팀뷰어(핸드폰 or 컴퓨터로 컴퓨터 원격제어) 프로그램을 통해서 캐릭터를 관리했었습니다.

 

1. 플레이스토어에서 Pushbullet 앱 다운 및 로그인

2. 앱에서 로그인한 ID로 로그인 https://www.pushbullet.com/

 

Pushbullet - Your devices working better together

Unfortunately, our page wasn’t able to load. Do you have Javascript enabled? Could NoScript or Adblock be blocking things? If this continues to happen after refreshing, please let us know at [email protected]

www.pushbullet.com

3. 토큰생성

 

4. 일단은 버튼을 클릭하면 핸드폰으로 푸쉬메세지 보내는걸 해보겠습니다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
 
 
Gui, Add, Text, x12 y9 w150 h40 vB, 상태
Gui, Add, Text, x12 y59 w150 h40 vA, 
Gui, Add, Button, x12 y109 w150 h30 ,사망감시
Gui, Add, Button, x12 y150 w150 h30 ,레이드
Gui, Add, Button, x12 y200 w150 h30 ,문파레이드
Gui, Show,x1500 y400 w189 h402 
return
GuiClose:
ExitApp
Button사망감시:
{
    Winmove,LDPlayer,,0,0,1002,576 ; 크기조절
    WinGet,winid,ID,LDPlayer
    
        
    GuiControl,,A,사망알람ON
    PushNote("3번에서 발급받은 토큰 입력","바람의나라:연","유령상태")
    
    return
}
F3::
{
    
    ExitApp
    return
}
PushNote(Token,Title,Body)
{
Title:=UriEncode(Title)
Body:=UriEncode(Body)
runwait,curl.exe https://api.pushbullet.com/api/pushes -u %Token%: -d type=note -d title=%Title% -d body=%Body% -X POST -k
return
}
UriEncode(Uri, Enc = "UTF-8")
{
    StrPutVar(Uri, Var, Enc)
    f := A_FormatInteger
    SetFormat, IntegerFast, H
    Loop
    {
        Code := NumGet(Var, A_Index - 1"UChar")
        If (!Code)
            Break
        If (Code >= 0x30 && Code <= 0x39 ; 0-9
            || Code >= 0x41 && Code <= 0x5A ; A-Z
            || Code >= 0x61 && Code <= 0x7A) ; a-z
            Res .= Chr(Code)
        Else
            Res .= "%" . SubStr(Code + 0x100-1)
    }
    SetFormat, IntegerFast, %f%
    Return, Res
}
StrPutVar(Str, ByRef Var, Enc = "")
{
    Len := StrPut(Str, Enc) * (Enc = "UTF-16" || Enc = "CP1200" ? 2 : 1)
    VarSetCapacity(Var, Len, 0)
    Return, StrPut(Str, &Var, Enc)
}
cs

 

위의 코드에서 20번째줄만 변경해주면 됩니다

PushNote(Token,Title,Body)

Token : 3번에서 발급받은 토큰 입력

Title : 푸쉬메세지 제목

Body: 푸쉬메세지 내용

 

<사망감시>버튼 클릭

 

위의 사진처럼 오게됩니다.

 

5. 캐릭터가 죽었을때 핸드폰으로 푸쉬메세지를 받고싶은 경우

1)순서도

2) "위의 코드에서 캐릭터가 죽었는가?"만 해결하면 되는데 캐릭터가 죽었는지 안죽었는지는 이미지서치기능을 통해서 하면 됩니다.

이미지서치 : https://wowon.tistory.com/194?category=618295 

 

오토핫키 이미지서치함수(ImageSearch)

안녕하세요. 오늘은 오토핫키 이미지서치에 대해 알아보겠습니다 이미지서치란 특정 화면에서 이미지를 찾아서 이미지가 서치됬는지 안됬는지 유무에 따라서 알려주는 기능입니다 ImageSearch, Ou

wowon.tistory.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Button사망감시:
{
    Winmove,LDPlayer,,0,0,1002,576 ; 크기조절
    WinGet,winid,ID,LDPlayer
    
        
    GuiControl,,A,사망알람ON
    
    Loop
    {
        
        if(Search_img("사망메세지1.bmp",winid,x,y))
        {
            PushNote("개인토큰","바람의나라:연","유령상태")
            GuiControl,,A,대기중
            break
        }
        if(Search_img("사망메세지2.bmp",winid,x,y))
        {
            PushNote("개인토큰","바람의나라:연","좌 성황당")
            GuiControl,,A,대기중
            break
        }
        if(Search_img("사망메세지3.bmp",winid,x,y))
        {
            PushNote("개인토큰","바람의나라:연","성황당_맵")
            GuiControl,,A,대기중
            break
        }
        if(Search_img("사망메세지4.bmp",winid,x,y))
        {
            PushNote("개인토큰","바람의나라:연","성황당_할머니")
            GuiControl,,A,대기중
            break
        }
    }
    
    return
}
cs

저 같은 경우는 이미지 서치가 잘 안되는 경우가 있어서, 여러 상황을 놓고 알람을 보냈었습니다.



감사합니다.