Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Nutzung von Windows Taskmanager verhindern

Begonnen von hawebe, September 08, 2013, 13:27:50

⏪ vorheriges - nächstes ⏩

hawebe

Hallo,

ich suche eine Möglichkeit um den Abbruch laufender Kalkulationen in meiner db durch den Taskmanager zu verhindern.

Habt Ihr dafür Lösungen?
Gruß aus dem Emsland

ebs17

#1
Man könnte die Kalkulationen so beschleunigen, dass es keine Zeit oder zumindest keinen Anlass gibt, den Taskmanager zu betätigen.

Ansonsten sehe ich es als bedenklich an, Windows-Funktionalität durch Anwendungs-Funktionalität beschneiden zu wollen. Stelle Dir vor, Du musst und willst selber die unendliche Kalkulation abbrechen.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

hawebe

Hi,
es geht hier nicht um mich.

Ich habe meine Anwendung zu Testzwecken  in eine Mehrbenutzerumgebung gelegt und muss feststellen, dass es den Usern wohl zu lästig ist, einen Kalkulationsvorgang konsequent zu Ende zu bringen und ordnungsgemäß zu speichern.

Die Konsequenzen für die Anwendung brauche ich wohl hier nicht zu beschreiben.

Meine Frage: Kann Access die Tastenkombination auslesen und kann man über VBA den Abbruch durch den Taskmanager verhindern.

Gruß aus dem Emsland

MzKlMu

Hallo,
der Taskmanager wird ja nicht nur über die Tastenkombi gestartet, sondern auch über die Taskleiste, wie willst Du das verhindern?
Ich nehme z.B. nie die Tastenkombi.

Und was Ebs meinte, war auch über eine Beschleunigung der Kalkulation nachzudenken, dass die User erst gar nicht den TM aufrufen wollen.
Was ist denn bei der Kalkulation so aufwendig, dass das so lange dauert?
Gruß Klaus

database

Hallo,

ich vertrete hier die gleiche Meinung wie ebs ...

Den Taskmanager de-/aktivieren erfordert meiner bescheidenen Kenntnis nach einen Eingriff in die Registry - und davor kann ich dich nur warnen.
Warum? Weil du den Taskmanager beim Starten der Anwendung deaktivieren müsstest und beim Schließen der Selbigen wieder aktivieren.
Sollte es beim Schließen oder während der 'normalen' Arbeit mir der Applikation einen Crash geben bleibt der Taskmanager deaktiviert ...

Also auch meine Empfehlung - Finger weg!

hawebe

Ok!

Es war der Versuch mein Problem vielleicht lösen zu können.

Die vermeintliche Alternative der Beschleunigung ist leider nicht möglich. Dazu müssen im Kalkulationsvorgang zu viele Parameter gesetzt bzw. Tabellen ausgelesen werden.

Danke!
Gruß aus dem Emsland

ebs17

Das "nicht möglich" ist fundiert? Ich habe schon von Vorgängen gelesen, wo Prozeduren von Fortgeschrittenen von größer 24 Stunden auf weniger als 4 Minuten zusammengeschmolzen wurden.

Zu viele Tabellen: Wie kann das kommen? Stimmen die Strukturen?
Zu viele Parameter: Ungünstige Strukturen? Einzelaufrufe statt Massendatenverarbeitung?
Falsche Methoden? Falsche Umgebung?

Es ist gerade Kern der Datenbankarbeit, aus sehr vielen Daten sehr schnell Ergebnisse zu erzeugen.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

hawebe

Ach weist Du:

Es geht um die Kalkulation eines Haftetiketts bis zu Angebotserstellung. Die nacheinander zu setzenden Parameter werden aus Tabellen ausgelesen, wie
- Druckverfahren
- Form und Grösse (Stanze)
- Aufmachung (Rolle mit entsprechender Wicklung bzw. Bogen)
- Material 1 (Papier oder Folie)
- Material 2 (Heißprägefolie gehört zu einem Druckverfahren)
- Preise
usw...

Ich breche hier ab. Die Performance meiner Anwendung ist noch zu steigern. Ich komme aber nicht von den zu setzenden Parametern los.

Sicher könnte ich auf die eine oder andere kleinere Tabelle verzichten indem ich die Parameter im Kombifeld setze und das Ergänzen zulasse. Das hatte ich mal getan und
binnen 4 Wochen waren aus meinen 6 Einträgen ganze 24 geworden. Dabei viel Schwachsinn, den man nicht wieder los wird. Zumindest kenne ich keine Lösung für deren
Löschung aus der Anwendung heraus.

Danke für Dein Engagement und gute Nacht.




Gruß aus dem Emsland

bahasu

Hi,

frei nach dem Motto "Bist Du nicht willig, so gebrauche ich API" ist ein Taskmanager per VBA vorübergehend schließbar.

Die folgenden Schritte sind notwendig:
1. Vor Deiner zeitintensiven Aktion wird das Zeitereignis aktiviert, indem das Zeitintervall auf einen Wert > 0 gesetzt wird.
2. Im Zeitereignis wird mit API überprüft, ob der Manager aktiv ist
3. Wenn das der Fall ist, wird das Programm geschlossen.
4. Nach Deiner zeitintensiven Aktion das Zeitintervall wieder auf 0 setzen

Ist dieses Ziel (Taskmanager zu schliessen) trotz der zuvor geäußerten Warnhinweise weiterhin interessant?

Harald

Servus

hawebe

Danke,

das wollte ich eigentlich wissen.

Damit ist mir auch klar, dass diese Möglichkeit nicht in Frage kommt weil das Zeitereignis nicht zu bestimmen ist.
In der Anwendung und anderen Büroprogrammen wird ganztägig gearbeitet.

Meine Vorstellung war, dass Access erkennen kann, ob der Taskmanager aufgerufen wird. In der Folge (Warnhinweis)
sollte der Taskmanager durch Acccess wieder beendet werden.
Da war ich wohl etwas zu "Blauäugig".
Gruß aus dem Emsland

bahasu

Hi,
Zitat von: hawebe am September 09, 2013, 12:48:22

Damit ist mir auch klar, dass diese Möglichkeit nicht in Frage kommt weil das Zeitereignis nicht zu bestimmen ist.
In der Anwendung und anderen Büroprogrammen wird ganztägig gearbeitet.

ich habe den Eindruck, dass wir beide unterschiedliche Auffassung vom "Zeitereignis" haben.  ;D

Es gibt in einem Formular die Möglichkeit, automatisch alle x-Sekunden das Ereignis "Bei Zeitgeber" aufzurufen. Hier könnte die Routine stehen, die prüft, ob der Taskmanager aufgerufen ist und diesen dann ggf. schließen.

Harald
Servus

bahasu

Hi,

vielleicht kann das Beispiel im Anhang zum Verdeutlichen dienen.
Das Formular wird automatisch gestartet. Wenn ""Starte das Zählen" angeklickt wird, wird ein längerer Prozess simuliert.
Jede Sekunde wird geprüft, ob "Windows Task-Manager" aktiv ist. Wenn ja, wird der geschlossen.

Das ganzen kann nicht durch Anklicken vom Kreuz (oben rechts) geschlossen werden.

Ist getestet unter win7 und access2003.

Harald

[Anhang gelöscht durch Administrator]
Servus

Wurliwurm

Zitat von: hawebe am September 08, 2013, 19:17:44
Ich habe meine Anwendung zu Testzwecken  in eine Mehrbenutzerumgebung gelegt und muss feststellen, dass es den Usern wohl zu lästig ist, einen Kalkulationsvorgang konsequent zu Ende zu bringen und ordnungsgemäß zu speichern.

Der normale Anwender geht davon aus, daß die Applikation hängt, wenn eine Augenblicke lang sich nichts sichtbares tut. Leider gibt es keine Threads im Access, so daß während des Rechnens auch die GUI blockiert ist. Vorschlag: Verwende einen Fortschrittsbalken.

Zitat
Meine Frage: Kann Access die Tastenkombination auslesen und kann man über VBA den Abbruch durch den Taskmanager verhindern.

Access kann nur die Tasten auswerten, die benutzt werden, wenn das Access-Fenster aktiv ist. Verhindern, daß der Taskmanager geöffnet wird, kann man über Einstellungen in der Registry. Aber schon die Idee ist völlig daneben. Sowas machen Hackerprogramme wie Scareware-Trojaner.

hawebe

Hallo Harald,

ich habe den Anhang heruntergeladen und muss nun testen.

Ich denke mal, dass ich damit klar komme. Ich kann dann ja noch immer entscheiden wie ich weiter verfahre.

Herzlichen Dank für die Hilfe.
Gruß aus dem Emsland

hawebe

Hallo Harald,

der Test Deiner .mde hat mich unter Windows 7 und Office 2010 überzeugt.

Kannst Du mir eine mdb zur verfügung stellen?
Gruß aus dem Emsland