Re: Запуск скринсейвера
От: sjukov Украина  
Дата: 21.10.05 07:51
Оценка:
ShellExecute( NULL, "open", "c:\\screensave.exe", "-s", "c:\\", SW_SHOW );
Вот в таком варианте получилось, если переименовать *.scr в *.exe .
Если убрать "-s" и оставить пустой параметр "-s" то отобразится окно настроек скринсейвера.


"y0prst" <45523@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:1447729@news.rsdn.ru...
>Я пишу менеджер скринсейверов. Моя проблема описывается очень просто: я не могу запустить скринсейвер по имени файла. Следующий код запускает конфигурацию скринсейвера:
>
> STARTUPINFO si;
> si.cb = sizeof(si);
> PROCESS_INFORMATION pi;
> ZeroMemory( &si, sizeof(si) );
> ZeroMemory( &pi, sizeof(pi) );
> CreateProcess (
> filename, //LPCTSTR lpApplicationName,
> NULL, //LPTSTR lpCommandLine,
> NULL, //LPSECURITY_ATTRIBUTES lpProcessAttributes,
> NULL, //LPSECURITY_ATTRIBUTES lpThreadAttributes,
> false, //BOOL bInheritHandles,
> 0, //DWORD dwCreationFlags,
> NULL, //LPVOID lpEnvironment,
> NULL, //LPCTSTR lpCurrentDirectory,
> &si, //LPSTARTUPINFO lpStartupInfo,
> &pi//LPPROCESS_INFORMATION lpProcessInformation
> );
>

> Никакие значения lpCommandLine (а я пробовал -s, /s, s) не изменяют такого поведения (скринсейвер не показывается).
>
> Кроме того, я пытался импортировать функцию ScreenSaverProc из файла скринсейвера, но, судя по всему, её там нет (по крайней мере, указатель на неё после попытки импорта -- нулевой).
> Вот код импорта:
>
> HMODULE ScreensaverLibrary = LoadLibrary(filename);
> FARPROC ScreenSaverProc = GetProcAddress(ScreensaverLibrary, "ScreenSaverProc"); // значение ScreenSaverProc - 0.
>
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.