Jump to content

Installing my executable


Recommended Posts

Hello dear community,

first, here is my code (not important to read):

#Region ### START Library section ###

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <GUICtrlPic.au3>
#include <GuiButton.au3>
#include <Misc.au3>
#include <File.au3>
#include <Process.au3>
#include <String.au3>
#include <GUIConstants.au3>
#include <ProgressConstants.au3>
#include <WinAPIFiles.au3>
#include <Array.au3>
#include <Clipboard.au3>
#include <AutoItConstants.au3>
#include <BlockInputEx.au3>
#include <Date.au3>
#include <OOoCalc.au3>
#include <OOoCalcConstants.au3>

#EndRegion ### START Library section ###

#Region ### START Variables section ###

Global _
        $sMsg, $iError, $iExtended, $g_idError_Message, $oIE, $iPID, $iSavePosStartingServer = 0, $progressbarLoadingScreen, _
        $gui_main, $gui_webbrowser, $gui_loading_screen, _
        $btn_tabula, $btn_pdfbearbeiten, $btn_mendeley, $btn_exit_main, $btn_openoffice, $btn_wizard, $btn_home, $btn_exit_embedded, _
        $path_mainDir, $path_iniFile, $path_configDir, $path_installFilesDir, $path_pdfextractorInternalDir, $path_mendeleyExe = "\PDF_Extractor_InstallFiles\Mendeley\Mendeley Desktop\MendeleyDesktop.exe", _
        $path_MendeleyPDFData, $exe_pdfbearbeiten = "\PDF_Extractor_InstallFiles\PDFBearbeiten\pdfbearbeiten.exe"


#EndRegion ### START Variables section ###

#Region ### START System parameters section ###

Opt("WinTitleMatchMode", 2)
Opt("GUIOnEventMode", 1)

#EndRegion ### START System parameters section ###

#Region ### START Running section ###

_Start_Loading_Screen()
_Enter_Ini_Details()
_Start_GUI_Main()

#EndRegion ### START Running section ###

#Region ### START Functions section ###

Func _Start_GUI_Main()

    #cs - - - Path of zipped installing files - - -
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\7za.exe"
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\Mendeley.7z"
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\Tabula-Win-1.1.1.7z"
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\OpenOffice.7z"
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\PDFBearbeiten.7z"
    #ce - - - Path of zipped installing files - - -

    Local _
            $path_mendeleyPic = $path_installFilesDir & "\ICON_Mendeley.png", _
            $path_nitropdfPic = $path_installFilesDir & "\ICON_PDF.png", _
            $path_tabulaPic = $path_installFilesDir & "\LOGO_Tabula.png", _
            $path_ubaPic = $path_installFilesDir & "\LOGO_UBA.png", _
            $path_wizardPic = $path_installFilesDir & "\ICON_Wizard.png", _
            $path_openofficescalcPic = $path_installFilesDir & "\ICON_OpenOffice.png"

    If Not FileExists($path_mainDir & $path_mendeleyPic) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\Documents\Pictures\ICON_Mendeley.png", $path_mainDir & $path_mendeleyPic)

    EndIf

    If Not FileExists($path_mainDir & $path_nitropdfPic) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\Documents\Pictures\ICON_PDF.png", $path_mainDir & $path_nitropdfPic)

    EndIf

    If Not FileExists($path_mainDir & $path_tabulaPic) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\Documents\Pictures\LOGO_Tabula.png", $path_mainDir & $path_tabulaPic)

    EndIf

    If Not FileExists($path_mainDir & $path_ubaPic) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\Documents\Pictures\LOGO_UBA.png", $path_mainDir & $path_ubaPic)

    EndIf

    If Not FileExists($path_mainDir & $path_wizardPic) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\Documents\Pictures\ICON_Wizard.png", $path_mainDir & $path_wizardPic)

    EndIf

    If Not FileExists($path_mainDir & $path_openofficescalcPic) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\Documents\Pictures\ICON_OpenOffice.png", $path_mainDir & $path_openofficescalcPic)

    EndIf

    $gui_main = GUICreate("EDV_Ecotox_Database", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_On_Close") ;

    $lb_header = GUICtrlCreateLabel("Software for extracting and converting tables from a PDF", 10, 10, 700, 30)
    GUICtrlSetFont(-1, 16, 600, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000000)

    GUISetState(@SW_SHOW)

    _GUICtrlPic_Create($path_mainDir & $path_ubaPic, @DesktopWidth / 1.2, @DesktopHeight / 1201, @DesktopWidth / 6, @DesktopHeight / 7)
    _GUICtrlPic_Create($path_mainDir & $path_mendeleyPic, @DesktopWidth / 20, @DesktopHeight / 10, @DesktopWidth / 5, @DesktopHeight / 3, BitOR($SS_CENTERIMAGE, $SS_SUNKEN, $SS_NOTIFY), Default)
    _GUICtrlPic_Create($path_mainDir & $path_nitropdfPic, @DesktopWidth / 3, @DesktopHeight / 10, @DesktopWidth / 5, @DesktopHeight / 3, BitOR($SS_CENTERIMAGE, $SS_SUNKEN, $SS_NOTIFY), Default)
    _GUICtrlPic_Create($path_mainDir & $path_tabulaPic, @DesktopWidth / 20, @DesktopHeight / 1.85, @DesktopWidth / 5, @DesktopHeight / 3, BitOR($SS_CENTERIMAGE, $SS_SUNKEN, $SS_NOTIFY), Default)
    _GUICtrlPic_Create($path_mainDir & $path_openofficescalcPic, @DesktopWidth / 3, @DesktopHeight / 1.8, @DesktopWidth / 5, @DesktopHeight / 3, BitOR($SS_CENTERIMAGE, $SS_SUNKEN, $SS_NOTIFY), Default)

    $btn_tabula = GUICtrlCreateButton("Tabula", (@DesktopWidth / 20), (@DesktopHeight / 1.124), (@DesktopWidth / 5), (@DesktopHeight / 15))
    GUICtrlSetFont(-1, 12, 600, 0, "Leelawadee")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetOnEvent(-1, "_On_Button")

    $btn_pdfbearbeiten = GUICtrlCreateButton("PDF-Editor", (@DesktopWidth / 3), (@DesktopHeight / 2.3), (@DesktopWidth / 5), (@DesktopHeight / 15))
    GUICtrlSetFont(-1, 12, 600, 0, "Leelawadee")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetOnEvent(-1, "_On_Button")

    $btn_mendeley = GUICtrlCreateButton("Mendeley", (@DesktopWidth / 20), (@DesktopHeight / 2.3), (@DesktopWidth / 5), (@DesktopHeight / 15))
    GUICtrlSetFont(-1, 12, 600, 0, "Leelawadee")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetOnEvent(-1, "_On_Button")

    $btn_wizard = GUICtrlCreateButton("Assisstent", (@DesktopWidth / 1.2), (@DesktopHeight / 6), (@DesktopWidth / 6), (@DesktopHeight / 25), $BS_ICON)
    GUICtrlSetFont(-1, 12, 600, 0, "Leelawadee")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetOnEvent(-1, "_On_Button")

    $btn_openoffice = GUICtrlCreateButton("OpenOffice", (@DesktopWidth / 3), (@DesktopHeight / 1.124), (@DesktopWidth / 5), (@DesktopHeight / 15))
    GUICtrlSetFont(-1, 12, 600, 0, "Leelawadee")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetOnEvent(-1, "_On_Button")

    $btn_exit_main = GUICtrlCreateButton("Exit", (@DesktopWidth / 1.113), (@DesktopHeight / 1.075), (@DesktopWidth / 10), (@DesktopHeight / 15))
    GUICtrlSetFont(-1, 12, 600, 0, "Leelawadee")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetOnEvent(-1, "_On_Button")

    While 1
        Sleep(10)
    WEnd

EndFunc   ;==>_Start_GUI_Main

Func _Start_Embedded_Browser()

    $oIE = _IECreateEmbedded()
    $gui_webbrowser = GUICreate("Embedded Web-Browser", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_On_Close")
    GUICtrlCreateObj($oIE, 10, 40, (@DesktopWidth - 20), (@DesktopHeight - 50))
    $btn_home = GUICtrlCreateButton("Home", 10, 5, 100, 30)
    GUICtrlSetOnEvent(-1, "_On_Button")
    $btn_exit_embedded = GUICtrlCreateButton("Exit", 1810, 5, 100, 30)
    GUICtrlSetOnEvent(-1, "_On_Button")
    $g_idError_Message = GUICtrlCreateLabel("", 100, 500, 500, 30)
    GUICtrlSetColor(-1, 0xff0000)
    GUISetState(@SW_SHOW)
    _IENavigate($oIE, "http://127.0.0.1:8080")
    _IEAction($oIE, "stop")
    _IELinkClickByText($oIE, "My Files")

    Return $oIE

EndFunc   ;==>_Start_Embedded_Browser

Func _Start_Loading_Screen()

    ;_BlockinputEx(1)

    $path_configDir = @LocalAppDataDir & "\PDF_Extractor_Config"
    $path_installFilesDir = "\PDF_Extractor_InstallFiles"


    If (_Get_Ini(_FileListToArray($path_configDir, Default, Default, True)) = False) Then

        If Not FileExists($path_configDir) Then

            ;_BlockinputEx(0)

            DirCreate($path_configDir)
            $path_iniFile = _WinAPI_GetTempFileName($path_configDir, "CFG")
            $path_mainDir = FileSelectFolder("Choose the installation directory", "C:\", $WS_POPUP)
            IniWrite($path_iniFile, " - - INFORMATION - - ", "EXPLANATION -", "- This file contains parameters for the App 'PDF_Extractor'")
            IniWrite($path_iniFile, "Paths", "Main_Directory", $path_mainDir)
            IniWrite($path_iniFile, "Trigger", "Main_Directory", "1")

            ;_BlockinputEx(1)

        Else

            ;_BlockinputEx(0)

            $path_iniFile = _WinAPI_GetTempFileName($path_configDir, "CFG")
            $path_mainDir = FileSelectFolder("Choose the installation directory", "C:\", $WS_POPUP)
            IniWrite($path_iniFile, " - - INFORMATION - - ", "EXPLANATION -", "- This file contains parameters for the App 'PDF_Extractor'")
            IniWrite($path_iniFile, "Paths", "Main_Directory", $path_mainDir)
            IniWrite($path_iniFile, "Trigger", "Main_Directory", "1")

            ;_BlockinputEx(1)

        EndIf

    EndIf

    $path_iniFile = _Get_Ini(_FileListToArray($path_configDir, Default, Default, True))
    ;_BlockinputEx(0)
    $path_mainDir = IniRead($path_iniFile, "Paths", "Main_Directory", "Can't read key 'Main_Directory' from section 'Paths' in ini-file.")
    ;_BlockinputEx(1)

    ;==> Values for altering the progressbar are triggered in '_Start_File_Install()' GUICtrlSetData($progressbarLoadingScreen, $i)
    $gui_loading_screen = GUICreate("Starting program ...", 300, 40, 100, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_On_Close")
    $progressbarLoadingScreen = GUICtrlCreateProgress(10, 10, 280, 20)
    GUICtrlSetColor(-1, 32250) ; not working with Windows XP Style
    GUISetState(@SW_SHOW)
    ;==> Values for altering the progressbar are triggered in '_Start_File_Install()' with GUICtrlSetData($progressbarLoadingScreen, $i)

    _Start_File_Install()

    GUIDelete($gui_loading_screen)
    _Process_Close_Tree($iPID)

    ;_BlockinputEx(0)

EndFunc   ;==>_Start_Loading_Screen

Func _Start_File_Install()

    Local _
            $path_7zipExe = $path_installFilesDir & "\7za.exe", _
            $path_mendeleyDir = $path_installFilesDir & "\Mendeley", _
            $path_tabulaDir = $path_installFilesDir & "\Tabula-Win-1.1.1", _
            $path_openofficeDir = $path_installFilesDir & "\OpenOffice", _
            $path_pdfbearbeitenDir = $path_installFilesDir & "\PDFBearbeiten", _
            $path_mendeleyZipped = $path_installFilesDir & "\Mendeley.7z", _
            $path_tabulaZipped = $path_installFilesDir & "\Tabula-Win-1.1.1.7z", _
            $path_openofficeZipped = $path_installFilesDir & "\OpenOffice.7z", _
            $path_pdfbearbeitenZipped = $path_installFilesDir & "\PDFBearbeiten.7z", _
            $path_pdfextractorDir = $path_mainDir & "\PDF_Extractor"

    $path_pdfextractorInternalDir = $path_pdfextractorDir & "\Internal"

    #Region ### START Directory in personal documents (default path of installing files) ###

    If Not FileExists($path_mainDir & $path_installFilesDir) Then

        DirCreate($path_mainDir & $path_installFilesDir)

    EndIf

    GUICtrlSetData($progressbarLoadingScreen, 5)
    Sleep(100)

    If Not FileExists($path_pdfextractorDir) Then

        DirCreate($path_pdfextractorDir)

    EndIf

    If Not FileExists($path_pdfextractorInternalDir) Then

        DirCreate($path_pdfextractorInternalDir)

    EndIf

    GUICtrlSetData($progressbarLoadingScreen, 10)
    Sleep(100)

    #EndRegion ### START Directory in personal documents (default path of installing files) ###

    #Region ### START Zip installing files (7zip) and set up saving directory ###

    #cs - - - Path of zipped installing files - - -
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\7za.exe"
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\Mendeley.7z"
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\Tabula-Win-1.1.1.7z"
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\OpenOffice.7z"
        "P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\PDFBearbeiten.7z"
    #ce - - - Path of zipped installing files - - -

    If Not FileExists($path_mainDir & $path_7zipExe) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\7za.exe", $path_mainDir & $path_7zipExe)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 15)
    Sleep(100)

    If Not FileExists($path_mainDir & $path_mendeleyDir) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\Mendeley.7z", $path_mainDir & $path_mendeleyZipped)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 20)
    Sleep(100)

    If Not FileExists($path_mainDir & $path_tabulaDir) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\Tabula-Win-1.1.1.7z", $path_mainDir & $path_tabulaZipped)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 25)
    Sleep(100)

    If Not FileExists($path_mainDir & $path_openofficeDir) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\OpenOffice.7z", $path_mainDir & $path_openofficeZipped)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 30)
    Sleep(100)

    If Not FileExists($path_mainDir & $path_pdfbearbeitenDir) Then

        FileInstall("P:\FG_IV_2.2\Projects\PDF_To_Database\External_Software\PDFBearbeiten.7z", $path_mainDir & $path_pdfbearbeitenZipped)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 35)
    Sleep(100)

    #EndRegion ### START Zip installing files (7zip) and set up saving directory ###

    #Region ### START Unzip installing files with portable 7zip ###

    If Not FileExists($path_mainDir & $path_mendeleyDir) Then

        RunWait($path_mainDir & $path_7zipExe & ' x ' & $path_mainDir & $path_mendeleyZipped & ' -o' & $path_mainDir & $path_installFilesDir, "", @SW_HIDE)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 50)
    Sleep(100)

    If Not FileExists($path_mainDir & $path_tabulaDir) Then

        RunWait($path_mainDir & $path_7zipExe & ' x ' & $path_mainDir & $path_tabulaZipped & ' -o' & $path_mainDir & $path_installFilesDir, "", @SW_HIDE)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 60)
    Sleep(100)

    If Not FileExists($path_mainDir & $path_openofficeDir) Then

        RunWait($path_mainDir & $path_7zipExe & ' x ' & $path_mainDir & $path_openofficeZipped & ' -o' & $path_mainDir & $path_installFilesDir, "", @SW_HIDE)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 70)
    Sleep(100)

    If Not FileExists($path_mainDir & $path_pdfbearbeitenDir) Then

        RunWait($path_mainDir & $path_7zipExe & ' x ' & $path_mainDir & $path_pdfbearbeitenZipped & ' -o' & $path_mainDir & $path_installFilesDir, "", @SW_HIDE)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 80)
    Sleep(100)

    #EndRegion ### START Unzip installing files with portable 7zip ###

    #Region ### START Delete zipped installing files ###

    If FileExists($path_mainDir & $path_7zipExe) Then

        FileDelete($path_mainDir & $path_7zipExe)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 85)
    Sleep(100)

    If FileExists($path_mainDir & $path_mendeleyZipped) Then

        FileDelete($path_mainDir & $path_mendeleyZipped)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 90)
    Sleep(100)

    If FileExists($path_mainDir & $path_openofficeZipped) Then

        FileDelete($path_mainDir & $path_openofficeZipped)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 95)
    Sleep(100)

    If FileExists($path_mainDir & $path_pdfbearbeitenZipped) Then

        FileDelete($path_mainDir & $path_pdfbearbeitenZipped)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 97)
    Sleep(100)

    If FileExists($path_mainDir & $path_tabulaZipped) Then

        FileDelete($path_mainDir & $path_tabulaZipped)

    EndIf
    GUICtrlSetData($progressbarLoadingScreen, 100)
    Sleep(100)

    #EndRegion ### START Delete zipped installing files ###

EndFunc   ;==>_Start_File_Install

Func _Start_Mendeley_with_AutoImport()

    ;_BlockinputEx(1)

    Run($path_mainDir & $path_mendeleyExe, "", @SW_SHOW)

    $path_MendeleyBackup = IniRead($path_iniFile, "Paths", "Mendeley_Backup", "Can't read key 'Mendeley_Backup' from section 'Paths' in ini-file.")
    _ClipBoard_SetData($path_MendeleyBackup)
    WinWaitActive("Mendeley Desktop")
    Sleep(3000)
    Send("{ALT}")
    Sleep(200)
    Send("{LEFT}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{RIGHT}")
    Sleep(200)
    Send("{ENTER}")
    Sleep(200)
    Send("{UP}")
    Sleep(200)
    Send("{ENTER}")
    Sleep(1000)
    Send("^v")
    Sleep(500)
    Send("{ENTER}")
    WinWaitActive("Restore Backup")
    Sleep(500)
    Send("{TAB}{SPACE}")
    Sleep(500)
    Send("{TAB}{TAB}{SPACE}")
    Sleep(500)
    Send("{ENTER}")
    WinWaitActive("Welcome to Mendeley Desktop")
    Sleep(500)
    Send("{ENTER}")

    WinWaitActive("Mendeley Desktop")
    Sleep(3000)
    $path_MendeleyPDFData = IniRead($path_iniFile, "Paths", "Mendeley_PDFData", "Can't read key 'Mendeley_PDFData' from section 'Paths' in ini-file.")
    _ClipBoard_SetData($path_MendeleyPDFData)
    Send("{ALT}")
    Sleep(200)
    Send("{LEFT}")
    Sleep(200)
    Send("{LEFT}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{UP}")
    Sleep(200)
    Send("{ENTER}")
    Sleep(500)
    Send("{RIGHT}")
    Sleep(200)
    Send("{RIGHT}")
    Sleep(200)
    Send("{TAB}")
    Sleep(200)
    Send("{SPACE}")
    Sleep(500)
    Send("{TAB}")
    Sleep(200)
    Send("^v")
    Sleep(200)
    Send("{ENTER}")
    Sleep(500)
    Send("{LEFT}")
    Sleep(200)
    Send("{ENTER}")

    ;_BlockinputEx(0)

EndFunc   ;==>_Start_Mendeley_with_AutoImport

Func _Start_Mendeley_Create_Backup()

    ;_BlockinputEx(1)

    Run($path_mainDir & $path_mendeleyExe, "", @SW_SHOW)

    $path_MendeleyBackup = IniRead($path_iniFile, "Paths", "Mendeley_Backup", "Can't read key 'Mendeley_Backup' from section 'Paths' in ini-file.")
    $path_MendeleyBackupArchive = IniRead($path_iniFile, "Paths", "Mendeley_Backup_Archive", "Can't read key 'Mendeley_Backup_Archive' from section 'Paths' in ini-file.")

    _ClipBoard_SetData($path_MendeleyBackup)

    $time = _Date_Time_SystemTimeToFileTime(_Date_Time_GetSystemTime())
    $time = _Date_Time_FileTimeToStr($time)
    $time = StringReplace($time, ":", "_")
    $time = StringReplace($time, "/", "_")
    $time = StringReplace($time, " ", "_")

    FileMove($path_MendeleyBackup, $path_MendeleyBackupArchive & "\" & "Archive_" & $time & ".zip", 1)
    Sleep(1000)

    WinWaitActive("Mendeley Desktop")
    Sleep(3000)
    Send("{ALT}")
    Sleep(200)
    Send("{LEFT}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{DOWN}")
    Sleep(200)
    Send("{ENTER}")
    Sleep(500)
    Send("^v")
    Sleep(500)
    Send("{ENTER}")
    Sleep(500)
    Send("{ESC}")
    Sleep(500)
    Send("!{F4}")

    ;_BlockinputEx(0)

EndFunc   ;==>_Start_Mendeley_Create_Backup

Func _Process_Close_Tree($sPID)

    If IsString($sPID) Then $sPID = ProcessExists($sPID)
    If Not $sPID Then Return SetError(1, 0, 0)

    Return Run(@ComSpec & " /c taskkill /F /PID " & $sPID & " /T", @SystemDir, @SW_HIDE)

EndFunc   ;==>_Process_Close_Tree

Func _Embed_External_App()
    $hGUI = GUICreate("Test", 800, 600, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_CLIPCHILDREN))
    $PID = Run("C:\Windows\System32\cmd.exe", "", @SW_HIDE)
    $hWnd = 0
    $stPID = DllStructCreate("int")
    Do
        $WinList = WinList()
        For $i = 1 To $WinList[0][0]
            If $WinList[$i][0] <> "" Then
                DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $WinList[$i][1], "ptr", DllStructGetPtr($stPID))
                If DllStructGetData($stPID, 1) = $PID Then
                    $hWnd = $WinList[$i][1]
                    ExitLoop
                EndIf
            EndIf
        Next
        Sleep(100)
    Until $hWnd <> 0
    $stPID = 0
    If $hWnd <> 0 Then
        $nExStyle = DllCall("user32.dll", "int", "GetWindowLong", "hwnd", $hWnd, "int", -20)
        $nExStyle = $nExStyle[0]
        DllCall("user32.dll", "int", "SetWindowLong", "hwnd", $hWnd, "int", -20, "int", BitOR($nExStyle, $WS_EX_MDICHILD))
        DllCall("user32.dll", "int", "SetParent", "hwnd", $hWnd, "hwnd", $hGUI)
        WinSetState($hWnd, "", @SW_SHOW)
        WinMove($hWnd, "", 0, 0, 600, 400)
    EndIf
    GUISetState()
    While 1
        $msg = GUIGetMsg()
        If $msg = -3 Then ExitLoop
    WEnd
EndFunc   ;==>_Embed_External_App

Func _Enter_Ini_Details()

    If (IniRead($path_iniFile, "Trigger", "Mendeley_Backup", "Can't read key 'Mendeley_Backup' from section 'Trigger' in ini-file.") = "1") And _
            (IniRead($path_iniFile, "Trigger", "Mendeley_PDFData", "Can't read key 'Mendeley_PDFData' from section 'Trigger' in ini-file.") = "1") And _
            (IniRead($path_iniFile, "Trigger", "Mendeley_Backup_Archive", "Can't read key 'Mendeley_Backup_Archive' from section 'Trigger' in ini-file.") = "1") Then

        MsgBox($MB_SYSTEMMODAL, "Mendeley backup file", "The current used Mendeley backup file is stored at: " & IniRead($path_iniFile, "Paths", "Mendeley_Backup", "Can't read key 'Mendeley_Backup' from section 'Paths' in ini-file."))
        MsgBox($MB_SYSTEMMODAL, "Mendeley backup archive folder", "The current used Mendeley backup archive folder is stored at: " & IniRead($path_iniFile, "Paths", "Mendeley_Backup_Archive", "Can't read key 'Mendeley_Backup_Archive' from section 'Paths' in ini-file."))
        MsgBox($MB_SYSTEMMODAL, "Mendeley PDFA data folder", "The current used Mendeley PDF data folder is stored at: " & IniRead($path_iniFile, "Paths", "Mendeley_PDFData", "Can't read key 'Mendeley_PDFdata' from section 'Paths' in ini-file."))

    Else

        Sleep(100)
        IniWrite($path_iniFile, "Paths", "Mendeley_Backup", FileOpenDialog("Open the mendeley backup file", "\\gruppende\IV2.2\Int\WRMG\PDF_Extract_Files\", "All (*.zip)"))
        IniWrite($path_iniFile, "Paths", "Mendeley_Backup_Archive", FileSelectFolder("Select the mendeley backup archive folder ", "\\gruppende\IV2.2\Int\WRMG\PDF_Extract_Files\"))
        IniWrite($path_iniFile, "Paths", "Mendeley_PDFData", FileSelectFolder("Select the PDF data folder", "\\gruppende\IV2.2\Int\WRMG\PDF_Extract_Files\"))
        IniWrite($path_iniFile, "Trigger", "Mendeley_Backup", "1")
        IniWrite($path_iniFile, "Trigger", "Mendeley_Backup_Archive", "1")
        IniWrite($path_iniFile, "Trigger", "Mendeley_PDFData", "1")

    EndIf

EndFunc   ;==>_Enter_Ini_Details

Func _Get_Ini($fileList) ;==> The 'fileList' needs full paths

    If UBound($fileList) > 0 Then

        For $element In $fileList

            If StringRegExp($element, "CFG") Then

                Return $element

            EndIf

        Next

    Else

        Return False

    EndIf

EndFunc   ;==>_Get_Ini

Func _Handoff_PDF_From_Mendeley_To_Internal()

    Local $trigger = True, $path_pdfFromInternal

    While ($trigger = True)

        Sleep(50)

        If WinActive("Data") = True Then

            ;_BlockinputEx(1)

            Sleep(500)

            Send("^c")

            Sleep(500)

            ShellExecute($path_pdfextractorInternalDir)
            Sleep(1000)
            WinActivate("Internal")

            Sleep(500)

            Send("^v")

            Sleep(1000)

            WinClose("Internal")
            WinClose("Data")

            $trigger = False

            Sleep(500)

            Send("!{F4}")

            $path_pdfFromInternal = _FileListToArray($path_mainDir & "\PDF_Extractor\Internal", Default, Default, True)

            ;_BlockinputEx(0)

        EndIf

    WEnd

    Return $path_pdfFromInternal[1]

EndFunc   ;==>_Handoff_PDF_From_Mendeley_To_Internal

Func _CheckError($sMsg, $iError, $iExtended)

    If $iError Then
        $sMsg = "Error using " & $sMsg & " button (" & $iExtended & ")"
    Else
        $sMsg = ""
    EndIf
    GUICtrlSetData($g_idError_Message, $sMsg)

EndFunc   ;==>_CheckError

Func _Start_PDFeditor_with_file($path_pdfFile)

    _ClipBoard_SetData($path_pdfFile)

    Run($path_mainDir & $exe_pdfbearbeiten, "", @SW_SHOW)

    Sleep(2000)

    Send("{ALT}{ENTER}{ENTER}")
    Sleep(1000)
    Send("^v{ENTER}")

EndFunc   ;==>_Start_PDFeditor_with_file

Func _Start_Tabula_with_file($path_pdfFile)

    Local $path_tabulaDir = $path_installFilesDir & "\Tabula-Win-1.1.1", _
        $oObject

    ;_BlockinputEx(1)

    FileChangeDir($path_mainDir & $path_tabulaDir)
    $iPID = Run(@ComSpec & " /k tabula.exe", "", @SW_HIDE) ; Execute the Tabula-Win-1.1.1 software (/k means 'keep' (without it does not executed))

    $gui_loading_screen = GUICreate("Starting server ...", 300, 40, 100, 200)
    $progressbarLoadingScreen = GUICtrlCreateProgress(10, 10, 280, 20)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_On_Close")
    GUICtrlSetColor(-1, 32250) ; not working with Windows XP Style
    GUISetState(@SW_SHOW)

    For $i = $iSavePosStartingServer To 100

        GUICtrlSetData($progressbarLoadingScreen, $i)

        Sleep(200)

    Next

    GUIDelete($gui_loading_screen)

    $oIE = _Start_Embedded_Browser()

    sleep(2000)

    $oObject = _IEGetObjByName($oIE, "files[]")
    _IEAction($oObject, "click")

    _ClipBoard_SetData($path_pdfFile)

    Local $path_csvFile = (StringReplace($path_pdfFile, ".pdf", ".csv"))

    MsgBox($MB_SYSTEMMODAL, "TEST", $path_csvFile)

    While NOT FileExists($path_csvFile)

        sleep(50)

    WEnd

    return $path_csvFile

    ;_BlockinputEx(0)

EndFunc   ;==>_Start_Tabula_with_file

Func _Start_table_calculator_with_csv($path_csvFile)

    Local $exe_scalc = "\PDF_Extractor_InstallFiles\OpenOffice\program\scalc.exe"

    Run($path_mainDir & $exe_scalc, "", @SW_SHOW)

    sleep(3000)

    MsgBox($MB_SYSTEMMODAL, "TEST", $path_csvFile)

    _OOoCalc_BookOpen($path_csvFile)

    WinClose("Embedded Web-Browser")
    WinClose("Download beendet")

EndFunc

Func _On_Button()

    Local _
            $exe_scalc = "\PDF_Extractor_InstallFiles\OpenOffice\program\scalc.exe", _
            $path_tabulaDir = $path_installFilesDir & "\Tabula-Win-1.1.1", _
            $path_pdfFromInternal

    Switch @GUI_CtrlId ;Check which button sent the message

        Case $btn_tabula

            ;_BlockinputEx(1)

            FileChangeDir($path_mainDir & $path_tabulaDir)
            $iPID = Run(@ComSpec & " /k tabula.exe", "", @SW_HIDE) ; Execute the Tabula-Win-1.1.1 software (/k means 'keep' (without it does not executed))

            $gui_loading_screen = GUICreate("Starting server ...", 300, 40, 100, 200)
            $progressbarLoadingScreen = GUICtrlCreateProgress(10, 10, 280, 20)
            GUISetOnEvent($GUI_EVENT_CLOSE, "_On_Close")
            GUICtrlSetColor(-1, 32250) ; not working with Windows XP Style
            GUISetState(@SW_SHOW)

            For $i = $iSavePosStartingServer To 100

                GUICtrlSetData($progressbarLoadingScreen, $i)

                Sleep(200)

            Next

            GUIDelete($gui_loading_screen)

            _Start_Embedded_Browser()

            ;_BlockinputEx(0)

        Case $btn_wizard

            _Start_Mendeley_with_AutoImport()

            $path_pdfFromInternal = _Handoff_PDF_From_Mendeley_To_Internal()

            _Start_PDFeditor_with_file($path_pdfFromInternal)

            WinWaitClose("PDF Bearbeiten")

            $path_csvFromInternal = _Start_Tabula_with_file($path_pdfFromInternal)

            _Start_table_calculator_with_csv($path_csvFromInternal)

        Case $btn_pdfbearbeiten

            Run($path_mainDir & $exe_pdfbearbeiten, "", @SW_SHOW)

        Case $btn_openoffice

            Run($path_mainDir & $exe_scalc, "", @SW_SHOW)

        Case $btn_mendeley

            _Start_Mendeley_with_AutoImport()

            WinWaitClose("Mendeley Desktop")

            If MsgBox(4, "Any changes?", "Do you want to create a new backup file?") = 6 Then

                _Start_Mendeley_Create_Backup()

            EndIf

        Case $btn_exit_main

            _Process_Close_Tree($iPID)
            GUIDelete($gui_main)
            Exit

        Case $btn_home

            _IENavigate($oIE, "http://127.0.0.1:8080")
            _IEAction($oIE, "stop")
            _CheckError("Home", @error, @extended)

        Case $btn_exit_embedded

            GUIDelete($gui_webbrowser)

    EndSwitch

EndFunc   ;==>_On_Button

Func _On_Close()

    Switch @GUI_WinHandle

        Case $gui_main

            GUIDelete($gui_main)
            Exit

        Case $gui_webbrowser

            GUIDelete($gui_webbrowser)

        Case $gui_loading_screen

            GUIDelete($gui_loading_screen)
            Exit

    EndSwitch

EndFunc   ;==>_On_Close

#EndRegion ### START Functions section ###

 

With this code I create a workflow between 4 portable apps.

 

When I compile my script then the result is an big .exe (~ 200 MB) that contains my functions and the 4 portable apps.
When the .exe is executed the 4 apps are installed in the directory that the user has chosen.
Everything fine.

The problem:

If the user will start the program he everytime need to click the big .exe which I compiled.
I image a real installation of my program. Extract the functions to the installation directory that the user has chosen and make a shortcut on desktop.
Like every program or game on PC.

I try to avoid to execute the installer-file.
Only once click the .exe, install it and the execute the program with a short cut.
I need to extract and copy the functions within my code (.exe) to the installation directory.

 

Do you have a note where I need to look to reach this goal?

Kind regards
OtenMoten

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...