Avatar billede jobless Nybegynder
09. august 2004 - 11:47 Der er 25 kommentarer og
3 løsninger

Overfør data fra web-side til vb6

Hej.

Jeg har en exe-fil kørende på en computer. Fra en webside vil jeg gerne overføre en variabel (måske 2) til exe-filen, med en event når dataene modtages i vb.

Er der nogen som har erfaring med overførsel af data, på ovennævnte måde?

MVH

JoBless
Avatar billede tlist Nybegynder
09. august 2004 - 12:01 #1
Lav en activex control der kører på web siden der har x-antal parametre, få kontrollen til at kører exefilen.

Du kan også redirecte browseren til f.eks file://c|/windows/system32/cmd.exe
Avatar billede jobless Nybegynder
09. august 2004 - 12:25 #2
Vedr. den første løsning (activex):
exefilen kører i forvejen, og jeg vil gerne overføre data til denne... kan man det?
Avatar billede sjh Nybegynder
09. august 2004 - 17:32 #3
hvormeget data skal du overfør.. er det noget så kan overføres gennem url??
fx. http://www.navn.dk/side.php?navn=jens&addr=netby
Avatar billede jobless Nybegynder
09. august 2004 - 21:04 #4
Data er 2 variabler, hhv tlf. nr og en boolean.

Disse data skal overføres fra en webside til en kørende exe-fil.
Avatar billede sjh Nybegynder
10. august 2004 - 01:54 #5
Jeg har lavet den en gang før.. se om du ikke kan bruge den..

http://www.eksperten.dk/spm/304504
http://hjem.get2net.dk/sjh/eksperten/304504/
Avatar billede jobless Nybegynder
10. august 2004 - 07:50 #6
sjh: Dit eksempel ser ud til at omhandle kommunikation fra vb6 til en access database, via internet (asp), er dette korrekt?

Mit ønske er at en webside i en browser (clientside) genererer en event i en lokal exe-fil, samtidigt med at den sender 1 eller 2 variabler med over til exe-filen.
Avatar billede sjh Nybegynder
10. august 2004 - 08:05 #7
korrekt ja..

men havd skulle det gøre godt for at DU starter et program på en givet computer.. det tror jeg ikke jeg ville bryde mig om.. og du skal jo ikke være sikker på at en bruger tillader at køre et program som bliver startet fra din hjemmeside..

Hvad skal det bruges til?? og hvordan skal det virke??
Avatar billede jobless Nybegynder
10. august 2004 - 08:17 #8
Jeg har et program kørende (ved computerens start), som bruges i forbindelse med noget telekommunikation.

Herefter vil jeg (på en webside som jeg selv laver) trykke på et ikon, hvorefter der bliver sendt oplysninger fra denne side til mit lokale vb6 program.

Altsammen foregår fra en intranet-side, som jeg har fuld kontrol over, samt egen exe-fil som jeg også har fuld kontrol over.

Mit spørgsmål drejer sig hovedsageligt om, hvilken teknik der skal bruges for at sende oplysninger fra web-siden til exe-filen.
Avatar billede sjh Nybegynder
10. august 2004 - 08:22 #9
jeg ser på det når jeg kommer hjem..
Avatar billede jobless Nybegynder
10. august 2004 - 09:47 #10
Jeg er kommet til at tænke på, at det muligvis kan laves som en ekstern protokol, selvom jeg ikke kender teknikken til dette.
Det kan sammenlignes med et mailto link eller et skypeme link, blot at jeg ikke er klar over hvordan man laver dette ?!?
Avatar billede sjh Nybegynder
10. august 2004 - 14:24 #11
Jo på samme måde som.. irc://irc.quakenet.org/...

http://home.get2net.dk/sjh/eksperten/527544/Jobless.zip

Du skal bare lige rette sti i "jobless.reg" og derefter køre den.. så skulle den være hjemme..
Avatar billede jobless Nybegynder
10. august 2004 - 18:58 #12
Det ser godt ud, vi er næsten i mål nu.

Der er blot 1 lille detalje, linket åbner en ny instans af exe-filen, hver gang der klikkes på det.

I min exe-fil har jeg et check for flere instanser:

' Subroutine to show the previous instance ( If it is already running )
Public Sub ShowPrevInstance()
  Dim OldTitle As String
  Dim ll_WindowHandle As Long

  'saving the current title in OldTitle variable
  'and changing the application title
  OldTitle = App.Title
  App.Title = "abcba - This App Will Be Closed"

  'finding the previous instance. if you are using VB 5.0,
  'change "ThunderRT6Main" to "ThunderRT5Main"
  ll_WindowHandle = FindWindow("ThunderRT6Main", OldTitle)

  'if there is no old instances of your application - exit.
  If ll_WindowHandle = 0 Then Exit Sub

  'Find the window we need to restore
  ll_WindowHandle = GetWindow(ll_WindowHandle, GW_HWNDPREV)
   
  'Now restore it
  Call OpenIcon(ll_WindowHandle)

  'And Bring it to the foreground
  Call SetForegroundWindow(ll_WindowHandle)
     
  Call SetFocus(ll_WindowHandle)
   
  If IsIconic(ll_WindowHandle) Then
        Call ShowWindow(ll_WindowHandle, SW_RESTORE)
  Else
        Call ShowWindow(ll_WindowHandle, SW_SHOW)
  End If
     
End Sub


Kan man sende $command over til den tidligere instans?
Avatar billede sjh Nybegynder
11. august 2004 - 00:54 #13
Avatar billede jobless Nybegynder
11. august 2004 - 11:24 #14
Det ser godt ud.

Når jeg bruger dit eksempel, ser det ud til at virke.

Jeg har dog et problem med at få 'Data-overførslen' til at virke, når jeg implementerer dette i min egen applikation. Jeg har sat formens linkmode til source, samt linktopic til jobless.
Alligevel kommer der en fejl, når jeg åbner instans nr 2: No foreign application responded to a DDE initiate.

Hvad gør jeg galt her?
Avatar billede jobless Nybegynder
11. august 2004 - 12:13 #15
Ok, fandt fejlen.....

Jeg havde et andet projektnavn...

Kan jeg justere linktimeout, så den nye instans lukker hurtigere?
Avatar billede jobless Nybegynder
11. august 2004 - 13:30 #16
Jeg får godtnok data over, og bruger så onchange, til at køre nogle funktioner.

Herefter vil jeg gerne have nulstillet txt-feltet, så jeg kan køre hændelsen igen, når jeg modtager data næste gang.

Hvis jeg tømmer feltet, kører hændelsen igen, kan jeg undgå dette?
Avatar billede sjh Nybegynder
11. august 2004 - 17:32 #17
Ju kan vel bare gøre sådan..

Private Sub txtCMD_Change()
  If Len(txtCMD) > 0 Then
    Me.Show
    'Udfør noget mere her
    txtCMD = ""
  End If
End Sub
Avatar billede jobless Nybegynder
11. august 2004 - 19:06 #18
Tak for hjælpen
Avatar billede slapstick Nybegynder
13. oktober 2004 - 14:06 #19
jeg får også den her fejl ved nr2 instans: No foreign application responded to a DDE initiate.
hvad er det der helt præcist skal rettes i? og rettes til hvad? har prøvet at rette i linktopic men det hjalp ik rigtig
Avatar billede sjh Nybegynder
13. oktober 2004 - 23:53 #20
Jeg mener det var den her:

Private Sub txtCMD_Change()
  If Len(txtCMD) > 0 Then
    Me.Show
    'Udfør noget mere her
    txtCMD = ""
  End If
End Sub
Avatar billede slapstick Nybegynder
14. oktober 2004 - 16:09 #21
hmm jeg får stadig fejlen..

min kode ser sådan her ud:

----form_load------

    Dim strCaption As String
   
    If App.PrevInstance Then
      If Len(Command$) > 0 Then
        With txtCMD
            .LinkMode = vbLinkNone
            .LinkTopic = "Mine Gule Sider|Mine Gule Sider"
            .LinkItem = .Name
            .LinkMode = vbLinkManual
            .Text = Command$
            .LinkPoke
        End With
       
        strCaption = Me.Caption: Me.Caption = ""
        AppActivate strCaption
        Unload Me
        If InStr(Command$, "mgs://import/") Then
            Timer2.Enabled = True
        End If
      End If
        Else
      txtCMD.Text = Command$
      If InStr(Command$, "mgs://import/") Then
      Timer2.Enabled = True
      End If
    End If

-----end form_load--------

-------------txtCMD_Change----------

  If Len(txtCMD) > 0 Then
    Me.Show
    'Udfør noget mere her
    txtCMD = ""
  End If

-------------End txtCMD_change----------
Avatar billede sjh Nybegynder
14. oktober 2004 - 16:15 #22
' I design-time skal du indstille
' frmMain.LinkMode til eller = Source
' frmMain.LinkTopic til eller = Mine Gule Sider

har du gjord det??

og så kan jeg ikke huske om der må være mellemrum i fx. Mine Gule Sider
Avatar billede slapstick Nybegynder
14. oktober 2004 - 16:22 #23
det der linktopic hvilken værdi er det den skal ha? er det caption på ens form, navnet på projektet eller???? og skal linktopic på frmmain og txtcmd være ens?
prøvede med Mine Gule Sider som linktopic på frmmain det var no go
Avatar billede sjh Nybegynder
14. oktober 2004 - 16:23 #24
så er der også lige din Timer1.. den skal du udfør under txtCMD_Change()

Private Sub txtCMD_Change()
  If Len(txtCMD) > 0 Then
    Me.Show
    'Udfør noget mere her
    If InStr(txtCMD, "mgs://import/") Then
      Timer2.Enabled = True
    End If
    txtCMD = ""
  End If
End Sub
Avatar billede slapstick Nybegynder
14. oktober 2004 - 17:02 #25
ok jeg har rykket timerdelen ind i txtCMD_change
jeg har prøvet at sætte formens linktopic til:
Mine Gule Sider <--det der står i caption på min form
MGS  <--- navnet på min protokol MGS://
addylookup <--- navnet på projektet


ingen af tingene havde nogen succes :(
Avatar billede sjh Nybegynder
15. oktober 2004 - 03:05 #26
Nu har jeg rodet lidt med det.. nu skulle det være nemt nok..

MEN HUSK AT DET ER PÅ EGET ANSVAR..
http://hjem.get2net.dk/sjh/eksperten/527544/vbUrlProtocol.zip
Avatar billede slapstick Nybegynder
15. oktober 2004 - 10:27 #27
smukt jeg kigger på det
tak :)
Avatar billede slapstick Nybegynder
15. oktober 2004 - 10:44 #28
perfekt så spiller det sgu
takker !!
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