Существует ли способ установить путь среды программно в C++ в Windows?

Вы используете np.size() неправильно, он не сообщает вам, сколько строк или столбцов в вашем списке, но количество элементов в массиве, в вашем случае - 9. Вы можете использовать форму вашего списка следующим образом:

def symmetrize(x):

    ## The symmetrized matrix that is returned
    y = np.zeros(np.shape(x))

    ## For loop for each element (i,j) in the matrix
    for i in range(x.shape[0]):
        for j in range(x.shape[1]):
            if i == j:
                y[i,j] = x[i,j]
            else:
                y[i,j] = x[i,j] + x[j,i]
    return y

17
задан Cœur 3 July 2017 в 18:06
поделиться

5 ответов

MSDN Говорит :

Вызов SetEnvironmentVariable не имеет никакого эффекта на системные переменные. , Чтобы программно добавить или изменить системные переменные, добавьте их к ключу реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment, затем широковещательно передайте сообщение WM_SETTINGCHANGE с набором lParam к строке "Среда". Это позволяет приложения, такие как оболочка, для взятия обновлений. Обратите внимание, что значения переменных среды, перечисленных в этом ключе, ограничены 1 024 символами.

26
ответ дан 30 November 2019 в 11:13
поделиться

Как был указан ранее, для изменения ПУТИ в , уровень машины просто изменяет этот ключ реестра:

HLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

, Но можно также установить ПУТЬ в уровень пользователя путем изменения этого ключа реестра:

HKEY_CURRENT_USER\Environment\Path

И можно также установить ПУТЬ в прикладной уровень путем добавления, что application\Path назначает в этот ключ реестра:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\
10
ответ дан 30 November 2019 в 11:13
поделиться

Нет никакого API - изменение реестра является способом сделать это. Измененное значение будет использоваться для процессов, запускающихся после того, как изменение было внесено.

Также: Заметьте, что запущенные приложения должны активно обработать измененное сообщение настроек и многих (большинство?) не делают так.

3
ответ дан 30 November 2019 в 11:13
поделиться

Если Вы хотите сделать это через реестр, Вы могли бы хотеть посмотреть на исходный код этот программа.

Microsoft также обеспечивает маленькую утилиту командной строки, названную setx с инструментарии ресурса , который позволит Вам сделать это. Между прочим, регулярная команда набора просто позволяет Вам определить переменные окружения, я думаю.

2
ответ дан 30 November 2019 в 11:13
поделиться

Да Вы корректны. Также необходимо произвести эти настройки, не выходя из системы

, Отправляют сообщение широкого кастинга ко всем окнам SETTINGCHANGE для параметра (LPARAM) "Среда" с SMTO_ABORTIFHUNG для некоторых миллисекунд (5000) SendMessageTimeout API использования.

Это - то, что setX.exe, которому предоставляют ресурс делает Kit.

2
ответ дан 30 November 2019 в 11:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: