Autore Topic: [Risolto] Il path di una immagine in webview  (Letto 1490 volte)

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 283
    • Mostra profilo
[Risolto] Il path di una immagine in webview
« il: 08 Marzo 2025, 15:35:50 »
Ho una finestra contenente un webview, da cui vorrei salvare velocemente un'immagine, in una directory scelta da me con un nome predefinito. Fino a poco tempo fa, webview permetteva, con un facile codice, di trovare il nome di una immagine in una pagina. Non sto a ricercarlo che l'ho nei backup, era qualcosa tipo
Codice: [Seleziona]
Dim v As WebHitTest = wv.HitTest(Mouse.x, Mouse.y)
E se v era una image potevi trovare il nome e tirarla giu' in automatico. Ora, WebHitTest non c'e' piu'. Avete mica letto di metodi alternativi? Mi veniva in mente di usare il javascript con webview.execjavascript, tipo per la selezione del testo
Codice: [Seleziona]
Dim sele As String = wv.execjavascript("window.getSelection().toString();")
(era cambiata anche questa), ma non trovo il sistema...

« Ultima modifica: 10 Marzo 2025, 00:30:20 da pastrank »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.852
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Il path di una immagine in webview
« Risposta #1 il: 08 Marzo 2025, 20:45:51 »
...ma l'immagine, presente nella pagina web, deve essere individuata cliccandovi con il puntatore del mouse ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 283
    • Mostra profilo
Re:Il path di una immagine in webview
« Risposta #2 il: 09 Marzo 2025, 12:25:55 »
...ma l'immagine, presente nella pagina web, deve essere individuata cliccandovi con il puntatore del mouse ?

Per spiegarmi bene: io arrivavo sulla pagina, che essendo tipicamente un archivio (discogs, musicbrainz) conteneva queste immagini, che si chiamavano magari 340589058403958059.jpg. Io la salvavo con un nome sempre uguale, tipo cover.jpg, nella cartella dove stavo lavorando, che pero' poteva essere alla fine di un lungo e intricato albero. Semplicemente cliccavo con il tasto destro sopra l'immagine, mi appariva il mio menu popup, e da li' prendevo il nome e lo scaricavo all'interno della cartella, rinominandolo.
Ora e' arrivato QT6, e non si capisce nemmeno cosa c'e' e cosa no, per la documentazione scarsa e perche' QT6 dicono sia diverso, comunque quello che facevo e' deprecato e WebHitTest e' sparito (e comunque il menu contestuale del controllo mi appariva sempre prima del mio, anche se non funziona).
Ma non ho pretesa di continuare a fare come prima, ci sta che pensandoci trovi un altro sistema altrettanto veloce (ieri ero a pensare a leggere i link delle pagine di Musicbrainz, per esempio, che dovrebbero nomi riconducibili a una logica)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Il path di una immagine in webview
« Risposta #3 il: 09 Marzo 2025, 19:11:40 »
Potresti usare la classe Clipboard (paste) usando il tasto destro "copy image"
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 283
    • Mostra profilo
Re:Il path di una immagine in webview
« Risposta #4 il: 09 Marzo 2025, 22:48:01 »
Potresti usare la classe Clipboard (paste) usando il tasto destro "copy image"

Ma come faccio a usarla, in pratica? Suppongo

Copy image (se funziona, il menu contestuale sembra non far niente)
Salva l'immagine.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Il path di una immagine in webview
« Risposta #5 il: 09 Marzo 2025, 22:51:18 »
Potresti usare la classe Clipboard (paste) usando il tasto destro "copy image"

Ma come faccio a usarla, in pratica? Suppongo

Copy image (se funziona, il menu contestuale sembra non far niente)
Salva l'immagine.

Con qualcosa tipo questo:
Codice: [Seleziona]
Public Sub Form_Open()

  WebView1.Url = "https://musicbrainz.org/"

End

Public Sub Button1_Click()

  ' Occorre agire sul tasto destro del mouse e copiare l'immagine
  ' che ci interessa, quindi agire sul pulsante Button1
  Dim hImage As Image
  Dim sPath As String = User.Home

  If Clipboard.Type = 2 Then
    hImage = Clipboard.Paste()
    hImage.Save(sPath &/ "test.png", 50)
    Wait 1
  Endif

End
« Ultima modifica: 09 Marzo 2025, 22:56:40 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.852
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Il path di una immagine in webview
« Risposta #6 il: 09 Marzo 2025, 23:19:17 »
Copy image (se funziona, il menu contestuale sembra non far niente)
Salva l'immagine.
Cliccando con il tasto destro, a me c'è anche l'opzione "copy image address".
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 283
    • Mostra profilo
Re:Il path di una immagine in webview
« Risposta #7 il: 10 Marzo 2025, 00:30:03 »
Ringrazio Gianluigi & vuott, mi avete dato non una ma due idee. Non e' un discorso retorico: a volte mi fa piu' comodo una cosa, a volte un'altra, e mi ero bloccato sulla mania di limare piu' righe di codice possibile. Alla fine, sono solo un click in piu' rispetto alla procedura precedente. Credo che in alto sulla form piazzero' un paio di bottoni, giusto per salvare o il link all'immagine, o la copia (ho provato il menu e in realta' funziona, non funzionava quando c'era l'altro mio contestuale.