Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Έλεγχος ανοικτού προγράμματος
Καλησπερα και καλές εορτές σε ολα τα μέλη του φόρουμ. Εχω ενα προβλημα στην εφαρμογη που δουλευω στο μαγαζι μου και θα παρακαλουσα για την βοηθεια σας. Μερικες φορες κλεινουμε κατα λαθος το φορολογικο προγραμα και εκδιδουμε παραστατικα χωρις συμβολοσειρα και (το προστιμο της εφοριας ειναι αρκετα καλο !!!!) Το προβλημα θα λυνονταν κατα την γνωμη μου εαν μπορουσα να ελενξω πριν εκτυπωθει ενα παραστατικο εαν το προγραμα της φορολογικης μηχανης ειναι ανοικτο (δεν ξερω πως να το κανω ομως) η εαν υπαρχει αλλος τροπος. Ευχαριστω. Δημος |
#2
| ||||
| ||||
Καλησπέρα σε όλους! Αγαπητέ Δήμο, για να ελέγξεις αν μια εφαρμογή είναι ανοιχτή θα πρέπει να γνωρίζεις:
Παρακάτω παρουσιάζω 3 από αυτές: 1) Αν γνωρίζεις τον τίτλο του παραθύρου της εφαρμογής, ο κώδικας που μπορείς να χρησιμοποιήσεις είναι: Κώδικας: Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, ByVal lpWindowName As String) As Long Function IsRunning(WindowTitle As String) As Boolean IsRunning = FindWindow(vbNullString, WindowTitle) <> 0 End Function Sub test() If IsRunning("My Application window title") Then ' Εδώ θα βάλεις τον τίτλο του παραθύρου της εφαρμογής. ' Ο κωδικας σου... '............... '............... Else MsgBox "Application Is not running!", vbCritical End If End Sub 2) Αν γνωρίζεις το όνομα της διεργασίας της εφαρμογής, ο κώδικας που μπορείς να χρησιμοποιήσεις είναι: Κώδικας: Function IsProcessRunning(strProcess As String) As Integer Dim Process, ProcessList, strComputer, objWMIService strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set ProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = '" & strProcess & "'") IsProcessRunning = ProcessList.Count End Function Sub test1() If IsProcessRunning("MyApp.exe") Then ' Εδώ θα βάλεις το όνομα της διεργασίας της εφαρμογής. ' Ο κωδικας σου... '............... '............... Else MsgBox "Application Is not running!", vbCritical End If End Sub 3) Υπάρχει και η εντολή VBA AppActivate title[, wait] αλλά... δεν είναι ότι καλύτερο. Θα την παρουσιάσω όμως: Κώδικας: Function AppIsRunning(WindowTitle As String) As Boolean On Error Resume Next AppActivate WindowTitle AppIsRunning = Err = 0 On Error GoTo 0 End Function Sub test2() If AppIsRunning("My Application window title") Then ' Εδώ θα βάλεις τον τίτλο του παραθύρου της εφαρμογής. ' Ο κωδικας σου... '............... '............... Else MsgBox "Application Is not running!", vbCritical End If End Sub
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 15-12-11 στις 19:45. |
#3
| |||
| |||
Καλησπερα σε ολους Τασο σε ευχαριστω δοκιμασα την δευτερη μεθοδο και δουλευει αψογα (Γλυτωσα μερικα προστιμα) Καλες εορτες |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Δημιουργία έκθεσης εβδομαδιαίου προγράμματος διατροφής | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 9 | 12-11-14 08:02 |
[Συναρτήσεις] Σύνταξη εβδομαδιαίου Πρόγραμματος Οδηγών | ΑΠΟΣΤΟΛΗΣΚ | Excel - Ερωτήσεις / Απαντήσεις | 4 | 10-12-13 19:41 |
Access Σύνταξη Εβδομαδιαίου Προγράμματος | ΑΠΟΣΤΟΛΗΣΚ | Access - Ερωτήσεις / Απαντήσεις | 1 | 01-12-13 19:29 |
[Γενικά] Δημιουργία προγράμματος | panos24 | Excel - Ερωτήσεις / Απαντήσεις | 9 | 11-07-12 17:14 |
Εντολή εκτέλεσης προγράμματος | stratos75 | Access - Ερωτήσεις / Απαντήσεις | 1 | 05-05-12 11:00 |
Η ώρα είναι 21:00.