LooneyTune Skrevet 19. desember 2006 Skrevet 19. desember 2006 Er det noen måte vb kan benytte cmd kommandoer på? Da mener jeg net send, ipconfig osv...
aadnk Skrevet 19. desember 2006 Skrevet 19. desember 2006 (endret) Dersom du ikke behøver å motta noe data fra applikasjonene, kan du simpelthen benytte Shell-kommandoen: Shell "cmd.exe /c net send * hallo" Dersom slikt derimot er nødvendig, er det også mulig å benytte en BAT-fil som skriver til en midlertidig fil: ' Nødvendige API-funksjonerPrivate Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Const SYNCHRONIZE = &H100000 Const INFINITE = &HFFFF Public Function ExecuteCode(Code As String, TempFile As String, OutputFile As String) As String Dim Free As Integer, sOutput As String, pID As Long, hProcess As Long ' Hent ledig filnummer Free = FreeFile ' Skriv til BAT-filen vi vil benytte Open TempFile For Output As #Free Print #Free, Code & Chr(34) & OutputFile & Chr(34) Close #Free ' Eksekver BAT-fil pID = Shell("cmd.exe /C " & TempFile) ' Åpne den eksekveret prosess hProcess = OpenProcess(SYNCHRONIZE, 0, pID) ' Vent inntil prosessen er ferdig å kjøre If hProcess <> 0 Then WaitForSingleObject hProcess, INFINITE CloseHandle hProcess End If ' Ledig filnummer Free = FreeFile ' Henter utdata Open OutputFile For Binary As #Free sOutput = Space(LOF(Free)) Get #Free, , sOutput Close #Free ' Rydder opp Kill TempFile Kill OutputFile ' Returnerner data ExecuteCode = sOutput End Function Den ovennevnte kode kan kjøres således: MsgBox ExecuteCode("ipconfig > ", "C:\Temp.bat", "C:\Temp.txt") Endret 19. desember 2006 av aadnk
LooneyTune Skrevet 19. desember 2006 Forfatter Skrevet 19. desember 2006 Jeg trenger ikke noe resultat, men hvordan kan jeg bruke variabler i koden? eks: Shell "cmd.exe /c net send * hallo" Her vil jeg bytte ut * og hallo med variabler som brukeren selv skriver inn...
aadnk Skrevet 19. desember 2006 Skrevet 19. desember 2006 Da bruker du &-operatøren: Shell "cmd.exe /c net send " & txtUsers.Text & " " & txtMessage.Text
LooneyTune Skrevet 19. desember 2006 Forfatter Skrevet 19. desember 2006 Det funket ikke... noen andre idèer?
aadnk Skrevet 19. desember 2006 Skrevet 19. desember 2006 Det funket ikke... noen andre idèer? 7537412[/snapback] La du til tekstboksene txtUsers og txtMessage?
LooneyTune Skrevet 19. desember 2006 Forfatter Skrevet 19. desember 2006 (endret) jaja, er ikke helt ny innen verken vb eller batch. Har bare aldri kombinert begge deler. Men som sagt, noen andre idèer? Eller en idè om hva som er feil? Endret 19. desember 2006 av LooneyTune
aadnk Skrevet 19. desember 2006 Skrevet 19. desember 2006 (endret) Eller en idè om hva som er feil? 7537673[/snapback] Dersom du ikke fikk noen feilmelding, bør du nok teste om kommandoen i det hele tatt fungerer. Se om du får sendt en melding ved å skrive denne kommandoen direkte i ledetekst. Evt. kan du òg benytte NetMessageBufferSend: Private Declare Function NetMessageBufferSend Lib _ "NETAPI32.DLL" (yServer As Any, yToName As Byte, _ yFromName As Any, yMsg As Byte, ByVal lSize As Long) As Long Private Const NERR_Success As Long = 0& Public Function SendMessage(RcptToUser As String, _ FromUser As String, BodyMessage As String) As Boolean Dim RcptTo() As Byte Dim From() As Byte Dim Body() As Byte RcptTo = RcptToUser & vbNullChar From = FromUser & vbNullChar Body = BodyMessage & vbNullChar If NetMessageBufferSend(ByVal 0&, RcptTo(0), ByVal 0&, _ Body(0), UBound(Body)) = NERR_Success Then SendMessage = True End If End Function Private Sub Form_Load() 'Example created by X-MaD ([email protected]) 'Visit his website at http://www.zolnetwork.com/x-mad Dim RetVal As Boolean RetVal = SendMessage(txtReciever.Text, txtSender.Text, txtMessage.Text) End Sub Husk nå endelig å legge til tekstboksene txtReciever, txtSender og txtMessage. Dersom du får problemer, bør du før øvrig poste evt, feilmeldinger. Jeg vil òg foreslå at du leser noen bøker eller ressurser på nettet knyttet til VB6-programmering, eksempelvis på Wikibooks. Endret 19. desember 2006 av aadnk
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå