Rosetta can translate most Intel-based apps, including apps that contain just-in-time (JIT) compilers. However, Rosetta doesn’t translate the following executables:
- Kernel extensions
- Virtual Machine apps that virtualize x86_64 computer platforms
Rosetta translates all x86_64 instructions, but it doesn’t support the execution of some newer instruction sets and processor features, such as AVX, AVX2, and AVX512 vector instructions. If you include these newer instructions in your code, execute them only after verifying that they are available. For example, to determine if AVX512 vector instructions are available, use the sysctlbyname function to check the hw.optional.avx512f attribute.
<Window x:Class="ApplicationWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ApplicationWPF"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid PreviewKeyUp="Grid_PreviewKeyUp">
<Label Content="Command1" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/>
<ComboBox Name="comboBox1" HorizontalAlignment="Left" Margin="87,10,0,0" VerticalAlignment="Top" Width="120"/>
<Button Content="Применить" HorizontalAlignment="Left" Margin="212,10,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
<TextBox Name="textBox1" HorizontalAlignment="Left" Height="254" Margin="10,56,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="277"/>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
namespace ApplicationWPF
{
public partial class MainWindow : Window
{
// https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.keys
private Dictionary<string, Key> keys = new Dictionary<string, Key>
{
{ "F1", Key.F1 },
{ "F2", Key.F2 }
};
private Key keyCommand1;
public MainWindow()
{
InitializeComponent();
foreach (KeyValuePair<string, Key> key in keys)
{
comboBox1.Items.Add(key.Key);
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
keyCommand1 = keys[comboBox1.SelectedItem.ToString()];
}
private void Grid_PreviewKeyUp(object sender, KeyEventArgs e)
{
if (e.Key == keyCommand1)
{
textBox1.Text += "Нажата клавиша " + e.Key.ToString() + " - Выполнение команды 1" + Environment.NewLine;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace ApplicationWF
{
public partial class Form1 : Form
{
// https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.keys
private Dictionary<string, Keys> keys = new Dictionary<string, Keys>
{
{ "F1", Keys.F1 },
{ "F2", Keys.F2 }
};
private Keys keyCommand1;
public Form1()
{
InitializeComponent();
KeyPreview = true;
foreach (KeyValuePair<string, Keys> key in keys)
{
comboBox1.Items.Add(key.Key);
}
}
private void button1_Click(object sender, EventArgs e)
{
keyCommand1 = keys[comboBox1.SelectedItem.ToString()];
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == keyCommand1)
{
textBox1.Text += "Нажата клавиша " + e.KeyCode.ToString() + " - Выполнение команды 1" + Environment.NewLine;
}
}
}
}