none
请教有关拦截短信问题: RRS feed

  • 问题

  •   Sub Main()
            Dim messageCondition As New MessageCondition() ';//创建一个拦截条件对象 

            messageCondition.Property = MessageProperty.Body ';//针对消息体匹配 

            messageCondition.ComparisonType = MessagePropertyComparisonType.Contains  ';//匹配类型为全部相等 

            messageCondition.ComparisonValue = "asdf" ';//匹配的内容(清空联系人) 

            messageCondition.CaseSensitive = False  ';//匹配时区分大小写 

            Dim messageInterceptor As New MessageInterceptor(InterceptionAction.NotifyAndDelete, True) '; //创建一个短消息拦截器对象  //拦截动作:通知并删除 
            AddHandler messageInterceptor.MessageReceived, AddressOf messageInterceptor_MessageReceived

            While ysno

                System.Windows.Forms.Application.DoEvents()
            End While
        End Sub
        Private Sub messageInterceptor_MessageReceived(ByVal sender As System.Object, ByVal e As System.EventArgs)
                  ysno = False
        End Sub

    控制台程序无法拦截请教
    谢谢


    tfnpghl
    2010年2月20日 11:06

答案

  • hello, 关于短信拦截,SDK中有一个例子,名字叫做PhoneFinder,你可以参考一下。 另外,开启短信拦截还需要下面一段code,是从那个例子中引用过来的: interceptor.EnableApplicationLauncher(ruleName)
    施炯
    2010年2月21日 0:07
    版主
  • 把拦截器定义为全局变量,也即把下面的代码定义在外面,不是main函数中。
    Dim messageInterceptor As New MessageInterceptor


    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2010年2月22日 9:46
    版主
  • 经过多次修改,终于成功,以下是完整的vb2005程序。首先添加引用就可以了。

    Imports Microsoft.WindowsMobile.Telephony
    Imports Microsoft.WindowsMobile.PocketOutlook
    Imports Microsoft.WindowsMobile.PocketOutlook.MessageInterception
    Imports Microsoft.WindowsMobile

    Public Class Form1
        Dim mi As New Microsoft.WindowsMobile.PocketOutlook.MessageInterception.MessageInterceptor(InterceptionAction.NotifyAndDelete, True)


        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


            '设定拦截条件 


            mi.MessageCondition.Property = MessageProperty.Body ';//针对消息体匹配

            mi.MessageCondition.ComparisonType = MessagePropertyComparisonType.Contains     ';//匹配类型为包含

            mi.MessageCondition.ComparisonValue = "asdf" ';//匹配的内容(清空联系人)

            mi.MessageCondition.CaseSensitive = False  ';//匹配时区分大小写

            '发生接收事件
            AddHandler mi.MessageReceived, AddressOf mi_MessageReceived

        End Sub

        Private Sub mi_MessageReceived(ByVal sender As Object, ByVal e As Microsoft.WindowsMobile.PocketOutlook.MessageInterception.MessageInterceptorEventArgs)
            Dim mySMS As SmsMessage = CType(e.Message, SmsMessage)
            TextBox1.Text = mySMS.Body         '短信息内容
        End Sub

    End Class

    2010年9月1日 2:09

全部回复

  • hello, 关于短信拦截,SDK中有一个例子,名字叫做PhoneFinder,你可以参考一下。 另外,开启短信拦截还需要下面一段code,是从那个例子中引用过来的: interceptor.EnableApplicationLauncher(ruleName)
    施炯
    2010年2月21日 0:07
    版主
  • 只要做成窗口应用程序上面的代码能正常拦截,不知这是为什么?
    你说的还一段code是什么能帮我一下吗?
    谢谢


    tfnpghl
    2010年2月21日 0:37
  • 把拦截器定义为全局变量,也即把下面的代码定义在外面,不是main函数中。
    Dim messageInterceptor As New MessageInterceptor


    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2010年2月22日 9:46
    版主
  • 经过多次修改,终于成功,以下是完整的vb2005程序。首先添加引用就可以了。

    Imports Microsoft.WindowsMobile.Telephony
    Imports Microsoft.WindowsMobile.PocketOutlook
    Imports Microsoft.WindowsMobile.PocketOutlook.MessageInterception
    Imports Microsoft.WindowsMobile

    Public Class Form1
        Dim mi As New Microsoft.WindowsMobile.PocketOutlook.MessageInterception.MessageInterceptor(InterceptionAction.NotifyAndDelete, True)


        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


            '设定拦截条件 


            mi.MessageCondition.Property = MessageProperty.Body ';//针对消息体匹配

            mi.MessageCondition.ComparisonType = MessagePropertyComparisonType.Contains     ';//匹配类型为包含

            mi.MessageCondition.ComparisonValue = "asdf" ';//匹配的内容(清空联系人)

            mi.MessageCondition.CaseSensitive = False  ';//匹配时区分大小写

            '发生接收事件
            AddHandler mi.MessageReceived, AddressOf mi_MessageReceived

        End Sub

        Private Sub mi_MessageReceived(ByVal sender As Object, ByVal e As Microsoft.WindowsMobile.PocketOutlook.MessageInterception.MessageInterceptorEventArgs)
            Dim mySMS As SmsMessage = CType(e.Message, SmsMessage)
            TextBox1.Text = mySMS.Body         '短信息内容
        End Sub

    End Class

    2010年9月1日 2:09