Avatar billede stig3 Mester
09. november 2000 - 10:55 Der er 8 kommentarer og
1 løsning

starte ikke-office program

Jeg har et ikke-office-program (exe-fil), som jeg gerne vil starte fra visual basic og lukke igen efter et minut.

Hvordan gør man det ???
Avatar billede horus Nybegynder
09. november 2000 - 11:02 #1
du skal i hvert fald bruge kommandoen shell til at åbne din exe fil.... men om det kan lade sig gøre at lukke det igen..... hmmm, du skal så i hvert fald lave en eller anden timer funktion, der lukker efter 1 minut, men jeg ved desværre ikke om der findes en \"modsat\" shell funktion i VB til at lukke programmet igen.... det er muligt at du kan gøre det via nogle API kald, men det er en smule for advanceret for mig.....

Håber dog jeg har været til en smulle hjælp

Mvh.

Horus
Avatar billede tdaugaard Nybegynder
09. november 2000 - 12:48 #2
Du skal bruge ShellExecute() til at starte det. så kan du vha. et killprocess API lukke det igen. (Da ShellExecute er en function og returnere en long specificerene process handle på programmet.)

Vender lige tilbage med noget ..
Avatar billede stig3 Mester
09. november 2000 - 12:50 #3
det lyder fornuftigt, men jeg er ikke helt med

start:
ShellExecute(program.exe)

Og hvordan standser jeg så programmet fra VB ?
Avatar billede tdaugaard Nybegynder
09. november 2000 - 13:02 #4
Nej, vent lidt...

ShellExecute er et API kald..

jeg kommer med noget kode om lidt ..
Avatar billede tdaugaard Nybegynder
09. november 2000 - 13:08 #5
I formen\'s General section skriver du:

------------------
Private Declare Function ShellExecute Lib \"shell32.dll\" Alias \"ShellExecuteA\" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Const SW_SHOWNORMAL = 1

Private Sub Command1_Click()
    Dim lngRetVal As Long

    lngRetVal = ShellExecute(Me.hWnd, \"open\", \"c:\\noget\\dit_program.exe\", \"evt._parametre\", \"\", SW_SHOWNORMAL)

    If Not lngRetVal = 3 Then \' Hvis ikke File Not Found så ..
      ...
    End If
End Sub
-------------

sådan _starter_ du et program. lngRetVal vil indeholde et handle til processen du startede (hvis ikke den er 3 da det vil betyde at filen ikke blev fundet..)

vordan man lukker det igen det ved jeg ikke lige men jeg arbejder på sagen ..
Avatar billede tdaugaard Nybegynder
09. november 2000 - 13:53 #6
Upz .. mangler lige et H i hvordan ..

anyway .. jeg aner ikke hvordan du lukker den igen. Jeg har prøvet med både TerminateProcess & TerminateThread (begge API kald) dog uden held.
Avatar billede stig3 Mester
09. november 2000 - 15:04 #7
Det virker lidt underligt, hvis man ikke kan lukke programmet igen, men her er pts\'ne. Du har vist rigeligt fortjent dem.
Avatar billede joern Nybegynder
11. november 2000 - 12:45 #8
Hej Stig3.

For nogen tid siden ville jeg lave et program, der kunne vise alle aktive programmer og skrive til en fil hvilke, hvornår og åbnet af hvem (på netværk).  Jeg mener der i den samling af api\'er også er kode til at lukke kørende programmer, endog nogle der kører på andre maskiner i et netværk!
Her er URL\'en:  http://pages.hotbot.com/edu/tincani.andrea/tip020014.html

M.v.h.  Jørn
Avatar billede joern Nybegynder
11. november 2000 - 13:07 #9
Fortsættelse:  Linket virker endnu, men siderne er flyttet til:  http://www.andreavb.f2s.com/
M.v.h. Jørn
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester