Autore Topic: Comportamento strano con embedder  (Letto 395 volte)

Offline Speedvicio

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Comportamento strano con embedder
« il: 24 Febbraio 2012, 14:40:45 »
Altro problema col mio chiptune player, ho provato ad integrare un visualizzatore musicale (fische) tramite embedder, il codice sembra funzionare in modo random.
Mi spiego meglio, su kubuntu funziona quasi sempre, testando l'applicativo su Lubuntu ho notato che embedder non riesce a rintracciare correttamente il titolo della finestra, pur essendo quest'ultimo esatto.

Il mio dubbio è che gambas3 abbia un qualche bug relativo a questo componente anche perchè il codice mi sembra corretto

Vi posto la porzione di codice relativa all'embedder per chiarire meglio il concetto:

Codice: [Seleziona]
Public Sub Form_Open()
  Dim aHandle As Integer[]
  Dim iHandle As Integer
  Dim version As Integer
 
  If Exist("/usr/bin/fische") Then
    filtro.anchor
    version = 0
    pfische = Exec ["fische", "-e", "-p", "-g 357x392"]
    Wait 0.2
   
    verifica:
   
    aHandle = Desktop.FindWindow("fische 3." & Str(version))
   
    If ahandle.count = 0 Then
      version = version + 1
       
        If version > 5 Then
          Me.Close
          Return
        End If
       
      Goto verifica
    End If
   
  iHandle = aHandle[0]
 
  Try embEmbedder.Embed(iHandle)
  If Error Then Message.Warning(Error.Text)
 
  Else
    Message("Fische Visualizer is not installed in this computer" & "\n" & "Please install it from official repository", "&Close")
    Me.close
  End If
 
End

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Comportamento strano con embedder
« Risposta #1 il: 24 Febbraio 2012, 18:18:01 »
...è vero, fino a poco tempo fa funzionava perfettamente!  :-\
Più precisamente facendo una prova analoga al tuo esempio, a me ora a volte va, altre volte non va...  :hatecomputer: In quest'ultimo caso sulla riga:
iHandle = aHandle[0]
mi esce l'errore: Out of Bounds.
Però ripetendo la prova, altre volte - come ho detto - va bene.  :-\


Ma..."c'è sempre un'alternativa al battersi" (Obi Wan Kenobi - Guerre Stellari), prova quest'altro modo:   :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 nome "nome_finestra_programma"...
       If dWindow.name = "nome_finestra_programma" Then
 ' ...per estrarne il Pid (già in decimale !)...
       a = dWindow.Id

       Endif

    Next      

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

End


(anche qui bisogna avere il componente gb.desktop attivato)

http://www.gambas-it.org/wiki/index.php/Embedder
« Ultima modifica: 22 Agosto 2012, 00:08:40 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 Speedvicio

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re: Comportamento strano con embedder
« Risposta #2 il: 24 Febbraio 2012, 21:35:12 »
Grazie vuott.
Avevo letto questo pomeriggio il topic a riguardo http://www.gambas-it.org/smf/index.php?topic=1923.15 con la tua soluzione, il problema però rimane.

Il componente funziona in modo random  e su lxde a quanto pare non ne vuole sapere di funzionare, a questo punto penso sia un bug di gb.desktop.