L'aide d'Excel sur GetObject fournit un exemple d'utilisation et comporte les lignes suivantes :
' Excel est en exécution, donc utilise la fonction
' d'API SendMessage pour l'entrer dans la table
' Running Object.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
Si quelqu'un a une explication sur cette table de Running Object et comment l'utiliser ?
Merci
Alain CROS
NB : Page de l'aide d'Excel sur GetObject
GetObject, fonction, exemple
Cet exemple utilise la fonction GetObject pour obtenir une référence à une feuille de calcul Microsoft Excel spécifique (MyXL). Il
utilise la propriété Application de la feuille de calcul pour rendre Microsoft Excel visible, pour fermer l'application, etc. Le
premier appel à la fonction GetObject entraîne une erreur si Microsoft Excel n'est pas déjà en exécution. Dans notre exemple,
l'erreur a pour conséquence d'attribuer la valeur True à l'indicateur ExcelWasNotRunning. Le deuxième appel à la fonction GetObject
indique le fichier à ouvrir. Si Microsoft Excel n'est pas déjà en exécution, le deuxième appel lance l'application et renvoie une
référence à la feuille de calcul représentée par le fichier indiqué, montest.xls. Ce fichier doit se trouver à l'emplacement
spécifié ; dans le cas contraire, l'erreur Erreur Automation Visual Basic est générée. L'exemple de code rend ensuite Microsoft
Excel et la fenêtre contenant la feuille de calcul indiquée visibles. Enfin, si Microsoft Excel n'était pas en exécution
précédemment, le code utilise la méthode Quit de l'objet Application pour fermer Microsoft Excel. Si l'application était déjà en
exécution, le code ne tente pas de la fermer. La référence elle-même est libérée en recevant la valeur Nothing.
' Déclare les routines d'API nécessaires:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
ByVal lpWindowName As Long) As Long
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long, _
ByVal wParam as Long, _
ByVal lParam As Long) As Long
Sub GetExcel()
Dim MyXL As Object ' Variable devant contenir la
' référence à Microsoft Excel.
Dim ExcelWasNotRunning As Boolean ' Indicateur de libération finale.
' Test pour déterminer si une copie de Microsoft Excel
' est déjà en exécution.
On Error Resume Next ' Retarde la récupération d'erreur.
' La fonction Getobject appelée sans le premier
' argument renvoie une référence à une instance de
' l'application. Si l'application n'est pas en
' exécution, une erreur se produit.
Set MyXL = Getobject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Efface l'objet Err si une erreur s'est produite.
' Vérifie si Microsoft Excel est en exécution.
' Dans ce cas, l'ajoute à la table Running Object.
DetectExcel
' Définit la variable objet faisant référence au fichier à ouvrir.
Set MyXL = Getobject("c:\vb5\MONTEST.XLS")
' Affiche Microsoft Excel par l'intermédiaire de sa
' propriété Application. Affiche ensuite la fenêtre
' contenant le fichier à l'aide de la collection
' Windows de la référence à l'objet MyXL.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
' Effectue des opérations sur votre
' fichier ici.
' ...
' Si cette copie de Microsoft Excel n'était pas en cours
' d'exécution lorsque vous avez commencé, fermez-la
' à l'aide de la méthode Quit de la propriété
' Application.
' Notez que si vous tentez de quitter Microsoft Excel,
' la barre de titre clignote et un message s'affiche
' vous demandant si vous souhaitez enregistrer les
' fichiers chargés.
If ExcelWasNotRunning = True Then
MyXL.Application.Quit
End IF
Set MyXL = Nothing ' Libère la référence à l'application
' et à la feuille de calcul.
End Sub
Sub DetectExcel()
' La procédure détecte une instance d'Excel en
' exécution et l'inscrit.
Const WM_USER = 1024
Dim hWnd As Long
' Si Excel est en exécution, cet appel d'API renvoie
' son descripteur.
hWnd = FindWindow("XLMAIN", 0)
If hWnd = 0 Then ' 0 signifie qu'Excel n'était
' pas en exécution.
Exit Sub
Else
' Excel est en exécution, donc utilise la fonction
' d'API SendMessage pour l'entrer dans la table
' Running Object.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub
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
scraper
Bonjour Alain CROS, dans le message news: tu disais :
Bonjour.
L'aide d'Excel sur GetObject fournit un exemple d'utilisation et comporte les lignes suivantes :
' Excel est en exécution, donc utilise la fonction ' d'API SendMessage pour l'entrer dans la table ' Running Object. SendMessage hWnd, WM_USER + 18, 0, 0 End If
Si quelqu'un a une explication sur cette table de Running Object et comment l'utiliser ?
c'est aussi une question que je me pose, pour détecter l'insertion d'un media ... :-(
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
Bonjour Alain CROS, dans le message
news:uFKoIhrXFHA.2128@TK2MSFTNGP15.phx.gbl
tu disais :
Bonjour.
L'aide d'Excel sur GetObject fournit un exemple d'utilisation et
comporte les lignes suivantes :
' Excel est en exécution, donc utilise la fonction
' d'API SendMessage pour l'entrer dans la table
' Running Object.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
Si quelqu'un a une explication sur cette table de Running Object et
comment l'utiliser ?
c'est aussi une question que je me pose, pour détecter l'insertion d'un
media ... :-(
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
Bonjour Alain CROS, dans le message news: tu disais :
Bonjour.
L'aide d'Excel sur GetObject fournit un exemple d'utilisation et comporte les lignes suivantes :
' Excel est en exécution, donc utilise la fonction ' d'API SendMessage pour l'entrer dans la table ' Running Object. SendMessage hWnd, WM_USER + 18, 0, 0 End If
Si quelqu'un a une explication sur cette table de Running Object et comment l'utiliser ?
c'est aussi une question que je me pose, pour détecter l'insertion d'un media ... :-(
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
François Picalausa
Hello,
Je ne sais pas si ça peut aider, mais il semble qu'il s'agisse d'un mécanisme spécifique à COM: http://msdn.microsoft.com/library/en-us/com/html/9e2c56a2-0572-48b6-a2ef-650f1cf1b62e.asp disponible au travers de l'interface IRunningObjectTable: http://msdn.microsoft.com/library/en-us/com/html/ff89bcb5-df6d-4325-b0e8-613217a68f42.asp et de tout ce que j'ai lu, on pourrait accéder à cette table au travers d'un moniker: http://msdn.microsoft.com/library/en-us/com/html/081b394c-1fe8-4519-999e-b3985a77bd9c.asp
<scraper specific> Tu peux apparement employer SHCreateQueryCancelAutoPlayMoniker http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/functions/shcreatequerycancelautoplaymoniker.asp pour enregistrer l'interface utile : IQueryCancelAutoPlay. http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/ifaces/iquerycancelautoplay/iquerycancelautoplay.asp En créant la typelib qui décrit cette interface, et en implémentant sa seule fonction : AllowAutoPlay (VB se charge automatiquement de IUnkwnow), tu devrais pouvoir refuser tout autoplay. </scraper specific>
Je n'ai malheureusement pas le temps de me pencher plus sur le sujet.... (par contre, p-e qu'en écrivant en chinois, mes explications seraient plus explicatives?)
-- François Picalausa
"scraper" a écrit dans le message de news: %
Bonjour Alain CROS, dans le message news:
Si quelqu'un a une explication sur cette table de Running Object et comment l'utiliser ?
Hello,
Je ne sais pas si ça peut aider, mais il semble qu'il s'agisse d'un
mécanisme spécifique à COM:
http://msdn.microsoft.com/library/en-us/com/html/9e2c56a2-0572-48b6-a2ef-650f1cf1b62e.asp
disponible au travers de l'interface IRunningObjectTable:
http://msdn.microsoft.com/library/en-us/com/html/ff89bcb5-df6d-4325-b0e8-613217a68f42.asp
et de tout ce que j'ai lu, on pourrait accéder à cette table au travers d'un
moniker:
http://msdn.microsoft.com/library/en-us/com/html/081b394c-1fe8-4519-999e-b3985a77bd9c.asp
<scraper specific>
Tu peux apparement employer SHCreateQueryCancelAutoPlayMoniker
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/functions/shcreatequerycancelautoplaymoniker.asp
pour enregistrer l'interface utile : IQueryCancelAutoPlay.
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/ifaces/iquerycancelautoplay/iquerycancelautoplay.asp
En créant la typelib qui décrit cette interface, et en implémentant sa seule
fonction : AllowAutoPlay (VB se charge automatiquement de IUnkwnow), tu
devrais pouvoir refuser tout autoplay.
</scraper specific>
Je n'ai malheureusement pas le temps de me pencher plus sur le sujet....
(par contre, p-e qu'en écrivant en chinois, mes explications seraient plus
explicatives?)
--
François Picalausa
"scraper" <scraper@pasdespam.fr> a écrit dans le message de news:
%239ZWONsXFHA.2684@TK2MSFTNGP09.phx.gbl
Bonjour Alain CROS, dans le message
news:uFKoIhrXFHA.2128@TK2MSFTNGP15.phx.gbl
Si quelqu'un a une explication sur cette table de Running Object et
comment l'utiliser ?
Je ne sais pas si ça peut aider, mais il semble qu'il s'agisse d'un mécanisme spécifique à COM: http://msdn.microsoft.com/library/en-us/com/html/9e2c56a2-0572-48b6-a2ef-650f1cf1b62e.asp disponible au travers de l'interface IRunningObjectTable: http://msdn.microsoft.com/library/en-us/com/html/ff89bcb5-df6d-4325-b0e8-613217a68f42.asp et de tout ce que j'ai lu, on pourrait accéder à cette table au travers d'un moniker: http://msdn.microsoft.com/library/en-us/com/html/081b394c-1fe8-4519-999e-b3985a77bd9c.asp
<scraper specific> Tu peux apparement employer SHCreateQueryCancelAutoPlayMoniker http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/functions/shcreatequerycancelautoplaymoniker.asp pour enregistrer l'interface utile : IQueryCancelAutoPlay. http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/ifaces/iquerycancelautoplay/iquerycancelautoplay.asp En créant la typelib qui décrit cette interface, et en implémentant sa seule fonction : AllowAutoPlay (VB se charge automatiquement de IUnkwnow), tu devrais pouvoir refuser tout autoplay. </scraper specific>
Je n'ai malheureusement pas le temps de me pencher plus sur le sujet.... (par contre, p-e qu'en écrivant en chinois, mes explications seraient plus explicatives?)
-- François Picalausa
"scraper" a écrit dans le message de news: %
Bonjour Alain CROS, dans le message news:
Si quelqu'un a une explication sur cette table de Running Object et comment l'utiliser ?
scraper
Bonjour François Picalausa, dans le message news:%23bFM$ tu disais :
[...]
</scraper specific>
Je n'ai malheureusement pas le temps de me pencher plus sur le sujet.... (par contre, p-e qu'en écrivant en chinois, mes explications seraient plus explicatives?)
je vais me pencher sérieusement sur tous ces liens, avec mes modestes moyens .. :-)
crois bien que je fais ce que je peux pour comprendre ! lol
merci du mal que tu te donnes ;-)
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
Bonjour François Picalausa, dans le message
news:%23bFM$ksXFHA.3164@TK2MSFTNGP12.phx.gbl
tu disais :
[...]
</scraper specific>
Je n'ai malheureusement pas le temps de me pencher plus sur le
sujet.... (par contre, p-e qu'en écrivant en chinois, mes
explications seraient plus explicatives?)
je vais me pencher sérieusement sur tous ces liens, avec mes modestes moyens
.. :-)
crois bien que je fais ce que je peux pour comprendre ! lol
merci du mal que tu te donnes ;-)
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
Bonjour François Picalausa, dans le message news:%23bFM$ tu disais :
[...]
</scraper specific>
Je n'ai malheureusement pas le temps de me pencher plus sur le sujet.... (par contre, p-e qu'en écrivant en chinois, mes explications seraient plus explicatives?)
je vais me pencher sérieusement sur tous ces liens, avec mes modestes moyens .. :-)
crois bien que je fais ce que je peux pour comprendre ! lol
merci du mal que tu te donnes ;-)
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
Alain CROS
Bonjour.
Merci pour la réponse
| | Je n'ai malheureusement pas le temps de me pencher plus sur le sujet.... | (par contre, p-e qu'en écrivant en chinois, mes explications seraient plus | explicatives?) | | -- | François Picalausa
C'était pas du chinois ?
Alain CROS
Bonjour.
Merci pour la réponse
|
| Je n'ai malheureusement pas le temps de me pencher plus sur le sujet....
| (par contre, p-e qu'en écrivant en chinois, mes explications seraient plus
| explicatives?)
|
| --
| François Picalausa
| | Je n'ai malheureusement pas le temps de me pencher plus sur le sujet.... | (par contre, p-e qu'en écrivant en chinois, mes explications seraient plus | explicatives?) | | -- | François Picalausa