Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   проверка наличия файла в директории (http://forum.oszone.net/showthread.php?t=289547)

icetanker 17-10-2014 10:06 2416586

проверка наличия файла в директории
 
хочу написать ярлык,который бы проверял наличие браузера Mozilla Firefox и если его находил,то запускал нужный сайт,а если не находил,то запускал бы сайт в Internet Explorer.Посоветуйте,где можно почитать и какую функцию использовать? по каким лучше параметрам проверить наличие Firefox и Internet Explorer.

Georgio 17-10-2014 13:29 2416671

Цитата:

Любой язык - проверка наличия файла в директории
Цитата:

Цитата icetanker
проверял наличие браузера Mozilla Firefox »


Так что нужно проверять: наличие файла в директории или наличие установленной программы? Если нужно проверять наличие файла в директории, то какого файла и в какой директории?

icetanker 17-10-2014 13:41 2416679

Georgio, нужно запускать сайт в Mozilla Firefox,а если его нету,то в Internet Explorer,независимо,есть ли другие браузеры и игнорируя браузер по умолчанию

Iska 17-10-2014 22:41 2416861

На WSH:
читать дальше »
Код:

Option Explicit

Const HKEY_LOCAL_MACHINE = &H80000002


Dim strUrl

Dim strCurrentVersion
Dim strPathToExe

Dim boolFound


strUrl = "http://www.ya.ru"

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\default").Get("StdRegProv")
        boolFound = False
       
        If .GetStringValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Mozilla\Mozilla Firefox", "CurrentVersion", strCurrentVersion) = 0 Then
                If .GetStringValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Mozilla\Mozilla Firefox\" & strCurrentVersion & "\Main", "PathToExe", strPathToExe) = 0 Then
                        If WScript.CreateObject("Scripting.FileSystemObject").FileExists(strPathToExe) Then
                                boolFound = True
                               
                                WScript.CreateObject("WScript.Shell").Run """" & strPathToExe & """ """ & strUrl & """", 1, 0
                        Else
                                WScript.Echo "Can't find [" & strPathToExe & "]."
                        End If
                Else
                        WScript.Echo "Can't get [PathToExe] parameter from [HKLM\SOFTWARE\Mozilla\Mozilla Firefox\" & strCurrentVersion & "\Main] subkey of registry."
                End If
        Else
                WScript.Echo "Can't get [CurrentVersion] parameter from [HKLM\SOFTWARE\Mozilla\Mozilla Firefox] subkey of registry."
        End If
End With

If Not boolFound Then
        With WScript.CreateObject("InternetExplorer.Application")
                .Visible = True
                .Navigate strUrl
        End With
End If

WScript.Quit 0


icetanker 18-10-2014 23:23 2417176

Iska, токо почему то мозилла есть на компьютере,а он пишет Can't get [PathToExe] parameter from [HKLM\SOFTWARE\Mozilla\Mozilla Firefox\" & strCurrentVersion & "\Main] subkey of registry
и не запускает в ней?почему?

Iska 19-10-2014 02:16 2417248

Цитата:

Цитата icetanker
почему? »

Потому что:
Цитата:

Цитата icetanker
Can't get [PathToExe] parameter from [HKLM\SOFTWARE\Mozilla\Mozilla Firefox\" & strCurrentVersion & "\Main] subkey of registry »

Во-первых, что-то не верится, что пишет именно так. Ну, никак не может. Нажмите Ctrl-C в окне сообщения и вставьте текст сюда.

Во-вторых, даже по приведённому можно предположить, что у Вас отсутствует. Там ведь написано, чего не хватает. Также сообщите, какая у Вас ОС, её разрядность, какая версия Firefox, как и где установлена.

icetanker 19-10-2014 10:05 2417297

Вложений: 1
Iska, windows 8 64 bit,остальное на скрине
http://forum.oszone.net/attachment.p...1&d=1413698746

El Sanchez 19-10-2014 14:31 2417396

Цитата:

Цитата icetanker
почему? »

icetanker, доступ через WMI к 32-разрядным разделам реестра из 64-разрядной системы немного по-другому делается:
Код:

...
Dim objCtx

strUrl = "http://www.ya.ru"

Set objCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
objCtx.Add "__ProviderArchitecture", 32

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\default", "", "", "", "", 0, objCtx).Get("StdRegProv")
...

icetanker, вариант №2:
Код:

@Echo Off
Set URL=google.ru

Start "" /MIN cmd /c "Start "" firefox.exe -new-window %URL%||Start "" iexplore.exe %URL%"


Iska 19-10-2014 15:49 2417440

El Sanchez, чей код возврата воспримет «||» — от первого «start», от «cmd.exe», от второго «start» или от «firefox.exe» ;)?

А теперь вопрос серьёзней: на x64 «AppPath» един для x64 и x86 приложений? Насколько я понимаю, нет. Использует ли x64-приложение данные из x86 раздела «AppPath»?

El Sanchez 19-10-2014 18:15 2417533

Цитата:

Цитата Iska
чей код возврата воспримет «||» — от первого «start», от «cmd.exe», от второго «start» или от «firefox.exe» »

Iska, от второго «start». Или я что-то не знаю? Смайлик как бы напрягает :).
Цитата:

Цитата Iska
на x64 «AppPath» един для x64 и x86 приложений? »

Iska, видимо, един, т.к. и х86-, и х64-приложения регистрируют себя в обоих разделах «App Paths».
Цитата:

Цитата Iska
Использует ли x64-приложение данные из x86 раздела «AppPath»? »

Iska, да, ведь разделы «App Paths» еще и синхронизированы.

Georgio 19-10-2014 21:15 2417651

Пакетный файл:


Код:

@echo off

set "URL=http://ya.ru/"

(
for /f "delims=" %%i in ('
 reg query "HKLM\SOFTWARE\Clients\StartMenuInternet" /s /f "command" /k /e^| findstr /ei "command"
') do (
 for /f "delims=" %%j in ('
  reg query "%%i" /f "*\firefox.exe*" /d^| findstr /irx "....*\\firefox\.exe[^\\]*"
 ') do (
  set var=%%j
  for /f "tokens=*" %%k in ('
  call set /p"=%%var:*REG_SZ=%%"^<nul
  ') do (
  start "" "%%~k" "%URL%"
  )
  )
 )
)|| start "" "%ProgramFiles%\Internet Explorer\iexplore.exe" "%URL%"

exit /b


.

Iska 19-10-2014 21:37 2417669

Цитата:

Цитата El Sanchez
Iska, от второго «start». Или я что-то не знаю? Смайлик как бы напрягает . »

И я не знаю, поскольку не проверял ;). «Но вопрос интересный» (с).

Цитата:

Цитата El Sanchez
Iska, видимо, един, т.к. и х86-, и х64-приложения регистрируют себя в обоих разделах «App Paths».

Iska, да, ведь разделы «App Paths» еще и синхронизированы. »

Спасибо, ясно. Вот разбогатею, автомашину куплю с магнитофоном, пошью костюм с отливом — и в Ялту! новую, с кучей оперативной памяти, и заведу себе на виртуальной машине ОС всяческие для разных игрищ :lol:. А пока, увы, только чтением документации.


Время: 09:51.

Время: 09:51.
© OSzone.net 2001-