Habe noch etwas rumgespielt..
Delphi-Quellcode:
// Device
if ID = ID_LIST_DEVICE then
begin
gSprBackground.GD_GetObjectXY(ID_LIST_DEVICE, x, y);
gSprBackground.GD_GetObjectBound(ID_LIST_DEVICE, w, h);
if (HiWord(lp) - y) > h div 2 then
ID := _DOWN
else
ID := _UP;
gSprBackground.GD_SetObjectTextEx(ID_LIST_TEXT, PWideChar(lstDeviceMsg(ID)), true);
PostMessage(MainHandle, WM_COMMAND, MAKELONG(ID_LIST_DEVICE, LBN_SELCHANGE),
HSprBackground);
// selektierten Eintrag suchen
for IntI := 0 to (lstDevice.ListCount(lstDevice.Handle) - 1) do
begin
SelectedDevice := AudioVolume1.AudioDeviceInfo(IntI).DeviceName;
if lstDevice.ListGetText(lstDevice.Handle, 3) = SelectedDevice then
break;
end;
IconIndex := IntI;
case IconIndex of
0:
// Lausprecher
IconHandle := AudioVolume1.LoadMasterIcon('@%SystemRoot%\system32\mmres.dll, -3004');
1:
// Mixer
IconHandle := AudioVolume1.LoadMasterIcon('@%SystemRoot%\system32\mmres.dll, -3018');
2:
// LineIn
IconHandle := AudioVolume1.LoadMasterIcon('@%SystemRoot%\system32\mmres.dll, -3012');
3:
// CDAudio
IconHandle := AudioVolume1.LoadMasterIcon('@%SystemRoot%\system32\mmres.dll, -3020');
4:
// Microfon
IconHandle := AudioVolume1.LoadMasterIcon('@%SystemRoot%\system32\mmres.dll, -3014');
end;
MainClass.CreateMasterIcon(56, 9, IconHandle);
end;
Das Problem bzw. die Fragen die ich nun habe..
1. Funktioniert das unter Win10 also werden die richtigen Icons angezeigt? (erledigt)
2. Was passiert wenn ich einen anderen treiber als Realtek verwende.
3. Beim ändern des Wiedergabegerät gibt es dann ja auch Probleme wie könnte ich das vergleichen? (erledigt)
4. Wenn ich jetzt ein zusätzliches Gerät aktiviere bsp. Realtek Digital Output dann stimmen die Icons auch nicht mehr weil ich dann 6 Einträge anstatt 5 habe. (erledigt)
Wieder so kleine dinge wo ich mit zu kämpfen habe. (Wenn ich die Icons zur Laufzeit anpassen möchte).
Eventuell hat jemand einige Ideen.
(Vergesst es habe es selbst gelöst)
gruss