keybd_event(69, 0, 0, 0);
keybd_event(91, 0, 0, 0);
keybd_event(69, 0, KEYEVENTF_KEYUP, 0);
keybd_event(91, 0, KEYEVENTF_KEYUP, 0);
имитировать нажатие WIN+E
Код:
Код:
uses ShellAPI;
.............
ShellExecute(Application.Handle, nil, 'explorer.exe', nil, nil, SW_NORMAL);
.............
ShellExecute(Application.Handle, nil, 'explorer.exe', nil, nil, SW_NORMAL);
Вам уже написали ответ который формально решает задачу. Но у меня лично на моём компе кодом от mfender открываются "Мои Документы" вместо "Мой Компьютер"
Если вам необходимо точ в точ поведение как при нажатии WIN + E попробуйте вот такой код:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
TI: TInput;
KI: TKeybdInput;
begin
TI.Itype := INPUT_KEYBOARD;
KI.dwFlags := 0;
KI.wVk := 91;
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
KI.wVk := 69;
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
KI.dwFlags := KEYEVENTF_KEYUP;
KI.wVk := 69;
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
KI.wVk := 91;
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
end;
var
TI: TInput;
KI: TKeybdInput;
begin
TI.Itype := INPUT_KEYBOARD;
KI.dwFlags := 0;
KI.wVk := 91;
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
KI.wVk := 69;
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
KI.dwFlags := KEYEVENTF_KEYUP;
KI.wVk := 69;
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
KI.wVk := 91;
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
end;
Поменяйте в вашем коде первую строчку со второй, и всё будет норм.
Предыдущий ответ можете забыть, я просто написал как сам привык работать с клавой.
По моему задача решена на 1000 процентов )))
Спасибо, разобрался!