Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Вниз

Как открыть окно   Найти похожие ветки 

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
14-15924
Безногий Сусанин
2003-01-21 12:21
2003.02.06
Принимаю рационализаторские планы по уничтожению Пентагона...


14-15891
Дмитрий К.К.
2003-01-18 11:17
2003.02.06
Windows NT на сервере


1-15624
Smok_er
2003-01-23 21:45
2003.02.06
И снова MDI


1-15649
malkolinge
2003-01-29 13:46
2003.02.06
Функции обратного вызова и т.ж.


14-15935
Вадим
2003-01-21 05:57
2003.02.06
Кто-нить знает, где народ такую траву берет ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский