Если вы хотите установить его точное значение с помощью API Core Audio:
using CoreAudioApi;
public class SystemVolumeConfigurator
{
private readonly MMDeviceEnumerator _deviceEnumerator = new MMDeviceEnumerator();
private readonly MMDevice _playbackDevice;
public SystemVolumeConfigurator()
{
_playbackDevice = _deviceEnumerator.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
}
public int GetVolume()
{
return (int)(_playbackDevice.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
}
public void SetVolume(int volumeLevel)
{
if (volumeLevel < 0 || volumeLevel > 100)
throw new ArgumentException("Volume must be between 0 and 100!");
_playbackDevice.AudioEndpointVolume.MasterVolumeLevelScalar = volumeLevel / 100.0f;
}
}
Я не думаю, что существуют любые декомпиляторы машинного кода, которые производят код Паскаля. Большинство "декомпиляторов Delphi" анализирует форму и данные RTTI, но на самом деле не декомпилирует машинный код. Я могу только рекомендовать использовать что-то как DeDe (или подобное программное обеспечение ) для извлечения информации о символе в сочетании с декомпилятором C, затем перевести декомпилируемый код C в Delphi (существует много преобразователей исходного кода там).
Вот список: http://delphi.about.com/od/devutilities/a/decompiling_3.htm (и эта страница упоминает еще немного: http://www.program-transformation.org/Transform/DelphiDecompilers )
я использовал DeDe при случае, но это не действительно все, что мощный, и это не актуально с текущими версиями Delphi (последняя версия, которую это поддерживает, Delphi 7, которому я верю)
Языки как Delphi, C и Компиляция C++ к собственному машинному коду процессора и выходные исполняемые файлы имеют минимальные метаданные в них. Это в отличие от Java или .NET, которые компилируют в объектно-ориентированный платформенно независимый байт-код, который сохраняет названия методов, параметров метода, классов и пространств имен и других метаданных.
, Таким образом, существует намного менее полезная декомпиляция, которая может быть сделана на коде C или Delphi. Однако Delphi обычно встраивал данные формы для любой формы в проекте (сгенерированный $R *.dfm строка), и это также имеет метаданные по всем опубликованным свойствам, таким образом, определенный для Delphi инструмент был бы в состоянии извлечь эту информацию.