Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Nascondere MSGBOX aperti da una COM
mercoledì 27 settembre 2006 - 10.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Keyser
Profilo
| Newbie
24
messaggi | Data Invio:
mer 27 set 2006 - 10:24
Salve,
in un mio programma uso una libreria COM
che in un caso manda un msgbox completamente inutile
che io dovrei eliminare, xkè mi blocca l'applicazione finchè l'utente non preme invio
e visto che l'applicazione lavora anche in background non sempre l'utente è vicino al pc.
Il msgbox è sincrono quindi non posso mandare l'invio, non posso fare niente.
Avevo pensato di creare un thread che controlla di continuo se esiste una finestra
con quel titolo (è sempre lo stesso), ma mi sembra una soluzione pesante.
Si può fare qualcosa di più "leggero" ?
Grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 27 set 2006 - 14:19
>in un mio programma uso una libreria COM
>che in un caso manda un msgbox completamente inutile
>che io dovrei eliminare, xkè mi blocca l'applicazione finchè
>l'utente non preme invio
Se esce forse non sarà inutile no ?
>Avevo pensato di creare un thread che controlla di continuo se
>esiste una finestra
>con quel titolo (è sempre lo stesso), ma mi sembra una soluzione
>pesante.
Potrebbe essere ma poi devi cercare di chiuderlo questo "popup".
>Si può fare qualcosa di più "leggero" ?
Modificare la libreria COM.
Che cosa fa scusa questo componente e cosa viene segnalato nel messagebox ?
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Keyser
Profilo
| Newbie
24
messaggi | Data Invio:
mer 27 set 2006 - 14:51
1) la libreria Com non la posso modificare, non ho il sorgente, è un motore di riconoscimento ottico
2) è inutile xkè esce quando riapro una sessione di riconoscimento salvata, e mi dice che non è stato trovato un componente (una dll), ma dopo aver chiuso il msgbox il tutto funziona alla perfezione xkè la libreria c'è e viene pure usata (sarà un baco della libreria).
3) ho creato un thread che cerca la finestra con l'api findwindow, e se la trova la chiude con un sendmessage, ma il problema è che non so perchè ma finchè non chiudo il msgbox il thread si ferma e aspetta come se fosse bloccato anche esso.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 28 set 2006 - 17:19
>2) è inutile xkè esce quando riapro una sessione di riconoscimento
>salvata, e mi dice che non è stato trovato un componente (una
>dll), ma dopo aver chiuso il msgbox il tutto funziona alla perfezione
>xkè la libreria c'è e viene pure usata (sarà un baco della libreria).
Non è che magari stai usando un componente non licenziato correttamente ?
Mi sembra abbastanza strano che sia un bug così clamoroso.
Contatta la casa che lo produce e segnala la cosa.
E' abbastanza improbabile che venga rilasciato un componente che funziona così.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Dokkis
Profilo
| Newbie
34
messaggi | Data Invio:
ven 29 set 2006 - 15:47
sarà di sicuro un componente trial... tempo fa anche io ne avevo trovato uno cosi.. quindi immagino che se tu voglia usare quel componente lo debba comprare ^^
Keyser
Profilo
| Newbie
24
messaggi | Data Invio:
ven 29 set 2006 - 15:58
Vi siete fissati con sto fatto del componente non comprato.
E' licenziato, chi se ne frega, mica pago io, la società per cui lavoro l'ha comprato.
Senza licenza il motore da errore addirittura quando fai New....
si attiva tramite internet e la licenza è addirittura bloccata all'hardware dove è installato,
quindi è impossibile usarlo non licenziato.
Cmq ho risolto,quando devo aprire la sessione salvata, faccio partire un processo che non fa altro che controllare con findwindow quando viene creato il msgbox , appena lo trova, lo chiude ed esce.
In un thread dello stesso processo non funziona perchè il msgbox è sincrono per tutto il processo e il thread si fermava.
Keyser
Profilo
| Newbie
24
messaggi | Data Invio:
ven 29 set 2006 - 16:06
Vi siete fissati con sto fatto del componente non comprato.
E' licenziato, chi se ne frega, mica pago io, la società per cui lavoro l'ha comprato.
Senza licenza il motore da errore addirittura quando fai New....
si attiva tramite internet e la licenza è addirittura bloccata all'hardware dove è installato,
quindi è impossibile usarlo non licenziato.
Cmq ho risolto,quando devo aprire la sessione salvata, faccio partire un processo che non fa altro che controllare con findwindow quando viene creato il msgbox , appena lo trova, lo chiude ed esce.
In un thread dello stesso processo non funziona perchè il msgbox è sincrono per tutto il processo e il thread si fermava.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 29 set 2006 - 23:01
>Vi siete fissati con sto fatto del componente non comprato.
>E' licenziato, chi se ne frega, mica pago io, la società per
>cui lavoro l'ha comprato.
No non è che ci siamo fissati, se ti sei offeso, scusami, non era mio e penso nostra intenzione farlo. Solo che sai, di furbi ce n'è piena l'aria, e dove risolvere un problema a un furbo, non mi va molto, non so se sei d'accordo. Mi sembrava solo strano che avessero creato questa sorta d'impiccio appunto a chi avesse acquistato con regolare licenza il componente.
>In un thread dello stesso processo non funziona perchè il msgbox
>è sincrono per tutto il processo e il thread si fermava.
Soluzione ineccepibile.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Keyser
Profilo
| Newbie
24
messaggi | Data Invio:
ven 29 set 2006 - 23:15
No ma quale offeso
Cmq è un problema stranissimo, su alcuni pc lo fa, su altri no,
il msgbox consiglia anche di reinstallare la libreria ma alcune volte risolve altre no.
Si potrebbe anche non usare la funzionalità salva e riprendi sessione
se si lavora su multitif piccoli, ma quando sono enormi ti fa risparmiare tempo.
Penso che con la nuova versione abbiano risolto, ma comprare una nuova licenza
solo per questo problemino è inutile.
Bye
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 29 set 2006 - 23:23
>Penso che con la nuova versione abbiano risolto, ma comprare
>una nuova licenza
>solo per questo problemino è inutile.
Concordo con te
meglio uno stratagemma che una nuova licenza costosa
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !