Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

AppActivate & Nummernblockphänomen

AppActivate & Nummernblockphänomen
Mario
Guten Morgen,
vielleicht hat jemand ja einen Lösungsansatz / Erklärung für folgendes Problem.
Per Shell öffne ich ein Programm. Ist in der Zelle C11 ein Wert gesetzt, schließe ich das Programm direkt wieder per Sendkey (Alt+F4).
Hier der Auszug aus meinem code:
....
Status = Shell("C:\Programm.exe", 1)
If ActiveSheet.Range("C11").Value = True Then
AppActivate Status
SendKeys "%{F4}", True
End if
Gehen wir von True aus - die Bedingung ist also erfüllt und Programm.exe soll direkt wieder geschlossen werden.
Frage 1) wieso schaltet sich dann der Nummernblock nach Ausführen des Codes manchmal ein bzw. aus?
Frage 2) Excel ist deaktiviert und lässt sich nur per Mausklick wieder aktivieren. Kann ich die Task-Id der Arbeitsmappe welche meinen Code enthält irgendwie auslesen und dann per AppActivate wieder aktivieren? AppActivate ("Microsoft Excel") und ähnliche Versuche funktionieren nicht.
Vielen Dank!
mario

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
dies liegt an SendKeys ...
28.01.2010 08:47:44
Tino
Hallo,
versuch mal sowas.
Private Declare Function OpenProcess Lib "kernel32" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" ( _
ByVal hProcess As Long, _
ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
Sub test()
Dim lTaskID As Double
Dim lhwnd As Long, lResult As Long
lTaskID = Shell("C:\Windows\system32\notepad.exe", 1)
'Task beenden
lhwnd = OpenProcess(1&, 0&, CLng(lTaskID))
TerminateProcess lhwnd, 1&
lResult = CloseHandle(lhwnd)
If lResult = 1 Then MsgBox "Prog geschlossen"
End Sub
Gruß Tino
Anzeige
AW: dies liegt an SendKeys ...
28.01.2010 09:07:13
Mario
mann-oh-mann!
das klappt einfach PRIMA!!!! :-)
Vielen herzlichen Danke Tino!
mario

46 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige