Autore Topic: Tastiera virtuale  (Letto 15208 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #15 il: 16 Novembre 2011, 20:15:48 »
Il risultato non cambia.Ti allego uno screenshot del risultato.
Il comportamento è strano davvero   :rolleyes: , poiché io ho inglobato  :coder: la tastierina, con tutti e tre i metodi prima descritti !

Scusami, puoi darmi queste informazioni ?

1) usi KDE o GNOME ?
2) quale componente hai impostato? gb.qt4, gb.gui oppure gb.gtk ?
« 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 tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #16 il: 17 Novembre 2011, 00:28:13 »
Il fatto che a te funzioni....mi rode  :hatecomputer: >:( :evil:
Uso Gnome, gb.qt4, gb.gui, ho provato ad inpostare anche gb.gtk, idem non funziona.
A meno che tu non abbia attivato componenti o qualche configurazione che io ho disabilitati, non so proprio cosa dire.
Come ho detto sopra la cosa mi fa inca....volare perchè mi serve proprio per il progetto che sto eseguendo.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #17 il: 17 Novembre 2011, 00:34:00 »
Il fatto che a te funzioni....mi rode  :hatecomputer: >:( :evil:
Uso Gnome, gb.qt4, gb.gui, ho provato ad inpostare anche gb.gtk, idem non funziona.
A meno che tu non abbia attivato componenti o qualche configurazione che io ho disabilitati, non so proprio cosa dire.
Come ho detto sopra la cosa mi fa inca....volare perchè mi serve proprio per il progetto che sto eseguendo.

Guarda, mi spiace davvero  :-\ , io ce l'ho messa tutta !  :'(
Ti ripeto, l'ho fatto funzionare con tutti e tre quei metodi sia su KDE che su GNOME...  :-\
Ad ogni modo devo ringraziarti per aver messo questa domanda, perché mi hai dato la spinta per tornare sull'argomento.

Riguardo al tuo problema.... non so cosa dire   :-\   :hard:
Comunque su questa questione ed sul tuo problema teniamoci in contatto.
« Ultima modifica: 17 Novembre 2011, 00:37:33 da vuott »
« 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 Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Tastiera virtuale
« Risposta #18 il: 17 Novembre 2011, 09:13:40 »
Il fatto che a te funzioni....mi rode  :hatecomputer: >:( :evil:
Uso Gnome, gb.qt4, gb.gui, ho provato ad inpostare anche gb.gtk, idem non funziona.
A meno che tu non abbia attivato componenti o qualche configurazione che io ho disabilitati, non so proprio cosa dire.
Come ho detto sopra la cosa mi fa inca....volare perchè mi serve proprio per il progetto che sto eseguendo.

Tra gli esempi di gambas c'è anche quello dell'embed. Quello ti funziona?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #19 il: 17 Novembre 2011, 10:22:58 »
Tra gli esempi di gambas c'è anche quello dell'embed. Quello ti funziona?

Buon suggerimento quello di Ceskho.

Ecco, Tornu, anche l'esempio di Gambas, suggerito da Ceskho, a me funziona regolarmente !  :-\

Ad ogni modo, l'unica cosa che mi pare cambi rispetto agli esempi precedenti, da me segnalati, è semplicemente e sostanzialmente la modalità di individuazione ed estrazione del PID, che comunque è già presente in questo forum:
http://www.gambas-it.org/smf/index.php?topic=163.0
http://www.gambas-it.org/smf/index.php?topic=1791.msg20424#msg20424

e che vorrei qui riportare dall'esempio di Gambas, ricordato sopra da Ceskho, per completare il quadro delle possibilità, con questo quarto modo.
E' necessario avere attivato il componente gb.desktop:

Codice: gambas [Seleziona]

Public Sub btnEmbed_Click()

  Dim sTitle as String
  Dim aHandle As Integer[]
  Dim iHandle As Integer
  
    sTitle = txtTitle.Text

' se nel campo del titolo è stato inserito direttamente
' il numero esadecimale dell'ID della finestra del programma aperto,
' lo muta nella sua versione comprensibile da Gambas,
' poi lo converte in decimale:
  If Left(sTitle, 2) = "0x" Then
    iHandle = Val("&" & Mid$(sTitle, 3))

' se, invece, è stato inserito il numero esadecimale dell'ID
' della finestra del programma aperto, già nella sua versione
' comprensibile da Gambas, lo converte direttamente in decimale:
    Else If Left(sTitle) = "&" Then
      iHandle = Val(sTitle)
  
' se, invece, è stato inserito il "titolo" della finestra del programma aperto,
' ne ricava il suo ID (avendo anche l'accortezza di eliminare ogni eventuale
' spazio presente all'inizio o alla fine del titolo inserito):
    Else
     aHandle = Desktop.FindWindow(Trim(txtTitle.Text))

    If aHandle.Count = 0 Then
      Message.Warning(("Window not found!"))
      Return
    Else If aHandle.Count >= 2 Then
      Message(("Several windows found. I take the first one!"))
    Endif
    
      iHandle = aHandle[0]
  Endif
  
  Try embEmbedder.Embed(iHandle)

  If Error Then Message.Warning(Error.Text)

End
« Ultima modifica: 15 Novembre 2013, 19:20:39 da vuott »
« 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 tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #20 il: 17 Novembre 2011, 20:11:12 »
Tra gli esempi di gambas c'è anche quello dell'embed. Quello ti funziona?

Ciao Ceskho,
di guardare tra gli esempi non ci avevo proprio pensato.Ho provato dopo il tuo suggerimento, ma niente da fare, il programma mi restituisce
questo messaggio
Il programma ha ritornato il valore: 1
mi fai sapere se a te funziona, perchè se a te funziona siete in due, e a questo punto qualcosa non và nelle prove che stò faccendo io,
o il sistema operativo o la versione di Gambas o non so proprio cosa.
Grazie
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #21 il: 17 Novembre 2011, 23:46:10 »
il programma mi restituisce questo messaggio
Il programma ha ritornato il valore: 1

Debbo riportare un fatto strano.

Ho ricopiato l'intero codice del programma Embedder, preso dagli esempi di Gambas; ho anche ricreato il form. L'ho lanciato, e anche a me - però in questo caso - ho ottenuto la segnalazione del tuo medesimo errore: Il programma ha ritornato il valore: 1 ! ???

E' strano.  ??? Se lancio l'esempio originale, mi funziona regolarmente; se lo copio, e lo ricreo, mi dà quell'errore.  :rolleyes:

Ho verificato che l'errore non è dato al livello della riga della funzione di inglobamento della finestra (Try Embedder1.Embed(iHandle), bensì alla riga di individuazione del PID: aHandle = Desktop.FindWindow(txtTitle.Text) .

Ho ricontrollato le impostazioni: non ho lasciato niente, e non ho aggiunto niente di diverso rispetto all'originale...


eheheh  ;D ...poi per curiosità ho impostato il componente gb.qt4, con il quale GNOME non mi faceva inglobare niente. In questo caso non mi viene restituito l'errore 1, il programma va avanti, sì, ma mi compare il messaggio - evenienza questa prevista dal programma originale): "Window not found!". Questa finestra compare se accade: If aHandle.Count = 0 .

A 'sto punto, a me viene da ridere !  :rotfl:  :hatecomputer:
« Ultima modifica: 18 Novembre 2011, 00:19:04 da vuott »
« 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 milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #22 il: 18 Novembre 2011, 06:42:13 »
Sei sicuro di aver messo il titolo della finestra esattamente come ti compare nella barra dei processi?


Ho fatto dei test anche io e ho constatato che con le qt tutto ok mentre con le gtk mi 'uccide' il processo incorporato.
« Ultima modifica: 18 Novembre 2011, 06:59:51 da milio »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #23 il: 18 Novembre 2011, 11:01:55 »

Debbo riportare un fatto strano.
.......

Ieri sera, dopo aver inserito questo messaggio, ho fatto altre prove. Avrei voluto riportarle, ma non sono riuscito a ricollegarmi ad internet. Le riporto ora.

Dunque, in tutte le prove comunque effettuate in questi giorni anch'io mi sono reso conto, come Milio fa rilevare, che se il programma prevede l'acquisizione del titolo della finestra da inglobare, questo va passato in modo preciso ! Infatti, per esempio, il programma dell'autore tedesco, che Tornu ha qui allegato, prevede - ad ogni buon fine - un Trim$ per eliminare possibili spazi erroneamente posti prima o dopo il titolo riportato nell'apposita area di testo in alto.

Dopo aver effettuato diversi tetativi e prove, nelle quali riscontravo - come ho prima riportato - lo stesso problema di Tornu (errore 1), mi è sorto il sospetto che ci fosse un elemento disturbatore. Ciò perché ad un certo punto - probabilmente il sistema s'era silenziosamente imballato in qualcosa - non riuscivo più ad inglobare niente.
Ho, quindi, riavviato il sistema, rilanciati alcuni di quei programmi che avevo lanciato prima, ed ho provato l'embedder. Ora funzionava.
Ho lanciato anche QSynth (che precedentemente avevo aperto per ascoltare i file Midi), e stranamente l'embedding via introduzione del titolo di una finestra qualsiasi tornava ad essere malfunzionante. Aggiungo che, se invece, ricavavo diversamente il PID e lo inserivo (per esempio con un InputBox), l'inglobamento funzionava regolarmente. Riuscivo con questo stratagemma, presente QSynth, ad inglobare non solo ogni finestra, ma anche (come ho fatto anche  altre volte) QSynth medesimo !
Voglio dire che, non solo mi è stato impossibile inglobare QSynth mediante il titolo della sua finestra, ma anche la sua sola presenza (ancorché minimizzato o posto in un altro desktop) interferiva con Embedder ! Ripeto, l'unico modo di inglobare qualcosa (Qsynth medesimo), stante Qsynth avviato, era porre direttamente il numero del PID della finestra che intendevo inglobare.
Vorrei aggiungere riguardo al titolo della finestra di QSynth, che cercando il suo PID esadecimale con il comando in Terminale: wmctrl -p -l, il titolo veniva riportato con una parentesi quadra di chiusura a capo. Forse la finestra di QSynth prevede alla fine qualche sorta di metacarattere....  :-\

Ho raccontato tutta questa storia per confermare, come ha già ricordato e ben sottolineato da Milio, l'importanza del riportare il nome corretto del titolo della finestra da inglobare, ed anche la circostanza che - fra le tante altre possibili cause - possa esserci qualche programma (anche come demone) che disturbi l'azione di Embedder. Questa cosa, Tornu, devi un po' verificarla.
« Ultima modifica: 20 Novembre 2011, 01:00:32 da vuott »
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #24 il: 18 Novembre 2011, 11:11:54 »
Ho fatto dei test anche io e ho constatato che con le qt tutto ok mentre con le gtk mi 'uccide' il processo incorporato.

A te succede l'esatto contrario di quanto succede a me con GNOME !
Come ho riportato in più messaggi sopra, con KDE inglobo con qualsiasi componente grafico attivato. Se uso invece GNOME, l'embedding avviene solo con gb.gui o gb.gtk, ma non con gb.qt4 ! Circa quest'ultimo, ho notato però che la finestra che voglio inglobare, quando premo sul tasto per attivare l'inglobamento, ha un sussulto: si chiude e si riapre in un attimo... è come se stesse lì lì per essere inglobata, ma non l'azione non viene portata a termine, non riesce.

Milio, tu hai Gnome o KDE ? E' interessante a questo punto sapere se questo comportamento tende ad essere universale, o è un problema solo mio.

Secondo me, tenuto conto di tutti 'sti problemi riportati in questa discussione, l'Embedder non è ancora del tutto preciso ed efficace.
« Ultima modifica: 18 Novembre 2011, 11:25:08 da vuott »
« 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 tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #25 il: 19 Novembre 2011, 23:35:45 »
..........
Secondo me, tenuto conto di tutti 'sti problemi riportati in questa discussione, l'Embedder non è ancora del tutto preciso ed efficace.

Sarà pure come hai dedotto tu, però quello che non riesco a capire è che comunque ad alcuni di voi funziona, a me no.
Per il momento mi accontento della tastiera virtuale "libera" non inglobata in Gambas, se per caso avete novità in merito
fatevi sentire.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #26 il: 20 Novembre 2011, 23:44:20 »
Forse la finestra di QSynth prevede alla fine qualche sorta di metacarattere....  :-\

Ho raccontato tutta questa storia per confermare, come ha già ricordato e ben sottolineato da Milio, l'importanza del riportare il nome corretto del titolo della finestra da inglobare,...

Ho risolto questo problema, relativo a titoli un po' particolari delle finestre, mediante LIKE ed il metacarattere * nel modo seguente.
Prendo come esempio ancora una volta la finestra di QSynth, che ha per titolo: Qsynth - A fluidsynth Qt GUI Interface [Qsynth1] (...insomma, una cosa terribile !  ;D ):

Codice: gambas [Seleziona]

Public Sub Button1_Click()

Dim dWindow As DesktopWindow
Dim a As Integer


    For Each dWindow In Desktop.Windows

 ' cerca la finestra avente il titolo che inizia con "Qsynth"
 ' e continua con i restanti caratteri, dei quali è eventualmente costituito...
      If dWindow.name Like "Qsynth*" Then

 ' ...per estrarne l'Id (già in decimale !)...
        a = dWindow.Id

      Endif

   Next      

 ' ...che va ad inserire in Embed:
   Embedder1.Embed(a)

End
« Ultima modifica: 15 Novembre 2013, 19:21:45 da vuott »
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #27 il: 21 Novembre 2011, 11:47:49 »
Io uso:
Ubuntu 10.04 LTS

...ma il tuo problema non potrebbe essere legato al fatto che hai una versione non aggiornata del sistema ?
Chissà ? Potrebbe darsi che il problema del mancato inglobamento stia proprio là !
« 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 tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #28 il: 21 Novembre 2011, 19:29:24 »
Io uso:
Ubuntu 10.04 LTS

...ma il tuo problema non potrebbe essere legato al fatto che hai una versione non aggiornata del sistema ?
Chissà ? Potrebbe darsi che il problema del mancato inglobamento stia proprio là !

La versione non è vecchia, la variante LTS (Long Time Support) di Ubuntu significa che viene supportata per 3 anni a differenza delle altre
versioni che vengono rilasciate ogni 6 mesi e la versione server ogni 5 anni.
A poposito dell'osservazione di Milio (da te ripresa) sulla correttezza del titolo della finestra, io l'ho sempre inserito come onboard, anche
se sulla barra dei processi viene riportato [onboard] con le parentesi quadre, ho provato ad inserirlo aggiungendo queste ultime ma non
cambia niente.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Tastiera virtuale
« Risposta #29 il: 22 Novembre 2011, 13:05:51 »
se sulla barra dei processi viene riportato [onboard] con le parentesi quadre, ho provato ad inserirlo aggiungendo queste ultime ma non cambia niente.
...uhmm...

Scusami, puoi dirmi:
1) dopo aver lanciato onboard, quali risultati dà in terminale il comando: wmctrl -p -l (quest'ultima è una elle). Cioè vorrei sapere come riporta il titolo della finestra di onboard lì nel terminale;

2) cosa succede se provi la soluzione da me inserita nella precedente Risposta #27 inserendo:
- If dWindow.name Like "[on*" Then... (il resto di quel codice)
- ed anche provando: If dWindow.name Like "*on*" Then...
Non dimenticare di attivare il componente: gb.desktop.
« Ultima modifica: 22 Novembre 2011, 16:15:11 da vuott »
« 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. »