Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1485 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Lancer l'appli heure/zone horaire windows depuis C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lancer l'appli heure/zone horaire windows depuis C++

n°1892911
Profil sup​primé
Posté le 09-06-2009 à 00:26:35  answer
 

Salut,
 
Est-il possible de lancer le dialogue Windows de changement d'heure/zone horaire/date via une ligne de commande C++?
 
 

mood
Publicité
Posté le 09-06-2009 à 00:26:35  profilanswer
 

n°1893143
olivthill
Posté le 09-06-2009 à 12:31:45  profilanswer
 

Cette boite de dialogue est une application du panneau de control qui peut être lancée de différentes manières, voir http://vlaurie.com/computers2/Articles/control.htm (mais ce n'est pas l'une des boîtes de dialogue "communes", et donc on ne peut pas la lancer comme la fenêtre de choix d'un fichier ou d'une couleur.)  
 
La ligne de commande la plus simple est :

control timedate.cpl

Testé avec Windows XP, mais il parait qu'il y a eu quelques changements avec Windows Vista. Voir http://blogs.technet.com/deploymen [...] shell.aspx .

n°1893900
Profil sup​primé
Posté le 10-06-2009 à 23:39:27  answer
 

Merci olivthill
 
En effet en utilisant un ShellExecute ca a marche:

Code :
  1. ShellExecute( 0, "open", "control.exe", "sysdm.cpl", 0, SW_SHOW );


 
Par contre maintenant, j'ai un autre probleme. Le SW_SHOW argument ne prend pas en compte la position en z de la fenetre.  
Je lance ce shell depuis un MFC/thread completement independant.
J'ai essaye plusieurs methodes pour pouvoir recuperer un "handle" de la fenetre "Date and Time Properties" mais rien a faire.

Code :
  1. hwnd = FindWindow(NULL,TEXT("Date and Time Properties" ));
  2. SetWindowPos(hwnd,HWND_TOP,100,100,100,100,SWP_NOSIZE);


 
mais hwnd revient "unused".
Donc mes questions sont:
Est il possible de recuperer le handle d'un dialogue qui n'appartient pas au mfc/thread en cours?
J'ai aussi essaye ca
 

Code :
  1. ShellExecute( hwnd, "open", "control.exe", "sysdm.cpl", 0, SW_SHOW );


mais pareil, hwnd revient inutilisable.
Le dernier truc que j'ai essaye est ca:
 

Code :
  1. int g_nCount=0;
  2.    int g_nFount=0;
  3. BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
  4. {
  5.    char strg[81];
  6.    GetWindowText(hwnd,strg,80);
  7.    if(strcmp("System Properties",strg)==0)
  8.    {
  9.       g_nFount=1;
  10.       return FALSE;
  11.    }
  12.    g_nCount++;
  13.    return TRUE;
  14. }
  15. EnumDesktopWindows(NULL, EnumWindowsProc, lParam);


mais sans succes car il y a des dizaines de fenetres et strg semble avoir un nom bizarre (Je n ai rien vu qui ressemblait a Date and Time Properties lors de mon debug)
Quelqu'un a une idee?

n°1894266
Profil sup​primé
Posté le 11-06-2009 à 20:37:22  answer
 

up


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Lancer l'appli heure/zone horaire windows depuis C++

 

Sujets relatifs
Langage C, Projet, Puissance 4 en langage C[C] Fork et Pipe
[C] Image ne s'affiche pas correctement sur un LCDaffichage de l'heure sur une page
Mémoire partagée pour programme WindowsSuppression auto des commentaires C/C++
[C#] Communication WCF entre Silverlight 2 et LinqToSQLvariable global dans un include, unique dans l'appli ?
[C] Ecriture/lecture de float dans un fichierRecupérer texte d'une zone de texte, sur une image
Plus de sujets relatifs à : Lancer l'appli heure/zone horaire windows depuis C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR