Jump to content
nett_fan

Ler dados cartão do cidadão

Recommended Posts

nett_fan

ola a todos. este é o meu 1 post nesta comunidade. a razão deste post é que eu preciso da vossa ajuda.

preciso de desenvolver uma aplicação windows em c# para leitura dos dados gravados no cartao do cidadão.

E na verdade andi bastante perdido. ja vi exemplos na net , tais como , http://www.codeproject.com/Articles/16653/A-Smart-Card-Framework-for-NET

e a bibiolteca winscard, mas nao sei se consigo o que pretendo.

Andei a ler aqui no site, e o que preciso é a vossa orientação sobre o caminho a seguir.

Li algo sobre a necessidade a instalação do Middleware do Cartão de Cidadão. mas essa questão eu tenho de descartar, necessidades do projecto.

Sera que nao existe uma dll em c# ou penso que se for noutra linguagem sera possivel fazer o pinvoke como é referido neste exemplo: http://www.moythreads.com/wordpress/2008/02/04/pinvoke-how-to-call-c-from-c/

agradecia a vossa ajuda nesta minha tarefa.

Share this post


Link to post
Share on other sites
Waterlog

Fácil. O Middleware é obrigatório, pelo que o tens de instalar. Depois tens de usar o eIDPT(http://cartaodecidadao.codeplex.com/). DLL: https://mega.co.nz/#!dwUlyAwb!TJadFRL2VSMY1DAeaPSUjwRx00YEBsuIK1EQLn87tC8

Deixo-te aqui um pouco de um código meu:

    public void GetInfoFromCard(int getAddress)
    {
	    try
	    {
		    if (getAddress == 0)
		    {
			    SCWatcher scwatcher = SCWatcher.GetInstance();
			    scwatcher.Start();
			    string[] readers = scwatcher.ListReaders();
			    EIDPT.Init(readers[0]);
			    EIDPT.SetSODChecking(false);				    Id id = EIDPT.GetID();
			    Picture picture = EIDPT.GetPicture();
			    MemoryStream ms = new MemoryStream(picture.Bytes, 0, picture.BytesLength, false);
			    Image image = CSJ2K.J2kImage.FromStream(ms);
			    image.Save(@"fotos\" + id.NIF + ".jpeg");
			    ms.Close();				    firstName = id.FirstName;
			    lastName = id.Name;
			    firstNameFather = id.FirstNameFather;
			    lastNameFather = id.NameFather;
			    firstNameMother = id.FirstNameMother;
			    lastNameMother = id.NameMother;
			    txtName.Text = Classes.Methods.UppercaseFirstLetter(id.FirstName) + " " + Classes.Methods.UppercaseFirstLetter(id.Name);
			    txtSex.Text = id.Sex;
			    txtBirthday.Text = id.BirthDate;
			    txtID.Text = id.BI;
			    txtFatherName.Text = id.FirstNameFather + " " + id.NameFather;
			    txtMotherName.Text = id.FirstNameMother + " " + id.NameMother;
			    txtTax.Text = id.NIF;
			    txtSocialSecurity.Text = id.NSS;
			    pbPhoto.Image = image;
		    }
		    else
		    {
			    SCWatcher scwatcher = SCWatcher.GetInstance();
			    scwatcher.Start();
			    string[] readers = scwatcher.ListReaders();				    EIDPT.Init(readers[0]);
			    EIDPT.SetSODChecking(false);
			    Id id = EIDPT.GetID();
			    Picture picture = EIDPT.GetPicture();
			    Address address = EIDPT.GetAddress();				    MemoryStream ms = new MemoryStream(picture.Bytes, 0, picture.BytesLength, false);
			    Image image = CSJ2K.J2kImage.FromStream(ms);
			    image.Save(@"fotos\" + id.NIF + ".jpeg");
			    ms.Close();
			    firstName = id.FirstName;
			    lastName = id.Name;
			    firstNameFather = id.FirstNameFather;
			    lastNameFather = id.NameFather;
			    firstNameMother = id.FirstNameMother;
			    lastNameMother = id.NameMother;				    txtName.Text = id.FirstName + " " + id.Name;
			    txtSex.Text = id.Sex;
			    txtBirthday.Text = id.BirthDate;
			    txtID.Text = id.BI;
			    txtFatherName.Text = id.FirstNameFather + " " + id.NameFather;
			    txtMotherName.Text = id.FirstNameMother + " " + id.NameMother;
			    txtTax.Text = id.NIF;
			    txtSocialSecurity.Text = id.NSS;
			    pbPhoto.Image = image;				  
			    txtDistrict.Text = address.DistrictDescription;
			    txtMunicipality.Text = address.MunicipalityDescription;
			    txtCivilParish.Text = address.FreguesiaDescription;
			    txtAddress.Text = address.StreetType + " " + address.Street + " Nº " + address.Door;
			    txtLocality.Text = address.Locality;
			    txtZip.Text = address.CP4 + "-" + address.CP3 + " " + address.Postal;
		    }			    EIDPT.Exit(ExitMode.LEAVE_CARD);
	    }
	    catch (Exception ex)
	    {
		    MessageBox.Show(ex.Message);
	    }
    }

Share this post


Link to post
Share on other sites
RYZ

Boa noite!

Ainda sou bastante leigo nestas andanças mas é uma area que me interessa bastante...

Amigo Waterlog, estou a fazer uma aplicação em c#, em que tens um form e carregas num botão e surge outro form com nome e numero do cartao de cidadão preenchidos... conseguemes ajudar?

Podes enviar me o teu codigo na totalidade pois estou com algumas dificuldades em compilar essa parte.?

Ficava te muito grato mesmo se me puderes ajudar..

abraços!

Share this post


Link to post
Share on other sites
jbscoelho

Fácil. O Middleware é obrigatório, pelo que o tens de instalar. Depois tens de usar o eIDPT(http://cartaodecidadao.codeplex.com/). DLL: https://mega.co.nz/#!dwUlyAwb!TJadFRL2VSMY1DAeaPSUjwRx00YEBsuIK1EQLn87tC8

Olá,

Ando às voltas com o desenvolvimento de uma aplicação que faz leitura do Cartão de cidadão usando eIDPT, mas o meu problema tem a ver com sistemas operativas de 64 bits.

Não consigo por o projecto a fucnionar de forma alguma, já que com o middleware de 64 bits depois dá sempre erro com a minha dll eIDPT.

Tens alguma ideia?

Abraço.

Bruno Coelho


Bruno Coelho

Analista Programador

Share this post


Link to post
Share on other sites
pessantiago

boas tens de sacar o versão para o windows e depois usares o codigo que o te foi mostrado antes.

tens de ter os varios campos na form apos isso chamas os valores lidos pelo cc

Share this post


Link to post
Share on other sites
irocha

Boas,

Alguém obteve este erro com a solução disponibilizada?

"A procedure imported by 'eidpt.dll' could not be loaded.".

Já experimentámos 1001 maneiras e não encontramos solução.

Share this post


Link to post
Share on other sites
pedro barreiro

Boa tarde ,alguem interessado em exemplo em delphi(neste caso delphi 6), a funcionar com a Middleware de Janeiro de 2016?

enviar :barreiro_pedro@outlook.pt

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.