Autore Topic: [RISOLTO]Cattura schermata  (Letto 868 volte)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
[RISOLTO]Cattura schermata
« il: 29 Ottobre 2010, 23:34:09 »
Non saprei dove avviare  la presente discussione, però avrei bisogno per la mia documentazione di catturare una schermata col mio programma in esecuzione dove sia visibile la finestra "popup" relativa alla ComboBox attiva.
Ho provato in più modi, ma quando clicco sul pulsante  "Cattura schermata" la finestra.popup si chiude ancor prima che venga fotografata tutta l'immagine, per cui nel risultato ottenuto, la ComboBox attiva, compare senza la sua brava finestra di popup.
Posso in qualche modo tenerla fissa per permetterne la visibilità dentro il "Cattura Schermata"?
 :(
« Ultima modifica: 30 Ottobre 2010, 22:43:07 da Picavbg »
:ciao:

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Cattura schermata
« Risposta #1 il: 30 Ottobre 2010, 01:54:02 »
Un modo: quando premi 'Cattura Schermata' apri tramite codice
la combobox al punto in cui era, metti un WAIT di sicurezza e poi effettivamente fai la 'foto'.
Come salvarti la posizione pregressa del combo devi studiarlo tu.

Ancora meglio, secondo me, sarebbe chiamare il CatturaSchermata con una combinazione di tasti quando il popup è aperto. Certo l'utente deve essere avvisato che c'è questa opportunità, però la combinazione di tasti non dovrebbe togliere il focus al combo.

Salutiamo

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Cattura schermata
« Risposta #2 il: 30 Ottobre 2010, 10:20:56 »
io solitamente per catturare la schermata premo "Stamp" sulla tastiera comunque se ci sono menu attivi o combobox aperte non funziona , io hai tempi ho notato però che  avviando il programma in una macchina virtuale riesci a catturare le schermate anche con menu e combo aperte

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Cattura schermata
« Risposta #3 il: 30 Ottobre 2010, 11:18:42 »
Testato sotto gb.qt. funziona. Il combo resta aperto e premendo Ctrl + s fai la cattura.

PUBLIC SUB ComboBox1_KeyPress()

  DIM picSchermata AS NEW Picture
 
  IF key.Code = Key["s"] AND IF Key.Control THEN picSchermata = Desktop.Grab()
 
END

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Cattura schermata
« Risposta #4 il: 30 Ottobre 2010, 12:48:50 »
Testato sotto gb.qt. funziona. Il combo resta aperto e premendo Ctrl + s fai la cattura.

PUBLIC SUB ComboBox1_KeyPress()

  DIM picSchermata AS NEW Picture
 
  IF key.Code = Key["s"] AND IF Key.Control THEN picSchermata = Desktop.Grab()
 
END

Ho fatto entrambe le prove che mi hai suggerito e:
1) quella citata sopra non ha funzionato; propabilmente non ha funzionato la chiamata Desktop.Grab(), che fra l'altro non conosco;
2) ho poi provato il popup da codice col WAIT dopo, ma anche così dopo avere cliccato sul pulsante lanciatore il popup é scomparso;
3) ho risolto settando un ritardo di alcuni secondi nella funzione "Cattura schermata". Così facendo, dopo aver cliccato sul pulsante  "Cattura schermata", ho di nuovo cliccato sulla ComboBox da fotografare ed il popup é ricomparso in tempo per essere compreso nell'immagine catturata.
 :)
Così ti saresti liberato di me, ma prima potresti aggiungere come potrei conoscere la funzione Desktop.Grab e come potrei capire il mancato funzionamento.
 ;)
Ciao.  ;D
:ciao:

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Cattura schermata
« Risposta #5 il: 30 Ottobre 2010, 15:17:26 »
Nell'help vai su gb.gtk o gb.qt --> Desktop --> Grab

Tieni conto che ci sono differenze tra gb.gtk e gb.qt e non è detto che ti funzioni.

Ciao