Empêcher mise en veille sans cession administrateur

Bonjour à tous ...

J'ai créé une application me permettant d'afficher des informations sur plusieurs écrans simultanément.

Le problème que je rencontre c'est que ces écrans se mettre en veille au bout de 5 min automatiquement.

N'étant pas administrateur je n'ai pas accès aux paramètres des ordis.

J'imaginais qu'en ouvrant et en fermant une vidéo VLC toute les 4min j'empecherais la mise en veille.

Qu'en pensez vous?

Est ce que d'autres personnes ont déjà étaient confronté à ce problème ?

Bonjour,

Je pense qu'il faut passer par l'API Windows, un truc du genre :

Option Explicit
Private Const SPI_SETSCREENSAVEACTIVE = 17
Private Const SPIF_UPDATEINIFILE = &H1
Private Const SPIF_SENDWININICHANGE = &H2

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

Public Function ToggleScreenSaverActive(Active As Boolean) As Boolean
'To Activate Screen Saver, set active to true
'to deactivate, set active to false
Dim lActiveFlag As Long
Dim retval As Long
lActiveFlag = IIf(Active, 1, 0)
retval = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, lActiveFlag, 0, 0)
ToggleScreenSaverActive = retval > 0
End Function

Private Sub UserForm_Initialize()
ToggleScreenSaverActive False
End Sub

Private Sub UserForm_Terminate()
ToggleScreenSaverActive True
End Sub

Impeccable ça marche super bien !

Et mon idée de VLC était pourrit alors ?

Merci beaucoup

Toute idée est défendable aussi saugrenue qu'elle soit

Windows est une gigantesque boucle d’événements, et la mise en veille en fait certainement partie. On est bien loin d'un fonctionnement binaire, mais publier le bon événement au travers la bonne fonction est souvent un meilleur moyen d'arriver à ses fins plutôt que de détourner une autre fonction (quoique je ne suis pas contre non plus : parfois seul le résultat compte)

Voilà, tu peux clore le sujet

Encore merci en tout cas .

Je clôture le sujet !

Salut, je suis désolé de te resolliciter mais je rencontre un petit problème avec ta macro.

Elle fonctionne très bien quant le fichier est sur le bureau, mais elle ne marche plus quant il est sur le serveur local (W:).

Est il possible de la modifier quelque chose pour que celà fonctionne ?

Sachant que le fichier sera toujours sur ce serveur local.

Merci d'avance.

Bonjour,

C'est une curiosité pour laquelle je n'ai pas de réponse...

Il faudrait tester :

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Sub Test()
Dim hWndParent As Long, sParentClassName As String
Dim hWndChild As Long, sChildClassName As String, sChildWindow As String

sParentClassName = "XLMAIN"

hWndParent = FindWindow(sParentClassName, vbNullString)
'Application.hWnd  returns the same as above

sChildClassName = "EXCEL7"   
sChildWindow = ActiveWindow.Caption 'in my case "Book1"

hWndChild = FindWindowEx(hWndInt, ByVal 0&, sChildClassName, sChildWindow) 

MsgBox hWndChild   'this returns 0 ie the function didn't find the handle
End Sub

dans les deux cas... et voir si c'est différent.

Ça ne marche toujours pas ...

Mais merci quand même.

Salut ...

Je suis en train de tester mon idée d'ouvrir une vidéo et de la fermer immédiatement toute les 4 min afin d'empêcher la mise en veille.

Mais je rencontre un petit problème :

J'ouvre ma vidéo comme ça :

ActiveWorkbook.FollowHyperlink Address :"W: .../.../ Ma_video.MOV"

mais je n'arrive pas à la fermer.

J ai essayé ça mais ça ne marche pas:

Workbooks (Ma_video).Close False

Aurais tu une idée à me proposer ?

Merci encore.

Rechercher des sujets similaires à "empecher mise veille cession administrateur"