Exe:n ajo Excelistä

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.
3478
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Esimerkissä avataan Windowsin ohjetiedosto:

--------------------------

Sub AvaaExe()

Call Shell("cmd /c ""C:\WINDOWS\WINHELP.exe""")

End Sub


--------------------------

Äänestä
  • 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.

    Äänestä

  • Reksa kirjoitti:

    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
    ------------------------

    Äänestä

Kommentoi aloitusta


Reksa kirjoitti:

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.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu