1

У меня есть несколько защищенных паролем книг Excel на моем защищенном компьютере локальной сети (не требуется).

Можно ли разобрать пароль в ярлык, чтобы он автоматически открывал книгу, если пароль правильный?

Например:

"S:\resources\Audit.xls" -password "mypass"

1 ответ1

2

Прямого пути нет, но с небольшим количеством кода вы можете заставить Excel обрабатывать параметры командной строки и открывать его из электронной таблицы запуска.

Используя ярлык, который выглядит так:

"C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" /e/myfilename/mypassword "C:\MyExcelFiles\test.xlsb"

Вы можете использовать следующий код для получения командной строки - вам нужно будет извлечь параметры, которые вы передали с /e, так как вся строка возвращается

Declare Function StrLenA Lib "kernel32.dll" Alias "lstrlenA" (ByVal Ptr As Long) As Long
Declare Function GetCommandLineA Lib "kernel32.dll" () As Long
Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef pDst As Any, pSrc As Any, ByVal ByteLen As Long)

Function GetCommandLine() As String

Dim CmdStr As Long
Dim N As Long
Dim Buffer As String

   CmdStr = GetCommandLineA 'Get a pointer to a string, which contains the command line
   N = StrLenA(CmdStr) 'Get the length of that string
   Buffer = String(N, Chr$(0)) 'Create a buffer
   CopyMemory ByVal Buffer, ByVal CmdStr, N 'Copy to the buffer
   GetCommandLine = Buffer

End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .