OVH Cloud OVH Cloud

titre de l'application

12 réponses
Avatar
phil
Bonjour
J'avais d=E9j=E0 pos=E9 cette question sur le forum, mais elle=20
est rest=E9e sans reponse :
Avec access, je voudrais pouvoir modifier le titre de mon=20
application. je connaissais d=E9j=E0 la solution manuelle :=20
Outils/Demarrage/Titre de l'application.
Mais ce que je voudrais, c'est que la valeur de ce titre=20
puisse etre changee en fonction d'une variable, ou en=20
fonction d'un enregistrement dans une table... MEME=20
TEMPORAIREMENT !

Ce que je voudrais, c'est pouvoir modifier ce titre avec=20
du VBA.
J'ai trouve sur Internet ces solutions pour modifier et=20
lire le titre de l'application :=20

Private Declare Function GetWindowText Lib "User32" (ByVal=20
WindowHandle As Integer, ByVal Buffer As String, ByVal=20
Size As Integer) As Integer

Private Declare Sub SetWindowText Lib "User32" (ByVal=20
WindowHandle As Integer, ByVal Title As String)

Mais je ne sais pas comment l'appeler...
J'ai essay=E9 comme ca (copi=E9 sur une autre fonction du meme=20
style) :
Dim tmp$
tmp =3D String(255, " ")
MsgBox (GetWindowText(100, tmp, 255))
SetWindowText 100, "lu"

MAIS :=20
Erreur d'ex=E9cution 453 : Point d'entree GetWindowText=20
d'une DLL introuvable dans User32

OU EST MON ERREUR ?
A noter que c'est peut-etre a cause du 100 : j'ai vraiment=20
mis n'importe quel entier... mais lequel choisir ?
SI VOUS POUVIEZ M'AIDER... CE SERAIT BIEN SYMPA !!!

10 réponses

1 2
Avatar
Marc
essais ca :


Sub cmdAjoutePropr_Click(NomApp)
Dim entX As Integer
Const DB_Text As Long = 10
entX = AjouteProprApp("AppTitle", DB_Text,NomApp)
entX = AjouteProprApp("AppIcon", DB_Text, "toto.ico")
Application.RefreshTitleBar
End Sub

Function AjouteProprApp(chNom As String, varType As Variant, varValeur As
Variant) As Integer
Dim bds As Object
Dim prp As Variant
Const conErreurPropNonTrouvee = 3270

Set bds = CurrentDb
On Error GoTo AjoutePropr_Err
bds.Properties(chNom) = varValeur
AjouteProprApp = True

AjoutePropr_Sortie:
Exit Function

AjoutePropr_Err:
If Err = conErreurPropNonTrouvee Then
Set prp = bds.CreateProperty(chNom, varType, varValeur)
bds.Properties.Append prp
Resume
Else
AjouteProprApp = False
Resume AjoutePropr_Sortie
End If
End Function
A+,

~~Marc~~
--
Ce message a ete poste via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
3stone
Salut,

"phil"
J'avais déjà posé cette question sur le forum, mais elle
est restée sans reponse :



Non, Michel t'avait répondu...

------------------------------------------------------------------------------

Il s'agit de créer un propriété AppTitle (voir cet item dans le
fichier d'aide) et de l'insérer à la collection des propriétés de la base de
données. Plus court à programmer qu'à décrire:



CurrentDb.Properties.Append CurrentDb.CreateProperties("AppTitle", dbText, "toto")



Une fois que la propriété est crée, on peut la lire et la modifier simplement:

CurrentDb.Properties( "nom de la propriété") = ...


Dans notre cas, il faut fermer puis réouvrir l'application pour que
l'effet visuel "colle". Le nom de la fenêtre ne semble pas tenir compte de
a propriété autrement qu'à l'ouverture de l'application.



Espérant être utile,
Vanderghast, Access MVP
Avatar
phil
OUPS !!!! Pardon Michel !!!
J'avais pourtant fait attention pendant un moment... J'ai
fini par perdre patience... Je croyais que je n'aurais
plus de réponse sur ce message. Désolé !!!


Par contre, dbtext plante. Il faut que je lui attribue
quoi, comme valeur ? Le titre que je veux ?
C'est quoi, alors, "toto" ?
Siouplait donnez-moi un exemple un peu plus précis, je
n'arrive pas a le mettre en oeuvre.

Par contre, en regardant dans l'aide de AppTitle, j'ai
trouve qu'il faut utiliser RefreshTitleBar pour que les
modifications se fassent instantanement, et pas a
l'ouverture suivante...


Merci beaucoup ! J'attends vos reponses a mes questions.

Phil

-----Message d'origine-----
Salut,

"phil"
J'avais déjà posé cette question sur le forum, mais elle
est restée sans reponse :



Non, Michel t'avait répondu...

----------------------------------------------------------
--------------------


Il s'agit de créer un propriété AppTitle (voir
cet item dans le

fichier d'aide) et de l'insérer à la collection des
propriétés de la base de

données. Plus court à programmer qu'à décrire:



CurrentDb.Properties.Append CurrentDb.CreateProperties
("AppTitle", dbText, "toto")




Une fois que la propriété est crée, on peut la lire
et la modifier simplement:


CurrentDb.Properties( "nom de la propriété") = ...


Dans notre cas, il faut fermer puis réouvrir
l'application pour que

l'effet visuel "colle". Le nom de la fenêtre ne semble
pas tenir compte de

a propriété autrement qu'à l'ouverture de l'application.



Espérant être utile,
Vanderghast, Access MVP


.



Avatar
phil
C'est bon !!!!!!!! Ca fonctionne !!!!!!!!

En fait, je crois qu'avoir déja saisi une fois un titre
d'appli dans Outils/Démarrage/Titre de l'application,
suffisait pour créer la propriété AppTitle.
Ce qu'il reste à faire est juste :

CurrentDb.Properties("AppTitle") = "Salut les gars !!!!!"
RefreshTitleBar

et c'est impeccable !! Merci tout le monde !




-----Message d'origine-----
Salut,

"phil"
J'avais déjà posé cette question sur le forum, mais elle
est restée sans reponse :



Non, Michel t'avait répondu...

----------------------------------------------------------
--------------------


Il s'agit de créer un propriété AppTitle (voir
cet item dans le

fichier d'aide) et de l'insérer à la collection des
propriétés de la base de

données. Plus court à programmer qu'à décrire:



CurrentDb.Properties.Append CurrentDb.CreateProperties
("AppTitle", dbText, "toto")




Une fois que la propriété est crée, on peut la lire
et la modifier simplement:


CurrentDb.Properties( "nom de la propriété") = ...


Dans notre cas, il faut fermer puis réouvrir
l'application pour que

l'effet visuel "colle". Le nom de la fenêtre ne semble
pas tenir compte de

a propriété autrement qu'à l'ouverture de l'application.



Espérant être utile,
Vanderghast, Access MVP


.



Avatar
3stone
Salut,

"phil"
Par contre, dbtext plante. Il faut que je lui attribue
quoi, comme valeur ? Le titre que je veux ?
C'est quoi, alors, "toto" ?
Siouplait donnez-moi un exemple un peu plus précis, je
n'arrive pas a le mettre en oeuvre.

Par contre, en regardant dans l'aide de AppTitle, j'ai
trouve qu'il faut utiliser RefreshTitleBar pour que les
modifications se fassent instantanement, et pas a
l'ouverture suivante...



En fait, il faut utiliser :

CurrentDb.Properties.Append CurrentDb.CreateProperty ("AppTitle", dbText, "toto")


et il te faut la référence DAO !



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar
phil
En effet, j'avais corrigé l'erreur Properties ==> Property
En ce qui concerne le dbtext, il ne fonctionnait pas, mais
finalement, il semble que je n'en ai pas besoin.
Merci


-----Message d'origine-----
Salut,

"phil"
Par contre, dbtext plante. Il faut que je lui attribue
quoi, comme valeur ? Le titre que je veux ?
C'est quoi, alors, "toto" ?
Siouplait donnez-moi un exemple un peu plus précis, je
n'arrive pas a le mettre en oeuvre.

Par contre, en regardant dans l'aide de AppTitle, j'ai
trouve qu'il faut utiliser RefreshTitleBar pour que les
modifications se fassent instantanement, et pas a
l'ouverture suivante...



En fait, il faut utiliser :

CurrentDb.Properties.Append CurrentDb.CreateProperty
("AppTitle", dbText, "toto")



et il te faut la référence DAO !



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------





.



Avatar
Michel Walsh
Salut,

Tu as déjà trouvé une solution au problème initial, mais quant au
problème rencontré, dans une de tes tentatives, puisqu'il peut se rencontrer
à nouveau, dans le futur... je me permet...

Il y a DEUX problèmes.

Utiliser Application.hWndAccessApp comme valeur de hWnd (window
handle). Chaque fenêtre possède une carte d'identité, un ID, qu'on appelle
familiarement un hWnd. Quand tu utilisais 100, c'était peut-être le ID de,
je ne sais trop, le sixième bouton de la barre qui apparaît avec "démarrer"
| "programmes"... ou quoique ce soit d'autre. En effet, seul le hwnd 0 a
une signification immuable, cela refère "au système". Les autres valeurs de
hwnd dépendent de l'historique depuis le démarrage du PC.



Utiliser l'alias "A" (pour ANSI, ou ASCII, je ne me souviens plus
exactement) avec toutes les fonctions API qui travaillent avec des chaînes
de caractères. En effet, VB et VBA ne sont pas très à l'aise avec du
Unicode, la version non-A, qui est la version par défaut sur Win32, donc, il
faut "alias-er" (si il y a des chaînes), en général, comme suit, avec
VB/VBA, pour utiliser la version "A" (tiré de All-API, www.allapi.net) :


Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA"
(ByVal hwnd As Long, ByVal lpString As String) As Long





Sûr, si le "ID", le hWnd spécifié, est quelque chose qui n'a pas de
"barre titre", évidemment, cela risque de planter (surtout le Set) car
autrement, ce serait potentiellement une porte d'entrée pour les hackers et
virus.





Espérant être utile,

Vanderghast, Access MVP





"phil" wrote in message
news:665901c3e63a$3d19d2a0$
Bonjour
J'avais déjà posé cette question sur le forum, mais elle
est restée sans reponse :
Avec access, je voudrais pouvoir modifier le titre de mon
application. je connaissais déjà la solution manuelle :
Outils/Demarrage/Titre de l'application.
Mais ce que je voudrais, c'est que la valeur de ce titre
puisse etre changee en fonction d'une variable, ou en
fonction d'un enregistrement dans une table... MEME
TEMPORAIREMENT !

Ce que je voudrais, c'est pouvoir modifier ce titre avec
du VBA.
J'ai trouve sur Internet ces solutions pour modifier et
lire le titre de l'application :

Private Declare Function GetWindowText Lib "User32" (ByVal
WindowHandle As Integer, ByVal Buffer As String, ByVal
Size As Integer) As Integer

Private Declare Sub SetWindowText Lib "User32" (ByVal
WindowHandle As Integer, ByVal Title As String)

Mais je ne sais pas comment l'appeler...
J'ai essayé comme ca (copié sur une autre fonction du meme
style) :
Dim tmp$
tmp = String(255, " ")
MsgBox (GetWindowText(100, tmp, 255))
SetWindowText 100, "lu"

MAIS :
Erreur d'exécution 453 : Point d'entree GetWindowText
d'une DLL introuvable dans User32

OU EST MON ERREUR ?
A noter que c'est peut-etre a cause du 100 : j'ai vraiment
mis n'importe quel entier... mais lequel choisir ?
SI VOUS POUVIEZ M'AIDER... CE SERAIT BIEN SYMPA !!!
Avatar
phil
Merci Michel pour ces précisions. je vais les garder
précieusement...

En ce qui concerne le hWnd, j'enrage !!!
En effet, la solution était 0 ! Et moi, j'ai testé avec un
For Next toutes les possibilités de 1 a 32767 (avec
gestion d'erreurs, bien sur... Access ne m'aurait prévenu
que si ca fonctionnait). J'ai l'habitude de faire des
compteurs (Dans les For... Next) de 1 à X, alors j'ai
oublié le 0 !!!!!!

Merci beaucoup à toi et à 3Stone... je vais essayer
d'appliquer ma première solution avec ce que tu m'a dis...





-----Message d'origine-----
Salut,

Tu as déjà trouvé une solution au problème initial,
mais quant au

problème rencontré, dans une de tes tentatives, puisqu'il
peut se rencontrer

à nouveau, dans le futur... je me permet...

Il y a DEUX problèmes.

Utiliser Application.hWndAccessApp comme valeur de
hWnd (window

handle). Chaque fenêtre possède une carte d'identité, un
ID, qu'on appelle

familiarement un hWnd. Quand tu utilisais 100, c'était
peut-être le ID de,

je ne sais trop, le sixième bouton de la barre qui
apparaît avec "démarrer"

| "programmes"... ou quoique ce soit d'autre. En effet,
seul le hwnd 0 a

une signification immuable, cela refère "au système". Les
autres valeurs de

hwnd dépendent de l'historique depuis le démarrage du PC.



Utiliser l'alias "A" (pour ANSI, ou ASCII, je ne me
souviens plus

exactement) avec toutes les fonctions API qui travaillent
avec des chaînes

de caractères. En effet, VB et VBA ne sont pas très à
l'aise avec du

Unicode, la version non-A, qui est la version par défaut
sur Win32, donc, il

faut "alias-er" (si il y a des chaînes), en général,
comme suit, avec

VB/VBA, pour utiliser la version "A" (tiré de All-API,
www.allapi.net) :



Private Declare Function GetWindowText Lib "user32"
Alias "GetWindowTextA"

(ByVal hwnd As Long, ByVal lpString As String, ByVal cch
As Long) As Long


Private Declare Function SetWindowText Lib "user32"
Alias "SetWindowTextA"

(ByVal hwnd As Long, ByVal lpString As String) As Long





Sûr, si le "ID", le hWnd spécifié, est quelque
chose qui n'a pas de

"barre titre", évidemment, cela risque de planter
(surtout le Set) car

autrement, ce serait potentiellement une porte d'entrée
pour les hackers et

virus.





Espérant être utile,

Vanderghast, Access MVP





"phil" wrote in
message

news:665901c3e63a$3d19d2a0$
Bonjour
J'avais déjà posé cette question sur le forum, mais elle
est restée sans reponse :
Avec access, je voudrais pouvoir modifier le titre de mon
application. je connaissais déjà la solution manuelle :
Outils/Demarrage/Titre de l'application.
Mais ce que je voudrais, c'est que la valeur de ce titre
puisse etre changee en fonction d'une variable, ou en
fonction d'un enregistrement dans une table... MEME
TEMPORAIREMENT !

Ce que je voudrais, c'est pouvoir modifier ce titre avec
du VBA.
J'ai trouve sur Internet ces solutions pour modifier et
lire le titre de l'application :

Private Declare Function GetWindowText Lib "User32" (ByVal
WindowHandle As Integer, ByVal Buffer As String, ByVal
Size As Integer) As Integer

Private Declare Sub SetWindowText Lib "User32" (ByVal
WindowHandle As Integer, ByVal Title As String)

Mais je ne sais pas comment l'appeler...
J'ai essayé comme ca (copié sur une autre fonction du meme
style) :
Dim tmp$
tmp = String(255, " ")
MsgBox (GetWindowText(100, tmp, 255))
SetWindowText 100, "lu"

MAIS :
Erreur d'exécution 453 : Point d'entree GetWindowText
d'une DLL introuvable dans User32

OU EST MON ERREUR ?
A noter que c'est peut-etre a cause du 100 : j'ai vraiment
mis n'importe quel entier... mais lequel choisir ?
SI VOUS POUVIEZ M'AIDER... CE SERAIT BIEN SYMPA !!!


.



Avatar
phil
AU SECOURS !!!

J'ai voulu essayer, en écrivant exactement ça :

Private Declare Function GetWindowText Lib "user32"
Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString
As String, ByVal cch As Long) As Long
Private Declare Function SetWindowText Lib "user32"
Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString
As String) As Long

Private Sub Commande0_Click()
msgbox(GetWindowText(0, dbtext, 255))
SetWindowText cpt, "lu"
RefreshTitleBar
End Sub


et ça n'a pas marché : le msgbox renvoie 0, et le
setwindowtext ne fait rien...

Je me suis dit qu'il fallait essayer avec un autre hwnd,
et j'ai mis une boucle For cpt=0 to 1000 ... Next
Toutes mes pages internet et mes dossiers ont pris le
nom "lu" !!!!!!!!!!

Mais bien sur, pas ma base access.
C'est le sort qui s'acharne sur moi, ou alors est-ce que
je suis passe a cote de quelquechose ?


-----Message d'origine-----

Merci Michel pour ces précisions. je vais les garder
précieusement...

En ce qui concerne le hWnd, j'enrage !!!
En effet, la solution était 0 ! Et moi, j'ai testé avec
un

For Next toutes les possibilités de 1 a 32767 (avec
gestion d'erreurs, bien sur... Access ne m'aurait prévenu
que si ca fonctionnait). J'ai l'habitude de faire des
compteurs (Dans les For... Next) de 1 à X, alors j'ai
oublié le 0 !!!!!!

Merci beaucoup à toi et à 3Stone... je vais essayer
d'appliquer ma première solution avec ce que tu m'a dis...





-----Message d'origine-----
Salut,

Tu as déjà trouvé une solution au problème initial,
mais quant au

problème rencontré, dans une de tes tentatives,
puisqu'il


peut se rencontrer
à nouveau, dans le futur... je me permet...

Il y a DEUX problèmes.

Utiliser Application.hWndAccessApp comme valeur de
hWnd (window

handle). Chaque fenêtre possède une carte d'identité, un
ID, qu'on appelle

familiarement un hWnd. Quand tu utilisais 100, c'était
peut-être le ID de,

je ne sais trop, le sixième bouton de la barre qui
apparaît avec "démarrer"

| "programmes"... ou quoique ce soit d'autre. En effet,
seul le hwnd 0 a

une signification immuable, cela refère "au système".
Les


autres valeurs de
hwnd dépendent de l'historique depuis le démarrage du PC.



Utiliser l'alias "A" (pour ANSI, ou ASCII, je ne me
souviens plus

exactement) avec toutes les fonctions API qui
travaillent


avec des chaînes
de caractères. En effet, VB et VBA ne sont pas très à
l'aise avec du

Unicode, la version non-A, qui est la version par défaut
sur Win32, donc, il

faut "alias-er" (si il y a des chaînes), en général,
comme suit, avec

VB/VBA, pour utiliser la version "A" (tiré de All-API,
www.allapi.net) :



Private Declare Function GetWindowText Lib "user32"
Alias "GetWindowTextA"

(ByVal hwnd As Long, ByVal lpString As String, ByVal cch
As Long) As Long


Private Declare Function SetWindowText Lib "user32"
Alias "SetWindowTextA"

(ByVal hwnd As Long, ByVal lpString As String) As Long





Sûr, si le "ID", le hWnd spécifié, est quelque
chose qui n'a pas de

"barre titre", évidemment, cela risque de planter
(surtout le Set) car

autrement, ce serait potentiellement une porte d'entrée
pour les hackers et

virus.





Espérant être utile,

Vanderghast, Access MVP





"phil" wrote in
message

news:665901c3e63a$3d19d2a0$
Bonjour
J'avais déjà posé cette question sur le forum, mais elle
est restée sans reponse :
Avec access, je voudrais pouvoir modifier le titre de mon
application. je connaissais déjà la solution manuelle :
Outils/Demarrage/Titre de l'application.
Mais ce que je voudrais, c'est que la valeur de ce titre
puisse etre changee en fonction d'une variable, ou en
fonction d'un enregistrement dans une table... MEME
TEMPORAIREMENT !

Ce que je voudrais, c'est pouvoir modifier ce titre avec
du VBA.
J'ai trouve sur Internet ces solutions pour modifier et
lire le titre de l'application :

Private Declare Function GetWindowText Lib "User32"
(ByVal


WindowHandle As Integer, ByVal Buffer As String, ByVal
Size As Integer) As Integer

Private Declare Sub SetWindowText Lib "User32" (ByVal
WindowHandle As Integer, ByVal Title As String)

Mais je ne sais pas comment l'appeler...
J'ai essayé comme ca (copié sur une autre fonction du
meme


style) :
Dim tmp$
tmp = String(255, " ")
MsgBox (GetWindowText(100, tmp, 255))
SetWindowText 100, "lu"

MAIS :
Erreur d'exécution 453 : Point d'entree GetWindowText
d'une DLL introuvable dans User32

OU EST MON ERREUR ?
A noter que c'est peut-etre a cause du 100 : j'ai
vraiment


mis n'importe quel entier... mais lequel choisir ?
SI VOUS POUVIEZ M'AIDER... CE SERAIT BIEN SYMPA !!!


.

.





Avatar
Michel Walsh
Salut,


il ne faut pas prendre 0 ni quelque chose d'aléatoire, mais bien
Application.hWndAccessApp :


Dim str As string
str="Allo" & Chr(0)

SetWindowText Application.hWndAccessApp , str



Chaque fois qu'on ouvre Access, la fenêtre est différente et possède donc
son ID unique, qu'Access nous retourne gracieusement dans
Application.hWndAccessApp .



Espérant être utile,
Vanderghast, Access MVP


"phil" wrote in message
news:642c01c3e677$45571ee0$
AU SECOURS !!!

J'ai voulu essayer, en écrivant exactement ça :

Private Declare Function GetWindowText Lib "user32"
Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString
As String, ByVal cch As Long) As Long
Private Declare Function SetWindowText Lib "user32"
Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString
As String) As Long

Private Sub Commande0_Click()
msgbox(GetWindowText(0, dbtext, 255))
SetWindowText cpt, "lu"
RefreshTitleBar
End Sub


et ça n'a pas marché : le msgbox renvoie 0, et le
setwindowtext ne fait rien...

Je me suis dit qu'il fallait essayer avec un autre hwnd,
et j'ai mis une boucle For cpt=0 to 1000 ... Next
Toutes mes pages internet et mes dossiers ont pris le
nom "lu" !!!!!!!!!!

Mais bien sur, pas ma base access.
C'est le sort qui s'acharne sur moi, ou alors est-ce que
je suis passe a cote de quelquechose ?


-----Message d'origine-----

Merci Michel pour ces précisions. je vais les garder
précieusement...

En ce qui concerne le hWnd, j'enrage !!!
En effet, la solution était 0 ! Et moi, j'ai testé avec
un

For Next toutes les possibilités de 1 a 32767 (avec
gestion d'erreurs, bien sur... Access ne m'aurait prévenu
que si ca fonctionnait). J'ai l'habitude de faire des
compteurs (Dans les For... Next) de 1 à X, alors j'ai
oublié le 0 !!!!!!

Merci beaucoup à toi et à 3Stone... je vais essayer
d'appliquer ma première solution avec ce que tu m'a dis...





-----Message d'origine-----
Salut,

Tu as déjà trouvé une solution au problème initial,
mais quant au

problème rencontré, dans une de tes tentatives,
puisqu'il


peut se rencontrer
à nouveau, dans le futur... je me permet...

Il y a DEUX problèmes.

Utiliser Application.hWndAccessApp comme valeur de
hWnd (window

handle). Chaque fenêtre possède une carte d'identité, un
ID, qu'on appelle

familiarement un hWnd. Quand tu utilisais 100, c'était
peut-être le ID de,

je ne sais trop, le sixième bouton de la barre qui
apparaît avec "démarrer"

| "programmes"... ou quoique ce soit d'autre. En effet,
seul le hwnd 0 a

une signification immuable, cela refère "au système".
Les


autres valeurs de
hwnd dépendent de l'historique depuis le démarrage du PC.



Utiliser l'alias "A" (pour ANSI, ou ASCII, je ne me
souviens plus

exactement) avec toutes les fonctions API qui
travaillent


avec des chaînes
de caractères. En effet, VB et VBA ne sont pas très à
l'aise avec du

Unicode, la version non-A, qui est la version par défaut
sur Win32, donc, il

faut "alias-er" (si il y a des chaînes), en général,
comme suit, avec

VB/VBA, pour utiliser la version "A" (tiré de All-API,
www.allapi.net) :



Private Declare Function GetWindowText Lib "user32"
Alias "GetWindowTextA"

(ByVal hwnd As Long, ByVal lpString As String, ByVal cch
As Long) As Long


Private Declare Function SetWindowText Lib "user32"
Alias "SetWindowTextA"

(ByVal hwnd As Long, ByVal lpString As String) As Long





Sûr, si le "ID", le hWnd spécifié, est quelque
chose qui n'a pas de

"barre titre", évidemment, cela risque de planter
(surtout le Set) car

autrement, ce serait potentiellement une porte d'entrée
pour les hackers et

virus.





Espérant être utile,

Vanderghast, Access MVP





"phil" wrote in
message

news:665901c3e63a$3d19d2a0$
Bonjour
J'avais déjà posé cette question sur le forum, mais elle
est restée sans reponse :
Avec access, je voudrais pouvoir modifier le titre de mon
application. je connaissais déjà la solution manuelle :
Outils/Demarrage/Titre de l'application.
Mais ce que je voudrais, c'est que la valeur de ce titre
puisse etre changee en fonction d'une variable, ou en
fonction d'un enregistrement dans une table... MEME
TEMPORAIREMENT !

Ce que je voudrais, c'est pouvoir modifier ce titre avec
du VBA.
J'ai trouve sur Internet ces solutions pour modifier et
lire le titre de l'application :

Private Declare Function GetWindowText Lib "User32"
(ByVal


WindowHandle As Integer, ByVal Buffer As String, ByVal
Size As Integer) As Integer

Private Declare Sub SetWindowText Lib "User32" (ByVal
WindowHandle As Integer, ByVal Title As String)

Mais je ne sais pas comment l'appeler...
J'ai essayé comme ca (copié sur une autre fonction du
meme


style) :
Dim tmp$
tmp = String(255, " ")
MsgBox (GetWindowText(100, tmp, 255))
SetWindowText 100, "lu"

MAIS :
Erreur d'exécution 453 : Point d'entree GetWindowText
d'une DLL introuvable dans User32

OU EST MON ERREUR ?
A noter que c'est peut-etre a cause du 100 : j'ai
vraiment


mis n'importe quel entier... mais lequel choisir ?
SI VOUS POUVIEZ M'AIDER... CE SERAIT BIEN SYMPA !!!


.

.





1 2