Moin Alexander,
ausprobiert hab' ich's nicht, aber diese Funktion müsste Dir weiterhelfen:
Code:
[b]procedure[/b] ConvertPascalShortCut([b]const[/b] p_scIN : TShortCut;[b]var[/b] p_dwModifiers : DWORD;[b]var[/b] p_dwVirtualKeyCode : DWORD);
[b]const[/b]
_iModifier : [b]array[/b] [1..4] [b]of[/b] integer = (MOD_SHIFT,MOD_CONTROL,0,MOD_ALT);
[b]begin[/b]
p_dwModifiers := p_scIN;
[color=#000080]// Die für Modifier entscheidenden Stellen herausfiltern[/color]
p_dwModifiers := p_dwModifiers [b]and[/b] $0000FF00;
[color=#000080]// an die richtige Stelle schieben[/color]
p_dwModifiers := p_dwModifiers [b]shr[/b] 14;
[color=#000080]// und den richtigen Modifier aus der Tabelle holen[/color]
p_dwModifiers := _iModifier[p_dwModifier];
[color=#000080]// Virtual Key herausfiltern[/color]
p_dwVirtualKeyCode := p_scIN [b]and[/b] $000000FF;
[b]end[/b];
Die Umwandlung des Modifiers kann man auch in einer Zeile unterbringen, ich hab's aber mal der Übersicht halber ein wenig weiter aufgedröselt.