begin process at 2012 05 24 17:03:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Smartphone :: Trucs & Astuces

 > RECUPERATION DU NUMÉROS DE TÉLEPHONE ET SON TYPE SANS TAPI

RECUPERATION DU NUMÉROS DE TÉLEPHONE ET SON TYPE SANS TAPI




 Description

Cliquez pour voir la capture en taille normale
Ce bout de code nous permet d'extraire le numéros de téléphone de la carte sim et son type:
- Unknown
- International
- National
- NetworkSpecific
- Subscriber
- Alphanumeric
- Abbreviated

Le code utilise l'api SmsGetPhoneNumber pour le récupérer ainsi que des parties de code unsafe

Source

  • using System;
  • using System.Runtime.InteropServices;
  • using System.Windows.Forms;
  • // NB dans les propriété du projet: Onglet build-> puis cochet la case Allow unsafe code.
  • namespace Type_et_NumérosTelephone
  • {
  • public partial class frmMain : Form
  • {
  • public enum AddressType
  • {
  • Unknown,
  • International,
  • National,
  • NetworkSpecific,
  • Subscriber,
  • Alphanumeric,
  • Abbreviated
  • }
  • public struct PhoneAddress
  • {
  • public AddressType AddressType;
  • public String Address;
  • }
  • [DllImport("sms.dll")]
  • public static extern IntPtr SmsGetPhoneNumber(IntPtr psmsaAddress);
  • public frmMain()
  • {
  • InitializeComponent();
  • }
  • unsafe public static PhoneAddress GetPhoneNumber()
  • {
  • PhoneAddress phoneaddr = new PhoneAddress();
  • // Réservation d'un espace de 100 octet
  • Byte[] buffer = new Byte[100];
  • // Pointer le buffer
  • fixed (byte* pAddr = buffer)
  • {
  • IntPtr res = SmsGetPhoneNumber((IntPtr)pAddr);
  • if (res != IntPtr.Zero)
  • MessageBox.Show("Erreur, l'opération a echoué.");
  • // pointer le début du buffer contenant les infos
  • byte* pCurrent = pAddr;
  • // Récuperer le type de l'adresse (4 premiers octets)
  • phoneaddr.AddressType = (AddressType)Marshal.ReadInt32((IntPtr)pCurrent);
  • // Se déplacer 4 octets.
  • pCurrent += Marshal.SizeOf(phoneaddr.AddressType);
  • // Récupérer le numéros de la carte sim (chaine de caracteres unicode).
  • phoneaddr.Address = Marshal.PtrToStringUni((IntPtr)pCurrent);
  • }
  • return phoneaddr;
  • }
  • private void mnuQuit_Click(object sender, EventArgs e)
  • {
  • Application.Exit();
  • }
  • private void frmMain_Load(object sender, EventArgs e)
  • {
  • // Prendre les informations.
  • PhoneAddress ad = GetPhoneNumber();
  • lblPhoneNbr.Text = ad.Address;
  • lblType.Text = ad.AddressType.ToString();
  • }
  • }
  • }
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
// NB dans les propriété du projet: Onglet build-> puis cochet la case Allow unsafe code.
namespace Type_et_NumérosTelephone
{
    public partial class frmMain : Form
    {
        public enum AddressType
        {
            Unknown,
            International,
            National,
            NetworkSpecific,
            Subscriber,
            Alphanumeric,
            Abbreviated
        }
        public struct PhoneAddress
        {
            public AddressType AddressType;
            public String Address;
        }
        [DllImport("sms.dll")]
        public static extern IntPtr SmsGetPhoneNumber(IntPtr psmsaAddress);
        public frmMain()
        {
            InitializeComponent();
        }
        
        unsafe public static PhoneAddress GetPhoneNumber()
        {
            PhoneAddress phoneaddr = new PhoneAddress();
            // Réservation d'un espace de 100 octet
            Byte[] buffer = new Byte[100];
            // Pointer le buffer
            fixed (byte* pAddr = buffer)
            {
                IntPtr res = SmsGetPhoneNumber((IntPtr)pAddr);

                if (res != IntPtr.Zero)
                    MessageBox.Show("Erreur, l'opération a echoué.");
                // pointer le début du buffer contenant les infos
                byte* pCurrent = pAddr;
                // Récuperer le type de l'adresse (4 premiers octets)
                phoneaddr.AddressType = (AddressType)Marshal.ReadInt32((IntPtr)pCurrent);
                // Se déplacer 4 octets.
                pCurrent += Marshal.SizeOf(phoneaddr.AddressType);
                // Récupérer le numéros de la carte sim (chaine de caracteres unicode).
                phoneaddr.Address = Marshal.PtrToStringUni((IntPtr)pCurrent);
            }
            return phoneaddr;
        }
        private void mnuQuit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            // Prendre les informations.
            PhoneAddress ad = GetPhoneNumber();
            lblPhoneNbr.Text = ad.Address;
            lblType.Text = ad.AddressType.ToString();
        }
    }
}

 Conclusion

Pour ceux qui veulent utiliser la tapi
http://www.pdafr.com/codes/NET-COMPACT-FRAMEW ORK-OBTENIR-NUMERO-TELEPHONE-CARTE-SIM_40013.aspx

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) EDITEUR DE REGISTRE POUR WINDOWS MOBILE 5.X ET 6.X
Source avec Zip Source avec une capture Source .NET (Dotnet) [WINDOWS PHONE 7] EDITEUR DE NOTES SIMPLE
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] CLASSE SENDKEYS
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] CONNAÎTRE ET MODIFIER LE NIVEAU DE ...
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] UTILISER LA FENETRE CHOOSECONTACTDI...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) UN PETIT GESTIONNAIRE DE TACHE AVEC OPENNETCF par MIMI361
Source .NET (Dotnet) ACQUISITION D'UNE PHOTO DEPUIS LA CAM par boutemine

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] EFFECTUER DES APPELS TELEPHONIQUES. par boutemine
Source .NET (Dotnet) INFORMATIONS UTILES SUR LA CARTE SIM ET LE FOURNISSEUR DE SE... par boutemine
Source .NET (Dotnet) [.NET COMPACT FRAMEWORK ] OBTENIR LE NUMERO DE TELEPHONE DE ... par iow4

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

logiciel emulant une carte SIM qui permettrait d'utiliser les fonctions d'extraction d'infos [ par dvwyns ] Salut a tous,voila donc dans la cadre de mes études, je pensé faire une application sur windows mobile 6 en C#... mais malheureusement je n'ai pas de qu'est-il possible de récuperer comme infos représentant de manière unique une carte sim ?? [ par dvwyns ] Bonjour,Il existe des librairies diverses comme OpenNETCF, SIM API MANAGER permettant d'accéder aux infos d'identification d'une carte sim. Mais certa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,557 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales