2 pir
Думаю, хотя и не поручусь на 100%, что в вашем случае можно проделать аналогичные операции с навигатором и все будет в точности так же, как и на моем. Ведь на обоих стоит один и тот же Windows CE 5.0. Хотя и на своем я всё делал, как говорится, на свой страх и риск, поэтому если есть желание - можете поэкспериментировать
2 Денис Шевченко
Программка для копирования ярлыков очень простенькая. В принципе, для копирования файлов можно наверное обойтись и обычным bat-файлом, хотя я не пробовал.
Вот текст программки на "С". Она (в виде EXE-файла конечно) кладется в папку \MyFlashDisk\Startup и при запуске Windows копирует все файлы *.lnk из папки \MyFlashDisk\Startup\Shortcuts\Desktop на Рабочий стол, и соответсвенно из папки \MyFlashDisk\Startup\Shortcuts\Programs в меню Пуск->Программы.
Код: Выделить всё
//---------------------------------------------------------------------------
// common variables
HANDLE handle;
WIN32_FIND_DATA fd;
TCHAR src_path_file[MAX_PATH];
TCHAR dst_path_file[MAX_PATH];
//---------------------------------------------------------------------------
// function declarations
BOOL CopyShortcutsToDesktop(void);
BOOL CopyShortcutsToPrograms(void);
// helper function declarations
BOOL FileExists(LPCWSTR lpFileName);
//---------------------------------------------------------------------------
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// signal the OS we are started
SignalStarted(_wtol(lpCmdLine));
CopyShortcutsToDesktop();
CopyShortcutsToPrograms();
return 0;
}
//---------------------------------------------------------------------------
// Copy *.lnk files from \MyFlashDisk\Startup\Shortcuts\Desktop\ to \Windows\Desktop\
BOOL CopyShortcutsToDesktop(void)
{
// just exit if nothing to do
handle = FindFirstFile(_T("\\MyFlashDisk\\Startup\\Shortcuts\\Desktop\\*.lnk"), &fd);
if(handle == INVALID_HANDLE_VALUE)
return FALSE;
do
{
if(!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
!(fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN))
{
// prepare source file+path string
wcscpy(src_path_file, _T("\\MyFlashDisk\\Startup\\Shortcuts\\Desktop\\"));
wcscat(src_path_file, fd.cFileName);
// prepare destination file+path string
wcscpy(dst_path_file, _T("\\Windows\\Desktop\\"));
wcscat(dst_path_file, fd.cFileName);
if(!CopyFile(src_path_file, dst_path_file, FALSE))
{
MessageBox(NULL, _T("Error copying shortcut to folder \'\\Windows\\Desktop\'"),
_T("CopyFile failed"), MB_OK | MB_ICONERROR);
FindClose(handle);
return FALSE;
}
}
} while(FindNextFile(handle, &fd));
FindClose(handle);
return TRUE;
}
//---------------------------------------------------------------------------
// Copy *.lnk files from \MyFlashDisk\Startup\Shortcuts\Programs\ to \Windows\Programs\
BOOL CopyShortcutsToPrograms(void)
{
// just exit if nothing to do
handle = FindFirstFile(_T("\\MyFlashDisk\\Startup\\Shortcuts\\Programs\\*.lnk"), &fd);
if(handle == INVALID_HANDLE_VALUE)
return FALSE;
do
{
if(!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
!(fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN))
{
// prepare source file+path string
wcscpy(src_path_file, _T("\\MyFlashDisk\\Startup\\Shortcuts\\Programs\\"));
wcscat(src_path_file, fd.cFileName);
// prepare destination file+path string
wcscpy(dst_path_file, _T("\\Windows\\Programs\\"));
wcscat(dst_path_file, fd.cFileName);
if(!CopyFile(src_path_file, dst_path_file, FALSE))
{
MessageBox(NULL, _T("Error copying shortcut to folder \'\\Windows\\Programs\'"),
_T("CopyFile failed"), MB_OK | MB_ICONERROR);
FindClose(handle);
return FALSE;
}
}
} while(FindNextFile(handle, &fd));
FindClose(handle);
return TRUE;
}
//---------------------------------------------------------------------------
BOOL FileExists(LPCWSTR lpFileName)
{
HANDLE handle;
WIN32_FIND_DATA fd;
handle = FindFirstFile(lpFileName, &fd);
if(handle == INVALID_HANDLE_VALUE)
return FALSE;
FindClose(handle);
return TRUE;
}
//---------------------------------------------------------------------------
А вот и сам exe-шник
http://rapidshare.com/files/151819000/startmgr.exe.html