Forum

QRK beenden  

  RSS
axibua
(@axibua)
Eminent Member

Hallo Kollegen,

das Starten von QRK mit Parameter (servermode) geht einwandfrei.

Das Beenden aus einem anderen Programm heraus scheitert an der Notwendigkeit das Häkchen des Servermodus manuell entfernen zu müssen.

Kann man die Aufforderung zum Entfernen des Häkchens vor dem Beenden weglassen ? --- oder automatisieren ?

Schöne Grüße axibua

 

AntwortZitat
Veröffentlicht : 14. April 2018 13:13
chris
(@chris)
Honorable Member Admin

Servus

Ist eigentlich schon erledigt. In der nächsten Version wird gewartet bis ein aktueller bon fertig ist. Der Servermode wird dann beendet. Nach einen kurzem Countdown wird dann auch qrk geschlossen.

Ich muss noch ein paar fixes erledigen dann jommt das Update.

LG
Chris
_________________

AntwortZitat
Veröffentlicht : 14. April 2018 13:58
axibua
(@axibua)
Eminent Member

Thanks, axibua

AntwortZitat
Veröffentlicht : 14. April 2018 16:22
axibua
(@axibua)
Eminent Member

Hallo Chris,

danke erstmal für das letzte Update !

Ich hoffe, dass ich Euch mit meinen Wünschen nicht auf die Neven gehe !

Also das Starten von qrk.exe (inkl. Server-Modus) aus einem Fremd-Programm geht einwandfrei.

Das Beenden aus diesem Fremd-Programm funktioniert auch, aber beim nächsten Start kommt die Fehlermeldung

" Das Programm läuft bereits oder wurde das letzte Mal gewaltsam beendet ......." und startet nicht.

Der nächste Start geht wieder OK.

Mir ist schon klar, dass bei diesem Beenden qrk.exe praktisch abgewürgt wird.

Aber im Sinn der Automation wäre hier eine Lösung super.

LG axibua

AntwortZitat
Veröffentlicht : 14. Mai 2018 11:06
chris
(@chris)
Honorable Member Admin

Hallo

Wie beendest (bzw. killst) Du QRK?

 

LG
Chris
_________________

AntwortZitat
Veröffentlicht : 14. Mai 2018 21:44
axibua
(@axibua)
Eminent Member

Hallo Chris !

Ich rufe qrk.exe unter WIN10 (oder 7) mit ACCESS 2010 (oder 2016) VBA auf.

Den entsprechenden Modul habe ich angehängt.

Bei Programmen wie Notepad oder Tastatur usw. geht's natürlich problemlos, da keine Rückfrage "Beenden JA / NEIN ?"

Bei einer Datenbank bin ich unsicher ob alles gespeichert wurde.

Aber wie gesagt, zwecks Automatisierung wäre es schön, wenn man das qrk-aufrufende und das qrk-Programm selbst von einer Stelle aus starten und beenden könnte. Das Starten funktioniert ja klaglos. Beenden muss der User aber explizit beide Programme und wenn er vergisst qrk.exe zu beenden und schaltet den PC am Abend aus, hat er tags darauf ein Problem.

Vielleicht hast Du eine Lösung.

Wäre mir eine Spende wert.

LG axibua

 

 

 

AntwortZitat
Veröffentlicht : 15. Mai 2018 10:39
chris
(@chris)
Honorable Member Admin

Hallo

Ein Programm einfach abzuwürgen ist nie gut. Bei Notepad wird's wohl egal sein. Aber wie Du siehst kann QRK einige Daten nicht mehr schreiben.

Du solltest QRK beenden. Versuch mal Process.Close.

https://msdn.microsoft.com/en-us/library/system.diagnostics.process.close(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

LG
Chris
_________________

AntwortZitat
Veröffentlicht : 15. Mai 2018 11:00
axibua
(@axibua)
Eminent Member

Mach ich, danke !

Ergebnis teile ich mit.

LG axibua

AntwortZitat
Veröffentlicht : 15. Mai 2018 12:41
chris
(@chris)
Honorable Member Admin

Wenn es nicht notwendig ist das Programm ohne herunterfahren von Windows zu beenden reicht es Windows zu beenden. In der 1.08 wird qrk ordnungsmäßig beendet.

LG
Chris
_________________

AntwortZitat
Veröffentlicht : 17. Mai 2018 18:45
axibua
(@axibua)
Eminent Member

Hallo Chris,

danke für die Info.

Habs sofort probiert und es funktioniert tatsächlich.

Jetzt frag ich mich wieso meine Process-Abwürg-Routine nicht gegangen ist, Windows macht doch auch nicht anderes, oder ?

Deinen letzten Vorschlag mit Process-Close (VB) habe ich unter VBA nicht zum laufen gebracht.

Derzeit habe ich es so gelöst, dass sich beim Beenden des "Hauptprgramms" ein Fenster öffnet welches das Beenden von QRK verlangt. 

Bei Nicht-Beenden kann das "Hauptprogramm nicht geschlossen werden.

Danke für Deine Bemühungen.

Spende kommt trotzdem in den nächsten Tagen.

LG axibua

 

AntwortZitat
Veröffentlicht : 17. Mai 2018 20:27
chris
(@chris)
Honorable Member Admin

Windows sendet WM_CLOSE.

Vorher hat's nicht funktioniert da QRK auf ein Ok gewartet hat. Jetzt wird qrk nach dem timeout beendet.

LG
Chris
_________________

AntwortZitat
Veröffentlicht : 17. Mai 2018 21:54
chris
(@chris)
Honorable Member Admin
Vielleicht hilft das noch.

#If VBA7 And Win64 Then
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr
#Else
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
#End If
Const WM_CLOSE = &H10 Sub Close_Adobe_Reader()
Dim strClassName As String
strClassName = "AcrobatSDIWindow"
hwnd = FindWindow(strClassName, vbNullString)
If hwnd Then
SendMessage hwnd, WM_CLOSE, 0, ByVal 0&
Else
MsgBox "Adobe is not running !"
End If
End Sub

 

 

Halt noch für qrk anpassen

LG
Chris
_________________

AntwortZitat
Veröffentlicht : 17. Mai 2018 23:24
Share:

Bitte beachte auch unsere Knowledgebase und das Handbuch!