(Mod. muutti otsikon. Vanha otsikko oli: ”vb6 to wifi”.)
Hei
Löytyykö esimerkki koodeja
Jarmo
Otsikko on ”vb6 to wifi”, siis mistä aiheesta oikeastaan haluat ohjeita?
varmaan vb6:sella wifiin yhdistämisestä tms
Aivan oikein
Emailin lähetys , vb6 sta ethernet kaapelillakin riittää
Sähköpostin lähetyksellä/vastaanottamisella ei ole sinänsä mitään muuta tekemistä käytössä olevan verkkoyhteyden kanssa kuin se, että verkkoyhteys toimii.
Tässä koko roska kaikessa yksinkertaisuudessaan olettaen, että käyttiksenä on Windows:
Private Sub Command1_Click() Dim cdoMsg As Object Dim cdoConf As Object Set cdoMsg = CreateObject("CDO.Message") Set cdoConf = CreateObject("CDO.Configuration") Dim schema As String schema = "http://schemas.microsoft.com/cdo/configuration/" Set Flds = cdoConf.Fields With Flds .Item(schema & "sendusing") = 2 .Item(schema & "smtpserver") = "smtp.gmail.com" 'esim. .Item(schema & "smtpserverport") = 587 .Item(schema & "smtpauthenticate") = 1 .Item(schema & "smtpusessl") = 1 .Item(schema & "sendusername") = "tilisi" 'erkki.esimerkki@gmail.com .Item(schema & "sendpassword") = "********" 'tilisi salasana .Item(schema & "smtpconnectiontimeout") = 30 .Update End With 'Dim attachment() As string '* 'attachment() = Split(MailAttachments, ";") With cdoMsg Set .Configuration = cdoConf .To = TextBox1.Text ' vastaanottaja 'esim. lydia.loyhapera@luukku.com .From = "tilisi" 'lähettäjä erkki.esimerkki@gmail.com .Subject = TextBox2.Text 'aihe .TextBody = TextBox3.Text 'viestin sisältö. .Bcc = TextBox4.Text 'kopio .Cc = TextBox5.Text 'piilokopio '.ReplyTo = TextBox6.Text 'erkki.puumerkki@gmail.com (vastaus eri osoitteeseen) 'For i = 0 to UBound(attachment) '* tämän avulla voi purkaa ja syöttää 'If attachment(i) <> "" Then 'mahdolliset merkkijonotaulukkoon kootut '.AddAttachment attachment(i) 'liitetiedostojen tiedostopolut 'End If 'Next i On Error Resume Next .Send If Err <> 0 Then MsgBox "Sähköpostin lähettämisessä tapahtui virhe" _ & vbCrLf & vbCrLf & Err.Description Err.Clear On Error GoTo 0 End If End With Set cdoMsg = nothing Set cdoConf = nothing Set Flds = nothing End Sub
Gmail, ja nykyään käytännössä jokainen sähköpostipalvelu vaatii, että ns. kolmannen osapuolen (3rd party) email clientit ovat sallittuna asetuksissa jonka voi säätää palvelinpuljun sivustolla oman tilin tietoturva-asetuksissa.
Ohjelmointi olisi aika rankkaa, jos nettiyhteyden käyttämiseksi pitäisi koodata itse Ethernet- tai Wifi-tasolta lähtien. :D
Se olis ohjelmointia isolla O:lla
Pikku lisäyksenä:
Nyt jos asustelet esim. Risen palvelutalossa koodilla tuskin on käyttöä syystä, että Cdosys -palikan käyttö on 100-varmasti estetty. 😉
Tällöin VB-ilmoittaa Set cdoMsg = CreateObject("CDO.Message") kohdalla ettei objektia voida luoda. Mikäli tällaista ilmoitusta ei ilmesty heti alussa näytölle kun koodi ajetaan niin Cdosys -palikka pelittää. Mikäli VB-ilmoittaa myöhemmin "Sähköpostin lähettämisessä tapahtui virhe" ja kaikki tiedot ovat varmasti oikein eli ilman typoja niin... aina voi tsekata onko verkkoadapteri(t) pois käytöstä.
Private Type NetworkAdapterInfo Dim Name As String Dim NetConnectionID As String Dim NetEnabled As Boolean Dim Speed As String Dim DeviceID As Long Dim Index As Long Dim MACAddress As Variant Dim AdapterType As Variant Dim InterfaceIndex As Variant Dim AdapterTypeID As Variant End Type Redim MyNetworkAdapters(0) As NetworkAdapterInfo Private Sub Form_Load() GetDetailsFromNetworkAdapters End Sub Private Sub GetDetailsFromNetworkAdapters() Dim adapter As Object Dim NetworkAdapters As Object Dim wmi As Object Set wmi = GetObject("winmgmts:root\cimv2") Set NetworkAdapters = wmi.ExecQuery("Select * from Win32_NetworkAdapter where AdapterTypeId < 10 And NetConnectionID IS NOT NULL", , 48) For Each adapter In NetworkAdapters With adapter MyNetworkAdapters(Ubound(MyNetworkAdapters)).Name = .Name MyNetworkAdapters(Ubound(MyNetworkAdapters)).NetConnectionID = .NetConnectionID MyNetworkAdapters(Ubound(MyNetworkAdapters)).NetEnabled = .NetEnabled MyNetworkAdapters(Ubound(MyNetworkAdapters)).Speed = .Speed / 1000000 & " Mbit/s" MyNetworkAdapters(Ubound(MyNetworkAdapters)).DeviceID = .DeviceID MyNetworkAdapters(Ubound(MyNetworkAdapters)).Index = .Index MyNetworkAdapters(Ubound(MyNetworkAdapters)).MACAddress = .MACAddress MyNetworkAdapters(Ubound(MyNetworkAdapters)).AdapterType = .AdapterType MyNetworkAdapters(Ubound(MyNetworkAdapters)).InterfaceIndex = .InterfaceIndex MyNetworkAdapters(Ubound(MyNetworkAdapters)).AdapterTypeID = .AdapterTypeID End With Redim Presrve MyNetworkAdapters(Ubound(MyNetworkAdapters) + 1) Next Set NetworkAdapter = Nothing Set wmi = Nothing ComboBox1.AddItem "Valitse Network adapteri" For i = Lbound(MyNetworkAdapters) To Ubound(MyNetworkAdapters) If MyNetworkAdapters(i).Name <> "" Then ComboBox1.AddItem MyNetworkAdapters(i).Name End If Next i If ComboBox1.ListCount > 0 Then ComboBox1.ListIndex = 0 End If End Sub Private Sub ComboBox1_Change If ComboBox1.SelectedIndex = 0 Then Exit Sub Select Case CheckBox1.Value Case 1 If CheckBox2.Value = 0 Then NetworkEnable_via_wmic MyNetworkAdapters(ComboBox1.SelectedIndex - 1).Index 'tai DeviceID Else NetworkDisable_via_wmic MyNetworkAdapters(ComboBox1.SelectedIndex - 1).Index 'tai DeviceID End If Case 0 If CheckBox2.Value = 0 Then NetworkEnable_using_netsh MyNetworkAdapters(ComboBox1.SelectedIndex - 1).NetConnectionID Else NetworkDisable_using_netsh MyNetworkAdapters(ComboBox1.SelectedIndex - 1).NetConnectionID End If Case Else End Select Redim Preserve MyNetworkAdapters(0) GetDetailsFromNetworkAdapters End Sub Private Sub NetworkEnable_via_wmic(MyDeviceIndex As Long) CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c wmic path win32_networkadapter where index=" & MyDeviceIndex & " call enable", "", "runas", 1 End Sub Private Sub NetworkDisable_via_wmic(MyDeviceIndex As Long) CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c wmic path win32_networkadapter where index=" & MyDeviceIndex & " call disable", "", "runas", 1 End sub Private Sub NetworkEnable_using_netsh(MyNetConnectionID As String) CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c netsh interface set interface name=""" & MyNetConnectionID & """ admin = enabled", "", "runas", 1 End Sub Private Sub NetworkDisable_using_netsh(MyNetConnectionID As String) CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c netsh interface set interface name=""" & MyNetConnectionID & """ admin = disabled", "", "runas", 1 End Sub
Heittelin aivan ulkomuistista ilman testaamista, mutta mikäli esim. Risen hoteissa, aikaa säätelyyn varmaankin riittää...😉
Tässä toimiva VBScripti verkkosovittimien tsekkaamiseen. Elikäs Copy/Paskanna alla oleva koodi muistioon > tallenna nimellä > kaikki tiedostot > anna joku nimi ja laita tiedostopäätteeksi .vbs sitten vaan klikkaat kuvaketta ja ruudulle ilmestyy boksi jossa on tiedot asennetuista verkkosovittimista, ovatko käytössä jne.
Dim wmi Dim NetworkAdapters Dim adapter Dim strCols strCols = "" Set wmi = GetObject("winmgmts:root\cimv2") Set NetworkAdapters = wmi.ExecQuery("Select * from Win32_NetworkAdapter where AdapterTypeId < 10 And NetConnectionID IS NOT NULL", , 48) For Each adapter In NetworkAdapters With adapter strCols = strCols & .Name & Chr(10) strCols = strCols & .NetConnectionID & Chr(10) strCols = strCols & .NetEnabled & Chr(10) strCols = strCols & .Speed / 1000000 & " Mbit/s" & Chr(10) strCols = strCols & .DeviceID & Chr(10) strCols = strCols & .Index & Chr(10) strCols = strCols & .MACAddress & Chr(10) strCols = strCols & .AdapterType & Chr(10) strCols = strCols & .InterfaceIndex & Chr(10) strCols = strCols & .AdapterTypeID & Chr(10) End With strCols = strCols & Chr(13) & Chr(10) Next Set NetworkAdapters = Nothing Set wmi = Nothing WScript.Echo strCols
Ompi semmonen bugi tossa ulkomuistista heiteyssä VB-koodissa, että kerryttää ComboBoxiin uudestaan samaa kamaa joka kierroksella, elikäs...
Redim Preserve MyNetworkAdapters(0) ComboBox1.Clear 'tähän väliin niin ei kerry. GetDetailsFromNetworkAdapters
@Metabolix
Jätetään kaapelointistandardi pois niin...
Name: Realtek RTL872BE Wireless LAN 802.11n PCI-E Nic
NetConnectionID: WLAN
NetEnabled: Tosi
Speed: 102 Mbit/s
DeviceID: 0
Index: 0
MACAddress: XX:XX:XX:XX:XX:XX (en kerro 😉)
AdapterType: Ethernet 802.3
InterfaceIndex: 9
AdapterTypeID: 0
Name: Realtek(R) PCI(e) Ethernet Controller
NetConnectionID: Ethernet
NetEnabled: Epätosi
Speed: Näyttää hurjaa lukemaa
DeviceID: 2
Index: 2
MACAddress: XX:XX:XX:XX:XX:XX
AdapterType: Ethernet 802.3
InterfaceIndex: 11
AdapterTypeID: 0
Käytössä ZTE 5G MC801A (5G-modeemi/WiFi 6 reititin)
Elikäs Ethernet ei ole vain fyysinen kaapelointistandardi vaan elettäessä verkkokorttien (NIC) maailmassa myös WiFi-laitteita käytettäessä käytetään Ethernet-protokollaa (Data Link Layer 2 protokolla, lähde- & kohde-MAC-osoitteet)