Avatar billede Slettet bruger
12. juni 2006 - 22:19 Der er 20 kommentarer og
2 løsninger

web program

Hej jeg har en del hjemmesider jeg geren vil have bliver kørt ca en gang hver minut men savner en sikker måde at gøre det på men da jeg prøve via inet virker det af ht. og håber der er en der kan hjælpe. da jeg gerne skal bruge det
Avatar billede inctor Nybegynder
12. juni 2006 - 22:20 #1
HVad skal gøres på dem ? et script ?
Avatar billede driis Nybegynder
12. juni 2006 - 22:31 #2
Avatar billede inctor Nybegynder
12. juni 2006 - 22:33 #3
Jaa det var oSs det jeg tænkte på, kunne bare ikk forstå det under kategorien Visual Basic ?
Avatar billede Slettet bruger
12. juni 2006 - 22:55 #4
Grunde er at jeg selv ønsker at udvikle et program i Visual Basic. da jeg heller ikke har kun finde et program der virker 100% men ja det er til afvikling af script
Avatar billede inctor Nybegynder
12. juni 2006 - 23:01 #5
Der vil det være nemmest at anvende et CronJob .. Istedet for du laver et VB program som loader en side 5 gange i minuttet, det kan være meget belastende på din com og for din net forbindelse, især hvis der er flere sider som skal køres flere gange i minuttet .. men anvend CronJob til afvikling af scripts .. Det er langt det nemmeste ..
Avatar billede sjh Nybegynder
12. juni 2006 - 23:23 #6
øhh webiis.. var det ikke en ide at lukke nogle af alle de spørgsmål du har gang i før du starter på noget nyt.. ?
Avatar billede Slettet bruger
12. juni 2006 - 23:39 #7
hej sjh. jeg lukke min spm som de bliver løst ikke før. dog hvis jeg finder ud af det ikke kan betale sig at bruge mere tid lukker jeg dem.
Avatar billede sjh Nybegynder
12. juni 2006 - 23:54 #8
Avatar billede Slettet bruger
13. juni 2006 - 00:25 #9
som sag så gjort. den ene har jeg være ved at lukke men har miste ingernet. men har lukke dem nu..
Avatar billede sjh Nybegynder
13. juni 2006 - 01:57 #10
webiis okææ.. ;)

Nu skriver du godt nok 100% sikker.. det kan det ikke blive..

Så virker det ikke:
1. Hvis den computeren skal køre programmet er slukket.
2. Hvis programmet ikke bliver startet.
3. Hvis der ikke er Internetforbindelse.
4. Hvis din windows går ned.
5. Hvis den side du ønsker opadter bliver flyttet.
6. Hvis der skal logges ind på siden først.

hvor meget behøves der og opdateres på siderne.. skal den køre hele siden med billeder, java, activex, javascript, flash osv.. ??
Avatar billede sjh Nybegynder
13. juni 2006 - 01:58 #11
eller er det bare nok at server får en GET kommando ?
Avatar billede Slettet bruger
13. juni 2006 - 07:51 #12
det er principe nok med en get da det kun er meninge det er nåde asp/cgi/php der skal kun opdateres/køres.
Avatar billede sjh Nybegynder
13. juni 2006 - 09:18 #13
Ja så kan det vel klares med det her..


' ----------------------------- Form1 -----------------------------
' Husk en Timer (Timer1) og en TextBox (Text1)
' -----------------------------------------------------------------
Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" _
  Alias "URLDownloadToFileA" _
  (ByVal pCaller As Long, _
  ByVal szURL As String, _
  ByVal szFileName As String, _
  ByVal dwReserved As Long, _
  ByVal lpfnCB As Long) As Long

Private Declare Function DeleteUrlCacheEntry Lib "wininet" _
  Alias "DeleteUrlCacheEntryA" _
  (ByVal lpszUrlName As String) As Long

Private Const ERROR_SUCCESS As Long = 0
Private Const BINDF_GETNEWESTVERSION As Long = &H10

Private arrUrls() As String

Private Function DownloadFile(strSourceUrl As String, strLocalFile As String, _
                              Optional blnDeleteCache As Boolean = False) As Boolean
  If blnDeleteCache Then
    Call DeleteUrlCacheEntry(strSourceUrl)
  End If
  DownloadFile = URLDownloadToFile(0&, strSourceUrl, _
  strLocalFile, BINDF_GETNEWESTVERSION, 0&) = ERROR_SUCCESS
End Function

Private Sub Form_Load()
  ReDim arrUrls(0) As String

  Text1.Text = "http://www.eksperten.dk/spm/715057" & _
  vbCrLf & "http://www.eksperten.dk/"
 
  arrUrls = Split(Text1.Text, vbCrLf)

  Timer1.Interval = 60000 ' 1 min
  Call Timer1_Timer
End Sub

Private Sub Timer1_Timer()
Dim i As Integer
Dim strLocalFile As String
  strLocalFile = "C:\deleteme.htm"
  For i = LBound(arrUrls) To UBound(arrUrls)
    If DownloadFile(arrUrls(i), strLocalFile, True) = True Then
      Kill strLocalFile
    End If
  Next
End Sub
' ----------------------------- Form1 -----------------------------
Avatar billede Slettet bruger
13. juni 2006 - 14:51 #14
hvorfor skal den download den da det jo kun er script der skal køres ?
Avatar billede sjh Nybegynder
14. juni 2006 - 17:08 #15
Det var bare min første bud :D så brug den her..

' ----------------------------- Form1 -----------------------------
Option Explicit

Private Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer

Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" _
(ByVal hInternetSession As Long, ByVal sUrl As String, ByVal sHeaders As String, _
ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long

Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Private Const HTTP_USER_AGENT              As String = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
Private Const INTERNET_OPEN_TYPE_DIRECT    As Long = 1
Private Const INTERNET_FLAG_NO_CACHE_WRITE As Long = &H4000000

Public Function SendGET(ByVal strURL As String) As Boolean
Dim hSession As Long
Dim hInternet As Long

  hSession = InternetOpen(HTTP_USER_AGENT, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0&)
  If hSession = 0 Then
    Exit Function
  End If

  hInternet = InternetOpenUrl(hSession, strURL, vbNullString, 0&, INTERNET_FLAG_NO_CACHE_WRITE, 0&)
  If hInternet = 0 Then
    Call InternetCloseHandle(hSession)
    Exit Function
  End If

  If hSession <> 0 Then
    Call InternetCloseHandle(hSession)
  End If

  If hInternet <> 0 Then
    Call InternetCloseHandle(hInternet)
  End If

  SendGET = True
End Function

Private Sub Form_Load()
  Me.Caption = SendGET("http://www.eksperten.dk/spm/715057")
End Sub
' ----------------------------- Form1 -----------------------------
Avatar billede sjh Nybegynder
15. juni 2006 - 21:34 #16
webiis > sker der noget ??
Avatar billede Slettet bruger
15. juni 2006 - 23:35 #17
Både ja og nej. har ikke helt haft tid til at teste helt. men det virker ikke som om det virker som det skal.
Avatar billede sjh Nybegynder
16. juni 2006 - 00:17 #18
"men det virker ikke som om det virker som det skal." Hvad får dig til at tro det??
Avatar billede learningvba Nybegynder
16. juni 2006 - 07:46 #19
Prøvede i Word.vba, og fik False i caption, hvilket passer meget godt med at al trafik her går igennem en Proxy, så jeg erstattede "INTERNET_OPEN_TYPE_DIRECT" med "INTERNET_OPEN_TYPE_PROXY", hvilket heller ikke virkede ;-), derimod så virkede erstatningen med "INTERNET_OPEN_TYPE_PRECONFIG".

For at prøve, så tilføj disse 2 linier til erklæringen:
Private Const INTERNET_OPEN_TYPE_PRECONFIG As Long = 0
Private Const INTERNET_OPEN_TYPE_PROXY    As Long = 3

og ret linien
hSession = InternetOpen(HTTP_USER_AGENT, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0&)

til

hSession = InternetOpen(HTTP_USER_AGENT, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0&)

(hInternet returnerer 0 for de 2 første værdier)
Avatar billede sjh Nybegynder
16. juni 2006 - 21:30 #20
øhh du kan altså ikke bruge den gennem en Proxy-server.. Fordi forbindelsen bliver lukket så snart du har sendt GET kommand, og det kan en proxy ikke finde ud af den tror det er en fejl og afslutter det job den skulle gørre for dig..
Avatar billede learningvba Nybegynder
20. juni 2006 - 08:04 #21
Du har garanteret ret :-), det er (heller) ikke et område jeg vil gøre mig klog på :-)

Dit eksempel nr. 2 fik jeg dog til at "fungere", dvs. returnere True i Caption istedet for False.

Dit eksempel nr. 1 har jeg måtte pille lidt i (Word.vba, ikke vb), og fik også det til at fungere:

Private Sub RunMe()
  ReDim arrUrls(0) As String
  Dim TxtStr As String
  Application.OnTime Now + TimeValue("00:00:05"), Name:="Timer1_Timer"
  'Text1.Text = "http://www.eksperten.dk/spm/715057" & vbCrLf & "http://www.eksperten.dk/"
  TxtStr = "http://www.eksperten.dk/spm/715057" & vbCrLf & "http://www.eksperten.dk/"
  arrUrls = Split(TxtStr, vbCrLf)

  Timer1.Interval = 60000 ' 1 min
  Call Timer1_Timer
End Sub

Private Sub Timer1_Timer()
Dim i As Integer
Dim strLocalFile As String
  strLocalFile = "C:\Temp\0deleteme.htm"
  For i = LBound(arrUrls) To UBound(arrUrls)
    If DownloadFile(arrUrls(i), strLocalFile, True) = True Then
      Debug.Print "Running: " & arrUrls(i) & " dl'ed"
      Kill strLocalFile
    End If
  Next
  Application.OnTime Now + TimeValue("00:00:05"), Name:="Timer1_Timer"
End Sub

(Jeg droppede Userform)
Der er ingen Timer-control i Word.vba :-(, men Application.OnTime giver lidt af funktionaliteten. Begge filer kommer ned på C:-drevet.

Mht. proxy, så siger vores netværkseksperter at al trafik ud af huset kører via proxy (Policy på pc'en forhindrer mig i at checke IE's indstillinger :-) ), så jeg tror på dem :-)

Iøvrigt er det nyttige eksempler at have i baggrunden, så tak for dem.
Avatar billede Slettet bruger
22. juni 2006 - 17:59 #22
Lukket
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