Originariamente inviato da kamkamg
funziona
non trovavo più il post perché e diverso il titolo ce (tramite dispositivo GSM o simile) di piu
ce un modo per sapere la porta COM senza provarle tutte la mia era COM17 partito da 1?
ma cio un'altra domanda io voglio fare un programma che così tutti gli utente di una lan possono mandare sms che pero non voglio mettere un telefonino in ogni computer
Sarebbe bello che possono anche avere un tipo popup che si apre quando arriva un sms destinato a lui con il testo e il mittente
Si puo fare cosi?
Non ti chiedo codice ma come fare come lo creo un mecenismo cosi?
anzitutto, devi sapere che la libreria non è del tutto testata, quindi, la devi prendere così com'è senza garanzie.
Detto questo, andiamo avanti.
Per sapere il nome della porta COM che ti interessa, puoi guardare nelle proprietà del modem (di windows).
Per la seconda questione è un po più complicato, dovresti creare un webservice in questo modo :
codice:
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class SMSService
{
static SwitchBoard SwitchBoard;
static System.Timers.Timer timer;
static ATC_SMS ATC_letturaMessaggi;
static SMSService()
{
if (SwitchBoard == null)
{
try
{
//creo un nuovo device passando la porta corrispondente al modem da utilizzare
//volendo avere più modem a disposizione basta creare più device
Device device = new Device("COM17");
//creo il "centralino" che conterrà i device istanziati, e le do un nome.
SwitchBoard = new SwitchBoard("test");
//aggiungo il device al centralino (con false non faccio il test per recuperare informazioni sul device)
SwitchBoard.AddDevice(device, false);
}
catch (Exception e)
{ }
//creo il comando per leggere gli sms dalla cartella Read (non ho messo non letti per mia praticità sui test)
//passo anche un delegato per il metodo read che scriverà gli sms in un db
ATC_letturaMessaggi = SwitchBoard.GetCommandReadSMS(SwitchBoard.SMSFolder.Read, new ATC_SMS.SMSReceivedEventHandler(read));
//accodo al "centralino" il comando per leggere gli sms
//il comando avra il suo ciclo e per ogni sms trovato lo manderà al metodo read
//il thread va avanti senza attendere la risposta in read ovviamente.
SwitchBoard.Enqueue(ATC_letturaMessaggi);
//creo un timer per fare in modo che periodicamente possa controllare se ci sono nuovi sms
timer = new System.Timers.Timer();
timer.Interval = 60000;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Enabled = true;
timer.Start();
}
}
static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//accodo al "centralino" il comando di lettura degli sms dal device
SwitchBoard.Enqueue(ATC_letturaMessaggi);
}
[OperationContract]
public void WriteSMS(string numero, string testo)
{
try
{
//creo un nuovo comando per inviare sms
ATC_SMS ATC_invioMessaggi = SwitchBoard.GetCommandSentSMS(testo, numero);
//accodo il comando al centralino
SwitchBoard.Enqueue(ATC_invioMessaggi);
}
catch { }
}
static void read(object sender, SMS sms)
{
//carichi gli sms in un database
//bisogna cancellare il messaggio dal telefono in modo che non ci sia più nella cartella
//per farlo bisogna creare il comando con ATC_SMS (se non hai capito come fare dalla demo poi ti spiego) e la stringa mi pare fosse AT+CMGD=<indice sms>
}
[OperationContract]
public List<UserArgsSMS> ReadSMS()
{
//restituisci i dati dal database
}
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[DataContract(Name = "UserArgsSMS", Namespace = "")]
public class UserArgsSMS
{
[DataMember(Name = "PhoneNumber")]
public string PhoneNumber { get; set; }
[DataMember(Name = "Text")]
public string Text { get; set; }
}
per la popup diciamo che dovresti interrogare il web service lavorando sul db con delle query in modo da restituire solo gli sms desiderati secondo parametri.
io ho fatto un po di test, ma per niente approfonditi, perché devo ancora crearmi un simulatore per il modem. non sarebbe conveniente mettere sotto stress il webService a 10 centesimi a sms. 
comunque la cosa mi ha incuriosito, mi devo fare l'emulatore per il modem così posso fare tutti i test che mi pare.
un idea per farlo mi ronza già in testa, ma a limite se avrò bisogno, aprirò un post per chiedere una mano.
se vuoi provare fai pure, però fossi in te aspetterei ancora qualche giorno per vedere cosa concludo. 
Originariamente inviato da gibra
Ma l'URL che hai indicato non porta da nessuna parte...
A questo punto sarei curioso di sapere dove kamkamg ha scaricato la tua libreria.
evidentemente ho fatto casino modificando il post subito dopo aver postato (anche se sono quasi certo di aver ricontrollato), in quanto non ero sicuro del file. quindi i casi sono due :
o è stato flash a scaricare il precedente file, oppure ha usato questo
ma dovresti chiedere a lui