1

こんにちは StackOverflow のコミュニティです。これは私の最初の投稿ですが、しばらく前から読んでいます。それが本当に重要でないなら、私はあなたの助けを求めません。簡単に解決できるかもしれない問題があります。それは次のとおりです。

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 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 内にいる間はその変数が更新されません。

ヘルプやヒントは素晴らしいものになります。よろしくお願いします。ところで、コードは長くなりますが、私の質問を理解するにはそれで十分だと思います。


例外とエラー:

イメージアルバム

HResult = -2147467259 というエラー コードも検出しましたが、未指定のコードになりました。

0x80004005
E_FAIL
Unspecified 
4

1 に答える 1

0

さて、あなたのコメント「 Dim pCall As SKYPE4COMLib.Call 」が問題です。グローバル スコープで変数を作成する必要があります。つまり、どこからでもアクセスできます。Dim またはプライベート変数は、他のサブシステムまたはそれを使用したいものからアクセスできません。

あなたの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 を実行すると非常に便利です (コメントを追加しました)。これを行うと、スタック トレース/エラーが正確に通知されます。そうすればデバッグできます。たとえば、整数が null などの場合に何かを値に設定しようとすると、null 例外が発生します。エラーコードを表示してデバッグできるので、スタックフローでも非常に便利です。

「うまくいかない」などのコメントは、私たちがあなたを助けるのに役立ちません. 「x タイプの例外と表示されています。それは何ですか?」のようなコメント。その例外タイプの 9/10 グーグルがあなたの答えを得るので、それはあなたにとって本当に役に立ちます。

これが役立つことを願っています:D.

于 2014-10-29T17:36:28.927 に答える