Oppure

Loading
05/10/11 5:55
trattobasso
ciao a tutti, cercherò di essere abbastanza chiaro perchè sto cercando di accrocchiare qualcosa trovato in giro e forse non sono abbastanza intelligente.
In sostanza ho trovato e modificato questa funzione:
Public Function leggi_chiave(ByRef ValoreDiRitorno As String, ByVal NomeCampo As String) As Boolean
        leggi_chiave = True
        ValoreDiRitorno = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Easy App").OpenSubKey("Easy Fax").GetValue("Mittente").ToString
    End Function

che serve per estrapolare il vaore di una chiave di registro.
Questo valore mi serve poi come testo, per utilizzarlo com il mittente di una e-mail.
il codice che uso per mandare la mail è questo:
Dim attachment As New Net.Mail.Attachment(ofd_allegato.FileName)
            Dim myMail As New MailMessage()
            myMail.From = New MailAddress("ValoreDiRitorno")
            myMail.To.Add("mail@mail.it")
            myMail.Subject = txt_destinatario.Text
            myMail.Priority = MailPriority.Normal
            myMail.Attachments.Add(attachment)
            Dim Smtp As New SmtpClient("out.alice.it")
            Smtp.Send(myMail)

Il problema è che in corrispondenza di myMail.From non so come fargli prendere il valore di ritorno che leggo dalla chiave di registro. Così come scritto e anche in altri modo (che conosco io) mi da sempre errore o nella migliore delle ipotesi non legge nessun valore quando effettivamente la chiave di registro esiste.
Consigli?
Ciao e grazie.

p.s.al mio post precedente pierotofy.it/pages/extras/forum/16/1031614-vbnet_2010_problema_connessione_ftp/ nessun consiglio?
Ultima modifica effettuata da trattobasso 05/10/11 5:56
aaa
05/10/11 6:21
Non so come tu abbia provato, ma se il dato è corretto ed è stato regolarmente letto, basta che lo inserisca *senza* le virgolette ...

myMail.From = New MailAddress(ValoreDiRitorno)

se quando hai chiamato la funzione leggi_chiave hai usato una variabile con tale nome (perché ricorda che è solo il nome dell'argomento) ...

Altrimenti devi usare la variabile che hai usato per la chiamata ...
Ultima modifica effettuata da 05/10/11 8:15
05/10/11 22:51
Dedalux
Come ha detto nessuno, essendo una variabile devi utilizzarla senza virgolette, in quanto quelle le utilizzi per definire una stringa.

Inoltre, vorre farti notare che quel leggi_chiave = True è inutile.
In genere si usa una funzione simile alla tua per lavorare su una variabile passata come parametro ByRef, in modo da poter assegnare alla funzione un valore di ritorno booleano, per definire l'esisto delle operazioni in essa contenute.

Nel tuo caso ritorni un esisto positivo ancora prima di eseguire le operazioni contenute nella funzione, ossia a prescindere dalla presenza di errori che potrebbero interrompere il procedimento.

Io vedrei più corretto un try catch che raccolga un'eventuale eccezione e in tal caso ritornare False, altrimenti True.
aaa