Exe для запуска приложения

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Exe для запуска приложения

Eugie » 14 июл 2006, 16:06

Ну, не знаю, чем еще тебе помочь.
Насчет subst под NT ты не прав, работает.

P1ece » 13 июл 2006, 22:27

дык сабст под нтями не работает через cmd.
с прогой все в порядке. не работает сам авторан форточный

Eugie » 11 июл 2006, 16:18

Если проблема действительно связана с AutoRun, то см. http://msdn.microsoft.com/library/defau ... ay_reg.asp

Дык, все же какое значение возвращает ShellExecute(), когда пытаешься запускать с флешки?

BBB » 10 июл 2006, 15:34

Absurd писал(а):
оно все прекрасно компилируется и даже работает... проблема в том что с флехи exe то не стартует... как ни странно с СДРОМ все ок... видать я что то отрубил в настройках эксплорера
Ты про autorun?
Он по моему зависит от NoDriveTypeAutorun
.........
Это флаговое слово - для каждого типа дисков там отдельный бит. На win9x я обычно отрубал авторан для всех дисков - записывал туда 0.
Сейчас не отрубаю - стало либо лениво либо Сидиромы стали быстрые либо чего-то с этой настройкой не так - не помню уже.
Я помню, что в Win98 (может, это и не свойство Win98, но наблюдал на этой операционке) у меня autorun запускался даже, когда я делал subst подкаталога.
Т.е., например, в каталоке C:\MYDIR лежит файл autorun.inf
И я выполняю, например:
subst E: C:\MYDIR
Так вот тот самый C:\MYDIR\autorun.inf при этом выполнялся.

А вот сейчас на Win2k (на другом компе) попробовал - фиг, не запускается.

Повторюсь: может, это зависит и не от Win98 или Win2k, а от каких-то там настроек, но я просто факты рассказал.

Absurd » 10 июл 2006, 13:07

оно все прекрасно компилируется и даже работает... проблема в том что с флехи exe то не стартует... как ни странно с СДРОМ все ок... видать я что то отрубил в настройках эксплорера
Ты про autorun?
Он по моему зависит от NoDriveTypeAutorun

Код: Выделить всё

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:00000091
Это флаговое слово - для каждого типа дисков там отдельный бит. На win9x я обычно отрубал авторан для всех дисков - записывал туда 0.
Сейчас не отрубаю - стало либо лениво либо Сидиромы стали быстрые либо чего-то с этой настройкой не так - не помню уже.

P1ece » 07 июл 2006, 23:01

оно все прекрасно компилируется и даже работает... проблема в том что с флехи exe то не стартует... как ни странно с СДРОМ все ок... видать я что то отрубил в настройках эксплорера

Eugie » 07 июл 2006, 15:30

BBB, stdafx.h и stdafx.cpp к MFC отношения не имеют. Они нужны, если задана опция Use precompiled headers (студия задает ее по умолчанию для генерируемых мастером проектов).
P1ece, действительно, проверь под отладчиком, что возвращает ShellExecute(). Это на самом деле целое число, в случае ошибки <= 32. Потом найди файл Shellapi.h и посмотри описание ошибки. См.также http://msdn.microsoft.com/library/defau ... xecute.asp

Absurd » 07 июл 2006, 10:48

Сейчас он спросит, как ему проанализировать значение - ошибки то не в строчном виде возвращаются.

BBB » 07 июл 2006, 10:08

P1ece писал(а):стдафх на всяк случай подрубил... скомпилировал... все ок.
флеха не хочет его стартовать по прежнему :(
В конце концов, ShellExecute - функция, т.е. возвращает результат.
Проанализируй возвращаемое значение, это может помочь понять, в чем у тебя проблема.

ShellExecute
.....................
Return Values
Returns a value greater than 32 if successful, or an error value that is less than or equal to 32 otherwise. The following table lists the error values. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Microsoft® Windows® applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an integer and compare it with the value 32 or one of the error codes below:
0 - The operating system is out of memory or resources.
ERROR_FILE_NOT_FOUND - The specified file was not found.
ERROR_PATH_NOT_FOUND - The specified path was not found.
ERROR_BAD_FORMAT - The .exe file is invalid (non-Win32® .exe or error in .exe image).
SE_ERR_ACCESSDENIED - The operating system denied access to the specified file.
SE_ERR_ASSOCINCOMPLETE - The file name association is incomplete or invalid.
SE_ERR_DDEBUSY - The DDE transaction could not be completed because other DDE transactions were being processed.
SE_ERR_DDEFAIL - The DDE transaction failed.
SE_ERR_DDETIMEOUT - The DDE transaction could not be completed because the request timed out.
SE_ERR_DLLNOTFOUND - The specified dynamic-link library was not found.
SE_ERR_FNF - The specified file was not found.
SE_ERR_NOASSOC - There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable.
SE_ERR_OOM - There was not enough memory to complete the operation.
SE_ERR_PNF - The specified path was not found.
SE_ERR_SHARE - A sharing violation occurred.

BBB » 07 июл 2006, 10:03

Eugie писал(а):А у меня в MSVC++ 6.0 без явного подключения Shellapi.h не компилируется. И даже знаю, почему :) - в stdafx.h определен макрос WIN32_LEAN_AND_MEAN, который режет все лишнее (в смысле, редко используемое) из windows.h
"stdafx.h" у меня как раз не подцеплен. А что, у тебя MFC-приложение? :) Насколько я понимаю, при создании MFC-приложения визард генерит и цепляет "stdafx.h".
Еще раз: ВЕСЬ ("от и до") исходный текст я приводил выше :) Там есть #include <windows.h>, но нет ни "stdafx.h", ни "Shellapi.h".

Вернуться к началу