Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизКак открыть окно Найти похожие ветки
← →
melifaro (2002-12-20 08:40) [0]Доброго времени суток.
Напаролся на проблемму. Уже не знаю где искать.
Ситуация такая - мне нужно открыть стандартное окно "Выполнить", причём тогда, когда эксплорер не работает (т.е. исклучается эмуляция сообщения таскбару для открытия этого окна).
Передебажил все dll"ины в виндах, пересмотрел кучу сайтов. Результата НЕТ. Помогите!
← →
Song (2002-12-20 09:11) [1]Дык эта феня наверно от эксплорера и идёт..
← →
melifaro (2002-12-20 09:15) [2]Нет. Я лично видел программы, в которых окно "Выполнить" вызывается при закрытом эксплорере.
Наверное stdcall"ом ис самого explorer"а... подозреваю...
← →
Игорь Шевченко (2002-12-20 10:00) [3]Один из способов:
//Show the Run-Dialog:
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
keybd_event(Ord("R"), MapVirtualKey(Ord("R"), 0), 0, 0);
keybd_event(Ord("R"), MapVirtualKey(Ord("R"), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0)
Автор - Thomas Shutz
← →
melifaro (2002-12-20 11:19) [4]2 Игорь Шевченко - как раз он-то и НЕ подходит. Нет эксплорера - нечего нажимать.
← →
Игорь Шевченко (2002-12-20 11:35) [5]melifaro © (20.12.02 11:19)
Shell32.dll или ShlwApi.dll надо смотреть, диалог оттуда вызывается. Но экспортируемая функция номерная и, боюсь, сильно зависит от версии Windows.
← →
melifaro (2002-12-20 18:27) [6]Спасибо, глянем. Всё-равно версий не так много, а написать и под каждую можно. :)
← →
Vasily Terekhov (2002-12-23 17:50) [7]procedure TForm1.Button1Click(Sender: TObject);
var
ShellHandle: THandle;
begin
ShellHandle := Windows.LoadLibrary("shell32.dll");
if ShellHandle <> 0 then
SHRunDialog := GetProcAddress(ShellHandle, PChar(61));
if Assigned(SHRunDialog) then
SHRunDialog(Application.Handle,0,nil,nil,nil,0);
end;
← →
Vasily Terekhov (2002-12-23 17:54) [8]Дополнение...
Type
SHRunDialogProc = function (wnd : HWND; Unknown1:integer; Unknown2 : Pointer; szTitle : PChar; szPrompt : PChar; uiFlages : integer) : DWORD; stdcall;
var
SHRunDialog : SHRunDialogProc;
← →
Игорь Шевченко (2002-12-23 18:15) [9]Vasily Terekhov (23.12.02 17:50)
Систему бы еще указать, от версии к версии номер может меняться
← →
DVM (2002-12-23 21:07) [10]Можно свое сделать такое же за полчаса. Мне когда понадобилось, я сделал. Там только сложность с хранением в реестре ранее запускавшихся программ (MRU).
А по поводу использования окна "Run" Explorera:
запуск будет работать криво - нельзя так открыть будет папку, например, т.к. для этого нужен эксплорер.
← →
melifaro (2002-12-24 15:47) [11]2Vasily Terekhov Огромное спасибо :)
Страницы: 1 вся ветка
Текущий архив: 2003.02.06;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c