export.c
来自「一个类似windows」· C语言 代码 · 共 93 行
C
93 行
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/export.c
* PURPOSE: Save services to a file
* COPYRIGHT: Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
*
*/
#include "servman.h"
extern HWND hListView;
DWORD GetTextFromListView(TCHAR Text[500], INT row, INT col)
{
LVITEM item;
DWORD NumChars;
ZeroMemory(&item, sizeof(item));
item.mask = LVIF_TEXT;
item.iSubItem = col;
item.pszText = Text;
item.cchTextMax = 500;
NumChars = (INT)SendMessage(hListView, LVM_GETITEMTEXT, row, (LPARAM)&item);
return NumChars;
}
BOOL SaveServicesToFile(LPCTSTR pszFileName)
{
HANDLE hFile;
BOOL bSuccess = FALSE;
hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
TCHAR LVText[500];
TCHAR newl = _T('\n');
TCHAR tab = _T('\t');
DWORD dwTextLength, dwWritten;
INT NumListedServ = 0;
INT i, k;
NumListedServ = ListView_GetItemCount(hListView);
for (i=0; i < NumListedServ; i++)
{
for (k=0; k<5; k++)
{
dwTextLength = GetTextFromListView(LVText, i, k);
if (LVText != NULL)
{
WriteFile(hFile, LVText, sizeof(TCHAR) * dwTextLength, &dwWritten, NULL);
WriteFile(hFile, &tab, sizeof(TCHAR), &dwWritten, NULL);
}
}
WriteFile(hFile, &newl, sizeof(TCHAR), &dwWritten, NULL);
}
CloseHandle(hFile);
bSuccess = TRUE;
}
return bSuccess;
}
VOID ExportFile(HWND hwnd)
{
OPENFILENAME ofn;
TCHAR szFileName[MAX_PATH] = _T("");
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = _T("Text (Tab Delimited)(*.txt)\0*.txt\0Text (Comma Delimited)(*.csv)\0*.csv\0");
ofn.lpstrFile = szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = _T("txt");
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
if(GetSaveFileName(&ofn))
{
if (SaveServicesToFile(szFileName))
return;
}
if (CommDlgExtendedError() != CDERR_GENERALCODES)
MessageBox(NULL, _T("Export to file failed"), NULL, 0);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?