| |
|
|
| allô Profaner...
j'ai folgendes Problem: sur den Versuch Windows herunterzufahren doit un Programme de mir entsprechend réagir.
je sais, cela Windows beim Herunterfahren qui Message WM_QUERYENDSESSION à chaque Programme sendet et sur une positive Rückmeldung wartet. comment peux je cet Message avec Profan intercepter et entsprechend behandeln? Hat quelqu'un une concept???
Profan 7.5 => Windows2000/XP |
|
|
| |
|
|
|
Frank Abbing | allô Andeas,
avec XProfan könntest du cela sûrement sur un Subclassing realisieren mais aussi avec niedrigeren Profanversion sollte cela possible son. sur meiner Webpage findest du qui kleine Freeware Message.dll. avec cela peux du chacun Message empfangen. dans chaque la fenêtre et ab Profan 5. |
|
|
| |
|
|
|
| dire wir la fois so - es wäre aussi sinnvoll si Roland cet ok-killme pas generell sendet - mais peut-être qui traité dessen einer XProfan-Proc überlässt.
Salve, iF |
|
|
| |
|
|
|
| allô IF...
cela vois je genauso, malheureusement hilft mir cela maintenant pas plus. Gibt es aucun API qui Messages abfängt et une beliebige Rückmeldung à Windows sendet?...
j'ai ici la fois une Quellcode dans Delphi - habe malheureusement trop wenig Ahnung um den komplett trop comprendre et umzusetzen. peux quelqu'un [...] quoi anfangen?
@Frank: j'ai malheureusement aucun concept, comment mir deine DLL là weiterhelfen peux. quoi peux qui alles? |
|
|
| |
|
|
|
| allô...
OK, je crois den Voir le texte source habe je maintenant verstanden: à Offset GWL_WNDPROC des Fensters est sich qui Adresse einer Procédure. cet Procédure ist pour zuständig Messages, qui à cela la fenêtre gesendet volonté, trop verarbeiten. Um Messages, qui à cela la fenêtre gendet volonté, pas d'abord de cette Procédure behandeln trop laisser, mets on simple avec SetWindowlong la valeur chez GWL_WNDPROC sur qui Adresse einer anderen Procédure et merkt sich qui Adresse qui alten Procédure. dans mon cas devrait cet Procédure chez qui ankommenden Message WM_QUERYENDSESSION eigentlich seulement la valeur 0 zurückgeben - ou bien 1 si cela System heruntergefahren volonté soll. Alle anderen Messages müßten ensuite avec CallWindowProc dedans cette Procédure sur qui gemerkte, vieille Adresse umgeleitet volonté.
avec Profan, jedenfalls avec Version 7.5, viens je - soweit je sais - pas à une Adresse einer dans mon Programme stehenden Procédure. si je mais un DLL hätte, pourrait je qui Adresse einer là stehenden Procédure avec GetProcAddress herausfinden et cet pour cela SubClassing verwenden.
Habe je maintenant totalen Mist verzapft ou bien stimmt cela dans etwa so??? ~?~ |
|
|
| |
|
|
|
Frank Abbing | Hi,
ziemlicher Mist, oui. Denke daran, Profan ist et bleibt une Interpretersprache. tu as mon Dll, qui listet dir chacun Message sur. si du so cela Herunterfahren intercepter peux, weiss je pas. cela dois du selber harausfinden, je hab momentan simple viel zuwenig Zeit... |
|
|
| |
|
|
|
| pouvoir rien, Frank - gibt oui aussi encore autre. Es klappt - so comment je cela voudrais - avec deiner DLL malheureusement pas.
à alle anderen: peux mir comme unwissendem sonsteiner la fois expliquer, quoi Subclassing oui c'est ca ist? quoi oui c'est ca ist ziemlicher Mist à meinen Überlegungen???
but qui l'affaire ist dans etwa un Verhalten comme Notepad zeigt: si Windows heruntergefahren wird et une Dossier justement bearbeitet, mais encore pas abgespeichert wurde, gibt Notepad une Messagebox aus. si ici démolir gedrückt wird, wird cela System pas heruntergefahren. |
|
|
| |
|
|
|
CB | Hi, Andreas!
direct weiterhelfen peux je Dir malheureusement pas, mais exposition Dir cela la fois näher à: [...] Ist un assez geniales Programme avec un paire dlls, qui allerdings avec ResourceHacker pas trop ouvrir sommes (ASM-Dlls?). peut-être la hâte Du là ne Possibilité en supplément - ou bien Frank, si il la fois moins Überfluß à travail hat?
Salut, Christian |
|
|
| |
|
|
|
| allô Christian...
cela Programme werde je mir sur jeden le cas regarder - malheureusement wird es mir chez meinem Problem pas aider. Windows sendet beim Herunterfahren qui Message WM_QUERYENDSESION à chaque Toplevelfenster. chaque la fenêtre gibt, bedingt par sa super (si je cela richtig verstehe), une Wert (entweder 1 ou bien 0) à Windows zurück. 1=Windows darf heruntergefahren volonté 0=Windows darf pas heruntergefahren volonté. seulement si alle la fenêtre une 1 zurückliefern, wird Windows finissez et qui Message WM_ENDSESSION à chaque Toplevelfenster gesendet => siehe Notepad.
qui Message WM_QUERYENDSESION peux je sous certain Bedingungen aussi avec Profan empfangen => vorausgesetzt je travaille avec Windows98, là là cela Herunterfahren quelque chose anders abläuft comme sous WindowsNT. là mon Programme - wohl bedingt par cela, quoi je comme Fensterklasse verstehe - mais tout de suite pour dem réception qui Message gekillt wird, bringt mir cela rien.
je dois alors irgendwie à qui super meines Hauptfensters ran, um là quelque chose trop verändern. avec Profan alleine allez cela wohl pas - jedenfalls pas avec 7.5, car en supplément brauche je qui Adresse einer Art Ersatzprozedur.
mon Frage: peux je avec XProfan Subclassing realisieren? Gibt es une Possibilité Subclassing sur externe DLL trop régulariser? Habe Je l' Begriff Subclassing überhaupt richtig verstanden???
|
|
|
| |
|
|
|
Frank Abbing | Hi,
Subclassing ist cela insérer eines eigenen Codes dans qui Windows-Message Procédure. Wird une Message ausgelöst, ensuite wird cet eigene Routine angesprungen, bevor dans qui Windows-Message Procédure qui ankommende Message plus bearbeitet wird. cette eigene Code peux maintenant Messages verändern, entfernen ou bien selber quelle erzeugen. Du könntest ici alors deine gewünschte Message simple effacer ou bien entsprechend puis réagir. Etwa so: KompilierenMarqueSéparation |
|
|
|
|
CB | [quote-part:7658e6b148=Frank Abbing]@Christian: peut-être sommes qui Dlls emballé?[/quote-part:7658e6b148] ResourceHacker zeigt seulement un leeres champ, keinerlei Einträge. j'ai ensuite la fois avec einem speziellen Editor (eigentlich un Plugin vom Total Commander) hineingeschaut:
FILE CHARACTERISTICS : File is executable (i.e. no unresolved external references) COFF line numbers have been removed COFF symbol table entries for local symbols have been removed Machine based on 32-bit-word architecture File is a DLL
ah quoi - cela Prog. ist Freeware. je schick Euch fois le dlls simple avec. peut-être peut son oui quoi avec cela anfangen.
Salut, Christian |
|
|
| |
|
|
|
Frank Abbing | justement trouvé: [...] Andreas hat quelque chose comme déjà geschrieben |
|
|
| |
|
|