|
|
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
Чего-то я не понимаю. Делаю: Win+R notepad <CR> - работает Делаю: Win+R cmd <CR> notepad <CR> - "нет такой программы" Физически notepad.exe лежит как обычно в c:\windows. Самого C:\Windows в PATH нету. Спрашивается, почему `Win+R notepad <CR>` работает? Из FAR оно кстати тоже работает... WinXP SP3 если это важно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2011, 22:31 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
White OwlСпрашивается, почему `Win+R notepad <CR>` работает?Потому что C:\Windows является текущим каталогом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2011, 22:37 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
miksoftWhite OwlСпрашивается, почему `Win+R notepad <CR>` работает?Потому что C:\Windows является текущим каталогом?Нет. Из FAR оно тоже работает, а там каталоги бывают самые разные... Впечатление такое что есть некий дополнительный PATH который используется виндовым Эксплорером и теми программами которые используют ShellExecute(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2011, 23:07 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
У меня работают оба варианта. После cmd введите set от этого и ищите ответ на вопрос: кто поломал ваш компьютер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2011, 09:00 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
А что выдают ваши переменные Патх? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2011, 09:07 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
Win+R iexplore тоже работает! Хотя этой-то заразы точно в путях нету! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2011, 09:25 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
KhodА что выдают ваши переменные Патх?Читай самый первый пост этого топика, в первой строке второго абзаца... Уточняю вопрос: Как ShellExecute() отыскивает запускаемый файл, если его нету в PATH? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2011, 18:47 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
White OwlСамого C:\Windows в PATH нету.А там есть %SystemRoot% ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2011, 19:16 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
miksoftWhite OwlСамого C:\Windows в PATH нету.А там есть %SystemRoot% ?нету. %SystemRoot%==С:\Windows, неужели я б его не увидел? Еще раз повторяю для всех недоверчивых и тормозящих: В моем PATH (ни в глобальном PATH, ни в юзерском PATH) нету упоминаний о C:\Windows, ни константной, ни переменной. Никак. НЕТУ. Поэтому чистый cmd.exe не может найти и запустить notepad. Тем не менее, все программы которые используют ShellExecute() (это сам Эксплорер, FAR и даже мой собственный микро-тест) МОГУТ запустить notepad. ShellExecute() его каким-то образом находит. Как ShellExecute() отыскивает запускаемый файл, если его нету в PATH? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2011, 19:41 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
White OwlЧего-то я не понимаю. Делаю: Win+R notepad <CR> - работает Делаю: Win+R cmd <CR> notepad <CR> - "нет такой программы" Физически notepad.exe лежит как обычно в c:\windows. Самого C:\Windows в PATH нету. Спрашивается, почему `Win+R notepad <CR>` работает? Из FAR оно кстати тоже работает... WinXP SP3 если это важно... А с чего вы взяли, что запускается из C:\WINDOWS? notepad.exe есть в C:\WINDOWS\system32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2011, 04:53 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: WO> Еще раз повторяю для всех недоверчивых и тормозящих: В моем PATH (ни в WO> глобальном PATH, ни в юзерском PATH) нету упоминаний о C:\Windows, ни WO> константной, ни переменной. Никак. НЕТУ. Поэтому чистый cmd.exe не WO> может найти и запустить notepad. Тем не менее, все программы которые WO> используют ShellExecute() (это сам Эксплорер, FAR и даже мой WO> собственный микро-тест) МОГУТ запустить notepad. ShellExecute() его WO> каким-то образом находит. WO> Как ShellExecute() отыскивает запускаемый файл, если его нету в PATH? Совершенно тупой вопрос: а ты комп перезагружал после изменения PATH ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2011, 07:03 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
White OwlЕще раз повторяю для всех недоверчивых и тормозящих: В моем PATH (ни в глобальном PATH, ни в юзерском PATH) нету упоминаний о C:\Windows, ни константной, ни переменной Насчёт тормозящих вы зря... Так пропишите и не парьтесь продвинутый пользователь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2011, 09:33 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
Khod пишет: K> Так пропишите и не парьтесь Товарищу вобщем-то не жмет, насколько я понял :) Товарищ просто любопытствует, как отыскивается notepad, когда системе никак не указано, где он лежит Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2011, 09:37 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
МикросекундаСовершенно тупой вопрос: а ты комп перезагружал после изменения PATH ? Это повлияет только на окружение унаследованное Эксплорером. А окружение моих программ контролирую я сам. Так что я на все 100% уверен что моя программа используя PATH notepad найти не сможет. Однако находит, значит кроме PATH есть еще что-то, но я не могу найти в документации что именно. Почему вот это работает? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2011, 18:14 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
White Owlmiksoftпропущено... А там есть %SystemRoot% ?нету. %SystemRoot%==С:\Windows, неужели я б его не увидел? Еще раз повторяю для всех недоверчивых и тормозящих: В моем PATH (ни в глобальном PATH, ни в юзерском PATH) нету упоминаний о C:\Windows, ни константной, ни переменной. Никак. НЕТУ. Логично возникает вопрос, а почему нет %SystemRoot%;%SystemRoot%\system32 ? Насколько я знаю, это никогда руками специально не прописывается, а автоматом. Нафига тогда убирать? А какая ОС конкретно? Вероятно в этой версии пути к %SystemRoot%;%SystemRoot%\system32 автоматом используются. Ответ нужно искать в доке к ОС на microsoft.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2011, 18:35 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
White Owl, White Owl Как ShellExecute() отыскивает запускаемый файл, если его нету в PATH? В реестре, скорее всего, находит... Например: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2011, 19:14 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
refreg пишет: r> В реестре, скорее всего, находит... r> Например: r> [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] r> "SystemRoot"="C:\\WINDOWS" r> "PathName"="C:\\WINDOWS" Насколько я понял, это просто значения системных переменных SystemRoot и PathName, но ТС утверждает, что в PATH их нет. Так что вопрос действительно становится интересен :) Вот, еще вариант с "Image File Execution Options": http://osix.net/modules/article/?id=781 Но я у себя в этом разделе не нашел notepad.exe Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 09:18 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
Кстати, волноваться есть повод: где-то в виде прописана информация, откуда брать нотепад. А где - непонятно. А если там прописать что-то другое и вместо нопепада запустится вирус.ехе ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 09:19 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
МикросекундаНасколько я понял, это просто значения системных переменных SystemRoot и PathName, но ТС утверждает, что в PATH их нет. Так что вопрос действительно становится интересен :)Вот млин, не нравиться реестр? Смотрим в API (GetSystemDirectory, GetWindowsDirectory) Как же легко было бы порушить систему, если бы все было бы завязано на PATH (это не анахронизм еще?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 09:35 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
refreg пишет: r> Смотрим в API (GetSystemDirectory, GetWindowsDirectory) Смотрю http://msdn.microsoft.com/en-us/library/ms682425(v=vs.85).aspx Действительно, одним из пунктов поиска указан каталог виндоус :) msdnThe directory from which the application loaded. The current directory for the parent process. The 32-bit Windows system directory. Use the GetSystemDirectory function to get the path of this directory. The 16-bit Windows system directory. There is no function that obtains the path of this directory, but it is searched. The name of this directory is System. The Windows directory . Use the GetWindowsDirectory function to get the path of this directory. The directories that are listed in the PATH environment variable. Note that this function does not search the per-application path specified by the App Paths registry key. To include this per-application path in the search sequence, use the ShellExecute function . Т.е. по идее, CreateProcess должна находить notepad, лежащий в WindowsDirectory. Но при удалении из PATH всяческих SystemRoot и пр. и попытке запуска notepad из cmd, вылазит ошибка, что мол, нету такого. При этом из ФАРа запускается успешно. В msdn в статье про ShellExecute вообще не сказано про пути. Вобщем, я так понял, что cmd "умничает" и сам сначала пытается найти notepad.exe, при этом в каталог виндоус не заглядывает. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 10:52 |
|
||
|
notepad пропал...
|
|||
|---|---|---|---|
|
#18+
МикросекундаСмотрю http://msdn.microsoft.com/en-us/library/ms682425(v=vs.85).aspx Действительно, одним из пунктов поиска указан каталог виндоус :)Причем раньше чем в PATH... Хм... МикросекундаТ.е. по идее, CreateProcess должна находить notepad, лежащий в WindowsDirectory. Но при удалении из PATH всяческих SystemRoot и пр. и попытке запуска notepad из cmd, вылазит ошибка, что мол, нету такого. При этом из ФАРа запускается успешно.Мне начинает казаться, что cmd делает SearchPath(%PATH%) и только если находит - делает CreateProcess. А ShellExecute делает CreateProcess сразу, без предварительной проверки на существование файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:40 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=37358757&tid=1497954]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 469ms |

| 0 / 0 |
