Windows Ereignis aus einer Xbase-Anwendung auslösen
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
Windows Ereignis aus einer Xbase-Anwendung auslösen
Hallo,
ich habe hier eine bisher nicht lösbare Aufgabe (zumindest konnte ich sie nicht lösen):
Wenn ich aus einer Xbase Anwendung auf einem Netzlaufwerk eine Datei lösche oder anlege so aktualisiert der Explorer (dieser läuft parallel und zeigt den Inhalt des Laufwerks auf dem die o.g. Dateien angelegt bzw. gelöscht werden) seine Übersicht nicht automatisch.
Die Aktualisierung erfolgt erst nach manuellen drücken von „F5“ oder „Aktualisieren“.
Gibt es eine Möglichkeit solch ein Ereignis auch aus Xbase auszulösen? Hat jem. Erfahrung damit?
Vielen Dank schon mal im Voraus,
Notloesung
PS. Ich arbeite mit Visual Xbase. Das exPress++ kenne ich (bisher) nicht. Kann mir jem. den Unterschied (Vorteile/Nachteile) erkläre? Vielleicht kennt jem. einen Link wo ich es nachlesen kann?
ich habe hier eine bisher nicht lösbare Aufgabe (zumindest konnte ich sie nicht lösen):
Wenn ich aus einer Xbase Anwendung auf einem Netzlaufwerk eine Datei lösche oder anlege so aktualisiert der Explorer (dieser läuft parallel und zeigt den Inhalt des Laufwerks auf dem die o.g. Dateien angelegt bzw. gelöscht werden) seine Übersicht nicht automatisch.
Die Aktualisierung erfolgt erst nach manuellen drücken von „F5“ oder „Aktualisieren“.
Gibt es eine Möglichkeit solch ein Ereignis auch aus Xbase auszulösen? Hat jem. Erfahrung damit?
Vielen Dank schon mal im Voraus,
Notloesung
PS. Ich arbeite mit Visual Xbase. Das exPress++ kenne ich (bisher) nicht. Kann mir jem. den Unterschied (Vorteile/Nachteile) erkläre? Vielleicht kennt jem. einen Link wo ich es nachlesen kann?
- Lewi
- 1000 working lines a day
- Beiträge: 830
- Registriert: Di, 07. Feb 2006 14:10
- Wohnort: Hamburg
- Danksagung erhalten: 2 Mal
Hallo!
Für Dein Problem der Explorer-Aktualisierung gibt es eine einfache Lösung:
Setze innerhalb der Registry den Wert für den Schlüssel: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update\UpdateMode
auf 0. Dieser Wert steht standardmäßig auf ein 1
Jetzt sollte der Windows-Explorer die Anzeige automatisch aktualisieren.
Gruß,
Olaf
Für Dein Problem der Explorer-Aktualisierung gibt es eine einfache Lösung:
Setze innerhalb der Registry den Wert für den Schlüssel: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update\UpdateMode
auf 0. Dieser Wert steht standardmäßig auf ein 1
Jetzt sollte der Windows-Explorer die Anzeige automatisch aktualisieren.
Gruß,
Olaf
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
Hallo Olaf,
tut mir leid habe ich vergessen zu erwähnen: Diesen Registryeinstellung hatte ich schon getestet. Leider ohne Erfolg.
Gibt es vielleicht eine Möglichkeit das Windows Ereignis zu (genauer) zu bestimmen?
So richtig weis ich selbst nicht wo ich suchen und „basteln“ soll .
Ich habe schon versucht nach dem Anlegen bzw. Löschen den Explorer aufzurufen und dort das besagte Laufwerk anzuzeigen. Das klappt ganz gut. Jetzt suche ich lediglich etwas (?) womit ich bestimmen kann ob der Explorer überhaupt offen ist (wenn es nötig ist) und dann lediglich das „F5“ Ereignis abfeuern. Das ganze am besten noch so, dass der Explorer dabei nicht den Fokus bekommt.
Oh je, oh je …
Notloesung
tut mir leid habe ich vergessen zu erwähnen: Diesen Registryeinstellung hatte ich schon getestet. Leider ohne Erfolg.
Gibt es vielleicht eine Möglichkeit das Windows Ereignis zu (genauer) zu bestimmen?
So richtig weis ich selbst nicht wo ich suchen und „basteln“ soll .
Ich habe schon versucht nach dem Anlegen bzw. Löschen den Explorer aufzurufen und dort das besagte Laufwerk anzuzeigen. Das klappt ganz gut. Jetzt suche ich lediglich etwas (?) womit ich bestimmen kann ob der Explorer überhaupt offen ist (wenn es nötig ist) und dann lediglich das „F5“ Ereignis abfeuern. Das ganze am besten noch so, dass der Explorer dabei nicht den Fokus bekommt.
Oh je, oh je …
Notloesung
- Lewi
- 1000 working lines a day
- Beiträge: 830
- Registriert: Di, 07. Feb 2006 14:10
- Wohnort: Hamburg
- Danksagung erhalten: 2 Mal
Nun, bei mir funktioniert es mit der Registry-Einstellung.
Ob der WE-Explorer bereits aktiv ist, läßt sich allenfalls über das Windows-API ermitteln. Die Schwierigkeit liegt allerdings darin, dass es für den WE kein eindeutigen Fensternamen gibt. Dieser hängt davon ab, in welchem Ordner du dich gerade mit dem WE befindest. Die Api-Funktion "WindWindowEx" greift hier also nicht. Ein Ansatz wäre, alle aktiven Prozesse zu ermitteln und anschließend die dazugehörige Exe-Datei. Das API stellt hierfür entsprechende Routinen zur Verfügung.
Warum programmierst Du innerhalb Deiner Anwendung nicht eine eigene Dateianzeige?
Gruß, Olaf
Ob der WE-Explorer bereits aktiv ist, läßt sich allenfalls über das Windows-API ermitteln. Die Schwierigkeit liegt allerdings darin, dass es für den WE kein eindeutigen Fensternamen gibt. Dieser hängt davon ab, in welchem Ordner du dich gerade mit dem WE befindest. Die Api-Funktion "WindWindowEx" greift hier also nicht. Ein Ansatz wäre, alle aktiven Prozesse zu ermitteln und anschließend die dazugehörige Exe-Datei. Das API stellt hierfür entsprechende Routinen zur Verfügung.
Warum programmierst Du innerhalb Deiner Anwendung nicht eine eigene Dateianzeige?
Gruß, Olaf
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
Hallo,
da ich bis her nichts mit Windows-API gemacht habe, mich aber gerne der Herausforderung stellen will, währe es nett wenn du mir einen Tipp geben könntest wo ich anfangen soll.
Also im Prinzip: Wie binde ich die API in Xbase etc. Vielleicht gibt es da auch irgendwo ein simples Beispiel das ich mir anschauen könnte? Das habe ich allerdings noch nicht gefunden.
Zur deine Frage:
“Warum programmierst Du innerhalb Deiner Anwendung nicht eine eigene Dateianzeige?“
Habe ich. D.h. die Auswahl der zu bearbeitenden Dateien findet schon in einer „Datenanzeige der Anwendung“ statt. Trotzdem haben einige User nebenbei den Explorer offen. Und dann kommt es eben dazu dass z.b. Dateien aus der Anwendung heraus gelöscht werden aber der Explorer sie immer noch Auflistet da seine Übersicht nicht automatisch aktualisiert wird.
Ach ja, handelt es sich bei der Windows-API um das gleiche das Tom mit „DispatchMessage()" meint? Wie gesagt Windowsprogrammierung ist Neuland für mich. Ich hoffe ich stelle nicht all zu dumme Fragen(?).
Gruß,
Notloesung
da ich bis her nichts mit Windows-API gemacht habe, mich aber gerne der Herausforderung stellen will, währe es nett wenn du mir einen Tipp geben könntest wo ich anfangen soll.
Also im Prinzip: Wie binde ich die API in Xbase etc. Vielleicht gibt es da auch irgendwo ein simples Beispiel das ich mir anschauen könnte? Das habe ich allerdings noch nicht gefunden.
Zur deine Frage:
“Warum programmierst Du innerhalb Deiner Anwendung nicht eine eigene Dateianzeige?“
Habe ich. D.h. die Auswahl der zu bearbeitenden Dateien findet schon in einer „Datenanzeige der Anwendung“ statt. Trotzdem haben einige User nebenbei den Explorer offen. Und dann kommt es eben dazu dass z.b. Dateien aus der Anwendung heraus gelöscht werden aber der Explorer sie immer noch Auflistet da seine Übersicht nicht automatisch aktualisiert wird.
Ach ja, handelt es sich bei der Windows-API um das gleiche das Tom mit „DispatchMessage()" meint? Wie gesagt Windowsprogrammierung ist Neuland für mich. Ich hoffe ich stelle nicht all zu dumme Fragen(?).
Gruß,
Notloesung
- Lewi
- 1000 working lines a day
- Beiträge: 830
- Registriert: Di, 07. Feb 2006 14:10
- Wohnort: Hamburg
- Danksagung erhalten: 2 Mal
Zur Nutzung des Windows-API findest Du ein Beispiel unter dem Thread "Anwendung in den Vordergrund holen/Windows-API"
Warum willst Du eigentlich diesen Entwicklungsaufwand betreiben? Wenn der WE bei der bezeichneten Registry-Einstellung die Anzeige nicht aktualisiert, dann ist das ein Problem vom WE und nicht Deiner Anwendung. Auch Anwender können sich durchaus Einsichtig zeigen
Viele Grüße
Olaf
Warum willst Du eigentlich diesen Entwicklungsaufwand betreiben? Wenn der WE bei der bezeichneten Registry-Einstellung die Anzeige nicht aktualisiert, dann ist das ein Problem vom WE und nicht Deiner Anwendung. Auch Anwender können sich durchaus Einsichtig zeigen
Viele Grüße
Olaf
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
Das muss ich dir Recht geben.Wenn der WE bei der bezeichneten Registry-Einstellung die Anzeige nicht aktualisiert, dann ist das ein Problem vom WE und nicht Deiner Anwendung.
Es gibt Anwender die tun es nicht. Ein Tastendruck auf "F5" ist für sie ein Tastendruck zu viel.Auch Anwender können sich durchaus Einsichtig zeigen
Bin relativ unerfahren im Windowsbereich und sehe das als einer Art Herausforderung und Übung an. Mal lernt eben dazu. Außerdem habe ich schon das nächste Problem (ich meine die nächste Herausforderung) und ich denke da komme ich ganz schön ins schwitzen. Deshalb ist das ganz gut zum Aufwärmen.Warum willst Du eigentlich diesen Entwicklungsaufwand betreiben?
Gruß,
Notloesung
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Hallo,
der Explorer aktualisiert die Anzeige nicht immer automatisch (bei mir unter Win2000 wird die Dateianzeige etwa alle 5 Sekunden angepaßt ohne eine Änderung irgendwo), da dies je nach Speichermedium eine erhebliche Systemlast erzeugen würde.
Lokale Festplatte wäre egal,
Server für 1000 User im LAN, der könnte schon schnaufen
Schmale WAN Verbindung, hier würde sonst nichts mehr laufen.
Der Internet Explorer verheimlicht so ja nicht nur Änderungen deiner Programme, sondern z.B. auch neue Word Dateien. Es sollte also leicht zu beweisen sein, dass es nicht deine Anwendung ist, welche die Umstände bereitet.
der Explorer aktualisiert die Anzeige nicht immer automatisch (bei mir unter Win2000 wird die Dateianzeige etwa alle 5 Sekunden angepaßt ohne eine Änderung irgendwo), da dies je nach Speichermedium eine erhebliche Systemlast erzeugen würde.
Lokale Festplatte wäre egal,
Server für 1000 User im LAN, der könnte schon schnaufen
Schmale WAN Verbindung, hier würde sonst nichts mehr laufen.
Der Internet Explorer verheimlicht so ja nicht nur Änderungen deiner Programme, sondern z.B. auch neue Word Dateien. Es sollte also leicht zu beweisen sein, dass es nicht deine Anwendung ist, welche die Umstände bereitet.
Gruß
Hubert
Hubert