mirror of
https://github.com/reactos/reactos.git
synced 2024-06-28 17:01:28 +00:00
- change cmd "control" to "control.exe"
- fix over-translated strings - acquire full path for the traget executable and directly invoke CreateProcess - zero initialize param szTemp to fix a possible buffer overflow - fixes bug 3027 svn path=/trunk/; revision=32184
This commit is contained in:
parent
fb6911a1bb
commit
d1741b3c64
|
@ -158,7 +158,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Свойства на системата"
|
||||
IDS_TOOLS_SYSDM_DESCR "Дава сведения закомпютъра."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Предмет"
|
||||
|
|
|
@ -157,7 +157,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Propietats del sistema"
|
||||
IDS_TOOLS_SYSDM_DESCR "Mostra la informacio d'aquest ordinador."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Element"
|
||||
|
|
|
@ -157,7 +157,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Systém"
|
||||
IDS_TOOLS_SYSDM_DESCR "Zobrazí informace o systému."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Položka"
|
||||
|
|
|
@ -158,7 +158,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Systemeigenschaften"
|
||||
IDS_TOOLS_SYSDM_DESCR "Zeigt Informationen über diesen Rechner an."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Element"
|
||||
|
|
|
@ -157,7 +157,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Éäéüôçôåò óõóôÞìáôïò"
|
||||
IDS_TOOLS_SYSDM_DESCR "Åìöáíßæåé ðëçñïöïñßåò ãéá áõôüí ôïí õðïëïãéóôÞ."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Element"
|
||||
|
|
|
@ -157,7 +157,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "System properties"
|
||||
IDS_TOOLS_SYSDM_DESCR "Shows information about this computer."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Element"
|
||||
|
|
|
@ -157,7 +157,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Propriétés système"
|
||||
IDS_TOOLS_SYSDM_DESCR "Affiche/modifie des information à propos de l'ordinateur."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Elément"
|
||||
|
|
|
@ -159,7 +159,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Rendszertulajdonságok"
|
||||
IDS_TOOLS_SYSDM_DESCR "Megjeleníti a számítógép információkat."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Element"
|
||||
|
|
|
@ -157,7 +157,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Properti Sistem"
|
||||
IDS_TOOLS_SYSDM_DESCR "Menampilkan informasi mengenai komputer ini."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Elemen"
|
||||
|
|
|
@ -157,7 +157,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Proprietà del sistema"
|
||||
IDS_TOOLS_SYSDM_DESCR "Mostra informazioni su questo pc."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Elemento"
|
||||
|
|
|
@ -157,7 +157,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "System egenskaper"
|
||||
IDS_TOOLS_SYSDM_DESCR "Vis informasjon om denne datamaskinen."
|
||||
IDS_TOOLS_SYSDM_CMD "kontroll"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Element"
|
||||
|
|
|
@ -177,7 +177,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Systeemeigenschappen"
|
||||
IDS_TOOLS_SYSDM_DESCR "Toont informatie over deze computer"
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Element"
|
||||
|
|
|
@ -163,7 +163,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "W³aœciwoœci systemu"
|
||||
IDS_TOOLS_SYSDM_DESCR "Pokazuje informacje o tym komputerze."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Element"
|
||||
|
|
|
@ -163,7 +163,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Propriedades do sistema"
|
||||
IDS_TOOLS_SYSDM_DESCR "Mostra informações sobre este computador."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Item de inicialização"
|
||||
|
|
|
@ -159,7 +159,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Íàñòðîéêè ñèñòåìû"
|
||||
IDS_TOOLS_SYSDM_DESCR "Ïîêàçàòü èíôîðìàöèþ îá ýòîì êîìïüþòåðå."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Ýëåìåíò"
|
||||
|
|
|
@ -177,7 +177,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "¤Ø³ÊÁºÑµÔ¢Í§Ãкº"
|
||||
IDS_TOOLS_SYSDM_DESCR "áÊ´§¢éÍÁÙÅà¡ÕèÂǡѺ¤ÍÁ¾ÔÇàµÍÃì¹Õé"
|
||||
IDS_TOOLS_SYSDM_CMD "墓嚢で困愾"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Êèǹ»ÃСͺ"
|
||||
|
|
|
@ -165,7 +165,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "Âëàñòèâîñò³ ñèñòåìè"
|
||||
IDS_TOOLS_SYSDM_DESCR "Ïîêàçóº ³íôîðìàö³þ ïðî êîìï'þòåð."
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Åëåìåíò"
|
||||
|
|
|
@ -177,7 +177,7 @@ BEGIN
|
|||
|
||||
IDS_TOOLS_SYSDM_NAME "系统属性"
|
||||
IDS_TOOLS_SYSDM_DESCR "显示这台计算机的属性"
|
||||
IDS_TOOLS_SYSDM_CMD "control"
|
||||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "启动项目"
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<library>version</library>
|
||||
<library>comctl32</library>
|
||||
<library>shell32</library>
|
||||
<library>shlwapi</library>
|
||||
<compilationunit name="unit.c">
|
||||
<file>toolspage.c</file>
|
||||
<file>srvpage.c</file>
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
#include <winuser.h>
|
||||
#include <tchar.h>
|
||||
#include <stdio.h>
|
||||
#include <shlwapi.h>
|
||||
#include <shlobj.h>
|
||||
|
||||
#include "resource.h"
|
||||
#include "msconfig.h"
|
||||
|
|
|
@ -13,13 +13,14 @@ HWND hToolsPage;
|
|||
HWND hToolsListCtrl;
|
||||
HWND hToolsDialog;
|
||||
|
||||
void AddItem ( DWORD, DWORD, DWORD, DWORD );
|
||||
void AddItem ( DWORD, DWORD, DWORD, DWORD, int );
|
||||
void FillListView ( void );
|
||||
|
||||
DWORD ListItems_Cmds[20];
|
||||
DWORD ListItems_Params[20];
|
||||
DWORD ListItems_Locations[20];
|
||||
|
||||
void AddItem ( DWORD name_id, DWORD descr_id, DWORD cmd_id , DWORD param_id ) {
|
||||
void AddItem ( DWORD name_id, DWORD descr_id, DWORD cmd_id , DWORD param_id, int csidl ) {
|
||||
TCHAR szTemp[256];
|
||||
LV_ITEM item;
|
||||
|
||||
|
@ -34,6 +35,7 @@ void AddItem ( DWORD name_id, DWORD descr_id, DWORD cmd_id , DWORD param_id ) {
|
|||
|
||||
ListItems_Cmds[item.iItem] = cmd_id;
|
||||
ListItems_Params[item.iItem] = param_id;
|
||||
ListItems_Locations[item.iItem] = csidl;
|
||||
|
||||
LoadString(hInst, descr_id, szTemp, 256);
|
||||
item.pszText = szTemp;
|
||||
|
@ -42,21 +44,24 @@ void AddItem ( DWORD name_id, DWORD descr_id, DWORD cmd_id , DWORD param_id ) {
|
|||
}
|
||||
|
||||
void FillListView ( void ) {
|
||||
AddItem(IDS_TOOLS_CMD_NAME, IDS_TOOLS_CMD_DESCR, IDS_TOOLS_CMD_CMD, IDS_TOOLS_CMD_PARAM);
|
||||
AddItem(IDS_TOOLS_REGEDIT_NAME, IDS_TOOLS_REGEDIT_DESCR, IDS_TOOLS_REGEDIT_CMD,IDS_TOOLS_REGEDIT_PARAM);
|
||||
AddItem(IDS_TOOLS_SYSDM_NAME, IDS_TOOLS_SYSDM_DESCR, IDS_TOOLS_SYSDM_CMD, IDS_TOOLS_SYSDM_PARAM);
|
||||
AddItem(IDS_TOOLS_INFO_NAME, IDS_TOOLS_INFO_DESCR, IDS_TOOLS_INFO_CMD, IDS_TOOLS_INFO_PARAM);
|
||||
AddItem(IDS_TOOLS_CMD_NAME, IDS_TOOLS_CMD_DESCR, IDS_TOOLS_CMD_CMD, IDS_TOOLS_CMD_PARAM, CSIDL_SYSTEM);
|
||||
AddItem(IDS_TOOLS_REGEDIT_NAME, IDS_TOOLS_REGEDIT_DESCR, IDS_TOOLS_REGEDIT_CMD,IDS_TOOLS_REGEDIT_PARAM, CSIDL_WINDOWS);
|
||||
AddItem(IDS_TOOLS_SYSDM_NAME, IDS_TOOLS_SYSDM_DESCR, IDS_TOOLS_SYSDM_CMD, IDS_TOOLS_SYSDM_PARAM, CSIDL_SYSTEM);
|
||||
AddItem(IDS_TOOLS_INFO_NAME, IDS_TOOLS_INFO_DESCR, IDS_TOOLS_INFO_CMD, IDS_TOOLS_INFO_PARAM, CSIDL_SYSTEM);
|
||||
}
|
||||
|
||||
INT_PTR CALLBACK
|
||||
ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
LV_COLUMN column;
|
||||
TCHAR szTemp[256];
|
||||
TCHAR szTemp[MAX_PATH*2];
|
||||
TCHAR szTemp2[256];
|
||||
TCHAR * Ptr = NULL;
|
||||
LPNMITEMACTIVATE lpnmitem;
|
||||
LPNMHDR nmh;
|
||||
DWORD dwStyle;
|
||||
PROCESS_INFORMATION pi;
|
||||
STARTUPINFO si;
|
||||
|
||||
switch (message)
|
||||
{
|
||||
|
@ -96,9 +101,27 @@ ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
if (ListView_GetSelectionMark(hToolsListCtrl) != -1)
|
||||
{
|
||||
LoadString(hInst, ListItems_Cmds[ListView_GetSelectionMark(hToolsListCtrl)], szTemp, 256);
|
||||
if (SHGetSpecialFolderPath(NULL, szTemp, ListItems_Locations[ListView_GetSelectionMark(hToolsListCtrl)], FALSE))
|
||||
Ptr = PathAddBackslash(szTemp);
|
||||
|
||||
if (!Ptr)
|
||||
Ptr = szTemp;
|
||||
|
||||
szTemp2[0] = _T('\0');
|
||||
LoadString(hInst, ListItems_Cmds[ListView_GetSelectionMark(hToolsListCtrl)], Ptr, 256);
|
||||
LoadString(hInst, ListItems_Params[ListView_GetSelectionMark(hToolsListCtrl)], szTemp2, 256);
|
||||
ShellExecute(0, _T("open"), szTemp, szTemp2, _T(""), SW_NORMAL);
|
||||
if (_tcslen(szTemp2))
|
||||
{
|
||||
_tcscat(szTemp, _T(" "));
|
||||
_tcscat(Ptr, szTemp2);
|
||||
}
|
||||
ZeroMemory(&si, sizeof(STARTUPINFO));
|
||||
si.cb = sizeof(STARTUPINFO);
|
||||
if (CreateProcess(NULL, szTemp, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
|
||||
{
|
||||
CloseHandle(pi.hThread);
|
||||
CloseHandle(pi.hProcess);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -117,6 +140,7 @@ ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
if (lpnmitem->iItem > -1)
|
||||
{
|
||||
LoadString(hInst, ListItems_Cmds[lpnmitem->iItem], szTemp, 256);
|
||||
szTemp2[0] = _T('\0');
|
||||
LoadString(hInst, ListItems_Params[lpnmitem->iItem], szTemp2, 256);
|
||||
_tcscat(szTemp, _T(" "));
|
||||
_tcscat(szTemp, szTemp2);
|
||||
|
@ -129,9 +153,27 @@ ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
lpnmitem = (LPNMITEMACTIVATE) lParam;
|
||||
if (lpnmitem->iItem > -1)
|
||||
{
|
||||
LoadString(hInst, ListItems_Cmds[lpnmitem->iItem], szTemp, 256);
|
||||
if (SHGetSpecialFolderPath(NULL, szTemp, ListItems_Locations[ListView_GetSelectionMark(hToolsListCtrl)], FALSE))
|
||||
Ptr = PathAddBackslash(szTemp);
|
||||
|
||||
if (!Ptr)
|
||||
Ptr = szTemp;
|
||||
|
||||
szTemp2[0] = _T('\0');
|
||||
LoadString(hInst, ListItems_Cmds[lpnmitem->iItem], Ptr, 256);
|
||||
LoadString(hInst, ListItems_Params[lpnmitem->iItem], szTemp2, 256);
|
||||
ShellExecute(0, _T("open"), szTemp, szTemp2, _T(""), SW_NORMAL);
|
||||
if (_tcslen(szTemp2))
|
||||
{
|
||||
_tcscat(szTemp, _T(" "));
|
||||
_tcscat(Ptr, szTemp2);
|
||||
}
|
||||
ZeroMemory(&si, sizeof(STARTUPINFO));
|
||||
si.cb = sizeof(STARTUPINFO);
|
||||
if (CreateProcess(NULL, szTemp, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
|
||||
{
|
||||
CloseHandle(pi.hThread);
|
||||
CloseHandle(pi.hProcess);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue