[ Air Live @ 28.01.2008. 19:43 ] @
| E ljudi,kako da isprogramiram svoj exe fajl da se otvara sam - odnosno da se pokrece ukoliko je pokrenut neki drugi program i da se moj exe fajl zatvara kada se taj drugi program zatvori.
Konkretno :
Želim pokrenuti svoj exe fajl u kojem cu isprogramirati to, a on će se nalaziti na putanji C:\Program Files\Program.exe
Ali ukoliko je pokrenut program C:\Program Files\PokrenutiProgram.exe
- Znači zelim da mi se pokrece i zatvara sam moj program ukoliko ja pokrenem neki drugi program,tj ukoliko je taj drugi program aktivan u Processes !
Pozdrav ! |
[ rgdrajko @ 13.04.2008. 22:58 ] @
Evo resenja na brzinu:
Code:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_QUIT = &H12
Public StartovanJeExeProgram As Boolean
Private Sub Command1_Click()
End
End Sub
Private Sub Timer1_Timer()
Dim NatpisProzora As String
Dim imeexeprograma As String
NatpisProzora = "Fabricki serijski broj diska"
If Trazi(NatpisProzora) = True Then
Label1.Caption = "Postoji ime prozora " & NatpisProzora & " u Task manageru"
If StartovanJeExeProgram = False Then
Shell "C:\proba\Upozorenje.exe", vbNormalFocus
StartovanJeExeProgram = True
End If
Label2.Caption = "Pokrenut je i program Upozorenje.exe"
Else
Label1.Caption = "Ne postoji prozor " & NatpisProzora & " u Task manageru"
Label2.Caption = ""
End If
End Sub
Public Function Trazi(ImeProzora) As Boolean
Dim sTitle As String
Dim iHwnd As Long
Dim ihTask As Long
Dim iReturn As Long
sTitle = ImeProzora
iHwnd = FindWindow(0&, sTitle)
If iHwnd = 0 Then
Trazi = False
Else
Trazi = True
End If
If StartovanJeExeProgram = True Then
If Trazi = False Then
'Pri zatvaranju prozora "Fabricki serijski broj diska" zatvaranje i prozora Upozorenje!
sTitle = "Upozorenje!"
iHwnd = FindWindow(0&, sTitle)
iReturn = PostMessage(iHwnd, WM_QUIT, 0&, 0&)
End If
End If
End Function
[ Shadowed @ 13.04.2008. 23:34 ] @
Ok, ovo je vec vrlo cudan zahtev pre svega (pa posle i ostalo). Mislim da smo na nekoj temi vec objasnjavali to.
Elem, da bi uradio to sto hoces, vec mora jedan program da ti bude aktivan (da bi pratio kada se pokrene taj koji pratis). Zasto onda pokretati nov program? Samo smesti kod u taj koji je stalno aktivan.
OK, sad mi pade na pamet jedna mogucnost - ako taj koji treba da se pokrene nisi ti pisao.
OK, sad ostalo :) Ovo Rajkovo resenje je polovicno, posto pokrece kada treba, ali ne zaustavlja (pod uslovom da je ispravno sve, nisam gledao detalje). Medjutim jedan detalj mi je zapao za oko, jedan šampionski detalj: If Trazi(NatpisProzora) = True Necu uopste komentarisati.
[ Eurora3D Team @ 14.04.2008. 00:35 ] @
@Rajko dobar programcic ...
[Ovu poruku je menjao Eurora3D Team dana 14.04.2008. u 15:40 GMT+1]
[ Air Live @ 14.04.2008. 13:13 ] @
Uh uh,nisam odavno bio na VB forumu,a sto se tice ovog problema,gospodin rgrajko je to sve lijepo uradio ali neradi mu opcija pri zatvaranju Project1.exe kada se on zatvara treba da zatvra i ovaj drugi exe ! a sto se tice programa,to je dodatak koji bih ja napravio na jedan program koji nema neke opcije eh sad treba kad se taj softver pokrene da otvara moj dodatak i kad se taj program zatvara da zatvara i moj dodatak za taj program,to je to,ali ja sam rjesio ovako : napraviosam jedan exe fajl koji u sebi ima funkciju shell i on poziva oba exe fajla zajedno i to je to,samo sto moram rucno zatvarati oba programa.
Ako ima bolje rjesenje prihvata.
Pozdrav forumasi !!!
[ Shadowed @ 14.04.2008. 13:19 ] @
Mozes u tom "dodatku" staviti ovaj Rajkov kod i malo modifikovati tako da zaustavi program kada nema aktivnog glavnog programa.
[ Air Live @ 14.04.2008. 14:05 ] @
Pogledat cu u toku dana njegov cod posto nemam sada vb6 na ovom komp.Ali iz prilozenog sam zakljucio da to neradi zatvaranje.
Pozdrav !
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.