Olis makro joka tarttee tekstiä pdf:stä. On jo olemassa exe joka hakee tekstin mutta saako sen ajettua kesken makron suorituksen? Eli makro ajaisi tuon exen ja myös sulkisi sen. tuli mieleen vaikka komentorivi käskyjen välittäminen.
Exe:n ajo Excelistä
Reksa
3478
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 3
Vanhimmat
Esimerkissä avataan Windowsin ohjetiedosto:
--------------------------
Sub AvaaExe()
Call Shell("cmd /c ""C:\WINDOWS\WINHELP.exe""")
End Sub
--------------------------
Kiitos ohjeesta, pelaa hienosti. Jatkoa pukkaa, mites ois mahdollista seurata onko kyseisellä koodinpätkällä avattu sovellus käynnissä. Meinaan vaan että jos käyttäjä avaa napilla sovelluksen niin napin sain disbloitua ettei epähuomiossa avaa useamman kerran? Entäs kyseisen sovelluksen sammuttaminen. En löytänt vinkkiä vaikka miten etsin. Paluuarvohan sieltä tulee joka kertoo onnnistuiko sovelluksen avaaminen.
Exen sammuttaminen voisi onnistua jos pistää exelle parin sekunnin viiveen ja hoitaa sulkemisen näppäinkomentojen avulla. Esimerkissä Winhelpin sulkeminen:
------------------------
Sub AvaaExe()
Call Shell("cmd /c ""C:\WINDOWS\WINHELP.exe""")
Application.Wait Now() TimeValue("00:00:02")
SendKeys "{F10}"
SendKeys "T"
SendKeys "L"
End Sub
------------------------
Sen tarkistus, että onko tiedosto jo auki, on hieman vaikeampi juttu, menee jonkin verran VB-ohjelmoinnin puolelle. Silloin pitää myös tietää että millä nimellä Windows tunnistaa kyseisen ikkunan, esim. Notepad löytyy nimellä Notepad mutta Winhelp nimellä ei vastaavasti Winhelp.exen ikkunaa tuntunut löytyvän.
Esimerkissä yksinkertainen tarkistus kohteena Notepad.exe:
------------------------
Option Explicit
Public Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" _
( _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) _
As Long
Sub AvaaNotepad()
If Not FindWindow("Notepad", vbNullString) = 0 Then
MsgBox "Notepad on jo avattu"
Exit Sub
Else
Shell "Notepad"
End If
End Sub
------------------------