Jump to content

Recommended Posts

Posted

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.

Posted

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);
	    }
    }
  • Vote 1
  • 1 month later...
Posted

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!

  • 1 year later...
Posted

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

Jorge Bruno Coelho

Product Owner | Business Analyst | Coach

  • 4 months later...
Posted

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.

  • 1 month later...
  • 10 months later...
  • 5 years later...
Posted

Boas, este post está parado há algum tempo, mas deixo na mesma o link para uma nova versão da solução que tinha partilhado há uns tempos.

É um servidor HTTP que permite ler os dados do cartão de cidadão a partir de qualquer cliente http (browser ou outro cliente), funciona em qualquer sistema operativo e apenas requer ter o java instalado.

A quem interessar, pode dar uma olhada aqui: https://github.com/rmpt/citizen-card-reader

  • Vote 1
  • 1 year later...
Posted

Olá, Tenho uma solução baseada em código partilhado aqui em C#, já há alguns anos a funcionar. Sempre que saía alguma atualização do midleware por vezes erra necessário recompilar o projeto com as novas dlls fornecidas pela AMA, contudo neste momento não estou a conseguir ler os dados com os novos cartões de cidadão. Alguem pode ajudar? Obd.  

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.