返回列表 上一主題 發帖

[發問] 關於用excel vba發訊息

回復 1# 瀟湘夜羽


要發給自己還是其他人呢

TOP

感謝兩位的回覆,關於第一位大哥回復的我有去看過
但看起來第二個可能性比較高,但部會用spy++的軟體,不知道如何使用
第二位大哥的是,如果兩個都要的話呢,有解決的方式嗎?

TOP

上網找了一下相關的spy++的文章
有下載了軟體,但問題來了....
我不會寫excel vba...
不知道有沒有好心人士可以教一下

目前想做的事
一開始抓到視窗(line,skype等等通訊軟體的視窗)
假設是視窗123,我要在excel 儲存格A1,當A1原先是空白,然後有公式運算後變成1
變成1之後,把這個1的數字發送到通訊軟體上,大致上是這樣

那有甚麼需要東西,例如是視窗代碼等等的(我看SPY文章好像要這個之類的)
很抱歉自身能力不足只能在這邊詢問

TOP

回復 13# 瀟湘夜羽

一般有兩個方式
1. sendkeys : 比較容易上手, 但變因較多
2. API: 每種軟體, 會有各自的API, 所以難易度與完整性也不盡相同

但這都一定要寫程式

TOP

sendkeys 看文章是電腦好像沒辦法操控,要鎖定位置的樣子
但因為我電腦還是要動,所以這方式對我來說還是不太行

api 這問題我有試著找文章解決
可以理解文章意思 但我不知道要怎麼寫一堆變數因數 看不懂

目前我覺得比較好的可能就像是spy++ 可以找到視窗代碼等等的鎖定
至少我想要動電腦的條件應該比較符合我吧?

TOP

回復 15# 瀟湘夜羽


大大好
你現在只能用 Skype 它有開放接口 不需要 API
Line 的接口印象中要用 $$ 買

TOP

Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems


Public Function Orderfunction(neworder As Integer, oldorder As Integer) As Integer
    Dim myKey As Object
    Set myKey = CreateObject("WScript.Shell")
   

   a = SetCursorPos(20, 430) '移動至Line對話視窗
         mouse_event 2, 0, 0, 0, 0     '下壓左滑鼠
         mouse_event 4, 0, 0, 0, 0     '放鬆左滑鼠
           Sleep (500)
         myKey.SendKeys "Hello, I'm VBA message"
           Sleep (500)
         myKey.SendKeys "{ENTER}"
          Sleep (500)
         myKey.SendKeys "{ENTER}"
          Sleep (500)


小弟用最愚笨的方法寫的,請笑納!!

TOP

最近也想弄類似的程式
有查了一些資料
搜尋line.api很多網頁都指向http://carpedm20.github.io/line/api/models.html#linemessage
說是大神提供的
以下是網頁的其中一個程式碼。

from line import LineClient, LineGroup, LineContact

try:
   client = LineClient("ID", "PASSWORD")
   #client = LineClient(authToken="AUTHTOKEN")
except:
   print "Login Failed"

while True:
   op_list = []

   for op in client.longPoll():
      op_list.append(op)

   for op in op_list:
      sender   = op[0]
      receiver = op[1]
      message  = op[2]

      msg = message.text
      receiver.sendMessage("[%s] %s" % (sender.name, msg))

問題一:請問這是什麼語言?
問題二: 程式碼中LineClient,為什麼他們不用先宣告?
         https://www.youtube.com/watch?v=qwIlf1OpXwA(這是skype的,一開始有先導入api
,所以很多函數不用宣告,就可以直接用)
問題三:樓上有提到line.api需要付費,那這個網頁的程式碼還能用嗎?
問題四:這大神的api是自創的?那自創的方法是什麼?破解line.exe嗎?

有錯請指正,希望能得到解答,感激不盡。

TOP

回復 18# fashionable3000

以上看起來應該是 Python

想知道detail怎麼作, 就去看 import 的東西吧

TOP

回復 18# fashionable3000

大大好
API Documentation 不是已經寫的很清楚了嗎
它是把 Line 官方的 API 封裝成方便其他語言直吃的 dll
所以它不是什麼破解的

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題