Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 70211 Skopiuj do schowka Otwieranie i zamykanie aplikacji z pomocą VBA
Autor Wiadomość
Auditorius 
Exceloholic


Wersja: Win Office 2013
Posty: 185
Wysłany: 22-02-2021, 15:49   Otwieranie i zamykanie aplikacji z pomocą VBA

Po róznych testach konwersji PDF-Word - Excel wyszło mi że najbardziej pewną metodą jest wykorzystanie zewn. aplikacji która umożliwia OCR PDFa. (ABBYY)
Wówczas mam 98% pewności że niezaleznie od źródła stworzenia PDFa jestem w stanie sprawdzić jego zawartośĆ wg słów kluczowych

Znalazłem taki kod do uruchamiania i wyłączania aplikacji

Kod:

'https://www.taltech.com/support/entry/opening_and_closing_an_application_from_vba

' Opening and Closing an Application from VBA
'This example should work with any VBA program such as Excel, Access & Word
Visual Basic for Applications (VBA) is part of all Microsoft Office products, including Excel, Access, Word, and more. It can easily be used to open up any Windows program. The example below is configured for the BC-Wedge installation on our Windows 7 machine. Note that if you are running on a 64-bit machine, your path will be different. Your path will also be different if you installed BC-Wedge in a location other than default or if you are trying to open a program other than BC-Wedge.

Sub Auto_Open()
    Dim x As Variant
    Dim Path As String

    ' Set the Path variable equal to the path of your program's installation
    Path = "C:\Program Files\BC-Wedge\BC-Wedge.exe"

    x = Shell(Path, vbNormalFocus)
End Sub

' Closing any application from VBA can be accomplished with the example code below. This can be used for both our applications or any other windows program. We recommend using this method if you are using BC-Wedge, TCP-Com, COM-File or TCP-File. For other applications, such as WinWedge or B-Coder, there is a much easier method facilitated by DDE (Dynamic Data Exchange). Our WinWedge example can be found at the bottom of the Launching WinWedge from an Excel Macro support article.
' The code is documented below. To change the program to TCP-Com, TCP-File, COM-File or any other application, simply change the name of the exe.




Kod:

Sub TerminateApp()
     '---------------------------------------------------------------------------------------
     ' Terminates the exe process specified.
     ' Uses WMI (Windows Management Instrumentation) to query all running processes
     ' then terminates ALL instances of the exe process held in the variable strTerminateThis.
     '---------------------------------------------------------------------------------------

Dim strTerminateThis As String
'The variable to hold the process to terminate

Dim objWMIcimv2 As Object, objProcess As Object, objList As Object
Dim intError As Integer

'Process to terminate – you could specify and .exe program name here

strTerminateThis = "bc-wedge.exe"

'Connect to CIMV2 Namespace and then find the .exe process

Set objWMIcimv2 = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objList = objWMIcimv2.ExecQuery("select * from win32_process where name='" & strTerminateThis & "'")
For Each objProcess In objList
            intError = objProcess.Terminate 'Terminates a process and all of its threads.
             'Return value is 0 for success. Any other number is an error.
            If intError <> 0 Then Exit For
Next

'ALL instances of exe (strTerminateThis) have been terminated
Set objWMIcimv2 = Nothing
Set objList = Nothing
Set objProcess = Nothing

End Sub


oraz taki na uruchamianie z cmd i shell-a
Kod:


' https://officeinside.org/excel-vba-tutorial/excel-vba-shell-how-to-control-programs-from-excel/

'How to run any program from Excel VBA
'Using the VBA Shell function, you can run, most of programs delivered with the Windows system, such as Paint, Notepad, etc.
'To do this, type the program name in quotes in the first Shell function argument:

Sub vbaShellFunction()
'OfficeInside.Org

      Shell ("notepad")
      Shell ("mspaint")
      Shell ("excel")
End Sub


Z plikiem
Kod:

'If you want to run a specific file with a specific program, ie. run an Excel file
' enter the program name in the Shell function argument, and after the spacebar the file you want to open in it:

 Shell("excel d:\Sheet1.xlsx")
'To run any file from Excel VBA using the default program set in Windows, type the following in the function argument: explorer.exe.

Shell("explorer.exe d:\Sheet1.xlsx")
'In this way you opened another Excel file using Excel and VBA.



How to run batch file from Excel VBA?
How to do it? To use the above-mentioned commands, you should create files with the extension bat, called batch files. The bat file in its content should have the shell command ie. copy, delete or rename files. If on the other hand you would like to add parameters for commands, this is not possible from the Shell function level. Other functions of the VBA language are used for this.


Kod:

'How to turn off the computer in VBA Excel
'To close programs and turn off the computer from MS Excel, you should create batch files
' with the extension bat. Below you can find code for these files:

'Computer shutdown: shutdown/s
'Computer restart: shutdown/r
'Computer hibernation: shutdown/h


Sub vbaShellComputerHiber()

      Shell ("cmd /k shutdown/h")
End Sub



PYTANIE - ja chciałbym dedykowaną aplikację uruchamiać wielokrotnie tak by:
- uruchamiała się
- wczytywała plik PDF
- dokonywała konwersji PDF - Word lub Excel
- zapisywała Excela
- wczytywała kolejny plik PDF i robiła dokładnie to samo itp.

CZYLI W SKRÓCIE: najbardziej poządana opcja to uruchomienie konwersji plików PDF z katalogi e:\pdfy\


Słabo ale potrafię obsłużyć takie coś w pętli w Excelu jeżeli to ma być aplikacja z rodziny Microsoft Office.
Ale jak znaleźć i szukać parametrów uruchamiania zewn. aplikacji ? Bo zakładam że musze uruchomić aplikację od razu z jakimś parametrem, który mówi aplikacji - otwórz od razu PDFa o nazwie lub z katalogu "E\PDFY\" i rozpocznij konwersję.
Jak szukać takich parametrów ?

Chyba że błędnie podchodzę do tematu i po prostu mam grzecznie obsłużyć aplikację
Konkretnie chodzi o ABBYY PDF Converter

ANALYSIS-TABS-Interacting-With-Other-Applications.xlsm
Pobierz Plik ściągnięto 0 raz(y) 35.73 KB

vba_shell.xlsm
Pobierz Plik ściągnięto 0 raz(y) 13.13 KB

_________________
Nobody's Perfect
  
ID posta: 400846 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 3091 razy
Posty: 10240
Wysłany: 23-02-2021, 01:33   

Jakieś możliwości zautomatyzowania procesu daje wykorzystanie linii poleceń programu ABBY FineReader PDF 15.

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 400867 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe