WM短信读取(C#)

// 采用DataGrid现实

// 读取收件箱内信息
private   void  button1_Click( object  sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
{
            DataTable mydt 
= new DataTable();
            mydt.TableName 
= "InBox";
            mydt.Columns.Add(
new DataColumn("SenderName"typeof(string)));
            mydt.Columns.Add(
new DataColumn("SenderAddress"typeof(string)));
            mydt.Columns.Add(
new DataColumn("Subject"typeof(string)));
            mydt.Columns.Add(
new DataColumn("SendTime"typeof(string)));
            mydt.Columns.Add(
new DataColumn("ReceiveTime"typeof(string)));
            mydt.Columns.Add(
new DataColumn("SendTime1"typeof(DateTime)));
            mydt.Columns.Add(
new DataColumn("ReceiveTime1"typeof(DateTime)));
            
if (NetMAPI.MAPIInit())
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{

                NetMAPI mapi 
= new NetMAPI();
                
if (mapi.Login())
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    
if (mapi.OpenMessageStore())
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
{
  
                        
if (mapi.OpenInbox())
ExpandedSubBlockStart.gifContractedSubBlock.gif                        
{

                            
if (mapi.GetContents())
ExpandedSubBlockStart.gifContractedSubBlock.gif                            
{
                                
int count = mapi.GetRowCounts();
                                SmsMessage msg;
                                StringBuilder s 
= new StringBuilder(140);
                                
int i = 0;
                                DataRow dr;
                                
while (mapi.GetNextMessage(out msg, false))
ExpandedSubBlockStart.gifContractedSubBlock.gif                                
{
                                    i
++;
                                    
                                    dr 
= mydt.NewRow();
                                    
                                    msg.GetSenderName(s);
                                    dr[
"SenderName"= s.ToString();
                                    
//MessageBox.Show(s.ToString());
                                    msg.GetSenderEmail(s);
      
                                    dr[
"SenderAddress"= s.ToString();
                                    
//MessageBox.Show(aa);
                                    
//MessageBox.Show(s.ToString());
                                    msg.GetSubject(s);
                                    dr[
"Subject"= s.ToString();
ExpandedSubBlockStart.gifContractedSubBlock.gif                                    
/**/////MessageBox.Show(s.ToString());
                                    msg.GetSubmitTime(s);
                                    dr[
"SendTime"= s.ToString();
                                    msg.GetReceivedTime(s);
                                    dr[
"ReceiveTime"= s.ToString();
                                    msg.Dispose();
                                    mydt.Rows.Add(dr);
                                    
if (i == count - 1)
ExpandedSubBlockStart.gifContractedSubBlock.gif                                    
{
                                        
break;
                                    }


                                }


                            }

                        }


                    }

                    
                    mapi.Logout();
                }

            }

            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                MessageBox.Show(
"faile");
            }

            NetMAPI.Term();
            
this.dataGrid1.DataSource = mydt;
        }


// 读取发件箱内短信
private   void  button2_Click( object  sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
{
            DataTable mydt 
= new DataTable();
            mydt.TableName 
= "SendedBox";
            mydt.Columns.Add(
new DataColumn("SenderName"typeof(string)));
            mydt.Columns.Add(
new DataColumn("SenderAddress"typeof(string)));
            mydt.Columns.Add(
new DataColumn("Subject"typeof(string)));
            mydt.Columns.Add(
new DataColumn("SendTime"typeof(string)));
            mydt.Columns.Add(
new DataColumn("ReceiveTime"typeof(string)));
            mydt.Columns.Add(
new DataColumn("SendTime1"typeof(DateTime)));
            mydt.Columns.Add(
new DataColumn("ReceiveTime1"typeof(DateTime)));
            
if (NetMAPI.MAPIInit())
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{

                NetMAPI mapi 
= new NetMAPI();
                
if (mapi.Login())
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    
if (mapi.OpenMessageStore())
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
{

                        
if (mapi.OpenSentItems())
ExpandedSubBlockStart.gifContractedSubBlock.gif                        
{

                            
if (mapi.GetContents())
ExpandedSubBlockStart.gifContractedSubBlock.gif                            
{

                                SmsMessage msg;
                                StringBuilder s 
= new StringBuilder(140);
                                StringBuilder s1 
= new StringBuilder(25);
                                StringBuilder s2 
= new StringBuilder(25);
                                
int i = 0;
                                DataRow dr;
                                
while (mapi.GetNextMessage(out msg, false))
ExpandedSubBlockStart.gifContractedSubBlock.gif                                
{
                                    i
++;

                                    dr 
= mydt.NewRow();
                                    msg.GetRecipients();
                                    SmsMessage.RecipientType tt;
                                    msg.GetNextRecipient(s1, s2, 
out tt);
                                    dr[
"SenderName"= s1.ToString();
      
                                    dr[
"SenderAddress"= s2.ToString();
                                    
//MessageBox.Show(aa);
                                    
//MessageBox.Show(s.ToString());
                                    msg.GetSubject(s);
                                    dr[
"Subject"= s.ToString();
ExpandedSubBlockStart.gifContractedSubBlock.gif                                    
/**/////MessageBox.Show(s.ToString());
                                    msg.GetSubmitTime(s);
                                    dr[
"SendTime"= s.ToString();
                                    msg.GetReceivedTime(s);
                                    dr[
"ReceiveTime"= s.ToString();
                                    msg.Dispose();
                                    mydt.Rows.Add(dr);
                                    
//if (i > 230)
                                    
//{
                                    
//    break;
                                    
//}

                                }


                            }

                        }


                    }


                    mapi.Logout();
                }

            }

            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                MessageBox.Show(
"faile");
            }

            NetMAPI.Term();
            
this.dataGrid1.DataSource = mydt;

        }

//这两段代码读取的是收件箱和发件箱里全部短信,还不是很理想.....

转载于:https://www.cnblogs.com/pclook/archive/2009/05/06/1450367.html

C#中计算功率谱密度,可以使用FFT(快速傅里叶变换)来实现。下面是一个简单的示例代码: ```csharp using System; using System.Numerics; namespace PowerSpectralDensity { class Program { static void Main(string[] args) { // 读取音频数据 double[] data = ReadAudioData("audio.wav"); // 计算FFT Complex[] fft = new Complex[data.Length]; for (int i = 0; i < data.Length; i++) { fft[i] = new Complex(data[i], 0); } FourierTransform.FFT(fft, FourierTransform.Direction.Forward); // 计算功率谱密度 double[] powerSpectrum = new double[data.Length / 2]; for (int i = 0; i < data.Length / 2; i++) { powerSpectrum[i] = Math.Pow(fft[i].Magnitude, 2) / (data.Length / 2); } // 输出结果 for (int i = 0; i < powerSpectrum.Length; i++) { Console.WriteLine("{0} Hz: {1} dB", i * (44100.0 / data.Length), 10 * Math.Log10(powerSpectrum[i])); } } static double[] ReadAudioData(string filename) { // TODO: 从音频文件中读取数据 return new double[0]; } } static class FourierTransform { public enum Direction { Forward, Backward } public static void FFT(Complex[] data, Direction direction) { int n = data.Length; int m = (int)Math.Log(n, 2); // 交换数据 for (int i = 0; i < n; i++) { int j = ReverseBits(i, m); if (j > i) { Complex temp = data[i]; data[i] = data[j]; data[j] = temp; } } // 计算FFT for (int s = 1; s <= m; s++) { int m2 = 1 << s; Complex w = new Complex(1, 0); Complex wm = new Complex(Math.Cos(Math.PI / (m2 / 2)), Math.Sin(Math.PI / (m2 / 2))); if (direction == Direction.Backward) { wm = Complex.Conjugate(wm); } for (int j = 0; j < m2 / 2; j++) { for (int k = j; k < n; k += m2) { Complex t = w * data[k + m2 / 2]; Complex u = data[k]; data[k] = u + t; data[k + m2 / 2] = u - t; } w *= wm; } } if (direction == Direction.Forward) { for (int i = 0; i < n; i++) { data[i] /= n; } } } static int ReverseBits(int value, int bits) { int result = 0; for (int i = 0; i < bits; i++) { result <<= 1; result |= value & 1; value >>= 1; } return result; } } } ``` 在上面的代码中,我们首先读取音频数据,然后计算FFT,并通过FFT计算功率谱密度。最后输出结果,其中频率为x Hz的功率谱密度为y dB。需要注意的是,上面的代码仅提供了一个简单的示例,实际使用时需要根据具体情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值