Как установить значение системного параметра Windows? - Visual Basic .NET
Формулировка задачи:
Всем здравствуйте.
Нашёл пример использования функции API SystemParametersInfo, но он на C++. При попытке его воспроизвести на VB.Net получаю следующее:
При считывании получаем 1. Это ожидаемо.
При установке и проверке считыванием ожидаю получить 3, а получаю число очень похожее на адрес в памяти.
Результата добился следующим образом:
в случае чтения использую объявление API функции таким образом:
в случае установки параметра, объявляю ту же функцию уже по-другому:
Естественно пришлось писать объявления одной и той же API-функции в двух разных приложениях. Возник вопрос:
а возможно ли объявить функцию разными способами в одном и том же приложении? Может быть существует другой подход к этой проблеме?
Решение задачи: «Как установить значение системного параметра Windows?»
textual
Листинг программы
Public Class sysparam1 Public Sub New() End Sub <DllImport("user32.dll", SetLastError:=True)> _ Public Shared Function SystemParametersInfo(ByVal uiAction As UInt32, ByVal uiParam As UInt32, ByRef pvParam As IntPtr, ByVal fWinIni As UInt32) As Boolean End Function Function n(ByVal uiAction As UInt32, ByVal uiParam As UInt32, ByRef pvParam As IntPtr, ByVal fWinIni As UInt32) As Boolean n = SystemParametersInfo(uiAction, uiParam, pvParam, fWinIni) End Function End Class Public Class sysparam2 Public Sub New() End Sub <DllImport("user32.dll", SetLastError:=True)> _ Public Shared Function SystemParametersInfo(ByVal uiAction As UInt32, ByVal uiParam As UInt32, ByVal pvParam As UInt32, ByVal fWinIni As UInt32) As Boolean End Function Function n(ByVal uiAction As UInt32, ByVal uiParam As UInt32, ByRef pvParam As IntPtr, ByVal fWinIni As UInt32) As Boolean n = SystemParametersInfo(uiAction, uiParam, pvParam, fWinIni) End Function End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д