Προς το περιεχόμενο

network interface VB6


ntg_net

Προτεινόμενες αναρτήσεις

Δημοσ.

Θελω αν μπορει καποιος να μου κανει ή να μου πει πως γινεται το παρακατω.

Ενα προγραμμα που να τρεχει στο systray και να περνει απο ενα txt αρχειο

καποιες τιμες

 

px.txt

[otenet]

gateway : 192.168.5.1

dns : 192.168.5.1

 

[tellas]

gateway : 192.168.5.2

dns : 192.168.5.2

 

Eδω αν προσ8εσω και αλλη [εδω] να το προσ8ετει στο systray

Eτσι με το παραπανω 8α βγαζει στο systray otenet και απο κατω tellas

Πατωντας 8α αλλαζει πυλη και dns.

Ολα αυτα για να αλλαζω γραμμη αυτοματα χωρις reboot κιολας

 

Γινεται ?

Ευχαριστω...

Δημοσ.

Μια διευκρινηση...

δεν 8ελω να γινει με Shell και netsh

βασικα δεν 8ελω command line

Δημοσ.
Όταν λες systray ενοείς το εικονιδιάκι στην άκρη;

πρώτο link για να κοιτάξεις είναι:

http://www.insomnia.gr/vb3/showthread.php?t=21063&highlight=tray

επίσης για διαχέίρηση txt:

http://dide.flo.sch.gr/Plinet/Tutori...l%20Basic.html

και

http://www.insomnia.gr/vb3/showthread.php?t=182832

 

Τιποτα απο τα παραπανω δεν κανει, δεν λενε τιποτα συγκεκριμενο.(και το δευτερο λινκ δεν δουλευει)

 

Η λυση βρεθηκε απο τον χρηστη UserXP που απαντησε με ετοιμο κωδικα σε pm

και αν εγκρινει και θελει καποιος να τον δει τον ποσταρω.

Και παλι ευχαριστω UserXP.

  • 2 εβδομάδες αργότερα...
Δημοσ.

Ο καταπληκτικος UserXP μου εστειλε τον παρακατω κωδικα που κανει αυτο που ζητησα.

tnx x10000

Με την αδεια του το ποσταρω.

 

>Option Explicit

Private Const SW_SHOW As Long = 5
Private Const SW_SHOWDEFAULT As Long = 10
Private Const SW_SHOWMAXIMIZED As Long = 3
Private Const SW_SHOWMINIMIZED As Long = 2
Private Const SW_SHOWMINNOACTIVE As Long = 7
Private Const SW_SHOWNA As Long = 8
Private Const SW_SHOWNOACTIVATE As Long = 4
Private Const SW_SHOWNORMAL As Long = 1
Private Const SW_SMOOTHSCROLL As Long = &H10
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_MBUTTONDBLCLK = &H209
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Private Type NOTIFYICONDATA
   cbSize As Long
   hWnd As Long
   uId As Long
   uFlags As Long
   ucallbackMessage As Long
   hIcon As Long
   szTip As String * 64
End Type
Private TrayI As NOTIFYICONDATA
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean


Private Sub Form_Load()

   mnuaProvider(0).Enabled = False

   '-----------------------------------------------------------------
   TrayI.cbSize = Len(TrayI)
   TrayI.hWnd = pic1.hWnd 'Link the trayicon to this picturebox
   TrayI.uId = 1&
   TrayI.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
   TrayI.ucallbackMessage = WM_LBUTTONDOWN
   TrayI.hIcon = Me.Icon
   TrayI.szTip = "My systray" & Chr$(0)
   'Create the icon
   Shell_NotifyIcon NIM_ADD, TrayI
   '-----------------------------------------------------------------
   
   LoadFromTxt
   
End Sub

Sub LoadFromTxt()
Dim iniName As String, ini As New clsIniFile
Dim i As Long, allSec As Integer, a() As String
Dim gateway As String, dns As String

' *******************************
' Ôï format ðñÝðåé íá åßíáé ìå = êáé ü÷é ìå :
' êáé êáëýôåñá íá õðÜñ÷åé ìßá êåíÞ ãñáììÞ óôçí áñ÷Þ
'
' gateway = 192.168.5.1
' dns = 192.168.5.1
'
' *******************************

iniName = App.Path & "\aTxt.txt"
If Dir(iniName) = "" Then
   MsgBox "File not found"
   Exit Sub
End If

ini.FullPath = iniName
allSec = ini.GetSectionsEx(a)

mnuaProvider(0).Visible = True
While mnuaProvider.UBound > 0
   Unload mnuaProvider(mnuaProvider.UBound)
Wend

For i = 0 To allSec - 1
   ini.SectionName = a(i)
   gateway = Trim(ini.GetString("gateway", ""))
   dns = Trim(ini.GetString("dns", ""))
   If gateway <> "" And dns <> "" Then
       Load mnuaProvider(mnuaProvider.UBound + 1)
       mnuaProvider(mnuaProvider.UBound).Caption = a(i)
       mnuaProvider(mnuaProvider.UBound).Tag = gateway & "-" & dns
       mnuaProvider(mnuaProvider.UBound).Enabled = True
       mnuaProvider(mnuaProvider.UBound).Visible = True
   End If
Next i
If mnuaProvider.UBound > 0 Then
   mnuaProvider(0).Visible = False
End If


End Sub

Private Sub Form_Unload(Cancel As Integer)

   TrayI.cbSize = Len(TrayI)
   TrayI.hWnd = pic1.hWnd
   TrayI.uId = 1&
   'Delete the icon
   Shell_NotifyIcon NIM_DELETE, TrayI

End Sub

Private Sub mnuaProvider_Click(Index As Integer)
Dim gateway As String, dns As String
Dim pl As Long, fName As String

pl = InStr(mnuaProvider(Index).Tag, "-")
If pl = 0 Then Exit Sub

gateway = Left(mnuaProvider(Index).Tag, pl - 1)
dns = Mid(mnuaProvider(Index).Tag, pl + 1)

' ***
' Åäþ êÜíå üôé èåò ìå ôá gateway êáé dns


'Äçìéïõñãßá ôïõ áñ÷åßïõ script
fName = App.Path & "\aScript.vbs"
If Dir(fName) <> "" Then Kill fName
Open fName For Output As 1

   Print #1, "strComputer = ""."""
   Print #1, "Set objWMIService = GetObject(""winmgmts:\\"" & strComputer & ""\root\cimv2"")"
   Print #1, "Set colNetAdapters = objWMIService.ExecQuery (""Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE"")"
   Print #1, "strIPAddress = Array(""" & gateway & """)"
   Print #1, "strSubnetMask = Array(""255.255.255.0"")"
   Print #1, "strGateway = Array(""" & gateway & """)"
   Print #1, "strDNS = Array(""" & dns & """, ""10.10.10.11"")"
   Print #1, "strGatewaymetric = Array(1)"
   Print #1, "For Each objNetAdapter In colNetAdapters"
   Print #1, "errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)"
   Print #1, "errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)"
   Print #1, "errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)"
   Print #1, "If errEnable = 0 Then"
   Print #1, "WScript.Echo ""The IP address has been changed."""
   Print #1, "Else"
   Print #1, "WScript.Echo ""The IP address could not be changed."""
   Print #1, "End If"
   Print #1, "Next"
   
Close 1

' ******************************
' ÅêôÝëåóç êÜðïéïõ áñ÷åßïõ script
Dim FileNameToRun As String
' Äþóå óôï FileNameToRun ôï üíïìá ôïõ áñ÷åßïõ ðïõ èÝëåéò íá ôñÝîåéò
FileNameToRun = fName

ShellExecute Me.hWnd, vbNullString, FileNameToRun, vbNullString, "", SW_SHOWNORMAL
' ******************************

End Sub

Private Sub mnuExit_Click()
Unload Me
End Sub

Private Sub pic1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Single
   msg = X / Screen.TwipsPerPixelX
   If msg = WM_LBUTTONDBLCLK Then  'If the user dubbel-clicked on the icon
       
   ElseIf msg = WM_RBUTTONUP Then  'Right click
       Me.PopupMenu mnuMenu
   End If
End Sub

Δημοσ.

http://insomnia.gr/vb3/attachment.php?attachmentid=6915&stc=1&d=1175262114

test.zip

 

Στο παραπανω ποστ τα σχολια με ελληνικα γραμματα τα βγαζει 'κινεζικα'

στο ζιπ ειναι κανονικα.

 

Επισης μια αλλαγη χρειαζεται ο κωδικας στο gateway αλλαζει την ip

Mαλλον 8α το ξαναστειλει ή θα τον ανεβασει ετοιμο παλι τον κωδικα ο UserXP

test.zip

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...