Avatar billede engberg Juniormester
04. februar 2002 - 21:53 Der er 9 kommentarer og
1 løsning

Styre VB / printport fra browser

Hejsa

Jeg har et program der bruger en .dll fil og et .bas modul, men hvor selve programmet er meget enkelt. (Det bruges til at styre output på printporten, hvilket igen styrer en 220V pære)

Nu er spørgsmålet så - hvordan styrer jeg det fra internettet??

Kan jeg lave noget activeX til at gøre det? (og hvad skal det i så fald være? ActiveX Dll / exe / control /documnent dll / document exe)

Eller kan det gøres i PHP??
Avatar billede sjh Nybegynder
04. februar 2002 - 22:55 #1
jeg går udfra at det skal ske på din egen computer.

så kan lave en lille server på din computer hvor du kan sende dine command til (via IP-ad.... Winsock port 80).
Avatar billede engberg Juniormester
04. februar 2002 - 23:32 #2
Øhh.. Det skal ske fra internettet via min PC - ja.

Og, øhh.. det kræver desværre mere forklaring, før jeg fatter det.
1. Hvordan laver jeg lige en lille server
2. Hvor skal jeg sende mine kommandoer fra?
3. Hvad skal modtage mine kommandoer?
Avatar billede sjh Nybegynder
05. februar 2002 - 00:04 #3
'Prøv at lave den her på en Form1 (din server)

'Tilføj Microsoft Winsock Controls og endre Winsock1 til WSHttp
'og set index til 0 (WSHttp.Index = 0)

'Start din internet browser og skriv http://din ip adresse/ ("http://127.0.0.1/" hvis du ikke er tilsluttet.)
'nu skulle der komme et par links frem på din browser.

Option Explicit

Private strCommand() As String
Private strHTML As String

Private Sub Form_Load()
ReDim Preserve strCommand(0) As String
  WSHttp(0).LocalPort = 80
  WSHttp(0).Listen

'her din html kode
  strHTML = "<br><a href=start>Command Start</a><br>" _
          & "<a href=stop>Command Stop</a><br>" _
          & "<a href=show>Command Show caption</a><br>"
End Sub

Private Sub WSHttp_Close(Index As Integer)
  WSHttp(Index).Close
    Do Until WSHttp(Index).State = sckClosed
      DoEvents: DoEvents
    Loop
  Unload WSHttp(Index)
End Sub

Private Sub WSHttp_ConnectionRequest(Index As Integer, ByVal requestID As Long)
  If Index = 0 Then
    If IsError(WSHttp(requestID)) = False Then
      Load WSHttp(requestID)
        DoEvents
        WSHttp(requestID).Accept requestID
      If requestID > UBound(strCommand()) Then
        ReDim Preserve strCommand(requestID) As String
      End If
    End If
  End If
End Sub

Private Sub WSHttp_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  WSHttp(Index).GetData strCommand(Index), vbString, bytesTotal
    If Mid(strCommand(Index), 1, 3) = "GET" Then
          Select Case LCase$(Mid$(strCommand(Index), 6, Val(InStr(1, strCommand(Index), vbNewLine) - 15)))
              Case "start"
                  Me.Caption = "Start" 'caption start
                  strCommand(Index) = "<html>" & strHTML & "</html>"
              Case "stop"
                  Me.Caption = "Stop" 'caption stop
                  strCommand(Index) = "<html>" & strHTML & "</html>"
              Case "show"
                  strCommand(Index) = "<html>Caption: " & Me.Caption & strHTML & "</html>"
          End Select
        Else
      WSHttp(Index).SendData "<html>" & strHTML & "</html>"
    End If
  WSHttp(Index).SendData strCommand(Index)
End Sub

Private Sub WSHttp_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
  Call WSHttp_Close(Index)
End Sub

Private Sub WSHttp_SendComplete(Index As Integer)
  Call WSHttp_Close(Index)
End Sub
Avatar billede sjh Nybegynder
05. februar 2002 - 00:15 #4
der er en fejl, udskift koden her:


Private Sub WSHttp_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  WSHttp(Index).GetData strCommand(Index), vbString, bytesTotal
    If Mid(strCommand(Index), 1, 3) = "GET" Then
          Select Case LCase$(Mid$(strCommand(Index), 6, Val(InStr(1, strCommand(Index), vbNewLine) - 15)))
              Case "start"
                  Me.Caption = "Start" 'caption start
                  strCommand(Index) = "<html>" & strHTML & "</html>"
              Case "stop"
                  Me.Caption = "Stop" 'caption stop
                  strCommand(Index) = "<html>" & strHTML & "</html>"
              Case "show"
                  strCommand(Index) = "<html>Caption: " & Me.Caption & strHTML & "</html>"
              Case Else
                  WSHttp(Index).SendData "<html>" & strHTML & "</html>": Exit Sub
          End Select
        Else
      WSHttp(Index).SendData "<html>" & strHTML & "</html>"
    End If
  WSHttp(Index).SendData strCommand(Index)
End Sub
Avatar billede dimle Nybegynder
05. februar 2002 - 13:15 #5
Okay... det er lidt sejt!!! Hvordan har du sat en pære til din din printerport??? Det er der jo muligheder i!!!
Avatar billede engberg Juniormester
05. februar 2002 - 14:46 #6
sjh>> Jep - din kode lader til at virke... Og jeg kan connecte fra min egen PC, men jeg kan ikke bruge min internet IP (http://192.168.***.***). Selvom jeg ER logget på... SKal jeg starte en server ved siden af det her eller hvad??

Dimle>> Jeg har lavet 4 udgange (kan nemt laves til 12) som jeg kan styre fra et VB-program.. Du kan købe et SmartKit byggesæt der kan det samme, eller et fra Brinck. Jeg kan godt lave det for dig billigere, hvis du er interesseret..
Avatar billede sjh Nybegynder
05. februar 2002 - 20:00 #7
Ja, du skal starte serverprogrammet før du kan bruge din ip-adersse som "http://". Når du lukker serverprogrammet kan du ikke styre din kode.

Hvis du ikke er logget på kan du bruge "http://127.0.0.1/" til at test hvis du ikke har en fast ip-adresse.
Avatar billede engberg Juniormester
06. februar 2002 - 01:15 #8
Jeg har fast IP og har fået det til at virke, pånær det at den vil ikke vise et billede...
Hvor stiller jeg default-directory til webserveren, eller henviser til et billede, så det virker i browseren - jeg mener, det virker jo kun hos mig, når jeg skriver <img src="c:\webcam.jpg">...
Avatar billede sjh Nybegynder
06. februar 2002 - 17:30 #9
engberg >>Prøv at download filen her:
http://home.get2net.dk/sjh/eksperten/168196/wsserver.zip
Avatar billede engberg Juniormester
07. februar 2002 - 16:28 #10
Du har vært til rigtig stor hjælp - tak skal du have sjh...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester