ShellExecute не открывает файл

Предыдущая тема Следующая тема Перейти вниз

ShellExecute не открывает файл

Сообщение  DEPOzit в Чт Сен 24, 2009 1:18 pm

Собственно проблема в теме.
набиваю к примеру:
#include "windows.bi"
ShellExecute (nil, nil, "notepad.exe", nill, nil, SW_RESTORE)

И выдает ошибку:
FbTemp.bas(452) error 41: Variable not declared, ShellExecute in 'ShellExecute (nil, nil, "hh.exe", nil, nil, SW_RESTORE)'

Возможно ошибка в синтаксисе, или что-то пропустил. Но как именно нужно?
Пробовал уже по всякому...(((

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  Eric-S в Чт Сен 24, 2009 2:13 pm

Я сейчас точно не помню.
Попробуй первым или скорее вторым параметром передать указатель на строку
"open".
Это для открытия файла, например txt, блокнотом.
Или doc вордом.

А можно послать на печать, передав строку
"print".

Для урлов тоже
"open".

Ещё какие-то были параметры, но я не помню.

А с NULL там чего-то было хитрое, но опять же...
У Фроловых глянь.


А вообще, эта функция устарела.
Рекомендуют использовать
CreateProcess(), но я так и не вкурил, как её применять.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  Eric-S в Чт Сен 24, 2009 2:21 pm

Ах, да. Вот нашол у себя код. Попробуй.

Код:

dim file_name as string
dim exec_as as string

file_name = "http://freebasic.net/"
exec_as = "open"

ShellExecuteA( NULL, _
strptr(exec_as), _
strptr(file_name), _
NULL, NULL, SW_SHOWNORMAL )

Должно сработать.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  DEPOzit в Чт Сен 24, 2009 2:29 pm

Спасибо большое! Но я разобрался в чем было дело.)))
Надо было:
#include "windows.bi"
#include "shellapi.bi"
ShellExecute (NULL,null,"notepad.exe",null,null, SW_SHOW)

И еще надо было скинуть файлик shellapi.bi в папку с разрабатываемой программой)))

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  Eric-S в Чт Сен 24, 2009 4:13 pm

Скинуть файлик? Это уже какой-то изврат. Видать глючит где-то. Такого не должно быть. Он должен вызываться из "windows.bi".

А про "open" и NULL, там надо смотреть, потому что у меня NULL не сработал, а "open" сработал.

В прочем это я на MinGW делал.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  DEPOzit в Чт Сен 24, 2009 6:33 pm

Ну как есть. Ща посмотрел и на втором ПК такая же фиговина.

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  electrik в Чт Сен 24, 2009 7:31 pm

shelapi.bi? кидать ненадо. просто нужно написать так:
Код:

#define WIN_INCLUDEALL
#include "windows.bi"

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  Eric-S в Чт Сен 24, 2009 7:55 pm

Выглядит немного странно, но уже не изврат.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  electrik в Чт Сен 24, 2009 9:20 pm

ни чего странного
файл windows.bi

Код:

''
#ifndef __windows_bi__
#define __windows_bi__

#define _X86_

#include once "win/windef.bi"
#include once "win/wincon.bi"
#include once "win/winbase.bi"
#include once "win/wingdi.bi"
#include once "win/winuser.bi"
#include once "win/winnls.bi"
#include once "win/winver.bi"
#include once "win/winnetwk.bi"
#include once "win/winreg.bi"
#include once "win/winsvc.bi"

#ifdef WIN_INCLUDEALL
# include once "win/cderr.bi"
# include once "win/dde.bi"
# include once "win/ddeml.bi"
# include once "win/dlgs.bi"
# include once "win/imm.bi"
# include once "win/lzexpand.bi"
# include once "win/mmsystem.bi"
# include once "win/nb30.bi"
# include once "win/rpc.bi"
# include once "win/shellapi.bi"
# include once "win/winperf.bi"
# include once "win/commdlg.bi"
# include once "win/winspool.bi"
# if defined(__USE_W32_SOCKETS)
#  include once "win/winsock2.bi"
# endif
# include once "win/ole2.bi"
#endif

#endif

если декларировать сразу все заголовки, это не повлияет на размер бинарника, просто замедлит скорость компиляции. вот они и сделали, самое самое, а там уж, если надо пиши
#define WIN_INCLUDEALL

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  DEPOzit в Пт Сен 25, 2009 11:42 am

Electric, спасибо. #define WIN_INCLUDEALL действительно все решает.

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  vbman в Пн Окт 19, 2009 1:14 pm

Правильно! nil - это в Дельфи Suspect
avatar
vbman

Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 35
Откуда : Украина, Кировоград

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: ShellExecute не открывает файл

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения