Адаптация кода ООСCalc с Windows на Linux

Автор sofi, 28 июля 2014, 16:43

0 Пользователи и 1 гость просматривают эту тему.

sofi

Доброго Всем время дня!
Уважаемые форумчане, помогите плз. переделать код макроса ООCalc.
Исторически этот код был написан в VBA (OS Windows), затем адаптирован
под VB (OS Windows), а теперь следующая беда, поменялась OS, стала Linux!
А я мои познания в Linux только в том, что знаю: "Есть такая OS на свете!"
 
Как видно из кода, макрос при открытии файла создает директорию на диске С: "Архив Отчетов", затем
создает на рабочем столе ярлык для этой директории и ярлык "Учет входящих"
для запуска файла.

Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Option Explicit

Sub Auto_Open()

MsgBox vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & "ВСЕМ ПРИВЕТ!" & vbCrLf & _
vbTab & vbTab & vbTab & vbTab & vbTab & "Сегодня " & Now & vbCrLf & _
"Сейчас все настроим, проверем и начнем работать!!!", vbInformation, "Информационное сообщение"

Dim X As String, strPath As String

   strPath = "C:/АРХИВ ОТЧЕТОВ"
   On Error Resume Next
   X = GetAttr(strPath) And 0
     
If Err = 0 Then 'если путь существует быстро все настраиваем
       
   If Sheets(3).Range("a16") <> "" Then

     MsgBox vbTab & vbTab & vbTab & "Сегодня истекает срок исполнения" & vbCrLf & _
     "обращений, согласно сформированному отчету!" & vbCrLf & _
     vbTab & vbTab &  vbTab & vbTab & vbTab &  vbTab & "ВПЕРЕД ЗА РАБОТКУ!", vbInformation, "Важное сообщение!"
 
Else

    MsgBox vbTab & "Сегодня обращений с истекающим" & vbCrLf & vbTab & vbTab & vbTab & "сроком исполнения нет!" & vbCrLf & _
    "Можно расслабиться и поставить чайник!", vbInformation, "Важное сообщение!"
 
   End if

 Else
   
MkDir("C:\АРХИВ ОТЧЕТОВ")

Set WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop") 'записываем в переменную путь до рабочего стола
      Set oShellLink = WshShell.CreateShortcut(strDesktop & "\УЧЕТ ВХОДЯЩИХ.lnk")   'создаем путь до ярлыка файла на рабстоле
Set oShellLink2 = WshShell.CreateShortcut(strDesktop & "\АРХИВ ОТЧЕТОВ.lnk")   'создаем путь до ярлыка ПАПКИ на рабстоле  
oShellLink.TargetPath =  "C:\РАСЧЕТЫ АЛИМЕНТОВ\Учет v.1.0.ods"  'создаем путь от ярлыка до файла
oShellLink2.TargetPath =  "C:\АРХИВ ОТЧЕТОВ"    'создаем путь от ярлыка до папки
oShellLink.WindowStyle = 1
oShellLink2.WindowStyle = 1
'oShellLink.IconLocation = "путь к картинке которая будет на ярлыке"
oShellLink.Description = "Программа для учета входящих обращений"     'всплывающий комментарий файла
oShellLink2.Description = "Вход в АРХИВ ОТЧЕТОВ программы для учета входящих обращений"      'всплывающий комментарий ПАПКИ
oShellLink.WorkingDirectory = "C:\РАСЧЕТЫ АЛИМЕНТОВ"   'создаем путь до ПАПКИ файла
oShellLink2.WorkingDirectory = "C:\АРХИВ ОТЧЕТОВ"   'создаем путь до созданной ПАПКИ
oShellLink.Save   'создаем ярлык на рабстоле
oShellLink2.Save    'создаем ярлык2 рабстоле

   MsgBox "Созданы папка для хранения АРХИВА ОТЧЕТОВ" & vbCrLf & vbTab & vbTab & "и ЯРЛЫКИ на рабочем столе для запуска" & vbCrLf & _
   vbTab & vbTab &  vbTab & vbTab & "программы и входа в АРХИВ!" & vbCrLf & vbCrLf & _
   vbTab & vbTab & "Подговка к работе успешно завершена!", vbInformation, "Важное сообщение!"

End If

End sub
Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!

Yakov

Этот макрос использует WScript, а это компонент операционной системы Windows.
Можно написать макрос для Linux, но в нём не должен использоваться  WScript.
И некоторые действия, которые в этом скрипте исполняются WScript, спокойно можно реализовать через стандартные функции OO Basic.
И ещё важный момент:
какой дистрибутив Linux?
какой DE (менеджер рабочего стола) используется?

sofi

#2
ЦитироватьМожно написать макрос для Linux, но в нём не должен использоваться  WScript.
Главное, чтобы выполнялся алгоритм, а уж
какими методами разницы нет!

Цитироватькакой DE (менеджер рабочего стола) используется?

Где это может посмотреть человек, совершенно далекий от программирования?
Дело в том, что Linux поставили на работе моей приятельнице, а она обычный
пользователь! :'(
Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!

Yakov

Цитата: sofi от 29 июля 2014, 11:12Где это может посмотреть человек, совершенно далекий от программирования?
Можно посмотреть на окно ввода пароля. На нём обычно указывается название ОС и можно выбрать менеджер рабочего стола из списка установленных (обычно устанавливается один менеджер).
Но есть и хорошие новости - у 2 самых распространённых менеджеров KDE и GNOME "ярлыки" сохраняются в .desktop файлах.
http://life-warrior.org/programs/gui-deb/manual/desktopfiles.html
То есть программе надо для создания ярлыка определить адрес папки рабочего стола (это можно взять из переменных окружения), и сформировать там необходимые текстовые файлы с расширением  .desktop

sofi

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!