On-line: PSP, tnsr2, гостей 0. Всего: 2 [подробнее..]
АвторСообщение





Пост N: 4
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 22.07.08 16:11. Заголовок: Как открыть папку с помощью ShellExecute()


Здравствуйте !
Подскажите пожалуйста как открыть в Проводнике Windows папку с помощью команды
ShellExecute.
Пытался так:
CurrentPath:=SUBSTR(EXENAME(), 1, RAT("\",EXENAME() ) - 0)
ShellExecute(,"open","explorer",CurrentPath,,SW_SHOWNORMAL)

Но что-то не работает !!!

Спасибо: 0 
Профиль
Ответов - 3 [только новые]


постоянный участник




Пост N: 623
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.07.08 17:58. Заголовок: Можно попробовать и ..


Можно попробовать и через вызов системных DLL, типа:

DllCall( "shell32.dll", DLL_STDCALL, "ShellExecuteA", NIL, "open", "http://clipper.borda.ru", NIL, NIL, 1 )

только я не знаю какую DLL вызывать и какие параметры задавать !


Спасибо: 1 
Профиль





Пост N: 6
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 22.07.08 23:43. Заголовок: Спасибо, разобрался:..


Спасибо, разобрался:

#define CSIDL_WINDOWS 0x0024 // GetWindowsDirectory()
#define CSIDL_SYSTEM 0x0025 // GetSystemDirectory()
#define DLL_STDCALL 32 // for run Dll


Function MAIN()

LOCAL cPathWin, cPath

cPathWin := C_FOLDER(CSIDL_WINDOWS)
cPath := Curdrive()+":\"
? cPathWin
? cPath
wait

DllCall( "shell32.dll", DLL_STDCALL, "ShellExecuteA", NIL, "open", cPathWin+"\explorer.exe", cPath, NIL, 1 )

RETURN NIL


#pragma BEGINDUMP
// из минигуи

#include <windows.h>
#include <hbapi.h>
#include <shlobj.h>

HB_FUNC( C_FOLDER ) // Contributed By Ryszard Ry№ko
{
char *lpBuffer = (char*) hb_xgrab( MAX_PATH+1);
LPITEMIDLIST pidlBrowse; // PIDL selected by user
SHGetSpecialFolderLocation(GetActiveWindow(), hb_parni(1), &pidlBrowse) ;
SHGetPathFromIDList(pidlBrowse, lpBuffer);
hb_retc(lpBuffer);
hb_xfree( lpBuffer);
}

#pragma ENDDUMP



Спасибо: 0 
Профиль
постоянный участник




Пост N: 635
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.07.08 17:30. Заголовок: Можно проще: :sm12:..


Можно проще:

ShellExecute(, 'explore', CurDrive()+":"+DirName(), , , SW_SHOWNORMAL)

Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 89
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет