Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Double Commander

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
Dim P, R, W, F, D, iD
 
Set WshShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
 
' Получаем папку DC и скрипта
P = FSO.GetParentFolderName(Wscript.ScriptFullName)
' DC или DC плюс параметры
If WScript.Arguments.Count > 0 Then
    D = """" & P & "\doublecmd.exe"" " & GetParams
Else
    D = """" & P & "\doublecmd.exe"""
End If
' Путь к утилите winapiexec
If WshShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%") = "x86" And WshShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITEW6432%") = "%PROCESSOR_ARCHITEW6432%" Then
    W = P & "\utils\winapiexec.exe"
Else
    W = P & "\utils\winapiexec64.exe"
End If
' Путь к шрифту
F = P & "\fonts\UbuntuMono-R.ttf"
' Если скрипт запущен с параметром "--unload", то скрипт выгрузит указанный шрифт и завершится
If WScript.Arguments.Count > 0 And WScript.Arguments.Item(0) = "--unload" Then
    WshShell.Run """" & W & """ gdi32.dll@RemoveFontResourceExW """ & F & """ 0 0", 0, True
    WScript.Quit
End If
' Если шрифт не найден, то просто запускаем DC и всё
If Not FSO.FileExists(F) Then
    WshShell.Run D, 1, False
    WScript.Quit
End If
' Запуск
Set iD = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'doublecmd.exe'")
If iD.Count > 0 Then
    WshShell.Run D, 1, True
Else
    R = WshShell.Run("""" & W & """ gdi32.dll@AddFontResourceExW """ & F & """ 0 0", 0, True)
    If R = 1 Then
        WshShell.Run D, 1, True
    Else
        WshShell.Run D, 1, False
        WScript.Quit
    End If
End If
Set iD = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'doublecmd.exe'")
If iD.Count = 0 Then
    WshShell.Run """" & W & """ gdi32.dll@RemoveFontResourceExW """ & F & """ 0 0", 0, True
End If
 
Function GetParams()
    Dim A, T, O
    For Each A In WScript.Arguments
        If A <> "--unload" Then
            If InStr(A, "--config-dir=") Then
                If InStr(A, " ") Then
                    T = Replace(A, "--config-dir=", "--config-dir=""", 1, 1)
                    O = O & " " & T & """"
                Else
                    O = O & " " & A
                End If
            ElseIf InStr(A, "--servername=") Then
                If InStr(A, " ") Then
                    T = Replace(A, "--servername=", "--servername=""", 1, 1)
                    O = O & " " & T & """"
                Else
                    O = O & " " & A
                End If
            ElseIf InStr(A, " ") Then
                O = O & " """ & A & """"
            Else
                O = O & " " & A
            End If
        End If
    Next
    GetParams = O
End Function

Всего записей: 6490 | Зарегистр. 28-01-2008 | Отправлено: 23:53 06-10-2018 | Исправлено: Skif_off, 16:48 10-10-2018
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Double Commander


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru