geo1st487 Δημοσ. 23 Φεβρουαρίου 2009 Δημοσ. 23 Φεβρουαρίου 2009 Πως μπορω να δημιουργησω ενα Inet control κατα τον χρονο εκτελεσης χωρις να το εχω πανω σε φορμα; Ευχαριστω
ntaryl Δημοσ. 23 Φεβρουαρίου 2009 Δημοσ. 23 Φεβρουαρίου 2009 καλημερα φιλε μου μπορεις να γινεις πιο συγκεκριμενος ? θα βοηθουσε να καταλαβω οσο το δυνατον καλυτερα και να σου δωσω μια σωστη απαντηση ευχαριστω Y.s Αν καταλαβα καλα θες να δημιουργεις control at runtime Φιλε μου γιατι δεν δημιουργεις μια array και μετα να δημιουργεις οσα θες ? αν κανω λαθος διορθωσε με http://www.freevbcode.com/ShowCode.asp?ID=2815
geo1st487 Δημοσ. 23 Φεβρουαρίου 2009 Μέλος Δημοσ. 23 Φεβρουαρίου 2009 καλημερα φιλε μου μπορεις να γινεις πιο συγκεκριμενος ? θα βοηθουσε να καταλαβω οσο το δυνατον καλυτερα και να σου δωσω μια σωστη απαντηση ευχαριστω Y.s Αν καταλαβα καλα θες να δημιουργεις control at runtime Φιλε μου γιατι δεν δημιουργεις μια array και μετα να δημιουργεις οσα θες ? αν κανω λαθος διορθωσε με http://www.freevbcode.com/ShowCode.asp?ID=2815 Φιλε ntaryl, θελω μεσα απο ενα module να δημιουργησω μια αναφορα στο Inet control και να το χρησιμοποιησω χωρις να χρειαστει να φορτωσω φορμα στη μνημη. Θα εχω μονο στο toolbox το Inet και χωρις να το τοποθετησω στη φορμα να το χρησιμοποιησω. Να γραψω π.χ. το παρακατω Dim objInet as Inet strHtml = objInet.OpenURL("www.mypage.gr")
ntaryl Δημοσ. 23 Φεβρουαρίου 2009 Δημοσ. 23 Φεβρουαρίου 2009 Αυτο σου κανει καλο απογευμα Γιατι δεν 8ες να χρησιμοποιησεις το inet ? ModGoWinInet.bas.txt
geo1st487 Δημοσ. 23 Φεβρουαρίου 2009 Μέλος Δημοσ. 23 Φεβρουαρίου 2009 Αυτο σου κανει καλο απογευμα Γιατι δεν 8ες να χρησιμοποιησεις το inet ? Το ετρεξα και επιστρεφει μηδενικο string. Σε σενα τρεχει κανονικα; Thanks για την προσπαθεια.
ntaryl Δημοσ. 23 Φεβρουαρίου 2009 Δημοσ. 23 Φεβρουαρίου 2009 δοκιμασε στο pscode.com ***αυτόματη ένωση μηνυμάτων*** τσεκαρισε αυτο http://www.ex-designz.net/apinamelist.asp?l=I&offset=20
geo1st487 Δημοσ. 23 Φεβρουαρίου 2009 Μέλος Δημοσ. 23 Φεβρουαρίου 2009 Μετα απο αρκετο ψαξιμο και αφου βρηκα τουλαχιστον 3 κωδικες που επεστρεφαν μηδενικο string, βρηκα τον παρακατω κωδικα ο οποιος δουλευει! Βαζεις σε ενα Module τον παρακατω κωδικα και εισαι τζετ! Const scUserAgent = "API-Guide test program" Const INTERNET_OPEN_TYPE_DIRECT = 1 Const INTERNET_OPEN_TYPE_PROXY = 3 Const INTERNET_FLAG_RELOAD = &H80000000 Const sURL = "http://www.megamillions.com/includes/numberData_home.asp" Private Declare Function InternetOpen Lib "wininet" 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 Declare Function InternetCloseHandle Lib "wininet" (ByRef hInet As Long) As Long Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long Private Function getSrc() As String 'KPD-Team 1999 'URL: http://www.allapi.net/ 'E-Mail: [email protected] Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long 'Create a buffer for the file we're going to download sBuffer = Space(1000) 'Create an internet connection hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0) 'Open the url hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&) 'Read the first 1000 bytes of the file InternetReadFile hFile, sBuffer, 1000, Ret 'clean up InternetCloseHandle hFile InternetCloseHandle hOpen 'Show our file getSrc = sBuffer End Function Sub main() MsgBox Trim(getSrc) End Sub ***αυτόματη ένωση μηνυμάτων*** Τελικα ο κωδικας που βρηκα εχει ενα προβλημα. Οταν εχω τον internet explorer σε work offline και εκτελεσω τον κωδικα, εμφανιζει το source που εχει κρατησει στην cache. Πως θα γινει να μην εμφανιζει τα δεδομενα της cache; Ευχαριστω
frikoulo Δημοσ. 24 Φεβρουαρίου 2009 Δημοσ. 24 Φεβρουαρίου 2009 Καλημέρα και συγνώμη φίλε μου, αλλά δεν έχω καταλάβει πλήρως τι θέλεις να κάνεις... Το Inet γιατί σου χρειάζεται? Πες μου τι θέλεις να κάνεις στο project σου να πιάσω το νόημα, μήπως καταφέρω να σε βοηθήσω, μιας κ το έχω χρησιμοποιήσει και εγώ κάμποσες φορές..
geo1st487 Δημοσ. 24 Φεβρουαρίου 2009 Μέλος Δημοσ. 24 Φεβρουαρίου 2009 Καλημέρα και συγνώμη φίλε μου, αλλά δεν έχω καταλάβει πλήρως τι θέλεις να κάνεις...Το Inet γιατί σου χρειάζεται? Πες μου τι θέλεις να κάνεις στο project σου να πιάσω το νόημα, μήπως καταφέρω να σε βοηθήσω, μιας κ το έχω χρησιμοποιήσει και εγώ κάμποσες φορές.. Θελω να εμφανιζω τον πηγαιο κωδικα απο ενα site. Ο κωδικας που εγραψα δουλευει αλλα οταν εχω τσεκαρει το work offline (εργασια χωρις συνδεση) απο τον internet explorer εμφανιζει τα δεδομενα που εχει κρατησει στην cache. Οταν ειμαι work offline δεν θελω να εμφανιζει δεδομενα. Κανωντας χρηση το Inet εχω το ιδιο προβλημα. Προτιμω να βρω μια λυση με API.
frikoulo Δημοσ. 24 Φεβρουαρίου 2009 Δημοσ. 24 Φεβρουαρίου 2009 οκ.. δώσε μου λίγα λεπτάκια και θα σου δώσω τον κώδικα που χρησιμοποίησα που δεν έχει τέτοια προβλήματα.. ***αυτόματη ένωση μηνυμάτων*** φτιαχνεις ενα Inet.bas και πετάς αυτό μέσα: > Option Explicit Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0 Public Const INTERNET_OPEN_TYPE_DIRECT = 1 Public Const INTERNET_OPEN_TYPE_PROXY = 3 Public Const scUserAgent = "SMS Chatline" Public Const INTERNET_FLAG_RELOAD = &H80000000 Public 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 Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" _ (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, _ ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Public Declare Function InternetReadFile Lib "wininet.dll" _ (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _ lNumberOfBytesRead As Long) As Integer Public Declare Function InternetCloseHandle Lib "wininet.dll" _ (ByVal hInet As Long) As Integer Function OpenURL(sUrl As String) As String Dim hOpen As Long Dim hOpenUrl As Long Dim bDoLoop As Boolean Dim bRet As Boolean Dim sReadBuffer As String * 3000 Dim lNumberOfBytesRead As Long Dim sBuffer As String On Error GoTo OUErr OpenURL = "" hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0) If hOpen > 0 Then hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0) If hOpenUrl > 0 Then bDoLoop = True sBuffer = "" While bDoLoop DoEvents sReadBuffer = vbNullString bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead) sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead) If Not CBool(lNumberOfBytesRead) Then bDoLoop = False Wend OpenURL = sBuffer InternetCloseHandle (hOpenUrl) End If InternetCloseHandle (hOpen) End If Exit Function OUErr: 'MsgBox "Error " & Error(Err) Resume Next End Function και μετά για να το χρησιμοποιήσεις απο οπουδήποτε μέσα στο project: > Dim myURL as String Dim pos1, pos2 As Long Dim start_str, end_str As String Dim tmp As String myURL = Inet.OpenURL("http://") pos1 = 1 start_str = "" 'ΕΔΩ ΒΑΖΕΙΣ ΜΙΑ ΛΕΞΗ ΝΑ ΒΡΕΙ ΜΕΣΑ ΣΤΟ URL Η` ΣΤΗΝ ΠΕΡΙΠΤΩΣΗ ΣΟΥ ΤΗΝ ΑΡΧΗ ΤΟΥ SITE end_str = "" 'ΕΔΩ ΕΙΝΑΙ ΠΟΥ ΘΑ ΣΤΑΜΑΤΗΣΕΙ ΝΑ ΨΑΧΝΕΙ pos1 = InStr(pos1, myURL, start_str) pos1 = pos1 + Len(start_str) pos2 = InStr(pos1, myURL, end_str) tmp = Trim(Mid(myURL, pos1, pos2 - pos1)) 'ΣΟΥ ΕΠΙΣΤΡΕΦΕΙ ΟΤΙ ΕΙΝΑΙ ΑΝΑΜΕΣΑ ΣΤΟ start_str ΚΑΙ ΤΟ end_str pos1 = pos2
geo1st487 Δημοσ. 24 Φεβρουαρίου 2009 Μέλος Δημοσ. 24 Φεβρουαρίου 2009 οκ..δώσε μου λίγα λεπτάκια και θα σου δώσω τον κώδικα που χρησιμοποίησα που δεν έχει τέτοια προβλήματα.. ***αυτόματη ένωση μηνυμάτων*** φτιαχνεις ενα Inet.bas και πετάς αυτό μέσα: > Option Explicit Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0 Public Const INTERNET_OPEN_TYPE_DIRECT = 1 Public Const INTERNET_OPEN_TYPE_PROXY = 3 Public Const scUserAgent = "SMS Chatline" Public Const INTERNET_FLAG_RELOAD = &H80000000 Public 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 Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" _ (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, _ ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Public Declare Function InternetReadFile Lib "wininet.dll" _ (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _ lNumberOfBytesRead As Long) As Integer Public Declare Function InternetCloseHandle Lib "wininet.dll" _ (ByVal hInet As Long) As Integer Function OpenURL(sUrl As String) As String Dim hOpen As Long Dim hOpenUrl As Long Dim bDoLoop As Boolean Dim bRet As Boolean Dim sReadBuffer As String * 3000 Dim lNumberOfBytesRead As Long Dim sBuffer As String On Error GoTo OUErr OpenURL = "" hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0) If hOpen > 0 Then hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0) If hOpenUrl > 0 Then bDoLoop = True sBuffer = "" While bDoLoop DoEvents sReadBuffer = vbNullString bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead) sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead) If Not CBool(lNumberOfBytesRead) Then bDoLoop = False Wend OpenURL = sBuffer InternetCloseHandle (hOpenUrl) End If InternetCloseHandle (hOpen) End If Exit Function OUErr: 'MsgBox "Error " & Error(Err) Resume Next End Function και μετά για να το χρησιμοποιήσεις απο οπουδήποτε μέσα στο project: > Dim myURL as String Dim pos1, pos2 As Long Dim start_str, end_str As String Dim tmp As String myURL = Inet.OpenURL("http://") pos1 = 1 start_str = "" 'ΕΔΩ ΒΑΖΕΙΣ ΜΙΑ ΛΕΞΗ ΝΑ ΒΡΕΙ ΜΕΣΑ ΣΤΟ URL Η` ΣΤΗΝ ΠΕΡΙΠΤΩΣΗ ΣΟΥ ΤΗΝ ΑΡΧΗ ΤΟΥ SITE end_str = "" 'ΕΔΩ ΕΙΝΑΙ ΠΟΥ ΘΑ ΣΤΑΜΑΤΗΣΕΙ ΝΑ ΨΑΧΝΕΙ pos1 = InStr(pos1, myURL, start_str) pos1 = pos1 + Len(start_str) pos2 = InStr(pos1, myURL, end_str) tmp = Trim(Mid(myURL, pos1, pos2 - pos1)) 'ΣΟΥ ΕΠΙΣΤΡΕΦΕΙ ΟΤΙ ΕΙΝΑΙ ΑΝΑΜΕΣΑ ΣΤΟ start_str ΚΑΙ ΤΟ end_str pos1 = pos2 Thanks για τον κωδικα. Δεν θελω να ψαχνω μεσα στο site. Θελω απλως να εμφανιζει ολα τα δεδομενα. Πρωτα ομως θελω να ελεγχω αν ο default internet browser ειναι work offline. Σε περιπτωση που ειναι να τον γυριζει online και επειτα να εμφανιζει τα δεδομενα του site. Σε καμια περιπτωση δεν θελω να εμφανιζει τα δεδομενα που ειναι στην cache. Αν εβρισκα μια API που να γυρναει τον default internet browser σε online mode θα βοηθουσε πολυ.
frikoulo Δημοσ. 24 Φεβρουαρίου 2009 Δημοσ. 24 Φεβρουαρίου 2009 μα αν βάλεις την πρώτη λέξη ή γράμμα του site στο strart_str και στο end_str βαλεις </html> το ενδοιάμεσο είναι όλο το site..
geo1st487 Δημοσ. 24 Φεβρουαρίου 2009 Μέλος Δημοσ. 24 Φεβρουαρίου 2009 μα αν βάλεις την πρώτη λέξη ή γράμμα του site στο strart_str και στο end_str βαλεις </html> το ενδοιάμεσο είναι όλο το site.. Το δοκιμασα και δεν παιζει. Τωρα ανακαλυψα οτι ο κωδικας μου οταν τρεχει σε vista επιστρεφει μηδενικο string ενω στα xp οχι.
m1cRo Δημοσ. 24 Φεβρουαρίου 2009 Δημοσ. 24 Φεβρουαρίου 2009 Το δοκιμασα και δεν παιζει. Τωρα ανακαλυψα οτι ο κωδικας μου οταν τρεχει σε vista επιστρεφει μηδενικο string ενω στα xp οχι. Πετάξτε την VB .Τα πράγματα είναι απλά απλός κανεις request στον http server και διαβάζεις αυτά που γυρίζει .Όλα αυτά με sockets ,και όχι με έτοιμα πράγματα .Μάθετε να προγραμματίζεται σωστά .
geo1st487 Δημοσ. 24 Φεβρουαρίου 2009 Μέλος Δημοσ. 24 Φεβρουαρίου 2009 Πετάξτε την VB .Τα πράγματα είναι απλά απλός κανεις request στον http server και διαβάζεις αυτά που γυρίζει .Όλα αυτά με sockets ,και όχι με έτοιμα πράγματα .Μάθετε να προγραμματίζεται σωστά . Πως γινεται με sockets;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.