![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как "запустить" функцию? [D7, WinXP]
ASoft © (2005-04-13 12:13:00)Уважаемые мастера,
нашел в справке Win32 такую функцию SetEnvVariable(), но Delphi не может ее идентифицировать, какой модуль нужно подключить для ее использования?
PS: SetEnvironmentVariable() есть в модуле Windows, но мне нужна глобальная функция для добавления переменных.
Спасибо.
ASoft (2005-04-15 11:44:00) [1]Digitman[17]
Спасибо, попробую...
А какими другими средствами можно создать переменную окружения [14] п.2, п.3?
Digitman (2005-04-15 09:16:00) [2]идентификатор SetEnvVar экспортируется библ-кой SetupDll.dll
возможно это то что нужно
ASoft (2005-04-15 02:52:00) [3]Я пришел.
Как там на счет SetEnvVariable()?
ASoft (2005-04-14 12:38:00) [4]Digitmanх[14]
Да, уж...
Скорее всего - 2 п.
К примеру, типа "set path=", как раньше в DOS'е было...
И эта переменная "висела" в системе, а еще лучше, была записана и загружалась вместе с остальными переменными окружения.
PS: Этот пост смогу посмотреть теперь только ч/з 15-16 часов.
Всего хорошего
Digitman (2005-04-14 11:45:00) [5]
> ASoft (14.04.05 11:19) [13]
> Да, возможно.
тогда уточни, значение переменной какого конкретно окружения тебе необходимо создать/модифицировать/удалить :
1. Окружения тек.процесса (не фиксируется в реестре, эффективно лишь в контексте тек.процесса)
2. Окружения сеанса тек.пользователя
3. Глобального окружения
ASoft (2005-04-14 11:19:00) [6]Digitman[12]
Да, возможно.
Anatoly Podgoretsky[11] В этом отношение больще нравится совет от ЮЗ, но он явно системно-зависим.
Поясните, если можно.
Digitman (2005-04-14 10:17:00) [7]
> Anatoly Podgoretsky © (14.04.05 09:52) [11]
> Документирована и в MS SDK
не возражаю.
> Это не одно и тоже
тоже не возражаю.
но
> ASoft
следует, наверно, различать глобальные переменные средыи переменные среды тек.пользователя
об этом ты ни словом не обмолвился
Anatoly Podgoretsky (2005-04-14 09:52:00) [8]Digitman © (13.04.05 12:30) [5]
Документирована и в MS SDK
Digitman © (13.04.05 12:39) [8]
Это не одно и тоже. Но я не уверен, стоит ли ее использовать, что то там с документированием не так. В этом отношение больще нравится совет от ЮЗ, но он явно системно-зависим.
ASoft (2005-04-14 03:07:00) [9]Digitman [8] ну и какой глубокий смысл использовать ф-цию из состава SetupAPI, когда для той же самой цели можно задействовать находящуюся прямо перед носом SetEnvironmentVariable() ? .. не понятно ...
SetEnvironmentVariable() используется для текущего открытого процесса.
SetEnvVariable() добавляет или изменяет переменную в системе. Или я ошибаюсь?
Может подскажете как создать новую глобальную переменную среды...
Eraser (2005-04-13 12:39:00) [10]Странно... в Help SDK, который с делфями (7) идёт- есть, правда как-то оформлена криво..., а в MSDN 2004 нету...
Может это какая-то "полуприкладная" функция...
Digitman (2005-04-13 12:39:00) [11]ну и какой глубокий смысл использовать ф-цию из состава SetupAPI, когда для той же самой цели можно задействовать находящуюся прямо перед носом SetEnvironmentVariable() ? .. не понятно ...
Думкин (2005-04-13 12:38:00) [12]"c:\Program Files\Common Files\Borland Shared\MSHelp\WIN32SDK.HLP"
Думкин (2005-04-13 12:33:00) [13]> [5] Digitman © (13.04.05 12:30)
Из Д7 Win32 Developr's Reference
Digitman (2005-04-13 12:30:00) [14]
> Думкин © (13.04.05 12:25) [3]
это какой hlp-файл ?
DiamondShark (2005-04-13 12:28:00) [15]Это из старого Setup API
Думкин (2005-04-13 12:25:00) [16]> [1] Digitman © (13.04.05 12:17)
BOOL SetEnvVariable(LPSTR szName, LPSTR szValue, CMO cmo);
SetEnvVariable sets the specified environment variable to a certain value. The environment variable can also be elongated by specifying the command option flag fAppend or fPrepend. Under Windows NT, the environment variables affected are the ones specified in the registry. Under Windows 95, autoexec.bat is modified to set the values.
Arguments
szName
Specifies the name of the environment variable.
szValue
Specifies the new value that you want to associate with the environment variable.
cmo
Specifies the command option flag. You can use fOverwrite, fAppend, or fPrepend.
Return Value
If the function succeeds, it returns fTrue.
If the function fails, it returns fFalse.
See Also
RemoveEnvVariable
Юрий Зотов (2005-04-13 12:21:00) [17]Выдержка из MSDN:
To programmatically add or modify system environment variables, add them to the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment registry key, then broadcast a WM_SETTINGCHANGE message.
Digitman (2005-04-13 12:17:00) [18]
> нашел в справке Win32 такую функцию SetEnvVariable(),
нет там такой.
есть как раз та самая SetEnvironmentVariable(), в "глобальности" которой ты сомневаешься.
приведи ссылку на SetEnvVariable()....