char *SaveFileName(HWND WndParent,char *Title,char *Filter,char *InitDir,char* &OutFileName,char *DefFName,DWORD FilterIndex=0,
DWORD Flags=OFN_HIDEREADONLY|OFN_ENABLESIZING|OFN_LONGNAMES|OFN_EXPLORER)
{
OPENFILENAMEA of={sizeof(of)};
char fn[MAX_PATH];
strcpy(fn,DefFName?DefFName:"");
of.lStructSize=sizeof(of);
of.hwndOwner=WndParent;
of.nMaxFile=MAX_PATH;
of.Flags=Flags;
of.lpstrFilter=Filter;
of.lpstrTitle=Title;
of.lpstrFile=fn;
of.lpstrInitialDir=InitDir;
if (!GetSaveFileName(&of)) return NULL;
OutFileName=(char*)malloc(of.nMaxFile);
memcpy(OutFileName,fn,of.nMaxFile);
return OutFileName;
}
Имя файла в диалоге сохранения
Ситуация такая:
В одной программе есть генератор отчетов. Когда отчет (текстовый файл) сформирован, его можно сохранить - вызывается стандартный диалог сохранения, в нем показывается имя файла от предыдущего сохранения. Как я понял, хранится оно в History текущего юзера.
Вопрос: можно ли с помощью какого-нить АПИ залезть и поменять это имя (есть возможность перед сохранением выполнить внешнюю программу).
С уважением, Валера.
Код:
Параметр DefFName - имя файла по умолчанию.(То, что тебе нужно)- ставишь изменённое имя;
OutFileName - Имя файла, которое юзер выбрал в качестве желаемого.
Цитата:
Originally posted by DWORD
Попробуй вызвать след. функцию для показа диалога сохранения:
Параметр DefFName - имя файла по умолчанию.(То, что тебе нужно)- ставишь изменённое имя;
OutFileName - Имя файла, которое юзер выбрал в качестве желаемого.
Попробуй вызвать след. функцию для показа диалога сохранения:
Код:
char *SaveFileName(HWND WndParent,char *Title,char *Filter,char *InitDir,char* &OutFileName,char *DefFName,DWORD FilterIndex=0,
DWORD Flags=OFN_HIDEREADONLY|OFN_ENABLESIZING|OFN_LONGNAMES|OFN_EXPLORER)
{
OPENFILENAMEA of={sizeof(of)};
char fn[MAX_PATH];
strcpy(fn,DefFName?DefFName:"");
of.lStructSize=sizeof(of);
of.hwndOwner=WndParent;
of.nMaxFile=MAX_PATH;
of.Flags=Flags;
of.lpstrFilter=Filter;
of.lpstrTitle=Title;
of.lpstrFile=fn;
of.lpstrInitialDir=InitDir;
if (!GetSaveFileName(&of)) return NULL;
OutFileName=(char*)malloc(of.nMaxFile);
memcpy(OutFileName,fn,of.nMaxFile);
return OutFileName;
}
DWORD Flags=OFN_HIDEREADONLY|OFN_ENABLESIZING|OFN_LONGNAMES|OFN_EXPLORER)
{
OPENFILENAMEA of={sizeof(of)};
char fn[MAX_PATH];
strcpy(fn,DefFName?DefFName:"");
of.lStructSize=sizeof(of);
of.hwndOwner=WndParent;
of.nMaxFile=MAX_PATH;
of.Flags=Flags;
of.lpstrFilter=Filter;
of.lpstrTitle=Title;
of.lpstrFile=fn;
of.lpstrInitialDir=InitDir;
if (!GetSaveFileName(&of)) return NULL;
OutFileName=(char*)malloc(of.nMaxFile);
memcpy(OutFileName,fn,of.nMaxFile);
return OutFileName;
}
Параметр DefFName - имя файла по умолчанию.(То, что тебе нужно)- ставишь изменённое имя;
OutFileName - Имя файла, которое юзер выбрал в качестве желаемого.
Я уже решил проблему, но за ответ спасибо.
С уважением, Валера.