Perso, j'opterais pour le premiere solution.
Je joins un bout de code qui permet de mettre à jour automatique l'appli
partir d'une version de référence sur le serveur. Ceci évite la visite des
postes.
Je vous laisse le soin de trouver les déclarations API qui manquent
SourcePath = "ServeurPath_de_l_Appli_de_ref"
AppPath = App.Path & ""
AppName = App.EXEName & ".exe"
CurrentVersion = AppPath & AppName
LatestVersion = SourcePath & AppName
CurrentVersion = GetVersion(CurrentVersion)
LatestVersion = GetVersion(LatestVersion)
If (AppPath <> SourcePath) And (LatestVersion <> "Not a 32-bit
executable!") Then
If LatestVersion = CurrentVersion Then
Open "c:updRETD.bat" For Output As #1
Print #1,
Close #1
Kill "c:updRETD.bat"
Else
Msg = "Vous n'avez pas la dernière version du logiciel" _
& vbCrLf & "Le logiciel va se mettre à jour et redémarrer"
& vbCrLf & vbCrLf & "Merci d'appuyer sur une touche dans
fenêtre DOS" _
& vbCrLf & "qui va apparaître..."
MsgBox Msg, , "Gestion Etudes R et D"
Open "c:updRETD.bat" For Output As #1
Msg = "@echo off" & vbCrLf & "Pause"
Msg = Msg & vbCrLf & "Copy " & Quote & SourcePath &
& Quote & " " & Quote & AppPath & AppName & Quote
Msg = Msg & vbCrLf & "Call " & Quote & AppPath & AppName &
Quote
Print #1, Msg
Msg = "Echo MAJ Terminé !"
Print #1, Msg
Msg = "exit"
Print #1, Msg
Close #1
Msg = "c:updRETD.bat"
Shell Msg, vbNormalFocus
End
End If
End If
Public Function GetVersion(FileName As String) As String
Dim vffi As VS_FIXEDFILEINFO ' version info structure
Dim buffer() As Byte ' buffer for version info resource
Dim pData As Long ' pointer to version info data
Dim nDataLen As Long ' length of info pointed at by pData
Dim cpl(0 To 3) As Byte ' buffer for code page & language
Dim cplstr As String ' 8-digit hex string of cpl
Dim dispstr As String ' string used to display version
information
Dim retval As Long ' generic return value
' First, get the size of the version info resource. If this function
fails, then Text1
' identifies a file that isn't a 32-bit executable/DLL/etc.
nDataLen = GetFileVersionInfoSize(FileName, pData)
If nDataLen = 0 Then
GetVersion = "Not a 32-bit executable!"
Exit Function
End If
' Make the buffer large enough to hold the version info resource.
ReDim buffer(0 To nDataLen - 1) As Byte
' Get the version information resource.
retval = GetFileVersionInfo(FileName, 0, nDataLen, buffer(0))
' Get a pointer to a structure that holds a bunch of data.
retval = VerQueryValue(buffer(0), "", pData, nDataLen)
' Copy that structure into the one we can access.
CopyMemory vffi, ByVal pData, nDataLen
' Display the full version number of the file.
dispstr = Trim(Str(HIWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionLS)))
'Trim(Str(HIWORD(vffi.dwFileVersionLS))) & "." &
GetVersion = dispstr
End Function
"Irénée" a écrit dans le message de
news:031801c38d77$ce9dab50$
Bonjour
J'ai de la difficulté à décider de la meilleure façon
d'organiser une application multi utilisateurs et
j'aimerais avoir votre avis, connaître les avantages et
inconvénients d'un choix.
1er choix :
· La base de données (Access) est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur
inconvénient : en cas de mise à jour, il faut parcourir
chaque poste utilisateur
2e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· Je crée sur chaque poste utilisateur un raccourci
vers l'application (plusieurs applications fonctionnent
suivant ce principe : SAARI PAYE par exemple)
inconvénient : Avec VB, les raccourcis ne peuvent pas être
exécutés (certains composants ne sont pas trouvés)
3e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur (pour l'inscription de tous les
composants)
· Je crée sur chaque poste utilisateur un raccourci
qui pointe plutôt vers l'application sur le serveur
Avantage : une seule mise à jour à faire sur le serveur en
cas de nouvelle version inconvénient : ???
Merci pour votre contribution.
Perso, j'opterais pour le premiere solution.
Je joins un bout de code qui permet de mettre à jour automatique l'appli
partir d'une version de référence sur le serveur. Ceci évite la visite des
postes.
Je vous laisse le soin de trouver les déclarations API qui manquent
SourcePath = "\ServeurPath_de_l_Appli_de_ref"
AppPath = App.Path & ""
AppName = App.EXEName & ".exe"
CurrentVersion = AppPath & AppName
LatestVersion = SourcePath & AppName
CurrentVersion = GetVersion(CurrentVersion)
LatestVersion = GetVersion(LatestVersion)
If (AppPath <> SourcePath) And (LatestVersion <> "Not a 32-bit
executable!") Then
If LatestVersion = CurrentVersion Then
Open "c:updRETD.bat" For Output As #1
Print #1,
Close #1
Kill "c:updRETD.bat"
Else
Msg = "Vous n'avez pas la dernière version du logiciel" _
& vbCrLf & "Le logiciel va se mettre à jour et redémarrer"
& vbCrLf & vbCrLf & "Merci d'appuyer sur une touche dans
fenêtre DOS" _
& vbCrLf & "qui va apparaître..."
MsgBox Msg, , "Gestion Etudes R et D"
Open "c:updRETD.bat" For Output As #1
Msg = "@echo off" & vbCrLf & "Pause"
Msg = Msg & vbCrLf & "Copy " & Quote & SourcePath &
& Quote & " " & Quote & AppPath & AppName & Quote
Msg = Msg & vbCrLf & "Call " & Quote & AppPath & AppName &
Quote
Print #1, Msg
Msg = "Echo MAJ Terminé !"
Print #1, Msg
Msg = "exit"
Print #1, Msg
Close #1
Msg = "c:updRETD.bat"
Shell Msg, vbNormalFocus
End
End If
End If
Public Function GetVersion(FileName As String) As String
Dim vffi As VS_FIXEDFILEINFO ' version info structure
Dim buffer() As Byte ' buffer for version info resource
Dim pData As Long ' pointer to version info data
Dim nDataLen As Long ' length of info pointed at by pData
Dim cpl(0 To 3) As Byte ' buffer for code page & language
Dim cplstr As String ' 8-digit hex string of cpl
Dim dispstr As String ' string used to display version
information
Dim retval As Long ' generic return value
' First, get the size of the version info resource. If this function
fails, then Text1
' identifies a file that isn't a 32-bit executable/DLL/etc.
nDataLen = GetFileVersionInfoSize(FileName, pData)
If nDataLen = 0 Then
GetVersion = "Not a 32-bit executable!"
Exit Function
End If
' Make the buffer large enough to hold the version info resource.
ReDim buffer(0 To nDataLen - 1) As Byte
' Get the version information resource.
retval = GetFileVersionInfo(FileName, 0, nDataLen, buffer(0))
' Get a pointer to a structure that holds a bunch of data.
retval = VerQueryValue(buffer(0), "", pData, nDataLen)
' Copy that structure into the one we can access.
CopyMemory vffi, ByVal pData, nDataLen
' Display the full version number of the file.
dispstr = Trim(Str(HIWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionLS)))
'Trim(Str(HIWORD(vffi.dwFileVersionLS))) & "." &
GetVersion = dispstr
End Function
"Irénée" <iadjofogue@cimbenin.com> a écrit dans le message de
news:031801c38d77$ce9dab50$a001280a@phx.gbl...
Bonjour
J'ai de la difficulté à décider de la meilleure façon
d'organiser une application multi utilisateurs et
j'aimerais avoir votre avis, connaître les avantages et
inconvénients d'un choix.
1er choix :
· La base de données (Access) est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur
inconvénient : en cas de mise à jour, il faut parcourir
chaque poste utilisateur
2e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· Je crée sur chaque poste utilisateur un raccourci
vers l'application (plusieurs applications fonctionnent
suivant ce principe : SAARI PAYE par exemple)
inconvénient : Avec VB, les raccourcis ne peuvent pas être
exécutés (certains composants ne sont pas trouvés)
3e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur (pour l'inscription de tous les
composants)
· Je crée sur chaque poste utilisateur un raccourci
qui pointe plutôt vers l'application sur le serveur
Avantage : une seule mise à jour à faire sur le serveur en
cas de nouvelle version inconvénient : ???
Merci pour votre contribution.
Perso, j'opterais pour le premiere solution.
Je joins un bout de code qui permet de mettre à jour automatique l'appli
partir d'une version de référence sur le serveur. Ceci évite la visite des
postes.
Je vous laisse le soin de trouver les déclarations API qui manquent
SourcePath = "ServeurPath_de_l_Appli_de_ref"
AppPath = App.Path & ""
AppName = App.EXEName & ".exe"
CurrentVersion = AppPath & AppName
LatestVersion = SourcePath & AppName
CurrentVersion = GetVersion(CurrentVersion)
LatestVersion = GetVersion(LatestVersion)
If (AppPath <> SourcePath) And (LatestVersion <> "Not a 32-bit
executable!") Then
If LatestVersion = CurrentVersion Then
Open "c:updRETD.bat" For Output As #1
Print #1,
Close #1
Kill "c:updRETD.bat"
Else
Msg = "Vous n'avez pas la dernière version du logiciel" _
& vbCrLf & "Le logiciel va se mettre à jour et redémarrer"
& vbCrLf & vbCrLf & "Merci d'appuyer sur une touche dans
fenêtre DOS" _
& vbCrLf & "qui va apparaître..."
MsgBox Msg, , "Gestion Etudes R et D"
Open "c:updRETD.bat" For Output As #1
Msg = "@echo off" & vbCrLf & "Pause"
Msg = Msg & vbCrLf & "Copy " & Quote & SourcePath &
& Quote & " " & Quote & AppPath & AppName & Quote
Msg = Msg & vbCrLf & "Call " & Quote & AppPath & AppName &
Quote
Print #1, Msg
Msg = "Echo MAJ Terminé !"
Print #1, Msg
Msg = "exit"
Print #1, Msg
Close #1
Msg = "c:updRETD.bat"
Shell Msg, vbNormalFocus
End
End If
End If
Public Function GetVersion(FileName As String) As String
Dim vffi As VS_FIXEDFILEINFO ' version info structure
Dim buffer() As Byte ' buffer for version info resource
Dim pData As Long ' pointer to version info data
Dim nDataLen As Long ' length of info pointed at by pData
Dim cpl(0 To 3) As Byte ' buffer for code page & language
Dim cplstr As String ' 8-digit hex string of cpl
Dim dispstr As String ' string used to display version
information
Dim retval As Long ' generic return value
' First, get the size of the version info resource. If this function
fails, then Text1
' identifies a file that isn't a 32-bit executable/DLL/etc.
nDataLen = GetFileVersionInfoSize(FileName, pData)
If nDataLen = 0 Then
GetVersion = "Not a 32-bit executable!"
Exit Function
End If
' Make the buffer large enough to hold the version info resource.
ReDim buffer(0 To nDataLen - 1) As Byte
' Get the version information resource.
retval = GetFileVersionInfo(FileName, 0, nDataLen, buffer(0))
' Get a pointer to a structure that holds a bunch of data.
retval = VerQueryValue(buffer(0), "", pData, nDataLen)
' Copy that structure into the one we can access.
CopyMemory vffi, ByVal pData, nDataLen
' Display the full version number of the file.
dispstr = Trim(Str(HIWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionLS)))
'Trim(Str(HIWORD(vffi.dwFileVersionLS))) & "." &
GetVersion = dispstr
End Function
"Irénée" a écrit dans le message de
news:031801c38d77$ce9dab50$
Bonjour
J'ai de la difficulté à décider de la meilleure façon
d'organiser une application multi utilisateurs et
j'aimerais avoir votre avis, connaître les avantages et
inconvénients d'un choix.
1er choix :
· La base de données (Access) est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur
inconvénient : en cas de mise à jour, il faut parcourir
chaque poste utilisateur
2e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· Je crée sur chaque poste utilisateur un raccourci
vers l'application (plusieurs applications fonctionnent
suivant ce principe : SAARI PAYE par exemple)
inconvénient : Avec VB, les raccourcis ne peuvent pas être
exécutés (certains composants ne sont pas trouvés)
3e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur (pour l'inscription de tous les
composants)
· Je crée sur chaque poste utilisateur un raccourci
qui pointe plutôt vers l'application sur le serveur
Avantage : une seule mise à jour à faire sur le serveur en
cas de nouvelle version inconvénient : ???
Merci pour votre contribution.
c'est pas mal ! dommage de passer par un batch
c'est pas mal ! dommage de passer par un batch
c'est pas mal ! dommage de passer par un batch
"Bismark Prods" a écrit dans le message de
news:
> c'est pas mal ! dommage de passer par un batch
>
Je ne connais pas d'autre moyen de remplacer un exe qui tourne (sauf de
faire un exe "lanceur" qui fait la vérif puis lance le vrai exe)
"Bismark Prods" <no_xanaia@urbanet.ch_spam> a écrit dans le message de
news:uy8lPCkjDHA.1808@TK2MSFTNGP09.phx.gbl...
> c'est pas mal ! dommage de passer par un batch
>
Je ne connais pas d'autre moyen de remplacer un exe qui tourne (sauf de
faire un exe "lanceur" qui fait la vérif puis lance le vrai exe)
"Bismark Prods" a écrit dans le message de
news:
> c'est pas mal ! dommage de passer par un batch
>
Je ne connais pas d'autre moyen de remplacer un exe qui tourne (sauf de
faire un exe "lanceur" qui fait la vérif puis lance le vrai exe)