Je dois admettre que je patauge un peu pour détecter quand la fenêtre
active d'Internet Explorer passe en mode plein écran, celui qu'on ouvre
avec F11.
Si il s'agit d'une fenêtre que j'ouvre avec mon application, ça va encore.
Set expl = CreateObject("InternetExplorer.Application")
expl.Visible = True
SiPleinEcran = expl.TheaterMode
et à la fin :
expl.Quit
Set expl = Nothing
Mais maintenant, si c'est l'utilisateur qui a ouvert Internet Explorer,
ça se gâte.
Set expl = GetObject("InternetExplorer.Application")
syntaxe incorrecte, erreur 800401E4
Set expl = GetObject("InternetExplorer.Application", vbNullString)
argument ou appel de procédure incorrect, erreur 5
Set expl = GetObject("InternetExplorer.Application", "")
ou
Set expl = GetObject("GetObject Function - Microsoft Internet Explorer",
"InternetExplorer")
le composant ActiveX ne peut créer l'objet, erreur 429
Si quelqu'un pouvait me souffler ce qu'il faut faire ...
D'ailleurs, une fois que j'aurai réussi à créer un objet sur IE, encore
s'agit-il que ce soit le bon, si il y a plusieurs fenêtres d'ouvertes.
J'ai bien essayé de mettre l'URL en deuxième argument ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques93
Bonjour Gloops, Gloops a écrit :
Bonjour tout le monde,
Je dois admettre que je patauge un peu pour détecter quand la fenêtre active d'Internet Explorer passe en mode plein écran, celui qu'on ouvre avec F11.
Si il s'agit d'une fenêtre que j'ouvre avec mon application, ça va encore.
Set expl = CreateObject("InternetExplorer.Application") expl.Visible = True
SiPleinEcran = expl.TheaterMode
et à la fin :
expl.Quit Set expl = Nothing
Mais maintenant, si c'est l'utilisateur qui a ouvert Internet Explorer, ça se gâte.
Set expl = GetObject("InternetExplorer.Application") syntaxe incorrecte, erreur 800401E4
Set expl = GetObject("InternetExplorer.Application", vbNullString) argument ou appel de procédure incorrect, erreur 5
Set expl = GetObject("InternetExplorer.Application", "") ou Set expl = GetObject("GetObject Function - Microsoft Internet Explorer", "InternetExplorer") le composant ActiveX ne peut créer l'objet, erreur 429
Si quelqu'un pouvait me souffler ce qu'il faut faire ...
D'ailleurs, une fois que j'aurai réussi à créer un objet sur IE, encore s'agit-il que ce soit le bon, si il y a plusieurs fenêtres d'ouvertes. J'ai bien essayé de mettre l'URL en deuxième argument ...
Je crois que pour des raisons de sécurité on n'a pas accès à une instance de IE que l'on a pas crée. Mais si ça peut faire avancer les choses, pour contourner le problème de syntaxe, tu ajoutes une référence à :
Microsoft Internet Controls (shdocvw.dll)
et dans le code :
Dim ie As InternetExplorer
Set ie = GetObject("", "InternetExplorer.Application") MsgBox ie.TheaterMode
Mais la réponse sera toujours False, et tu n'auras aucun contrôle sur l'objet, et comme tu l'indique si tu as plusieurs fenêtres...
-- Cordialement,
Jacques.
Bonjour Gloops,
Gloops a écrit :
Bonjour tout le monde,
Je dois admettre que je patauge un peu pour détecter quand la fenêtre
active d'Internet Explorer passe en mode plein écran, celui qu'on ouvre
avec F11.
Si il s'agit d'une fenêtre que j'ouvre avec mon application, ça va encore.
Set expl = CreateObject("InternetExplorer.Application")
expl.Visible = True
SiPleinEcran = expl.TheaterMode
et à la fin :
expl.Quit
Set expl = Nothing
Mais maintenant, si c'est l'utilisateur qui a ouvert Internet Explorer,
ça se gâte.
Set expl = GetObject("InternetExplorer.Application")
syntaxe incorrecte, erreur 800401E4
Set expl = GetObject("InternetExplorer.Application", vbNullString)
argument ou appel de procédure incorrect, erreur 5
Set expl = GetObject("InternetExplorer.Application", "")
ou
Set expl = GetObject("GetObject Function - Microsoft Internet Explorer",
"InternetExplorer")
le composant ActiveX ne peut créer l'objet, erreur 429
Si quelqu'un pouvait me souffler ce qu'il faut faire ...
D'ailleurs, une fois que j'aurai réussi à créer un objet sur IE, encore
s'agit-il que ce soit le bon, si il y a plusieurs fenêtres d'ouvertes.
J'ai bien essayé de mettre l'URL en deuxième argument ...
Je crois que pour des raisons de sécurité on n'a pas accès à une
instance de IE que l'on a pas crée. Mais si ça peut faire avancer
les choses, pour contourner le problème de syntaxe, tu ajoutes une
référence à :
Microsoft Internet Controls (shdocvw.dll)
et dans le code :
Dim ie As InternetExplorer
Set ie = GetObject("", "InternetExplorer.Application")
MsgBox ie.TheaterMode
Mais la réponse sera toujours False, et tu n'auras aucun contrôle sur
l'objet, et comme tu l'indique si tu as plusieurs fenêtres...
Je dois admettre que je patauge un peu pour détecter quand la fenêtre active d'Internet Explorer passe en mode plein écran, celui qu'on ouvre avec F11.
Si il s'agit d'une fenêtre que j'ouvre avec mon application, ça va encore.
Set expl = CreateObject("InternetExplorer.Application") expl.Visible = True
SiPleinEcran = expl.TheaterMode
et à la fin :
expl.Quit Set expl = Nothing
Mais maintenant, si c'est l'utilisateur qui a ouvert Internet Explorer, ça se gâte.
Set expl = GetObject("InternetExplorer.Application") syntaxe incorrecte, erreur 800401E4
Set expl = GetObject("InternetExplorer.Application", vbNullString) argument ou appel de procédure incorrect, erreur 5
Set expl = GetObject("InternetExplorer.Application", "") ou Set expl = GetObject("GetObject Function - Microsoft Internet Explorer", "InternetExplorer") le composant ActiveX ne peut créer l'objet, erreur 429
Si quelqu'un pouvait me souffler ce qu'il faut faire ...
D'ailleurs, une fois que j'aurai réussi à créer un objet sur IE, encore s'agit-il que ce soit le bon, si il y a plusieurs fenêtres d'ouvertes. J'ai bien essayé de mettre l'URL en deuxième argument ...
Je crois que pour des raisons de sécurité on n'a pas accès à une instance de IE que l'on a pas crée. Mais si ça peut faire avancer les choses, pour contourner le problème de syntaxe, tu ajoutes une référence à :
Microsoft Internet Controls (shdocvw.dll)
et dans le code :
Dim ie As InternetExplorer
Set ie = GetObject("", "InternetExplorer.Application") MsgBox ie.TheaterMode
Mais la réponse sera toujours False, et tu n'auras aucun contrôle sur l'objet, et comme tu l'indique si tu as plusieurs fenêtres...
-- Cordialement,
Jacques.
Gloops
Ah, "by design", donc.
Il me reste à détecter F11, peut-être ...
Bien entendu si l'utilisateur clique sur le bouton, Tintin.
________________________________________ Jacques93 a écrit, le 10/10/2005 19:25 :
Je crois que pour des raisons de sécurité on n'a pas accès à une instance de IE que l'on a pas crée. Mais si ça peut faire avancer les choses, pour contourner le problème de syntaxe, tu ajoutes une référence à :
Microsoft Internet Controls (shdocvw.dll)
et dans le code :
Dim ie As InternetExplorer
Set ie = GetObject("", "InternetExplorer.Application")
Mince alors, il réussit même à l'obtenir alors que je n'ai pas ouvert IE ...
MsgBox ie.TheaterMode
Mais la réponse sera toujours False, et tu n'auras aucun contrôle sur l'objet, et comme tu l'indique si tu as plusieurs fenêtres...
Effectivement. ça renseigne encore moins que la clef de registre.
Ah, "by design", donc.
Il me reste à détecter F11, peut-être ...
Bien entendu si l'utilisateur clique sur le bouton, Tintin.
________________________________________
Jacques93 a écrit, le 10/10/2005 19:25 :
Je crois que pour des raisons de sécurité on n'a pas accès à une
instance de IE que l'on a pas crée. Mais si ça peut faire avancer
les choses, pour contourner le problème de syntaxe, tu ajoutes une
référence à :
Microsoft Internet Controls (shdocvw.dll)
et dans le code :
Dim ie As InternetExplorer
Set ie = GetObject("", "InternetExplorer.Application")
Mince alors, il réussit même à l'obtenir alors que je n'ai pas ouvert IE ...
MsgBox ie.TheaterMode
Mais la réponse sera toujours False, et tu n'auras aucun contrôle sur
l'objet, et comme tu l'indique si tu as plusieurs fenêtres...
Effectivement. ça renseigne encore moins que la clef de registre.
Bien entendu si l'utilisateur clique sur le bouton, Tintin.
________________________________________ Jacques93 a écrit, le 10/10/2005 19:25 :
Je crois que pour des raisons de sécurité on n'a pas accès à une instance de IE que l'on a pas crée. Mais si ça peut faire avancer les choses, pour contourner le problème de syntaxe, tu ajoutes une référence à :
Microsoft Internet Controls (shdocvw.dll)
et dans le code :
Dim ie As InternetExplorer
Set ie = GetObject("", "InternetExplorer.Application")
Mince alors, il réussit même à l'obtenir alors que je n'ai pas ouvert IE ...
MsgBox ie.TheaterMode
Mais la réponse sera toujours False, et tu n'auras aucun contrôle sur l'objet, et comme tu l'indique si tu as plusieurs fenêtres...
Effectivement. ça renseigne encore moins que la clef de registre.
parci
On Mon, 10 Oct 2005 18:19:42 +0200, Gloops wrote:
Mais maintenant, si c'est l'utilisateur qui a ouvert Internet Explorer, ça se gâte.
Set expl = GetObject("InternetExplorer.Application") syntaxe incorrecte, erreur 800401E4
Set expl = GetObject("InternetExplorer.Application", vbNullString) argument ou appel de procédure incorrect, erreur 5
Set expl = GetObject("InternetExplorer.Application", "") ou Set expl = GetObject("GetObject Function - Microsoft Internet Explorer", "InternetExplorer") le composant ActiveX ne peut créer l'objet, erreur 429
Si quelqu'un pouvait me souffler ce qu'il faut faire ...
Set expl = GetObject( ,"InternetExplorer.Application")
On Mon, 10 Oct 2005 18:19:42 +0200, Gloops <gloops@niark.fr> wrote:
Mais maintenant, si c'est l'utilisateur qui a ouvert Internet Explorer,
ça se gâte.
Set expl = GetObject("InternetExplorer.Application")
syntaxe incorrecte, erreur 800401E4
Set expl = GetObject("InternetExplorer.Application", vbNullString)
argument ou appel de procédure incorrect, erreur 5
Set expl = GetObject("InternetExplorer.Application", "")
ou
Set expl = GetObject("GetObject Function - Microsoft Internet Explorer",
"InternetExplorer")
le composant ActiveX ne peut créer l'objet, erreur 429
Si quelqu'un pouvait me souffler ce qu'il faut faire ...
Set expl = GetObject( ,"InternetExplorer.Application")
Mais maintenant, si c'est l'utilisateur qui a ouvert Internet Explorer, ça se gâte.
Set expl = GetObject("InternetExplorer.Application") syntaxe incorrecte, erreur 800401E4
Set expl = GetObject("InternetExplorer.Application", vbNullString) argument ou appel de procédure incorrect, erreur 5
Set expl = GetObject("InternetExplorer.Application", "") ou Set expl = GetObject("GetObject Function - Microsoft Internet Explorer", "InternetExplorer") le composant ActiveX ne peut créer l'objet, erreur 429
Si quelqu'un pouvait me souffler ce qu'il faut faire ...
Set expl = GetObject( ,"InternetExplorer.Application")
Gloops
Erreur 429 :)
parci a écrit, le 10/10/2005 19:44 :
Set expl = GetObject( ,"InternetExplorer.Application")
Erreur 429 :)
parci a écrit, le 10/10/2005 19:44 :
Set expl = GetObject( ,"InternetExplorer.Application")
On peut même avoir ie.hWnd, et avec un peu de chance ça correspond bien à celui de la fenêtre quand elle est sélectionnée ...
Eh ben, tu as bien fait de venir.
Merci. ____________________________________ parci a écrit, le 10/10/2005 22:52 :
On Mon, 10 Oct 2005 19:50:20 +0200, Gloops wrote:
Erreur 429 :)
Alors comme ça pour compléter ce que répondais Jacques, avec une réfrence à SHDOCVW.dll (Microsoft Internet Controls) : :
Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows
For Each ie In sh Debug.Print ie.TheaterMode, ie.LocationURL Next ie
L'explotareur de fichiers fait aussi partie de cette collection.
Gloops
Je me demande si il y a un moyen plus élégant d'associer l'objet ShellWindow à l'objet Window repéré par GetForegroundWindow()
Je m'en suis sorti comme ça :
Public Function EstTheatre(hWnd As Long) As Boolean Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows For Each ie In sh If ie.hWnd = hWnd Then EstTheatre = ie.TheaterMode Exit Function End If Next Set ie = Nothing Set sh = Nothing End Function
Et ça marche, ça évite le scintillement, que le mode plein écran ait été obtenu par F11 ou par la barre d'outils IE. _____________________________________ parci a écrit, le 10/10/2005 22:52 :
On Mon, 10 Oct 2005 19:50:20 +0200, Gloops wrote:
Erreur 429 :)
Alors comme ça pour compléter ce que répondais Jacques, avec une réfrence à SHDOCVW.dll (Microsoft Internet Controls) : :
Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows
For Each ie In sh Debug.Print ie.TheaterMode, ie.LocationURL Next ie
L'explotareur de fichiers fait aussi partie de cette collection.
Je me demande si il y a un moyen plus élégant d'associer l'objet
ShellWindow à l'objet Window repéré par GetForegroundWindow()
Je m'en suis sorti comme ça :
Public Function EstTheatre(hWnd As Long) As Boolean
Dim ie As SHDocVw.InternetExplorer
Dim sh As New SHDocVw.ShellWindows
For Each ie In sh
If ie.hWnd = hWnd Then
EstTheatre = ie.TheaterMode
Exit Function
End If
Next
Set ie = Nothing
Set sh = Nothing
End Function
Et ça marche, ça évite le scintillement, que le mode plein écran ait été
obtenu par F11 ou par la barre d'outils IE.
_____________________________________
parci a écrit, le 10/10/2005 22:52 :
On Mon, 10 Oct 2005 19:50:20 +0200, Gloops <gloops@niark.fr> wrote:
Erreur 429 :)
Alors comme ça pour compléter ce que répondais Jacques, avec une
réfrence à SHDOCVW.dll (Microsoft Internet Controls) : :
Dim ie As SHDocVw.InternetExplorer
Dim sh As New SHDocVw.ShellWindows
For Each ie In sh
Debug.Print ie.TheaterMode, ie.LocationURL
Next ie
L'explotareur de fichiers fait aussi partie de cette collection.
Je me demande si il y a un moyen plus élégant d'associer l'objet ShellWindow à l'objet Window repéré par GetForegroundWindow()
Je m'en suis sorti comme ça :
Public Function EstTheatre(hWnd As Long) As Boolean Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows For Each ie In sh If ie.hWnd = hWnd Then EstTheatre = ie.TheaterMode Exit Function End If Next Set ie = Nothing Set sh = Nothing End Function
Et ça marche, ça évite le scintillement, que le mode plein écran ait été obtenu par F11 ou par la barre d'outils IE. _____________________________________ parci a écrit, le 10/10/2005 22:52 :
On Mon, 10 Oct 2005 19:50:20 +0200, Gloops wrote:
Erreur 429 :)
Alors comme ça pour compléter ce que répondais Jacques, avec une réfrence à SHDOCVW.dll (Microsoft Internet Controls) : :
Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows
For Each ie In sh Debug.Print ie.TheaterMode, ie.LocationURL Next ie
L'explotareur de fichiers fait aussi partie de cette collection.
parci
>Je me demande si il y a un moyen plus élégant d'associer l'objet ShellWindow à l'objet Window repéré par GetForegroundWindow()
Pas à ma connaissance. Je ne vois ni API, ni interface pour faire autrement.
Je m'en suis sorti comme ça :
Public Function EstTheatre(hWnd As Long) As Boolean Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows For Each ie In sh If ie.hWnd = hWnd Then EstTheatre = ie.TheaterMode Exit Function End If Next Set ie = Nothing Set sh = Nothing End Function
Chipotons :
Public Function EstTheatre(hWnd As Long) As Boolean Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows For Each ie In sh If ie.hWnd = hWnd Then EstTheatre = ie.TheaterMode Set ie = Nothing Exit Function End If Next ie End Function
-- Message monitoré par axinews : http://www.axinews.com/
>Je me demande si il y a un moyen plus élégant d'associer l'objet
ShellWindow à l'objet Window repéré par GetForegroundWindow()
Pas à ma connaissance. Je ne vois ni API, ni interface pour faire autrement.
Je m'en suis sorti comme ça :
Public Function EstTheatre(hWnd As Long) As Boolean
Dim ie As SHDocVw.InternetExplorer
Dim sh As New SHDocVw.ShellWindows
For Each ie In sh
If ie.hWnd = hWnd Then
EstTheatre = ie.TheaterMode
Exit Function
End If
Next
Set ie = Nothing
Set sh = Nothing
End Function
Chipotons :
Public Function EstTheatre(hWnd As Long) As Boolean
Dim ie As SHDocVw.InternetExplorer
Dim sh As New SHDocVw.ShellWindows
For Each ie In sh
If ie.hWnd = hWnd Then
EstTheatre = ie.TheaterMode
Set ie = Nothing
Exit Function
End If
Next ie
End Function
--
Message monitoré par axinews : http://www.axinews.com/
>Je me demande si il y a un moyen plus élégant d'associer l'objet ShellWindow à l'objet Window repéré par GetForegroundWindow()
Pas à ma connaissance. Je ne vois ni API, ni interface pour faire autrement.
Je m'en suis sorti comme ça :
Public Function EstTheatre(hWnd As Long) As Boolean Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows For Each ie In sh If ie.hWnd = hWnd Then EstTheatre = ie.TheaterMode Exit Function End If Next Set ie = Nothing Set sh = Nothing End Function
Chipotons :
Public Function EstTheatre(hWnd As Long) As Boolean Dim ie As SHDocVw.InternetExplorer Dim sh As New SHDocVw.ShellWindows For Each ie In sh If ie.hWnd = hWnd Then EstTheatre = ie.TheaterMode Set ie = Nothing Exit Function End If Next ie End Function
-- Message monitoré par axinews : http://www.axinews.com/
Gloops
parci a écrit, le 13/10/2005 15:49 :
Chipotons :
If ie.hWnd = hWnd Then EstTheatre = ie.TheaterMode Set ie = Nothing Exit Function End If
Oups, bien vu
parci a écrit, le 13/10/2005 15:49 :
Chipotons :
If ie.hWnd = hWnd Then
EstTheatre = ie.TheaterMode
Set ie = Nothing
Exit Function
End If