begin process at 2012 05 29 22:47:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

Lancement d'un programme via un service


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lancement d'un programme via un service

jeudi 21 décembre 2006 à 17:16:35 | Lancement d'un programme via un service

laetitiavincent

Bonjour tout le monde
Voilà mon problème : j'ai fait un petit prog qui, lorsqu'il y a fermeture de session ou de windows, il me lancer une fonction  toto. Ca fonctionne très bien (je vous ai mis le code en dessous). Mais lorsque je démarre ce prog par un service ac l'utilisateur system, je le vois bien dans les processus démarrés mais il n'est pas pris en compte lors de la fermeture de session. Quelqu'un aurait une idée du pourquoi de la chose ??????????

Merci par avance

#include <windows.h>
#include <string>
#include <stdio.h>
#include <unistd.h>
#include "fonction2.h"

#define IDM_QUIT 1
#define IDM_OPEN 2

LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
                                                LPSTR lpCmdLine, int nCmdShow)
{
    HWND hwnd;
    MSG msg;
    WNDCLASS wc;

    wc.style = 0;
    wc.lpfnWndProc = MainWndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = NULL;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
    wc.lpszMenuName =  NULL;
    wc.lpszClassName = "MaWinClass";

    if(!RegisterClass(&wc)) return FALSE;

    hwnd = CreateWindow("MaWinClass", "Titre", WS_OVERLAPPEDWINDOW,
                                   CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
                                                   NULL, NULL, hinstance, NULL);
    if (!hwnd) return FALSE;

    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

       while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
/******************************************************************************/

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
         case WM_CREATE:     return 0;

        case WM_QUERYENDSESSION :
          toto(lParam);
            return 0;
           

        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
 
     default:
            return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
}



 Laetitia

jeudi 21 décembre 2006 à 20:53:17 | Re : Lancement d'un programme via un service

iso8859

Bonjour,

Tu répondes toi même a ta question.

Quand tu es l'utilisateur system tu ne reçois pas le message WM_QUERYENDSESSION de l'utilisateur principal, et heuresement.
Depuis un service il faut regarder du coté de RegisterServiceCtrlHandlerEx

Rémi

jeudi 21 décembre 2006 à 21:07:46 | Re : Lancement d'un programme via un service

laetitiavincent

Merci mais je ne connais pas RegisterServiceCtrlHandlerEx : c'est quoi ? Comment je l'utilise ?
Et sinon, j ene peux pas lancer ce prog avec l'utilisateur qui a ouvert sa session par exemple ?

 Laetitia
jeudi 21 décembre 2006 à 22:35:55 | Re : Lancement d'un programme via un service

racpp

Administrateur CodeS-SourceS
Salut,
Ton code n'est pas un service Windows.
Tu peux regarder les réponses que je t'avais proposées ICI.
Voici un petit tutorial pour débuter avec les services:
http://chgi.developpez.com/windows/services/



Cette discussion est classée dans : include, hwnd, msg, return, wc


Répondre à ce message

Sujets en rapport avec ce message

ressources et API !!!! [ par Xs ] salut !voila, pour me simplifier la tache, j'utlise les ressources pour creer une boite de dialog (sous VC++ 6).mais j'obtiens, lors de la compilation Fenetre windows en cpp [ par FeelCode ] bon j'essaye de cree une fenetre windows tout simple mai j'ai un probleme de convertion voir le code plus bas.//************************************** Problème graphique avec C [ par le1scorpion1noir ] salut a tous je peux savoir c'est quoi le meilleur logiciel pour programmer en C puis y t il une différence entre le C et le C++ ? je débute et j ess interface en c [ par Med2009 ] salut je suis Mohamed un petit développeur en c et qui désire etre le plus grand développeur dans le monde... WIN32 : Editbox non editable avec une boite de dialogue CHILD [ par Pistol_Pete ] BonjourVoila mon problème: J'ai créé une fenêtre et dans cette fenêtre j'ai une boite de dialogue avec le style WS_CHILD. Tous mes contrôles de cette api window [ par ropars ] Bonjour<br Pb sur un ptit bout de prog en DirectX.... [ par Haldwin ] Salut a tous....Voila j'ai deux ptits pbs quand je lance cette appli ci-dessous... (VC++)La première est q'une fois sur deux ma variable hWnd apres le Colorier un static : HEeeeeeeelp !!! [ par sprintjeffC ] salut @ tousje me mets a la programmation windows en C/C++ (pas VC++ merci ... quitte à faire du microsoft je préfère VB ;-). Je démarrai pas mal et t


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales