Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #18886 > unrolled thread

Come forzare la chiusura di un mio oggetto?

Started byGreg <greg@alicie.com>
First post2016-11-03 11:35 +0100
Last post2016-11-04 23:43 +0100
Articles 10 — 2 participants

Back to article view | Back to it.comp.lang.visual-basic


Contents

  Come forzare la chiusura di un mio oggetto? Greg <greg@alicie.com> - 2016-11-03 11:35 +0100
    Re: Come forzare la chiusura di un mio oggetto? Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2016-11-03 19:16 +0100
      Re: Come forzare la chiusura di un mio oggetto? Greg <greg@alicie.com> - 2016-11-03 20:01 +0100
        Re: Come forzare la chiusura di un mio oggetto? Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2016-11-03 21:15 +0100
          Re: Come forzare la chiusura di un mio oggetto? Greg <greg@alicie.com> - 2016-11-03 22:33 +0100
            Re: Come forzare la chiusura di un mio oggetto? Greg <greg@alicie.com> - 2016-11-03 23:21 +0100
          Re: Come forzare la chiusura di un mio oggetto? Greg <greg@alicie.com> - 2016-11-04 15:15 +0100
            Re: Come forzare la chiusura di un mio oggetto? Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2016-11-04 16:48 +0100
              Re: Come forzare la chiusura di un mio oggetto? Greg <greg@alicie.com> - 2016-11-04 20:03 +0100
              Re: Come forzare la chiusura di un mio oggetto? Greg <greg@alicie.com> - 2016-11-04 23:43 +0100

#18886 — Come forzare la chiusura di un mio oggetto?

FromGreg <greg@alicie.com>
Date2016-11-03 11:35 +0100
SubjectCome forzare la chiusura di un mio oggetto?
Message-ID<nvf3tc$nga$1@solani.org>
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")

Navigate...
Quit

Se dopo qualche secondo pigio di nuovo il bottone per ricrearlo ottengo:
Errore di automazione. Arresto sistema già pianificato.

Come fare perchè l'oggetto si chiuda immediatamente?

Avrei anche pensato di metterlo Invisible invece di chiuderlo, purtroppo alla seconda chiamata non c'è modo di portarlo 
in primo piano: non funziona SetFocus e neanche ZOrder.
Grazie per ogni info

-- 
Greg

[toc] | [next] | [standalone]


#18887

FromFranz_aRTiglio <franzgol@N0SPAMtin.it>
Date2016-11-03 19:16 +0100
Message-ID<nvfutl$1nvv$1@gioia.aioe.org>
In reply to#18886
Sembra che Greg abbia detto :
> Dim IE As Object
> Set IE = CreateObject("InternetExplorer.Application")
>
> Navigate...
> Quit
>
> Se dopo qualche secondo pigio di nuovo il bottone per ricrearlo ottengo:
> Errore di automazione. Arresto sistema già pianificato.
>
> Come fare perchè l'oggetto si chiuda immediatamente?

Andando a memoria :

Set IE = Nothing

Sempre a memoria:

If IE <> Nothing then ' oggetto non chiuso

[toc] | [prev] | [next] | [standalone]


#18888

FromGreg <greg@alicie.com>
Date2016-11-03 20:01 +0100
Message-ID<nvg1ig$d50$1@solani.org>
In reply to#18887
Il 03/11/2016 19:16:46 Franz_aRTiglio ha scritto:

> Andando a memoria :
>
> Set IE = Nothing
>
> Sempre a memoria:
>
> If IE <> Nothing then ' oggetto non chiuso

Grazie Artiglio, è proprio cosi.

Ma adesso ho un comportamento strano: quando lancio il browser appare giustamente in primo piano, ma nel compilato mi 
rimane invece in secondo piano.

Setfocus non va, allora ho provato con SendMessage ma non sembra funzionare:

k = SendMessage(IE.hwnd, WM_SETFOCUS, 0&, 0&)

Ti viene in mente qualcosa? Grazie ancora :)

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18889

FromFranz_aRTiglio <franzgol@N0SPAMtin.it>
Date2016-11-03 21:15 +0100
Message-ID<nvg5s5$45b$1@gioia.aioe.org>
In reply to#18888
Greg ha pensato forte :

> Ma adesso ho un comportamento strano: quando lancio il browser appare 
> giustamente in primo piano, ma nel compilato mi rimane invece in secondo 
> piano.
> Setfocus non va, allora ho provato con SendMessage ma non sembra funzionare:
> k = SendMessage(IE.hwnd, WM_SETFOCUS, 0&, 0&)

L'hai reso visibile ?

IE.Visible = True

Altrimenti è ovvio che setfocus fallisce....

[toc] | [prev] | [next] | [standalone]


#18890

FromGreg <greg@alicie.com>
Date2016-11-03 22:33 +0100
Message-ID<nvgaem$jsq$1@solani.org>
In reply to#18889
Il 03/11/2016 21:15:26 Franz_aRTiglio ha scritto:
> Greg ha pensato forte :
>
>> Ma adesso ho un comportamento strano: quando lancio il browser appare giustamente in primo piano, ma nel compilato 
>> mi rimane invece in secondo piano.
>> Setfocus non va, allora ho provato con SendMessage ma non sembra funzionare:
>> k = SendMessage(IE.hwnd, WM_SETFOCUS, 0&, 0&)
>
> L'hai reso visibile ?
>
> IE.Visible = True
>
> Altrimenti è ovvio che setfocus fallisce....

Certo, infatti lo vedo anche.
L'errore è Proprietà o metodo non supportato dall'oggetto.
Infatti andando a vedere alla fonte, il SetFocus non c'è, per questo mi ero messo ad usare SendMessage, che però non da 
risultati, per adesso.

https://msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18891

FromGreg <greg@alicie.com>
Date2016-11-03 23:21 +0100
Message-ID<nvgd9k$lqc$1@solani.org>
In reply to#18890
Il 03/11/2016 22:33:06 Greg ha scritto:

>> L'hai reso visibile ?
>>
>> IE.Visible = True
>>
>> Altrimenti è ovvio che setfocus fallisce....
>
> Certo, infatti lo vedo anche.
> L'errore è Proprietà o metodo non supportato dall'oggetto.
> Infatti andando a vedere alla fonte, il SetFocus non c'è, per questo mi ero messo ad usare SendMessage, che però non 
> da risultati, per adesso.
>
> https://msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx

Riassumo
premesso che creo la finestra browser in questo modo:
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")

Ho usato la SendMessage con l'handle di un mio form  in secondo piano e il focus viene inviato.
Quidi ho usato la sendmessage sia con l'handle dell'oggetto IE, sia con l'handle dell'oggetto "Internet Explorer" ma il 
focus non viene ancora inviato.
Domani proverò ancora, anche se adesso non so bene cosa

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18893

FromGreg <greg@alicie.com>
Date2016-11-04 15:15 +0100
Message-ID<nvi56m$lmt$1@solani.org>
In reply to#18889
Il 03/11/2016 21:15:26 Franz_aRTiglio ha scritto:

> L'hai reso visibile ?
>
> IE.Visible = True
>
> Altrimenti è ovvio che setfocus fallisce....

Dopo la SendMessage ho provato oggi con SetActiveWindow, mi restituisce 0, in progettazione porta la finestra di 
explorer in primo piano, ma dopo aver compilato non più. Non so più cosa fare, da cosa può dipendere? Grazie a tutti

Private Sub Command5_Click()
 Set IE = CreateObject("InternetExplorer.Application")

 IE.Visible = True
 IE.Left = 200
 IE.Top = 400

 IE.Navigate "https://www.google.it/maps/place/Via+Nicolò+Tommaseo+15,+Brescia,+BS,+25100"
 r = SetActiveWindow(IE.hwnd)
End Sub

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18895

FromFranz_aRTiglio <franzgol@N0SPAMtin.it>
Date2016-11-04 16:48 +0100
Message-ID<nviair$17vp$1@gioia.aioe.org>
In reply to#18893
Il 04/11/2016, Greg ha detto :

> Dopo la SendMessage ho provato oggi con SetActiveWindow, mi restituisce 0, in 
> progettazione porta la finestra di explorer in primo piano, ma dopo aver 
> compilato non più. Non so più cosa fare, da cosa può dipendere? Grazie a 
> tutti

Sempre se non ricordo male: SetActiveWindow funziona per attivare la
finestra SE questa e' già in primo piano (come quando ci sono piu
finestre affiancate), quello che devi usare è SetForegroundWindow

<http://visualbasic.happycodings.com/applications-vba/code5.html>

[toc] | [prev] | [next] | [standalone]


#18897

FromGreg <greg@alicie.com>
Date2016-11-04 20:03 +0100
Message-ID<nvim2c$2dn$1@solani.org>
In reply to#18895
Il 04/11/2016 16:48:05 Franz_aRTiglio ha scritto:
> Il 04/11/2016, Greg ha detto :
>
>> Dopo la SendMessage ho provato oggi con SetActiveWindow, mi restituisce 0, in progettazione porta la finestra di 
>> explorer in primo piano, ma dopo aver compilato non più. Non so più cosa fare, da cosa può dipendere? Grazie a 
>> tutti
>
> Sempre se non ricordo male: SetActiveWindow funziona per attivare la
> finestra SE questa e' già in primo piano (come quando ci sono piu
> finestre affiancate), quello che devi usare è SetForegroundWindow
>
> <http://visualbasic.happycodings.com/applications-vba/code5.html>

NOn sono riuscito ad usarla, domani proverò di nuovo

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18901

FromGreg <greg@alicie.com>
Date2016-11-04 23:43 +0100
Message-ID<nvj2u3$bot$1@solani.org>
In reply to#18895
Il 04/11/2016 16:48:05 Franz_aRTiglio ha scritto:
> Il 04/11/2016, Greg ha detto :
>
>> Dopo la SendMessage ho provato oggi con SetActiveWindow, mi restituisce 0, in progettazione porta la finestra di 
>> explorer in primo piano, ma dopo aver compilato non più. Non so più cosa fare, da cosa può dipendere? Grazie a 
>> tutti
>
> Sempre se non ricordo male: SetActiveWindow funziona per attivare la
> finestra SE questa e' già in primo piano (come quando ci sono piu
> finestre affiancate), quello che devi usare è SetForegroundWindow
>
> <http://visualbasic.happycodings.com/applications-vba/code5.html>

Ok, sono riuscito ad usarla a dovere, questa riporta il mio oggetto explorer in primo piano, senza ricorrere ad altre 
api
Grazie Franz e grazie anche a Luca D

-- 
Greg

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.lang.visual-basic


csiph-web