Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Shell есть камни?
 
 автор: Кукамака   (29.01.2008 в 12:29)   личное сообщение
 
 

Почему-то не работает Shell(strCommand, intMode) на моём ПК, хотя этот же код на др. ПК отлично грузит приложение.
В чем может быть проблема?

  Ответить  
 
 автор: ДрЮня   (29.01.2008 в 12:36)   личное сообщение
 
 

антивирус?
я обычно использую ShellExecute()

  Ответить  
 
 автор: Кукамака   (29.01.2008 в 13:27)   личное сообщение
 
 

А что это за ф-я?
у меня ругается not defined ....

>антивирус?
возможно, до недавнего avast был, сейчас Касперский

======
Нашла Ваши сообщения с кодами, попробую.

  Ответить  
 
 автор: Кукамака   (29.01.2008 в 13:42)   личное сообщение
 
 

и ShellExecute и Shell возвращаю 0
Есть выход? подскажите...

  Ответить  
 
 автор: ДрЮня   (29.01.2008 в 14:09)   личное сообщение
 
 

должен возвращать не 0, а хендл окна.
может не может найти программу, которую нужно запускать?
запускаете с какого диска? из сети?
в деларации нет ошибок?

Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal _
hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)

попробуйте вызвать блокнот, напрмер, так:

Dim res As Long, hwnd As Long
res = ShellExecute(hwnd, "open", "NOTEPAD.EXE", "полное имя файла", "", SW_MAXIMIZED)
If res < 32 Then MsgBox "'ShellExecute' function error", vbExclamation, "rpt_AppStructure"

  Ответить  
 
 автор: Кукамака   (29.01.2008 в 14:34)   личное сообщение
 
 

деларацию тупо скопировала

вызываю:
res = ShellExecute(hwnd, "open", "NOTEPAD.EXE", "C:\Temp\Текст.txt", "", 3)

получаю res =0

а на SW_MAXIMIZED ругается, что переменная не определена

  Ответить  
 
 автор: ДрЮня   (29.01.2008 в 15:02)   личное сообщение
 
 

вот определение. но это не важно
Public Const SW_MAXIMIZED = 3
Public Const SW_SHOW = 5
Public Const SW_MINIMIZED = 6

антивирус-то выключен?
может с правами чего?
как логинимся на компьютер?

  Ответить  
 
 автор: Кукамака   (29.01.2008 в 15:42)   личное сообщение
 
 

антивирус отключила SРell работает отлично по-прежнему,
а вот ShellExecute возвращает 0 и идёт на If res < 32 Then MsgBox ......

  Ответить  
 
 автор: ДрЮня   (29.01.2008 в 15:55)   личное сообщение
 
 

ну я не знаю

  Ответить  
 
 автор: Кукамака   (29.01.2008 в 16:05)   личное сообщение
 
 

Спасибо за участие, главное Вы подсказали в чем дело.
Может кто сможет подсказать, как это возможно обойти....

  Ответить  
 
 автор: k@s   (29.01.2008 в 19:46)   личное сообщение
 
 

Открывает любое расширение .
Private Sub Кнопка2_Click()
Set WShell = CreateObject("WScript.Shell")
WShell.Run "c:\Temp\Текст.txt", 3, True
Set WShell = Nothing
End Sub

  Ответить  
 
 автор: час   (29.01.2008 в 21:05)   личное сообщение
 
 

' 1 в качестве второго аргумента открывает
' приложение в окне обычного
' размера и передает ему фокус
Dim RetVal
' Запускаем калькулятор
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)

  Ответить  
 
 автор: час   (29.01.2008 в 21:10)   личное сообщение
 
 


Вопрос: Вызов функции ShellExecute, имеет больше возможностей для запуска программ, чем Shell в Access

Совет: 
Declare Function apiShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal Hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Declare Function GetDesktopWindow Lib "user32" () As Long

Public Const SW_NORMAL = 1
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWDEFAULT = 10
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOWNORMAL = 1

lResult = apiShellExecute(frmSplash.hwnd, vbNullString, "TEST.XLS",_
vbnullstring, App.Path, SW_SHOWMAXIMIZED)

lResult = apiShellExecute(GetDesktopWindow(), "open", "http://www.arimsoft.ru"_
, "", 0&, SW_SHOWMAXIMIZED)

Where 
frmSplash.hwnd is the calling form's handle
the second param indicates to open the file (you can use "Open" or "Print" as well)
the third is the file name to open
the next is to show I'm not passing any parameters
Then there's the default directory to use
And finally to maiximize it (value 3)

  Ответить  
 
 автор: час   (29.01.2008 в 21:12)   личное сообщение
 
 


 (Shell "conv.exe ts.txt ts_.txt", vbHide)

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList