Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Vb.net] DLL om SMS-berichten uit te lezen

Pagina: 1
Acties:
  • 376 views sinds 30-01-2008
  • Reageer

  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
Hallo

Ik ben vandaag begonnen aan het aanspreken van mijn GSM (siemens c72) via de bijgeleverde software. Ik gebruik VB.net 2005.

In de Bin map zitten er verschillende dlls dat ik perfect kan aanspreken. ook O.A. de klasse:MESSAGECONVERSIONLib

Het is de bedoeling dat ik de smsen zal kunnen uitlezen van mijn GSM om ze dan op te slaan op mijn pc.

Wat ik al heb:
Dim a As New MESSAGECONVERSIONLib.MPMMessageConversion
Dim int As UInteger
a.GetNumberOfMessageIDs(int)
MsgBox(int)


GetNumberOfMessageIDs is een procedure (dus GEEN functie). Ik heb dus geen flauw idee hoe ik de waarde kan terug krijgen. Al de eigenschappen van de klasse zijn allemaal procedures.

Weet er iemand hoe ik dus een waarde kan terug krijgen?

edit: Als info bij die int staat er: 'byref: pdwMessageIDCount as uinteger'

[ Voor 4% gewijzigd door Wouter7 op 02-01-2008 15:33 ]


  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

zitten vast wel 'out' variabelen in de procedures :)

iets als dit:
C#:
1
2
                List<int> smsIds = new List<int>();
                a.GetSmsIdList(out smsIds);

[ Voor 58% gewijzigd door YakuzA op 02-01-2008 15:40 ]

Death smiles at us all, all a man can do is smile back.
PSN


  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
YakuzA schreef op woensdag 02 januari 2008 @ 15:36:
zitten vast wel 'out' variabelen in de procedures :)

iets als dit:
C#:
1
2
                List<int> smsIds = new List<int>();
                a.GetSmsIdList(out smsIds);
Ik zie niks staan hoor :'(

Afbeeldingslocatie: http://img520.imageshack.us/img520/9827/tochnieso9.jpg

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

integ zou het nummer berichten moeten bevatten.

If it isn't broken, fix it until it is..


  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
Niemand_Anders schreef op woensdag 02 januari 2008 @ 15:46:
integ zou het nummer berichten moeten bevatten.
denk ik ook maar
Ervoor heeft het de waarde die ik hem toeken (100bv )
en na de procedure is het 0, wat ik ook als startwaarde ingeef

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Ik zou verwachten dat je via de integer die je terug krijgt een loopje tot aan 'integ' kan draaien op GetMessageID.

Death smiles at us all, all a man can do is smile back.
PSN


  • jan-marten
  • Registratie: September 2000
  • Laatst online: 17-11 19:58
Wouter7 schreef op woensdag 02 januari 2008 @ 15:50:
[...]


denk ik ook maar
Ervoor heeft het de waarde die ik hem toeken (100bv )
en na de procedure is het 0, wat ik ook als startwaarde ingeef
Dat is dus het effect van 'byref'. In principe geef de je de waarde niet door maar de geheugenplaats naar die waarde (in c ook pointer genoemd). Je kunt ook byval doen en dan geef je de waarde wel door en kan de functie die waarde niet aanpassen.

En als die functie procedure dan 0 terug geeft (via de byref) dan zullen er wel geen berichten aanwezig zijn denk ik.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
in c# zou ik het denk zo moeten werken. ( Ik weet niet precies de syntax in VB.NET maar die zal iets soortgelijks zijn denk )

C#:
1
2
3
int messageCount;
a.GetNumberOfMessageIDs(out messageCount);
MessageBox.Show( String.Format( "Er zijn {0} messages", messageCount ) );


Maar moet je niet iets initializeren aan de library ofzo? Mischien krijg je altijd 0 terug omdat de library nog niet geconnect is ofzo?

[ Voor 19% gewijzigd door Woy op 02-01-2008 16:08 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
deze morgen weer druk bezig geweest met zoeken en de andere librarys werken dus WEL zonder dat ik moet connecten (bv hij weet dat er een siemens C72 geconecteerd is)

Verder zoekend heb ik nog een paar 'enums' gevonden (ik heb met dit geen ervaring)
Het zijn soort van variabelen voor zover ik kan verstaan. Nu ziet mijn code er zo uit:


Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim S1 As MESSAGECONVERSIONLib.MPMMessageState_t
S1 = MESSAGECONVERSIONLib.MPMMessageState_t.ALL

Dim S2 As MESSAGECONVERSIONLib.MPMMessageStorage_t
S2 = MESSAGECONVERSIONLib.MPMMessageStorage_t.eTMsgSM

Dim S3 As MESSAGECONVERSIONLib.MPMMessageType_t
S3 = MESSAGECONVERSIONLib.MPMMessageType_t.eTMsgRTF_SMS


Dim a As New MESSAGECONVERSIONLib.MPMMessageConversion
Dim integ As UInteger
a.GetNumberOfMessageIDs(integ)
MsgBox("aantal berichten:" & integ)



Volgens mij zijn deze variabelen dat: S(etting)1 is dat hij al de berichten moet tonen (andere mogenlijkheden zijn Read, Unread, sent en unsent

S2 staat op SM wat volgens mij wil zeggen dat het in het sim geheugen berichten moet tonen. Andere mogenlijkheden zijn; FFS (?), ME (memory) en UNKNOWN STORAGE

S3 staat op dat het SMS berichten moeten zijn. Andere mogenlijkheden zijn; MMS & UNKNOWN


Ik heb al geprobeert A ervoor te declareren, de settings met de NEW te declareren maar niks schijnt te helpen :(

[ Voor 8% gewijzigd door Wouter7 op 03-01-2008 14:55 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ten eerste: gebruik eens code blokken, dan is het ook nog een beetje te lezen.

Ten tweede: gebruik eens wat duidelijkere variabele namen. Dan weet je verderop in je programma ook nog wat je ermee moet.

Ten derde: Wat doe je voor de rest met S1, S2 en S3? Het is leuk dat je een variabele declareert en daar een waarde aan geeft, maar zo te zien doe je er voor de rest niks mee.

Verder lijkt me ook dat er iets van documentatie bij de library moet zitten en anders moet je contact opnemen met de leverancier van de library.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Ik krijg het idee dat je zelf ook niet echt een clou hebt waar je mee bezig bent. Via de Object browser in VS kun je iig ook in je .dll'etje kijken. Kun je zien hoeveel/welke overloads er zijn, wat je ermee kan etc.

heeft je getmessageIDs nog een overload om aan te geven dat je alleen SMS wil?
Er staan ook dingen als MessageToFile bij, wat voert dat bijvoorbeeld uit?

Zoals het hierboven staat wijs je gewoon een bepaalde state toe aan je S1 tm S3 waar je vervolgens niets mee doet. Kun je deze weer gebruiken bij procedures om bijv. ID's op te halen?

Kun je misschien je code ook tussen [code=vb.net] tags zetten? :)

Death smiles at us all, all a man can do is smile back.
PSN


  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
rwb schreef op donderdag 03 januari 2008 @ 14:40:
...

Ten derde: Wat doe je voor de rest met S1, S2 en S3? Het is leuk dat je een variabele declareert en daar een waarde aan geeft, maar zo te zien doe je er voor de rest niks mee.
...
Het zijn geen variabelen maar 'enum' types.
rwb schreef op donderdag 03 januari 2008 @ 14:40:
Verder lijkt me ook dat er iets van documentatie bij de library moet zitten en anders moet je contact opnemen met de leverancier van de library.
Ik zal eens mailen naar Siemens. Ik denk niet dat ze erg de moeite zullen doen om me te informeren over zo'n dingen.

  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
YakuzA schreef op donderdag 03 januari 2008 @ 14:52:
Ik krijg het idee dat je zelf ook niet echt een clou hebt waar je mee bezig bent. Via de Object browser in VS kun je iig ook in je .dll'etje kijken. Kun je zien hoeveel/welke overloads er zijn, wat je ermee kan etc.

heeft je getmessageIDs nog een overload om aan te geven dat je alleen SMS wil?
Er staan ook dingen als MessageToFile bij, wat voert dat bijvoorbeeld uit?

Zoals het hierboven staat wijs je gewoon een bepaalde state toe aan je S1 tm S3 waar je vervolgens niets mee doet. Kun je deze weer gebruiken bij procedures om bijv. ID's op te halen?

Kun je misschien je code ook tussen [code=vb.net] tags zetten? :)
Via object browser heb ik al gekeken en staat er evenveel informatie. Er staat nergens extra info of zo bij dus helaas (wel een oprechte DANK U voor de tip)
Die procedure 'messageTofile' heb ik ook al mee getest. Je moet 2 variabelen ingeven namenlijk de ID nummer van het bericht (die je kan krijgen via GetMessageID) en een string waar je het bestand wil opslaan BV "C:\SMS.txt"

Dit werkte niet aangezien ik geen testbericht kan gebruiken. Hij vind dus geen berichten dat is het probleem.

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Een waarde die in een enum staat is in principe gewoon een integer die een state (of iets anders) representeerd. Die om te verduidelijken wat hij doet/is een naampje krijgt via enum.
Meer info: http://visualbasic.about.com/od/usingvbnet/a/enum01.htm

Is op je telefoon zelf het sms geheugen ook leeg?

Death smiles at us all, all a man can do is smile back.
PSN


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Wouter7 schreef op donderdag 03 januari 2008 @ 14:54:
[...]
Het zijn geen variabelen maar 'enum' types.
S1, S2 en S3 zijn variabelen die een waarde van een Enum type bevat. Maar je doet er niks mee dus het heeft geen nut dat je die variabelen declareert.
Ik zal eens mailen naar Siemens. Ik denk niet dat ze erg de moeite zullen doen om me te informeren over zo'n dingen.
Die library krijg je toch ergens bij. Staat daar niet gewoon documentatie bij? Het lijkt me nogal vreemd dat Siemens een library levert en daar geen informatie over beschikbaar stelt.


En welke parameters moet je dan meegeven met de functie GetMessageID?

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
rwb schreef op donderdag 03 januari 2008 @ 15:37:
[...]

S1, S2 en S3 zijn variabelen die een waarde van een Enum type bevat. Maar je doet er niks mee dus het heeft geen nut dat je die variabelen declareert.


[...]

Die library krijg je toch ergens bij. Staat daar niet gewoon documentatie bij? Het lijkt me nogal vreemd dat Siemens een library levert en daar geen informatie over beschikbaar stelt.


En welke parameters moet je dan meegeven met de functie GetMessageID?
Deze DLLS Zitten samen bij het programma 'siemens mobile phone manager'. Het is gewoon als een extratje dat ze erbij zitten. Niet meer of minder.

Visual Basic .NET:
1
2
3
'De code van de S variabelen is:
Dim S2 As MESSAGECONVERSIONLib.MPMMessageStorage_t
S2 = MESSAGECONVERSIONLib.MPMMessageStorage_t.eTMsgSM

Dus veronderstel ik (verbeter me als ik verkeerd ben) dat de waarde van 'MPMMessageStorage_t' veranderd wordt naar 'MPMMessageStorage_t.eTMsgSM'

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Wouter7 schreef op donderdag 03 januari 2008 @ 15:42:
[...]

Deze DLLS Zitten samen bij het programma 'siemens mobile phone manager'. Het is gewoon als een extratje dat ze erbij zitten. Niet meer of minder.

Visual Basic .NET:
1
2
3
'De code van de S variabelen is:
Dim S2 As MESSAGECONVERSIONLib.MPMMessageStorage_t
S2 = MESSAGECONVERSIONLib.MPMMessageStorage_t.eTMsgSM

Dus veronderstel ik (verbeter me als ik verkeerd ben) dat de waarde van 'MPMMessageStorage_t' veranderd wordt naar 'MPMMessageStorage_t.eTMsgSM'
de waarde van jouw lokale S2 word inderdaad geset als de waarde van 'MPMMessageStorage_t.eTMsgSM' heeft, de dll zal hier dan ook niks van merken

[ Voor 3% gewijzigd door YakuzA op 03-01-2008 15:52 ]

Death smiles at us all, all a man can do is smile back.
PSN


  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
Ik wacht al een week op een mail van Benq (dochter bedrijf van Siemens die de gsms over heeft genomen) maar ik heb nog niets teruggekregen.

Dus zullen we het zelf moeten doen é :P

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik dacht dat Benq Mobile Failliet was? Zou wel verklaren waarom ze niet antwoorden ;)

[ Voor 4% gewijzigd door Woy op 10-01-2008 13:02 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
rwb schreef op donderdag 10 januari 2008 @ 13:02:
Ik dacht dat Benq Mobile Failliet was? Zou wel verklaren waarom ze niet antwoorden ;)
hun site is tans nog up to date:
©2008 BenQ Benelux

Maar idd ik lees op andere sites dat benq idd faillit is :|

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
BenQ maakt meer dan alleen mobiele telefoons. Volgens mij is alleen de mobile afdeling failliet

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Wouter7
  • Registratie: Oktober 2005
  • Laatst online: 11-08-2022

Wouter7

Enjoy every day.

Topicstarter
http://nl.wikipedia.org/wiki/BenQ-Siemens

In september 2006 is de mobiele divisie van BenQ failliet gegaan

Kzal dus geen mail moeten verwachten

  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 13:26

voodooless

Sound is no voodoo!

Al waren ze niet faliet zou ik nog geen mail verwachten. De support van Siemens is vrijwel net zo slecht als hun telefoons (meer kan ik er helaas niet van maken, sorry) ;) Wij werken hier met de M2M producten van Siemens (die devisie bestaat nog wel), maar support hoef je ook hier niet te verwachten. Ze sturen je naar de distributeur, die je op zijn beurt ook niet kan helpen. 'T is een triest verhaal allemaal.

Anyway, genoeg gezeur ;) Als dit niet werkt, of slecht gedocumenteerd is kun je natuurlijk nog altijd op zoek naar andere libraries. De GSM emuleert gewoon een com poort (of je sluit hem zelfs via com aan), en je kunt er via standaard AT commando's je SMS'jes mee uitlezen. Daar hebben vast meer mensen leuke dingen voor gemaakt. En als je echt zin hebt pak je gewoon de GSM commando's erbij en ga je zelf knutselen ;)

Misschien heb je hier wat aan:
- http://sourceforge.net/projects/atsms/
- http://sourceforge.net/projects/gsm-link/

[ Voor 6% gewijzigd door voodooless op 10-01-2008 16:50 ]

Do diamonds shine on the dark side of the moon :?

Pagina: 1