2014-10-29 48 views
1

您好社區的StackOverflow,這是我的第一篇文章,但我已經閱讀了一段時間。如果這不是真的重要,我不會要求你的幫助。我有,你可能能夠輕鬆地解決一個問題,那就是:與Skype API一般VB.net問題

Public Class Form1 
Public WithEvents oskype As New SKYPE4COMLib.Skype 

'HOOK EVENTS 
Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) Handles kbHook.KeyDown 
    If Key = Keys.F7 Then 
     'CODE HERE TO ANSWER SKYPE CALL 
    End If 
End Sub 
End Class 

在那裏,你看我有一些代碼掛鉤低電平鍵(喜歡做的快捷方式),我想回答當F7被按下時調用,但我不知道如何在這種情況下調用API。

作爲參考我在這裏展示的我怎麼能自動接聽電話一個例子,如果Skype正在振鈴:

'SKYPE CALLING EVENT 
Private Sub oSkype_CallStatus(pCall As SKYPE4COMLib.Call, Status As SKYPE4COMLib.TCallStatus) Handles oskype.CallStatus 
    If SKYPE4COMLib.TCallStatus.clsRinging Then 
     pCall.Answer() 
    End If 
End Sub 

的事情是,我不能設置pCall.Answer()或oskype.Answer( )在其他塊(或任何其他塊,如按鈕),它不起作用。

我也嘗試設置一個變量,當按F7時,但然後該變量不更新,而我在oSkype_CallStatus Sub。

任何幫助或提示將是真棒,謝謝你提前。順便說一句,代碼更長,但我認爲這足以讓你理解我的問題。


異常和錯誤:

Image Album

我還檢測到的錯誤代碼,這是的HResult = -2147467259但事實證明是一個未指定的代碼:

0x80004005 
E_FAIL 
Unspecified 
+0

你想如何回答Skype?不斷等待一個循環,直到有信號進入?爲什麼你不能在負載上公開聲明pCall,然後能夠在keydown事件中引用它?我認爲最後一個可能是你的解決方案。 – Kat 2014-10-29 16:00:43

+0

@sparkysword謝謝你,那是我正在尋找的那種東西,但你能幫我做到嗎?我是面嚮對象語言的初學者,所以我有點失落。我猜你的意思是在Form_1加載事件中插入類似於對象或變量聲明的東西? – jaimehrubiks 2014-10-29 16:52:16

+0

我嘗試了一些像Dim pCall SKYPE4COMLib.Call然後使用pCall.Answer(),但沒有工作 – jaimehrubiks 2014-10-29 17:01:51

回答

0

好,所以你的評論「Dim pCall As SKYPE4COMLib.Call」是你的問題。您需要創建一個全局範圍的變量,即可以隨處訪問。昏暗或私有變量不能從其他潛艇或任何想要使用它的地方訪問。

嘗試在sub之外聲明它,就像你的oskype一樣。

Public Class Form1 
Public WithEvents oskype As New SKYPE4COMLib.Skype 
Public pCall as New SKYPE4COMLib.Call 

'HOOK EVENTS 
Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) Handles kbHook.KeyDown 
If Key = Keys.F7 Then 
    Try 
     pCall.Answer() 
    Catch ex as Exception 'BreakPoint Here 
    End Try 

    End If 
End Sub 

請注意try/catch我添加了嗎?在Vb.net中,你可以添加,捕捉/忽略或任何時候發生問題。如果你在ex線上做了一個斷點/ F9(我對它加了一個註釋),這將會非常有用。當你這樣做時,它會準確地告訴你堆棧跟蹤/錯誤。這樣你可以調試。例如,如果您嘗試在整數爲空或任何值時將某些值設置爲值,則爲空異常。這對我們也是非常有用的,因爲你可以向我們展示錯誤代碼,並且可以調試它。

像「它不工作」的評論不幫助我們幫助你。像「它說x類型的例外,那是什麼?」從9/10開始,這對你來說真的很有幫助,那種異常類型的谷歌會給你答案。

希望這有助於:D。

+1

謝謝你的奉獻,我瞭解到捕捉異常並試圖自己修復它,但我無法想象如何。我將更新我的原始文章,並提供有關我所擁有的錯誤的所有信息。 – jaimehrubiks 2014-10-29 20:46:38