- improve the start code

- add an edit button on the properties dialog to give admins the option to modify the service config

svn path=/trunk/; revision=28630
This commit is contained in:
Ged Murphy 2007-08-28 19:54:25 +00:00
parent c94ecb5367
commit 07c2f6d0c5
15 changed files with 157 additions and 125 deletions

View file

@ -74,7 +74,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6,6,253,232
CAPTION "Îáùî" CAPTION "Îáùî"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -100,6 +100,7 @@ BEGIN
LTEXT "Ìîæåòå äà çàäàäåòå ïóñêîâè óêàçàíèÿ, êîèòî äà ñå ïðèëîæàò ïðè ïóñêàíå íà óñëóãàòà îò òóê.",IDC_STATIC, 6,177,240,15 LTEXT "Ìîæåòå äà çàäàäåòå ïóñêîâè óêàçàíèÿ, êîèòî äà ñå ïðèëîæàò ïðè ïóñêàíå íà óñëóãàòà îò òóê.",IDC_STATIC, 6,177,240,15
LTEXT "Ïóñêîâè óêàçàòåëè:", IDC_STATIC, 6, 200, 58, 11 LTEXT "Ïóñêîâè óêàçàòåëè:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -74,7 +74,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6,6,253,232
CAPTION "Allgemein" CAPTION "Allgemein"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -98,6 +98,7 @@ BEGIN
LTEXT "Sie können die Startparameter angeben, die übernommen werden sollen, wenn der Dienst von hier aus gestartet wird.",IDC_STATIC, 6,177,240,20 LTEXT "Sie können die Startparameter angeben, die übernommen werden sollen, wenn der Dienst von hier aus gestartet wird.",IDC_STATIC, 6,177,240,20
LTEXT "Startparameter:", IDC_STATIC, 6, 200, 58, 11 LTEXT "Startparameter:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -74,7 +74,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6, 6, 253, 232
CAPTION "General" CAPTION "General"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -98,6 +98,7 @@ BEGIN
LTEXT "You can specify the start parameters that apply when you start the service from here.",IDC_STATIC, 6,177,240,15 LTEXT "You can specify the start parameters that apply when you start the service from here.",IDC_STATIC, 6,177,240,15
LTEXT "Start parameters:", IDC_STATIC, 6, 200, 58, 11 LTEXT "Start parameters:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -75,7 +75,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6,6,253,232
CAPTION "Général" CAPTION "Général"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -99,6 +99,7 @@ BEGIN
LTEXT "Vous pouvez définir les paramètres passés au service lorsque vous le démarrez.",IDC_STATIC, 6,177,240,15 LTEXT "Vous pouvez définir les paramètres passés au service lorsque vous le démarrez.",IDC_STATIC, 6,177,240,15
LTEXT "Paramètres:", IDC_STATIC, 6, 200, 58, 11 LTEXT "Paramètres:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -74,7 +74,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6,6,253,232
CAPTION "Umum" CAPTION "Umum"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -98,6 +98,7 @@ BEGIN
LTEXT "Anda menetapkan parameter mulai yang diterapkan ketika anda memulai layanan dari sini.",IDC_STATIC, 6,177,240,15 LTEXT "Anda menetapkan parameter mulai yang diterapkan ketika anda memulai layanan dari sini.",IDC_STATIC, 6,177,240,15
LTEXT "Parameter Mulai:", IDC_STATIC, 6, 200, 58, 11 LTEXT "Parameter Mulai:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -74,7 +74,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6,6,253,232
CAPTION "General" CAPTION "General"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -98,6 +98,7 @@ BEGIN
LTEXT "Puoi indicarei parametri in uso quando il servizio è avviato da qui.",IDC_STATIC, 6,177,240,15 LTEXT "Puoi indicarei parametri in uso quando il servizio è avviato da qui.",IDC_STATIC, 6,177,240,15
LTEXT "Parametri di avvio:", IDC_STATIC, 6, 200, 58, 11 LTEXT "Parametri di avvio:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -81,7 +81,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6,6,253,232
CAPTION "Ogólny" CAPTION "Ogólny"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -105,6 +105,7 @@ BEGIN
LTEXT "Mo¿esz okreœli parametry pocz¹tkowe, które bêd¹ u¿yte przy uruchomieniu us³ugi z tego miejsca.",IDC_STATIC, 6,177,240,15 LTEXT "Mo¿esz okreœli parametry pocz¹tkowe, które bêd¹ u¿yte przy uruchomieniu us³ugi z tego miejsca.",IDC_STATIC, 6,177,240,15
LTEXT "Parametry uruchomienia:", IDC_STATIC, 6, 200, 58, 11 LTEXT "Parametry uruchomienia:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -73,7 +73,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6,6,253,232
CAPTION "Îáùèå" CAPTION "Îáùèå"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -97,6 +97,7 @@ BEGIN
LTEXT "Ìîæíî óêàçàòü ïàðàìåòðû çàïóñêà, ïðèìåíÿåìûå ïðè çàïóñêå ñëóæáû èç ýòîãî êàòàëîãà.",IDC_STATIC, 6,177,240,15 LTEXT "Ìîæíî óêàçàòü ïàðàìåòðû çàïóñêà, ïðèìåíÿåìûå ïðè çàïóñêå ñëóæáû èç ýòîãî êàòàëîãà.",IDC_STATIC, 6,177,240,15
LTEXT "Ïàðàìåòðû çàïóñêà:", IDC_STATIC, 6, 200, 73, 11 LTEXT "Ïàðàìåòðû çàïóñêà:", IDC_STATIC, 6, 200, 73, 11
EDITTEXT IDC_START_PARAM, 78, 199, 168, 11, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 78, 199, 168, 11, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -83,7 +83,7 @@ BEGIN
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225 IDD_DLG_GENERAL DIALOGEX 6,6,253,232
CAPTION "费枨浠" CAPTION "费枨浠"
FONT 8, "MS Shell Dlg",0,0 FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
@ -107,6 +107,7 @@ BEGIN
LTEXT "へ呈伊颐丁铀勾よ业亚峄玫枰ф愎低灌迷枇甸埂颐悛椐夜 嗔阻亭爻嗝澡零碎好浴颐氛璧莽拐<E88EBD>.",IDC_STATIC, 6,177,240,15 LTEXT "へ呈伊颐丁铀勾よ业亚峄玫枰ф愎低灌迷枇甸埂颐悛椐夜 嗔阻亭爻嗝澡零碎好浴颐氛璧莽拐<E88EBD>.",IDC_STATIC, 6,177,240,15
LTEXT "嗝澡恋楣よ业亚峄玫枰ф:", IDC_STATIC, 6, 200, 58, 11 LTEXT "嗝澡恋楣よ业亚峄玫枰ф:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
END END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225 IDD_DLG_DEPEND DIALOGEX 6,6,253,225

View file

@ -122,7 +122,7 @@ UpdateMainStatusBar(PMAIN_WND_INFO Info)
{ {
SendMessage(Info->hStatus, SendMessage(Info->hStatus,
SB_SIMPLE, SB_SIMPLE,
(WPARAM)Info->InMenuLoop, (WPARAM)Info->bInMenuLoop,
0); 0);
} }
} }
@ -624,6 +624,8 @@ InitMainWnd(PMAIN_WND_INFO Info)
Info->hShortcutMenu = GetSubMenu(Info->hShortcutMenu, Info->hShortcutMenu = GetSubMenu(Info->hShortcutMenu,
0); 0);
Info->bIsUserAnAdmin = IsUserAnAdmin();
return TRUE; return TRUE;
} }
@ -1055,14 +1057,14 @@ MainWndProc(HWND hwnd,
case WM_ENTERMENULOOP: case WM_ENTERMENULOOP:
{ {
Info->InMenuLoop = TRUE; Info->bInMenuLoop = TRUE;
UpdateMainStatusBar(Info); UpdateMainStatusBar(Info);
break; break;
} }
case WM_EXITMENULOOP: case WM_EXITMENULOOP:
{ {
Info->InMenuLoop = FALSE; Info->bInMenuLoop = FALSE;
UpdateMainStatusBar(Info); UpdateMainStatusBar(Info);
break; break;
} }

View file

@ -7,6 +7,7 @@
#include <stdio.h> #include <stdio.h>
#include <tchar.h> #include <tchar.h>
#include <commctrl.h> #include <commctrl.h>
#include <shlobj.h>
#include "resource.h" #include "resource.h"
#ifdef _MSC_VER #ifdef _MSC_VER
@ -30,7 +31,8 @@ typedef struct _MAIN_WND_INFO
INT SelectedItem;/* selection number in the list view */ INT SelectedItem;/* selection number in the list view */
BOOL bDlgOpen; BOOL bDlgOpen;
BOOL InMenuLoop; BOOL bInMenuLoop;
BOOL bIsUserAnAdmin;
} MAIN_WND_INFO, *PMAIN_WND_INFO; } MAIN_WND_INFO, *PMAIN_WND_INFO;
@ -72,6 +74,7 @@ VOID CompleteProgressBar(HWND hProgDlg);
/* query.c */ /* query.c */
ENUM_SERVICE_STATUS_PROCESS* GetSelectedService(PMAIN_WND_INFO Info); ENUM_SERVICE_STATUS_PROCESS* GetSelectedService(PMAIN_WND_INFO Info);
LPQUERY_SERVICE_CONFIG GetServiceConfig(LPTSTR lpServiceName); LPQUERY_SERVICE_CONFIG GetServiceConfig(LPTSTR lpServiceName);
VOID SetServiceConfig(LPQUERY_SERVICE_CONFIG);
LPTSTR GetServiceDescription(LPTSTR lpServiceName); LPTSTR GetServiceDescription(LPTSTR lpServiceName);
LPTSTR GetExecutablePath(LPTSTR lpServiceName); LPTSTR GetExecutablePath(LPTSTR lpServiceName);
BOOL RefreshServiceList(PMAIN_WND_INFO Info); BOOL RefreshServiceList(PMAIN_WND_INFO Info);

View file

@ -190,7 +190,39 @@ GetDlgInfo(PSERVICEPROPSHEET dlgInfo,
0, 0,
(LPARAM)szServiceStatus); (LPARAM)szServiceStatus);
} }
if (dlgInfo->Info->bIsUserAnAdmin)
{
HWND hEdit = GetDlgItem(hwndDlg,
IDC_EDIT);
EnableWindow(hEdit,
TRUE);
} }
}
SaveDlgInfo(PSERVICEPROPSHEET dlgInfo,
HWND hwndDlg)
{
LPQUERY_SERVICE_CONFIG pServiceConfig = NULL;
HWND hList;
DWORD StartUp;
hList = GetDlgItem(hwndDlg, IDC_START_TYPE);
StartUp = SendMessage(hList,
CB_GETCURSEL,
0,
0);
switch (StartUp)
{
case 0: pServiceConfig->dwStartType = SERVICE_AUTO_START; break;
case 1: pServiceConfig->dwStartType = SERVICE_DEMAND_START; break;
case 2: pServiceConfig->dwStartType = SERVICE_DISABLED; break;
}
}
/* /*
@ -258,15 +290,26 @@ GeneralPageProc(HWND hwndDlg,
//SendMessage(Info->hMainWnd, WM_COMMAND, ID_RESUME, 0); //SendMessage(Info->hMainWnd, WM_COMMAND, ID_RESUME, 0);
break; break;
case IDC_EDIT:
{
HWND hName, hDesc, hExePath;
hName = GetDlgItem(hwndDlg, IDC_DISP_NAME);
hDesc = GetDlgItem(hwndDlg, IDC_DESCRIPTION);
hExePath = GetDlgItem(hwndDlg, IDC_EXEPATH);
SendMessage(hName, EM_SETREADONLY, FALSE, 0);
SendMessage(hDesc, EM_SETREADONLY, FALSE, 0);
SendMessage(hExePath, EM_SETREADONLY, FALSE, 0);
}
break;
case IDC_START_PARAM: case IDC_START_PARAM:
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
} }
break; break;
case WM_DESTROY:
break;
case WM_NOTIFY: case WM_NOTIFY:
{ {
LPNMHDR lpnm = (LPNMHDR)lParam; LPNMHDR lpnm = (LPNMHDR)lParam;
@ -296,13 +339,13 @@ DependanciesPageProc(HWND hwndDlg,
WPARAM wParam, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
PMAIN_WND_INFO Info; PSERVICEPROPSHEET dlgInfo;
/* Get the window context */ /* Get the window context */
Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg, dlgInfo = (PSERVICEPROPSHEET)GetWindowLongPtr(hwndDlg,
GWLP_USERDATA); GWLP_USERDATA);
if (Info == NULL && uMsg != WM_INITDIALOG) if (dlgInfo == NULL && uMsg != WM_INITDIALOG)
{ {
return FALSE; return FALSE;
} }
@ -311,12 +354,12 @@ DependanciesPageProc(HWND hwndDlg,
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam); dlgInfo = (PSERVICEPROPSHEET)(((LPPROPSHEETPAGE)lParam)->lParam);
if (Info != NULL) if (dlgInfo != NULL)
{ {
SetWindowLongPtr(hwndDlg, SetWindowLongPtr(hwndDlg,
GWLP_USERDATA, GWLP_USERDATA,
(LONG_PTR)Info); (LONG_PTR)dlgInfo);
} }
} }
break; break;
@ -327,21 +370,6 @@ DependanciesPageProc(HWND hwndDlg,
} }
break; break;
case WM_DESTROY:
break;
case WM_NOTIFY:
{
LPNMHDR lpnm = (LPNMHDR)lParam;
switch (lpnm->code)
{
}
}
break;
} }
return FALSE; return FALSE;
@ -404,7 +432,7 @@ OpenPropSheet(PMAIN_WND_INFO Info)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | PSH_USECALLBACK; psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | PSH_USECALLBACK;// | PSH_MODELESS;
psh.hwndParent = Info->hMainWnd; psh.hwndParent = Info->hMainWnd;
psh.hInstance = hInstance; psh.hInstance = hInstance;
psh.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SM_ICON)); psh.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SM_ICON));

View file

@ -90,6 +90,13 @@ cleanup:
} }
VOID
SetServiceConfig(LPQUERY_SERVICE_CONFIG pServiceConfig)
{
}
LPTSTR LPTSTR
GetServiceDescription(LPTSTR lpServiceName) GetServiceDescription(LPTSTR lpServiceName)
{ {
@ -162,7 +169,6 @@ cleanup:
static BOOL static BOOL
GetServiceList(PMAIN_WND_INFO Info, GetServiceList(PMAIN_WND_INFO Info,
DWORD *NumServices) DWORD *NumServices)

View file

@ -132,6 +132,7 @@
#define IDC_PAUSE 10151 #define IDC_PAUSE 10151
#define IDC_RESUME 10161 #define IDC_RESUME 10161
#define IDC_START_PARAM 10191 #define IDC_START_PARAM 10191
#define IDC_EDIT 10192
/* dependancies dialog */ /* dependancies dialog */
#define IDD_DLG_DEPEND 20001 #define IDD_DLG_DEPEND 20001

View file

@ -19,83 +19,58 @@ DoStartService(PMAIN_WND_INFO Info,
DWORD BytesNeeded = 0; DWORD BytesNeeded = 0;
INT ArgCount = 0; INT ArgCount = 0;
DWORD dwStartTickCount, dwOldCheckPoint; DWORD dwStartTickCount, dwOldCheckPoint;
BOOL bRet = FALSE;
/* open handle to the SCM */
hSCManager = OpenSCManager(NULL, hSCManager = OpenSCManager(NULL,
NULL, NULL,
SC_MANAGER_ALL_ACCESS); SC_MANAGER_ALL_ACCESS);
if (hSCManager == NULL) if (hSCManager == NULL)
{ {
GetError();
return FALSE;
}
/* get a handle to the service requested for starting */
hSc = OpenService(hSCManager, hSc = OpenService(hSCManager,
Info->pCurrentService->lpServiceName, Info->pCurrentService->lpServiceName,
SERVICE_ALL_ACCESS); SERVICE_ALL_ACCESS);
if (hSc == NULL) if (hSc != NULL)
{ {
GetError(); if (StartService(hSc,
return FALSE;
}
/* start the service opened */
if (! StartService(hSc,
ArgCount, ArgCount,
NULL)) NULL))
{ {
GetError(); if (QueryServiceStatusEx(hSc,
return FALSE;
}
/* query the state of the service */
if (! QueryServiceStatusEx(hSc,
SC_STATUS_PROCESS_INFO, SC_STATUS_PROCESS_INFO,
(LPBYTE)&ServiceStatus, (LPBYTE)&ServiceStatus,
sizeof(SERVICE_STATUS_PROCESS), sizeof(SERVICE_STATUS_PROCESS),
&BytesNeeded)) &BytesNeeded))
{ {
GetError();
return FALSE;
}
/* Save the tick count and initial checkpoint. */
dwStartTickCount = GetTickCount(); dwStartTickCount = GetTickCount();
dwOldCheckPoint = ServiceStatus.dwCheckPoint; dwOldCheckPoint = ServiceStatus.dwCheckPoint;
/* loop whilst service is not running */
/* FIXME: needs more control adding. 'Loop' is temparary */
while (ServiceStatus.dwCurrentState != SERVICE_RUNNING) while (ServiceStatus.dwCurrentState != SERVICE_RUNNING)
{ {
DWORD dwWaitTime; DWORD dwWaitTime;
dwWaitTime = ServiceStatus.dwWaitHint / 10; dwWaitTime = ServiceStatus.dwWaitHint / 10;
if( dwWaitTime < 500 ) if(dwWaitTime < 1000)
dwWaitTime = 500; dwWaitTime = 500;
else if ( dwWaitTime > 5000 ) else if (dwWaitTime > 10000)
dwWaitTime = 5000; dwWaitTime = 10000;
IncrementProgressBar(hProgDlg); IncrementProgressBar(hProgDlg);
Sleep(dwWaitTime );
IncrementProgressBar(hProgDlg);
/* wait before checking status */
Sleep(ServiceStatus.dwWaitHint / 8);
/* check status again */
if (!QueryServiceStatusEx(hSc, if (!QueryServiceStatusEx(hSc,
SC_STATUS_PROCESS_INFO, SC_STATUS_PROCESS_INFO,
(LPBYTE)&ServiceStatus, (LPBYTE)&ServiceStatus,
sizeof(SERVICE_STATUS_PROCESS), sizeof(SERVICE_STATUS_PROCESS),
&BytesNeeded)) &BytesNeeded))
{ {
GetError(); break;
return FALSE;
} }
if (ServiceStatus.dwCheckPoint > dwOldCheckPoint) if (ServiceStatus.dwCheckPoint > dwOldCheckPoint)
{ {
/* The service is making progress. increment the progress bar */ /* The service is making progress, increment the progress bar */
IncrementProgressBar(hProgDlg); IncrementProgressBar(hProgDlg);
dwStartTickCount = GetTickCount(); dwStartTickCount = GetTickCount();
dwOldCheckPoint = ServiceStatus.dwCheckPoint; dwOldCheckPoint = ServiceStatus.dwCheckPoint;
@ -109,17 +84,25 @@ DoStartService(PMAIN_WND_INFO Info,
} }
} }
} }
}
}
CloseServiceHandle(hSc); CloseServiceHandle(hSc);
}
CloseServiceHandle(hSCManager);
}
if (ServiceStatus.dwCurrentState == SERVICE_RUNNING) if (ServiceStatus.dwCurrentState == SERVICE_RUNNING)
{ {
CompleteProgressBar(hProgDlg); CompleteProgressBar(hProgDlg);
Sleep(1000); Sleep(1000);
return TRUE; bRet = TRUE;
} }
else else
return FALSE; GetError();
return bRet;
} }