Google Image Search implementeren in VB

Status
Niet open voor verdere reacties.

MarnixICT

Gebruiker
Lid geworden
15 okt 2011
Berichten
182
Hallo iedereen,

Ik ben een klantensysteempje aan het maken en daarbij kan ik ook het bijbehorend apparaat toevoegen.

Voorbeeld:
Naam: Marnix ICT
Apparaat: Acer Aspire 7741
adres, telefoon, email e.d.

Nu wil ik dat een code ervoor gaat zorgen dat er gegoogled word op Acer Aspire 7741, en het eerste plaatje in een picturebox plaatst. Hoe gaat dat?
 
Dat is C#, kan ik niet zoveel uit halen. Het programmatje van die site werkt overigens niet bij mij (kan geen resultaten vinden).
http://www.marnixict.nl/helpmij/Google_Image_Search_API_src.zip

Edit:
VB accepteert 'm wel als reference zoals op de pagina word gezegd, ik ga het nu verder uitzoeken.

Edit2:
Krijg 'm niet aan de praat, blijft hangen op "Image Search API Could not load Regex file." exception wat ook door iemand anders word opgemerkt (scroll naar beneden).
 
Laatst bewerkt:
Oh ja, ik zie het...

Kun je dan niet gewoon een WebBrowser Control gebruiken?
 
Ja precies, maar ik moet via een manier de afbeeldings-URL van het eerste resultaat zien te krijgen.
 
Laatst bewerkt door een moderator:
Zo heb deze functie even in elkaar gezet:

Code:
Imports System.Net
Imports System.IO

Code:
    Function GetImageUrl(ByVal search_str As String)
        Dim inStream As StreamReader
        Dim webRequest As WebRequest
        Dim webresponse As WebResponse
        webRequest = webRequest.Create(" https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=" & search_str)
        webresponse = webRequest.GetResponse()
        inStream = New StreamReader(webresponse.GetResponseStream())
        Dim str As String = inStream.ReadToEnd()
        str = str.Split(",")(6)
        Return str.Split("""")(3)
    End Function
 
Laatst bewerkt:
Stefanz,

Bedankt voor je code, werkt super!
Is er ook de mogelijkheid om het plaatje, dat nu in een webbrowser staat, te resizen naar bijvoorbeeld 200x160?

Edit:

Heb 'm geresized. Project is binnenkort klaar.
 
Laatst bewerkt:
Dat lukt niet met een webbrowser control maar wel met een picturebox

Waarom gebruik je eigenlijk een webbrowser control?
 
Laatst bewerkt:
Uhmm omdat ik er nu pas achter kom dat een picturebox ook remote URL's kan gebruiken :o:o
En het is wel gelukt met een webbrowser, maar dat kost veel regels.
 
Laatst bewerkt:
Idd het is nogal omslachtig omdat met een webbrowser te doen en vast ook veel trager
 
Ik doe het nu met een picturebox. Jammer dat de image niet geladen word al valt de picturebox buiten de size van het form.. :S
 
Stel het form is 1000 pixels breed en de picturebox staat op een locatie van 1100 (buiten het form). Zodra het plaatje geladen is, schuift het scherm uit zodat je de plaatjes ziet. Als er bijvoorbeeld een fout is opgetreden, of geen resultaten zijn gevonden, schuift het scherm niet uit.

De image word in dit geval niet geladen omdat het buiten het zicht valt van de gebruiker, probeer maar eens de een ander plaatje te pakken bij een picturebox die buiten een form valt en voeg deze code in:

Code:
Private Sub Picturebox1_LoadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles Picturebox1.LoadCompleted
        msgbox("Geladen")
    End Sub
 
Laatst bewerkt:
Aha oke ik snap je probleem maar waarom wil je dit?
 
Laatst bewerkt:
Ben een beetje aan het hobbyen met vb+sql. Ik ben bezig met een reparatiesysteem waar je klanten kunt aanmaken en apparaten kunt linken aan klanten
klant1 heeft bijvoorbeeld een acer laptop. Zo kan je bij de klantgegevens alle reparaties van klant1 bekijken, ongeacht welk apparaat.
Als je naar het apparaatoverzicht (acer laptop) van de klant gaat, zie je daar alle reparaties aan dat apparaat. Dan zoekt de api 2 plaatjes op van het merk en type.

klant.png


apparaat.png
 
Oke ziet er goed uit maar waarom wil je de pictureboxen buiten je form laden?
Ik zou ze gewoon in het form zelf laden en dan eerst zo iets er in plaatsen:
loading.gif
 
Laatst bewerkt:
Bedankt voor het plaatje, maar zodra het merk en type onbekend is, vul ik een ? in. Zodra "?" in het veld voorkomt, word er niet naar plaatjes gezocht omdat er hele andere resultaten op kunnen komen.

Code:
    If Not Merkentype_Result.Text.Contains("?") Then
        getImage = New Thread(AddressOf GetImageUrl)
        getImage.IsBackground = True
        getImage.Start(Merkentype_Result.Text)
    End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan