mirror of
https://github.com/reactos/reactos.git
synced 2025-05-31 15:08:14 +00:00
[EVENTVWR] Rewrite the way data is copied into the clipboard
CORE-20023 - Besides copying the event information, copy also its formatted data. - Update translations with new IDS_COPY* strings. - Eliminate all statically-sized temporary buffers, in favour of carefully calculating the size, and allocating an adequately sized buffer to hold the data to be copied. - By default, the "title" and event info on the single-line fields, are separated with TABs (to facilitate data import in spreadsheets). Add a mode where, when the user presses the SHIFT key while clicking on the "Copy" button, the separation is instead done with space padding, to be able to prettify information display when copying into text files instead.
This commit is contained in:
parent
85a69768d0
commit
e6f5065f32
27 changed files with 563 additions and 314 deletions
|
@ -12,6 +12,17 @@
|
|||
|
||||
#include <shellapi.h>
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* ReactOS-only feature:
|
||||
* Enable or disable support for copying event info text using space padding
|
||||
* between header titles and data, when pressing the SHIFT key while clicking
|
||||
* on the "Copy" button, instead of using TABs as separators.
|
||||
*
|
||||
* @see CopyEventEntry().
|
||||
**/
|
||||
#define COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
|
||||
// FIXME:
|
||||
#define EVENT_MESSAGE_EVENTTEXT_BUFFER (1024*10)
|
||||
extern WCHAR szTitle[];
|
||||
|
@ -250,83 +261,291 @@ DisplayEventData(
|
|||
HeapFree(GetProcessHeap(), 0, pTextBuffer);
|
||||
}
|
||||
|
||||
static
|
||||
HFONT
|
||||
CreateMonospaceFont(VOID)
|
||||
#ifdef COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
|
||||
static inline
|
||||
int my_cType3ToWidth(WORD wType, wchar_t ucs)
|
||||
{
|
||||
LOGFONTW tmpFont = {0};
|
||||
HFONT hFont;
|
||||
HDC hDC;
|
||||
|
||||
hDC = GetDC(NULL);
|
||||
|
||||
tmpFont.lfHeight = -MulDiv(8, GetDeviceCaps(hDC, LOGPIXELSY), 72);
|
||||
tmpFont.lfWeight = FW_NORMAL;
|
||||
wcscpy(tmpFont.lfFaceName, L"Courier New");
|
||||
|
||||
hFont = CreateFontIndirectW(&tmpFont);
|
||||
|
||||
ReleaseDC(NULL, hDC);
|
||||
|
||||
return hFont;
|
||||
if (wType & C3_HALFWIDTH)
|
||||
return 1;
|
||||
else if (wType & (C3_FULLWIDTH | C3_KATAKANA | C3_HIRAGANA | C3_IDEOGRAPH))
|
||||
return 2;
|
||||
/*
|
||||
* HACK for Wide Hangul characters not recognized by GetStringTypeW(CT_CTYPE3)
|
||||
* See:
|
||||
* https://unicode.org/reports/tr11/
|
||||
* https://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt
|
||||
* https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedEastAsianWidth.txt
|
||||
* (or the /Public/UNIDATA/ files)
|
||||
*/
|
||||
else if ((ucs >= 0x1100 && ucs <= 0x115F) || (ucs >= 0x302E && ucs <= 0x302F) ||
|
||||
(ucs >= 0x3131 && ucs <= 0x318E) || (ucs >= 0x3260 && ucs <= 0x327F) ||
|
||||
(ucs >= 0xA960 && ucs <= 0xA97C) || (ucs >= 0xAC00 && ucs <= 0xD7A3))
|
||||
return 2;
|
||||
else if (wType & (C3_SYMBOL | C3_KASHIDA | C3_LEXICAL | C3_ALPHA))
|
||||
return 1;
|
||||
else // if (wType & (C3_NONSPACING | C3_DIACRITIC | C3_VOWELMARK | C3_HIGHSURROGATE | C3_LOWSURROGATE | C3_NOTAPPLICABLE))
|
||||
return 0;
|
||||
}
|
||||
|
||||
int my_wcwidth(wchar_t ucs)
|
||||
{
|
||||
WORD wType = 0;
|
||||
GetStringTypeW(CT_CTYPE3, &ucs, sizeof(ucs)/sizeof(WCHAR), &wType);
|
||||
return my_cType3ToWidth(wType, ucs);
|
||||
}
|
||||
|
||||
int my_wcswidth(const wchar_t *pwcs, size_t n)
|
||||
{
|
||||
int width = 0;
|
||||
PWORD pwType, pwt;
|
||||
|
||||
pwType = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, n * sizeof(WORD));
|
||||
if (!pwType)
|
||||
return 0;
|
||||
if (!GetStringTypeW(CT_CTYPE3, pwcs, n, pwType))
|
||||
goto Quit;
|
||||
|
||||
for (pwt = pwType; n-- > 0; ++pwt, ++pwcs)
|
||||
{
|
||||
width += my_cType3ToWidth(*pwt, *pwcs);
|
||||
}
|
||||
Quit:
|
||||
HeapFree(GetProcessHeap(), 0, pwType);
|
||||
return width;
|
||||
}
|
||||
|
||||
#endif // COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* Retrieves the already-gathered event information, structure it in
|
||||
* text format and copy it into the clipboard for user consumption.
|
||||
*
|
||||
* The copied event information has the following text format, where
|
||||
* each text line ends with CR-LF newlines:
|
||||
* ```
|
||||
* Event Type: <event_type>\r\n
|
||||
* Event Source: <event_source>\r\n
|
||||
* Event Category: <event_cat>\r\n
|
||||
* Event ID: <event_id>\r\n
|
||||
* Date: <event_date>\r\n
|
||||
* Time: <event_time>\r\n
|
||||
* User: <event_user>\r\n
|
||||
* Computer: <event_computer>\r\n
|
||||
* Description:\r\n
|
||||
* <event_description>\r\n
|
||||
* Data:\r\n
|
||||
* <event...
|
||||
* ...data...
|
||||
* ...if any>\r\n
|
||||
* ```
|
||||
*
|
||||
* For the single-line fields, the spacing between the header title and
|
||||
* information is either a TAB (default), to facilitate data import in
|
||||
* spreadsheet programs, or space-padding (when the user presses the
|
||||
* SHIFT key while copying the data) to prettify information display.
|
||||
* (This latter functionality is supported only if the program is compiled
|
||||
* with the @b COPY_EVTTEXT_SPACE_PADDING_MODE define.)
|
||||
**/
|
||||
static
|
||||
VOID
|
||||
CopyEventEntry(HWND hWnd)
|
||||
CopyEventEntry(
|
||||
_In_ HWND hWnd)
|
||||
{
|
||||
WCHAR tmpHeader[512];
|
||||
WCHAR szEventType[MAX_PATH];
|
||||
WCHAR szSource[MAX_PATH];
|
||||
WCHAR szCategory[MAX_PATH];
|
||||
WCHAR szEventID[MAX_PATH];
|
||||
WCHAR szDate[MAX_PATH];
|
||||
WCHAR szTime[MAX_PATH];
|
||||
WCHAR szUser[MAX_PATH];
|
||||
WCHAR szComputer[MAX_PATH];
|
||||
WCHAR evtDesc[EVENT_MESSAGE_EVENTTEXT_BUFFER];
|
||||
ULONG size = 0;
|
||||
LPWSTR output;
|
||||
#ifdef COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
static const LONG nTabWidth = 4;
|
||||
#endif
|
||||
static const WCHAR szCRLF[] = L"\r\n";
|
||||
struct
|
||||
{
|
||||
WORD uHdrID; // Header string resource ID.
|
||||
WORD nDlgItemID; // Dialog control ID containing the corresponding info.
|
||||
WORD bSameLine : 1; // Info follows header on same line (TRUE) or not (FALSE).
|
||||
WORD bOptional : 1; // Omit if info is empty (TRUE) or keep it (FALSE).
|
||||
PCWCH pchHdrText; // Pointer to header string resource.
|
||||
SIZE_T cchHdrLen; // Header string length (number of characters).
|
||||
SIZE_T cchInfoLen; // Info string length (number of characters).
|
||||
#ifdef COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
UINT nHdrWidth; // Display width of the header string.
|
||||
UINT nSpacesPad; // Padding after header in number of spaces.
|
||||
#endif
|
||||
} CopyData[] =
|
||||
{
|
||||
{IDS_COPY_EVTTYPE, IDC_EVENTTYPESTATIC , TRUE , FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTSRC , IDC_EVENTSOURCESTATIC , TRUE , FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTCAT , IDC_EVENTCATEGORYSTATIC, TRUE , FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTID , IDC_EVENTIDSTATIC , TRUE , FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTDATE, IDC_EVENTDATESTATIC , TRUE , FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTTIME, IDC_EVENTTIMESTATIC , TRUE , FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTUSER, IDC_EVENTUSERSTATIC , TRUE , FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTCOMP, IDC_EVENTCOMPUTERSTATIC, TRUE , FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTTEXT, IDC_EVENTTEXTEDIT , FALSE, FALSE, NULL, 0, 0},
|
||||
{IDS_COPY_EVTDATA, IDC_EVENTDATAEDIT , FALSE, TRUE , NULL, 0, 0},
|
||||
};
|
||||
USHORT i;
|
||||
#ifdef COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
BOOL bUsePad; // Use space padding (TRUE) or not (FALSE, default).
|
||||
UINT nMaxHdrWidth = 0;
|
||||
#endif
|
||||
SIZE_T size = 0;
|
||||
PWSTR output;
|
||||
PWSTR pszDestEnd;
|
||||
size_t cchRemaining;
|
||||
HGLOBAL hMem;
|
||||
|
||||
/* Try to open the clipboard */
|
||||
if (!OpenClipboard(hWnd))
|
||||
return;
|
||||
|
||||
/* Get the formatted text needed to place the content into */
|
||||
size += LoadStringW(hInst, IDS_COPY, tmpHeader, ARRAYSIZE(tmpHeader));
|
||||
|
||||
/* Grab all the information and get it ready for the clipboard */
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTTYPESTATIC, szEventType, ARRAYSIZE(szEventType));
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTSOURCESTATIC, szSource, ARRAYSIZE(szSource));
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTCATEGORYSTATIC, szCategory, ARRAYSIZE(szCategory));
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTIDSTATIC, szEventID, ARRAYSIZE(szEventID));
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTDATESTATIC, szDate, ARRAYSIZE(szDate));
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTTIMESTATIC, szTime, ARRAYSIZE(szTime));
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTUSERSTATIC, szUser, ARRAYSIZE(szUser));
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTCOMPUTERSTATIC, szComputer, ARRAYSIZE(szComputer));
|
||||
size += GetDlgItemTextW(hWnd, IDC_EVENTTEXTEDIT, evtDesc, ARRAYSIZE(evtDesc));
|
||||
|
||||
size++; /* Null-termination */
|
||||
size *= sizeof(WCHAR);
|
||||
#ifdef COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
/* Use space padding only if the user presses SHIFT */
|
||||
bUsePad = !!(GetKeyState(VK_SHIFT) & 0x8000);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Consolidate the information into one big piece and
|
||||
* sort out the memory needed to write to the clipboard.
|
||||
* Grab all the information and get it ready for the clipboard.
|
||||
*/
|
||||
hMem = GlobalAlloc(GMEM_MOVEABLE, size);
|
||||
if (hMem == NULL) goto Quit;
|
||||
|
||||
/* Calculate the necessary string buffer size */
|
||||
for (i = 0; i < _countof(CopyData); ++i)
|
||||
{
|
||||
/* Retrieve the event info string length (without NUL terminator) */
|
||||
CopyData[i].cchInfoLen = GetWindowTextLengthW(GetDlgItem(hWnd, CopyData[i].nDlgItemID));
|
||||
|
||||
/* If no data is present and is optional, ignore it */
|
||||
if ((CopyData[i].cchInfoLen == 0) && CopyData[i].bOptional)
|
||||
continue;
|
||||
|
||||
/* Load the header string from resources */
|
||||
CopyData[i].cchHdrLen = LoadStringW(hInst, CopyData[i].uHdrID, (PWSTR)&CopyData[i].pchHdrText, 0);
|
||||
size += CopyData[i].cchHdrLen;
|
||||
|
||||
if (CopyData[i].bSameLine)
|
||||
{
|
||||
/* The header and info are on the same line */
|
||||
#ifdef COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
if (bUsePad)
|
||||
{
|
||||
/* Retrieve the maximum header string displayed
|
||||
* width for computing space padding later */
|
||||
CopyData[i].nHdrWidth = my_wcswidth(CopyData[i].pchHdrText, CopyData[i].cchHdrLen);
|
||||
nMaxHdrWidth = max(nMaxHdrWidth, CopyData[i].nHdrWidth);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* Count a TAB separator */
|
||||
size++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The data is on a separate line, count a newline */
|
||||
size += _countof(szCRLF)-1;
|
||||
}
|
||||
|
||||
/* Count the event info string and the newline that follows it */
|
||||
size += CopyData[i].cchInfoLen;
|
||||
size += _countof(szCRLF)-1;
|
||||
}
|
||||
#ifdef COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
if (bUsePad)
|
||||
{
|
||||
/* Round nMaxHdrWidth to the next TAB width, and
|
||||
* compute the space padding for each field */
|
||||
UINT nSpaceWidth = 1; // my_wcwidth(L' ');
|
||||
nMaxHdrWidth = ((nMaxHdrWidth / nTabWidth) + 1) * nTabWidth;
|
||||
for (i = 0; i < _countof(CopyData); ++i)
|
||||
{
|
||||
/* If no data is present and is optional, ignore it */
|
||||
if ((CopyData[i].cchInfoLen == 0) && CopyData[i].bOptional)
|
||||
continue;
|
||||
|
||||
/* If the data is on a separate line, ignore padding */
|
||||
if (!CopyData[i].bSameLine)
|
||||
continue;
|
||||
|
||||
/* Compute the padding */
|
||||
CopyData[i].nSpacesPad = (nMaxHdrWidth - CopyData[i].nHdrWidth) / nSpaceWidth;
|
||||
size += CopyData[i].nSpacesPad;
|
||||
}
|
||||
}
|
||||
#endif // COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
/* Add NUL-termination */
|
||||
size++;
|
||||
|
||||
/*
|
||||
* Consolidate the information into a single buffer to copy in the clipboard.
|
||||
*/
|
||||
hMem = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, size * sizeof(WCHAR));
|
||||
if (!hMem)
|
||||
goto Quit;
|
||||
|
||||
output = GlobalLock(hMem);
|
||||
if (output == NULL)
|
||||
if (!output)
|
||||
{
|
||||
GlobalFree(hMem);
|
||||
goto Quit;
|
||||
}
|
||||
|
||||
StringCbPrintfW(output, size,
|
||||
tmpHeader, szEventType, szSource, szCategory, szEventID,
|
||||
szDate, szTime, szUser, szComputer, evtDesc);
|
||||
/* Build the string */
|
||||
pszDestEnd = output;
|
||||
cchRemaining = size;
|
||||
for (i = 0; i < _countof(CopyData); ++i)
|
||||
{
|
||||
SIZE_T sizeDataStr;
|
||||
|
||||
/* If no data is present and is optional, ignore it */
|
||||
if ((CopyData[i].cchInfoLen == 0) && CopyData[i].bOptional)
|
||||
continue;
|
||||
|
||||
/* Copy the header string */
|
||||
StringCchCopyNExW(pszDestEnd, cchRemaining,
|
||||
CopyData[i].pchHdrText, CopyData[i].cchHdrLen,
|
||||
&pszDestEnd, &cchRemaining, 0);
|
||||
|
||||
if (CopyData[i].bSameLine)
|
||||
{
|
||||
/* The header and info are on the same line, add
|
||||
* either the space padding or the TAB separator */
|
||||
#ifdef COPY_EVTTEXT_SPACE_PADDING_MODE
|
||||
if (bUsePad)
|
||||
{
|
||||
UINT j = CopyData[i].nSpacesPad;
|
||||
while (j--)
|
||||
{
|
||||
*pszDestEnd++ = L' ';
|
||||
cchRemaining--;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
*pszDestEnd++ = L'\t';
|
||||
cchRemaining--;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The data is on a separate line, add a newline */
|
||||
StringCchCopyExW(pszDestEnd, cchRemaining, szCRLF,
|
||||
&pszDestEnd, &cchRemaining, 0);
|
||||
}
|
||||
|
||||
/* Copy the event info */
|
||||
sizeDataStr = min(cchRemaining, CopyData[i].cchInfoLen + 1);
|
||||
sizeDataStr = GetDlgItemTextW(hWnd, CopyData[i].nDlgItemID, pszDestEnd, sizeDataStr);
|
||||
pszDestEnd += sizeDataStr;
|
||||
cchRemaining -= sizeDataStr;
|
||||
|
||||
/* A newline follows the data */
|
||||
StringCchCopyExW(pszDestEnd, cchRemaining, szCRLF,
|
||||
&pszDestEnd, &cchRemaining, 0);
|
||||
}
|
||||
/* NUL-terminate the buffer */
|
||||
*pszDestEnd++ = UNICODE_NULL;
|
||||
cchRemaining--;
|
||||
|
||||
GlobalUnlock(hMem);
|
||||
|
||||
|
@ -777,6 +996,27 @@ ClearContents(
|
|||
SetDlgItemTextW(hDlg, IDC_EVENTDATAEDIT, L"");
|
||||
}
|
||||
|
||||
static
|
||||
HFONT
|
||||
CreateMonospaceFont(VOID)
|
||||
{
|
||||
LOGFONTW tmpFont = {0};
|
||||
HFONT hFont;
|
||||
HDC hDC;
|
||||
|
||||
hDC = GetDC(NULL);
|
||||
|
||||
tmpFont.lfHeight = -MulDiv(8, GetDeviceCaps(hDC, LOGPIXELSY), 72);
|
||||
tmpFont.lfWeight = FW_NORMAL;
|
||||
wcscpy(tmpFont.lfFaceName, L"Courier New");
|
||||
|
||||
hFont = CreateFontIndirectW(&tmpFont);
|
||||
|
||||
ReleaseDC(NULL, hDC);
|
||||
|
||||
return hFont;
|
||||
}
|
||||
|
||||
static
|
||||
VOID
|
||||
InitDetailsDlgCtrl(HWND hDlg, PDETAILDATA pData)
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Typ: %s\r\n\
|
||||
Zdroj: %s\r\n\
|
||||
Kategorie: %s\r\n\
|
||||
ID: %s\r\n\
|
||||
Datum: %s\r\n\
|
||||
Čas: %s\r\n\
|
||||
Uživatel: %s\r\n\
|
||||
Počítač: %s\r\n\
|
||||
Popis:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Typ:"
|
||||
IDS_COPY_EVTSRC "Zdroj:"
|
||||
IDS_COPY_EVTCAT "Kategorie:"
|
||||
IDS_COPY_EVTID "ID události:"
|
||||
IDS_COPY_EVTDATE "Datum:"
|
||||
IDS_COPY_EVTTIME "Čas:"
|
||||
IDS_COPY_EVTUSER "Uživatel:"
|
||||
IDS_COPY_EVTCOMP "Počítač:"
|
||||
IDS_COPY_EVTTEXT "Popis:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -222,16 +222,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Typ: %s\r\n\
|
||||
Quelle: %s\r\n\
|
||||
Kategorie: %s\r\n\
|
||||
Ereignis-ID: %s\r\n\
|
||||
Datum: %s\r\n\
|
||||
Zeit: %s\r\n\
|
||||
Benutzer: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Beschreibung:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Typ:"
|
||||
IDS_COPY_EVTSRC "Quelle:"
|
||||
IDS_COPY_EVTCAT "Kategorie:"
|
||||
IDS_COPY_EVTID "Ereignis-ID:"
|
||||
IDS_COPY_EVTDATE "Datum:"
|
||||
IDS_COPY_EVTTIME "Zeit:"
|
||||
IDS_COPY_EVTUSER "Benutzer:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Beschreibung:"
|
||||
IDS_COPY_EVTDATA "Daten:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -223,16 +223,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -224,16 +224,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Tipo de evento: %s\r\n\
|
||||
Fuente del evento: %s\r\n\
|
||||
Categ. del evento: %s\r\n\
|
||||
ID del evento: %s\r\n\
|
||||
Fecha: %s\r\n\
|
||||
Hora: %s\r\n\
|
||||
Usuario: %s\r\n\
|
||||
Equipo: %s\r\n\
|
||||
Descripción:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Tipo de evento:"
|
||||
IDS_COPY_EVTSRC "Fuente del evento:"
|
||||
IDS_COPY_EVTCAT "Categ. del evento:"
|
||||
IDS_COPY_EVTID "ID de evento:"
|
||||
IDS_COPY_EVTDATE "Fecha:"
|
||||
IDS_COPY_EVTTIME "Hora:"
|
||||
IDS_COPY_EVTUSER "Usuario:"
|
||||
IDS_COPY_EVTCOMP "Equipo:"
|
||||
IDS_COPY_EVTTEXT "Descripción:"
|
||||
IDS_COPY_EVTDATA "Datos:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -222,16 +222,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Type d'événement : %s\r\n\
|
||||
Source de l'événement : %s\r\n\
|
||||
Catégorie de l'événement : %s\r\n\
|
||||
ID de l'événement : %s\r\n\
|
||||
Date : %s\r\n\
|
||||
Heure : %s\r\n\
|
||||
Utilisateur : %s\r\n\
|
||||
Ordinateur : %s\r\n\
|
||||
Description :\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Type de l'événement :"
|
||||
IDS_COPY_EVTSRC "Source de l'événement :"
|
||||
IDS_COPY_EVTCAT "Catégorie de l'événement :"
|
||||
IDS_COPY_EVTID "ID de l'événement :"
|
||||
IDS_COPY_EVTDATE "Date :"
|
||||
IDS_COPY_EVTTIME "Heure :"
|
||||
IDS_COPY_EVTUSER "Utilisateur :"
|
||||
IDS_COPY_EVTCOMP "Ordinateur :"
|
||||
IDS_COPY_EVTTEXT "Description :"
|
||||
IDS_COPY_EVTDATA "Données :"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -222,16 +222,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -222,16 +222,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
イベントの種類: %s\r\n\
|
||||
イベントのソース: %s\r\n\
|
||||
イベントのカテゴリ: %s\r\n\
|
||||
イベント ID: %s\r\n\
|
||||
日付: %s\r\n\
|
||||
時刻: %s\r\n\
|
||||
ユーザー: %s\r\n\
|
||||
コンピューター: %s\r\n\
|
||||
説明:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "イベントの種類:"
|
||||
IDS_COPY_EVTSRC "イベントのソース:"
|
||||
IDS_COPY_EVTCAT "イベントのカテゴリ:"
|
||||
IDS_COPY_EVTID "イベント ID:"
|
||||
IDS_COPY_EVTDATE "日付:"
|
||||
IDS_COPY_EVTTIME "時刻:"
|
||||
IDS_COPY_EVTUSER "ユーザー:"
|
||||
IDS_COPY_EVTCOMP "コンピューター:"
|
||||
IDS_COPY_EVTTEXT "説明:"
|
||||
IDS_COPY_EVTDATA "データ:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -224,16 +224,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Typ zdarzenia: %s\r\n\
|
||||
Źródło zdarzenia: %s\r\n\
|
||||
Kategoria zdarzenia: %s\r\n\
|
||||
Idnetyfikator Zdarzenia: %s\r\n\
|
||||
Data: %s\r\n\
|
||||
Czas: %s\r\n\
|
||||
Użytkownik: %s\r\n\
|
||||
Komputer: %s\r\n\
|
||||
Opis:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Typ zdarzenia:"
|
||||
IDS_COPY_EVTSRC "Źródło zdarzenia:"
|
||||
IDS_COPY_EVTCAT "Kategoria zdarzenia:"
|
||||
IDS_COPY_EVTID "Identyfikator zdarzenia:"
|
||||
IDS_COPY_EVTDATE "Data:"
|
||||
IDS_COPY_EVTTIME "Czas:"
|
||||
IDS_COPY_EVTUSER "Użytkownik:"
|
||||
IDS_COPY_EVTCOMP "Komputer:"
|
||||
IDS_COPY_EVTTEXT "Opis:"
|
||||
IDS_COPY_EVTDATA "Dane:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -211,7 +211,7 @@ STRINGTABLE
|
|||
BEGIN
|
||||
IDS_COLUMNTYPE "Tipo"
|
||||
IDS_COLUMNDATE "Data"
|
||||
IDS_COLUMNTIME "Hora"
|
||||
IDS_COLUMNTIME "Tempo"
|
||||
IDS_COLUMNSOURCE "Fonte"
|
||||
IDS_COLUMNCATEGORY "Categoria"
|
||||
IDS_COLUMNEVENT "Evento"
|
||||
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Tipo de evento:"
|
||||
IDS_COPY_EVTSRC "Fonte do evento:"
|
||||
IDS_COPY_EVTCAT "Categoria:"
|
||||
IDS_COPY_EVTID "ID do evento:"
|
||||
IDS_COPY_EVTDATE "Data:"
|
||||
IDS_COPY_EVTTIME "Tempo:"
|
||||
IDS_COPY_EVTUSER "Usuário:"
|
||||
IDS_COPY_EVTCOMP "Computador:"
|
||||
IDS_COPY_EVTTEXT "Descrição:"
|
||||
IDS_COPY_EVTDATA "Dados:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Tipo de evento: %s\r\n\
|
||||
Origem do evento: %s\r\n\
|
||||
Categoria: %s\r\n\
|
||||
ID do Evento: %s\r\n\
|
||||
Data: %s\r\n\
|
||||
Hora: %s\r\n\
|
||||
Utilizador: %s\r\n\
|
||||
Computador: %s\r\n\
|
||||
Descrição:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Tipo de evento:"
|
||||
IDS_COPY_EVTSRC "Origem do evento:"
|
||||
IDS_COPY_EVTCAT "Categoria:"
|
||||
IDS_COPY_EVTID "ID do evento:"
|
||||
IDS_COPY_EVTDATE "Data:"
|
||||
IDS_COPY_EVTTIME "Hora:"
|
||||
IDS_COPY_EVTUSER "Utilizador:"
|
||||
IDS_COPY_EVTCOMP "Computador:"
|
||||
IDS_COPY_EVTTEXT "Descrição:"
|
||||
IDS_COPY_EVTDATA "Dados:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -93,7 +93,7 @@ BEGIN
|
|||
EDITTEXT IDC_EVENTCATEGORYSTATIC, 140, 15, 82, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
|
||||
LTEXT "T&ip:", IDC_STATIC, 8, 25, 31, 8
|
||||
EDITTEXT IDC_EVENTTYPESTATIC, 46, 25, 47, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
|
||||
LTEXT "ID &Eveniment:", IDC_STATIC, 103, 25, 36, 8
|
||||
LTEXT "ID &eveniment:", IDC_STATIC, 103, 25, 36, 8
|
||||
EDITTEXT IDC_EVENTIDSTATIC, 140, 25, 82, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
|
||||
LTEXT "&Utilizator:", IDC_STATIC, 8, 35, 36, 8
|
||||
EDITTEXT IDC_EVENTUSERSTATIC, 46, 35, 152, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
|
||||
|
@ -218,21 +218,21 @@ BEGIN
|
|||
IDS_COLUMNCATEGORY "Categorie"
|
||||
IDS_COLUMNEVENT "Eveniment"
|
||||
IDS_COLUMNUSER "Utilizator"
|
||||
IDS_COLUMNCOMPUTER "Computer"
|
||||
IDS_COLUMNCOMPUTER "Calculator"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Tip eveniment: %s\r\n\
|
||||
Sursă eveniment: %s\r\n\
|
||||
Categorie eveniment: %s\r\n\
|
||||
ID eveniment: %s\r\n\
|
||||
Dată: %s\r\n\
|
||||
Oră: %s\r\n\
|
||||
Utilizator: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Descriere:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Tip eveniment:"
|
||||
IDS_COPY_EVTSRC "Sursă eveniment:"
|
||||
IDS_COPY_EVTCAT "Categorie eveniment:"
|
||||
IDS_COPY_EVTID "ID eveniment:"
|
||||
IDS_COPY_EVTDATE "Dată:"
|
||||
IDS_COPY_EVTTIME "Oră:"
|
||||
IDS_COPY_EVTUSER "Utilizator:"
|
||||
IDS_COPY_EVTCOMP "Calculator:"
|
||||
IDS_COPY_EVTTEXT "Descriere:"
|
||||
IDS_COPY_EVTDATA "Date:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -225,16 +225,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Тип события: %s\r\n\
|
||||
Источник события: %s\r\n\
|
||||
Категория события: %s\r\n\
|
||||
ID события: %s\r\n\
|
||||
Дата: %s\r\n\
|
||||
Время: %s\r\n\
|
||||
Пользователь: %s\r\n\
|
||||
Компьютер: %s\r\n\
|
||||
Описание:\n%s"
|
||||
IDS_COPY_EVTTYPE "Тип события:"
|
||||
IDS_COPY_EVTSRC "Источник события:"
|
||||
IDS_COPY_EVTCAT "Категория события:"
|
||||
IDS_COPY_EVTID "ID события:"
|
||||
IDS_COPY_EVTDATE "Дата:"
|
||||
IDS_COPY_EVTTIME "Время:"
|
||||
IDS_COPY_EVTUSER "Пользователь:"
|
||||
IDS_COPY_EVTCOMP "Компьютер:"
|
||||
IDS_COPY_EVTTEXT "Описание:"
|
||||
IDS_COPY_EVTDATA "Данные:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -221,16 +221,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -222,16 +222,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Olay Türü: %s\r\n\
|
||||
Olay Kaynağı: %s\r\n\
|
||||
Olay Kategorisi: %s\r\n\
|
||||
Olay Kimliği: %s\r\n\
|
||||
Tarih: %s\r\n\
|
||||
Saat: %s\r\n\
|
||||
Kullanıcı: %s\r\n\
|
||||
Bilgisayar: %s\r\n\
|
||||
Tanım:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Olay Türü:"
|
||||
IDS_COPY_EVTSRC "Olay Kaynağı:"
|
||||
IDS_COPY_EVTCAT "Olay Kategorisi:"
|
||||
IDS_COPY_EVTID "Olay Kimliği:"
|
||||
IDS_COPY_EVTDATE "Tarih:"
|
||||
IDS_COPY_EVTTIME "Saat:"
|
||||
IDS_COPY_EVTUSER "Kullanıcı:"
|
||||
IDS_COPY_EVTCOMP "Bilgisayar:"
|
||||
IDS_COPY_EVTTEXT "Tanım:"
|
||||
IDS_COPY_EVTDATA "Veri:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -223,16 +223,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
Event Type: %s\r\n\
|
||||
Event Source: %s\r\n\
|
||||
Event Category: %s\r\n\
|
||||
Event ID: %s\r\n\
|
||||
Date: %s\r\n\
|
||||
Time: %s\r\n\
|
||||
User: %s\r\n\
|
||||
Computer: %s\r\n\
|
||||
Description:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "Event Type:"
|
||||
IDS_COPY_EVTSRC "Event Source:"
|
||||
IDS_COPY_EVTCAT "Event Category:"
|
||||
IDS_COPY_EVTID "Event ID:"
|
||||
IDS_COPY_EVTDATE "Date:"
|
||||
IDS_COPY_EVTTIME "Time:"
|
||||
IDS_COPY_EVTUSER "User:"
|
||||
IDS_COPY_EVTCOMP "Computer:"
|
||||
IDS_COPY_EVTTEXT "Description:"
|
||||
IDS_COPY_EVTDATA "Data:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -222,16 +222,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
事件类型: %s\r\n\
|
||||
事件源: %s\r\n\
|
||||
事件类别: %s\r\n\
|
||||
事件 ID: %s\r\n\
|
||||
日期: %s\r\n\
|
||||
时间: %s\r\n\
|
||||
用户: %s\r\n\
|
||||
电脑: %s\r\n\
|
||||
描述:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "事件类型:"
|
||||
IDS_COPY_EVTSRC "事件源:"
|
||||
IDS_COPY_EVTCAT "事件类别:"
|
||||
IDS_COPY_EVTID "事件 ID:"
|
||||
IDS_COPY_EVTDATE "日期:"
|
||||
IDS_COPY_EVTTIME "时间:"
|
||||
IDS_COPY_EVTUSER "用户:"
|
||||
IDS_COPY_EVTCOMP "电脑:"
|
||||
IDS_COPY_EVTTEXT "描述:"
|
||||
IDS_COPY_EVTDATA "数据:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -117,7 +117,7 @@ STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION
|
|||
CAPTION "一般"
|
||||
FONT 9, "新細明體"
|
||||
BEGIN
|
||||
LTEXT "顯示名稱(&D):", IDC_STATIC, 7, 9, 60, 8
|
||||
LTEXT "顯示名稱(&D):", IDC_STATIC, 7, 9, 60, 8
|
||||
EDITTEXT IDC_DISPLAYNAME, 67, 7, 178, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "記錄檔名稱(&L):", IDC_STATIC, 7, 25, 60, 8
|
||||
EDITTEXT IDC_LOGNAME, 67, 23, 178, 12, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
|
||||
|
@ -126,7 +126,7 @@ BEGIN
|
|||
// The following 4 IDC_STATIC shall have accels in ReactOS, although MS doesn't have accels for them.
|
||||
// Translation note: First fill out ALL accels that MS has in this dialog for your language,
|
||||
// and only then as a final step use some remaining unused letters for those 4 controls!
|
||||
LTEXT "大小(&S);", IDC_STATIC, 7, 57, 60, 8
|
||||
LTEXT "大小(&S):", IDC_STATIC, 7, 57, 60, 8
|
||||
EDITTEXT IDC_SIZE_LABEL, 67, 57, 178, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
|
||||
LTEXT "建立日期(&C):", IDC_STATIC, 7, 69, 60, 8
|
||||
EDITTEXT IDC_CREATED_LABEL, 67, 69, 178, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
|
||||
|
@ -179,14 +179,14 @@ BEGIN
|
|||
\n\
|
||||
EventVwr [電腦名稱] [/L:<事件記錄檔案>] [/?]\n\
|
||||
\n\
|
||||
""電腦名稱"" : 指定要連線的遠端電腦\n\
|
||||
""電腦名稱"" :指定要連線的遠端電腦\n\
|
||||
\t以擷取要顯示的事件。如果未指定名稱,\n\
|
||||
\t則使用本地電腦。\n\
|
||||
\n\
|
||||
/L:<事件記錄檔案> : 指定要開啟的事件記錄檔案。\n\
|
||||
/L:<事件記錄檔案> :指定要開啟的事件記錄檔案。\n\
|
||||
\t只支援 .evt 格式檔案 (NT ≤ 5.2)。\n\
|
||||
\n\
|
||||
/? : 顯示這個説明訊息。\n\
|
||||
/? :顯示這個説明訊息。\n\
|
||||
"
|
||||
IDS_EVENTLOGFILE "事件記錄檔案"
|
||||
END
|
||||
|
@ -222,16 +222,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
事件種類: %s\r\n\
|
||||
事件源: %s\r\n\
|
||||
事件種類: %s\r\n\
|
||||
事件 ID: %s\r\n\
|
||||
日期: %s\r\n\
|
||||
時間: %s\r\n\
|
||||
使用者: %s\r\n\
|
||||
電腦: %s\r\n\
|
||||
描述:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "事件種類:"
|
||||
IDS_COPY_EVTSRC "事件源:"
|
||||
IDS_COPY_EVTCAT "事件種類:"
|
||||
IDS_COPY_EVTID "事件 ID:"
|
||||
IDS_COPY_EVTDATE "日期:"
|
||||
IDS_COPY_EVTTIME "時間:"
|
||||
IDS_COPY_EVTUSER "使用者:"
|
||||
IDS_COPY_EVTCOMP "電腦:"
|
||||
IDS_COPY_EVTTEXT "描述:"
|
||||
IDS_COPY_EVTDATA "資料:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -222,16 +222,16 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_COPY "\
|
||||
事件種類: %s\r\n\
|
||||
事件源: %s\r\n\
|
||||
事件種類: %s\r\n\
|
||||
事件 ID: %s\r\n\
|
||||
日期: %s\r\n\
|
||||
時間: %s\r\n\
|
||||
使用者: %s\r\n\
|
||||
電腦: %s\r\n\
|
||||
描述:\r\n%s"
|
||||
IDS_COPY_EVTTYPE "事件種類:"
|
||||
IDS_COPY_EVTSRC "事件源:"
|
||||
IDS_COPY_EVTCAT "事件種類:"
|
||||
IDS_COPY_EVTID "事件 ID:"
|
||||
IDS_COPY_EVTDATE "日期:"
|
||||
IDS_COPY_EVTTIME "時間:"
|
||||
IDS_COPY_EVTUSER "使用者:"
|
||||
IDS_COPY_EVTCOMP "電腦:"
|
||||
IDS_COPY_EVTTEXT "描述:"
|
||||
IDS_COPY_EVTDATA "資料:"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
|
|
@ -130,7 +130,16 @@
|
|||
#define IDS_COLUMNUSER 226
|
||||
#define IDS_COLUMNCOMPUTER 227
|
||||
|
||||
#define IDS_COPY 240
|
||||
#define IDS_COPY_EVTTYPE 240
|
||||
#define IDS_COPY_EVTSRC 241
|
||||
#define IDS_COPY_EVTCAT 242
|
||||
#define IDS_COPY_EVTID 243
|
||||
#define IDS_COPY_EVTDATE 244
|
||||
#define IDS_COPY_EVTTIME 245
|
||||
#define IDS_COPY_EVTUSER 246
|
||||
#define IDS_COPY_EVTCOMP 247
|
||||
#define IDS_COPY_EVTTEXT 248
|
||||
#define IDS_COPY_EVTDATA 249
|
||||
|
||||
#define IDS_NONE 250
|
||||
#define IDS_NOT_AVAILABLE 251
|
||||
|
|
Loading…
Reference in a new issue