Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > "Пуск -> Выполнить", как программно открыть?


Автор: Vitalik 15.5.2006, 00:59
Сабж smile

Возможно ли программно открыть окошко "Пуск -> Выполнить"?.. 
Например, может как-нибудь через rundll32 с параметрами или каким-нибудь другим способом?.. 

Заранее благодарен за всяческие советы по этому поводу! 

Автор: Vitalik 15.5.2006, 18:02
Гы smile
Кому интересно, вот ярлычок, который открывает это окошко smile
Как его сделали для меня пока остается загадкой smile 

Автор: Artiom 16.5.2006, 12:02
скачал - тоже не понял как сделано. Кто знает - объясните пожалуйста 

Автор: RiZ 16.5.2006, 12:28
в ХР  -  хватаем Run мышью и, скажем, на Раб. стол 
а из за разницы версии, в 2000 ярлык не сработает smile 

Автор: trix 16.5.2006, 13:01
Цитата(RiZ @  16.5.2006,  12:28 Найти цитируемый пост)
в ХР  -  хватаем Run мышью и, скажем, на Раб. стол 

неработает

Если просто стереть у ярлыка путь, то он получиться очень похожий, но ссылающийся на мой компьютер 

Автор: ivashkanet 16.5.2006, 13:05
Цитата(trix @  16.5.2006,  13:01 Найти цитируемый пост)
неработает

Как так  smile У меня работает  smile

Добавлено @ 13:08 
Цитата(trix @  16.5.2006,  13:01 Найти цитируемый пост)
Если просто стереть у ярлыка путь

Как это стереть??? У меня нет к нему доступа: user posted image 

Автор: trix 16.5.2006, 13:24
Цитата(ivashkanet @  16.5.2006,  13:05 Найти цитируемый пост)
Как это стереть??? У меня нет к нему доступа:

нет. ты не понял. взять обычный ярлык и стереть у него путь.
Цитата(ivashkanet @  16.5.2006,  13:05 Найти цитируемый пост)
Как так   У меня работает  

в ХР перетащить ярлык Выполнить у меня неполучается, просто нетащится. 

Автор: Artiom 16.5.2006, 13:28
Цитата(trix @  16.5.2006,  12:24 Найти цитируемый пост)
в ХР перетащить ярлык Выполнить у меня неполучается, просто нетащится. 

И у меня - я это в первую голову попробовал 

Автор: RiZ 16.5.2006, 13:28
и что это интересно за тип побъекта (Target type) Run...

Добавлено @ 13:31 
Цитата(Artiom @  16.5.2006,  16:28 Найти цитируемый пост)
Цитата(trix @  16.5.2006,  12:24 )
в ХР перетащить ярлык Выполнить у меня неполучается, просто нетащится. 


И у меня - я это в первую голову попробовал  


значит ограничения в Start Menu стоят на Drag &Drop

Добавлено @ 13:36 
Цитата(ivashkanet @  16.5.2006,  16:05 Найти цитируемый пост)
Цитата(trix @  16.5.2006,  13:01 )
Если просто стереть у ярлыка путь


Как это стереть??? У меня нет к нему доступа: 


наверное он создал ярлык и стер в нем Размещение smile 

Автор: trix 16.5.2006, 15:33
Цитата(RiZ @  16.5.2006,  13:28 Найти цитируемый пост)
наверное он создал ярлык и стер в нем Размещение 

не Размещение, а Объект.


Цитата(Artiom @  16.5.2006,  13:28 Найти цитируемый пост)
Цитата(trix @  16.5.2006,  12:24 )
в ХР перетащить ярлык Выполнить у меня неполучается, просто нетащится. 


И у меня - я это в первую голову попробовал  

не копируются ярлыки, потому-что менюшка в пуске классического вида. если в свойствах поменять, чтобы эта меню показывалась в ХР стиле, то ярлыки будут копироваться. 

Автор: Poseidon 16.5.2006, 17:33
Зафлудили тему smile

Цитата(Vitalik @  15.5.2006,  00:59 Найти цитируемый пост)
Возможно ли программно открыть окошко "Пуск -> Выполнить"?.. 
 Возможно! На каком только языке? На Delphi это делается так (проверял только в ХР, хотя должно работать:
Код
uses ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
  ShellApplication: Variant;
begin
  ShellApplication := CreateOleObject('Shell.Application');
  ShellApplication.FileRun;
end;



Для других языков нужно импортировать по порядковому номеру 61 из Shell32.dll следующие процедуры:

Для Win NT - procedure RunFileDlgW(OwnerWnd: HWND; Icon: HICON; lpstrDirectory: PWideChar; 
  lpstrTitle: PWideChar; lpstrDescription: PWideChar; Flags: Longint); stdcall; 

Для Win 9x  - procedure RunFileDlg(OwnerWnd: HWND; Icon: HICON; lpstrDirectory: PChar; 
  lpstrTitle: PChar; lpstrDescription: PChar; Flags: Longint); stdcall;

msdn в помощь smile


 

Автор: Дрон 16.5.2006, 18:13
Poseidon, самое правильное решение. 
А язык тут действительно не важен. Вот, например, vbs скрипт:
Код
CreateObject("Shell.Application").FileRun

Напишите в блокноте и сохраните с расширением .vbs
А дальше запускайте и радуйтесь smile     

Автор: Poseidon 16.5.2006, 18:31
Цитата(Дрон @  16.5.2006,  18:13 Найти цитируемый пост)
Poseidon, самое правильное решение. 
 А то (где тут довольный смайлик?)

Ой, простите, не удержался smile
 

Автор: SergeCpp 17.5.2006, 13:05
Вот моя программа, писанная именно для этого...

Есть EXE и исходники (VC++ 6) 

Автор: Vitalik 17.5.2006, 21:59
Большое спасибо всем ответившим! smile
Особенно:
SergeCpp, спасибо, это действительно то, что нужно. Вот только так много кода и столько асемблерных вставок, я в шоке smile
Poseidon, спасибо, гораздо более простое решение smile
Дрон, спасибо, самое элегантное решение! Жаль только то, что окошко становится активным только если вызывать из эксплорера или находясь на панели задач... smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)