Español
Foro

Hecho: Shutdown Abfangen

 

Stefan
M.
Caillet
Yo möchte gern esta Code de Andreas Miethe dazu uso, en una "Herunterfahren Befehl"
todavía algunos Dinge a erledigen. An y para se kalppt el auch. Aber si el Erledigen algo dauert, erscheint una Dialogbox. el gerne esta Code final sería. Klicke I abbrechen kann el Code zwar seine Arbeit erledigen, aber Windows no es mehr automáticamente final. Yo möchte esta Code así adaptar, dass Windows zwar el Runterfahren stillschweigend (sin esta Dialogbox) unterbricht, pero si el Code El notwendigen Dinge hecho ha, dieser Windows sagt, dass lo ahora inmediatamente runterfahren kann.Mein Code debería also el Runterfahren abbrechen, y después de getaner Arbeit una neuen ShutDown erzeugen, sin sin embargo selber otra vez darauf a reagieren.
Leider finde Yo en el Code el Punto(n) no, wo Yo eingreifen muss (- kann).
Also Por favor, Yo en eure Ayuda.
#############################
Test-Programa para :
XProfan
#############################
Author : Andreas Miethe
August 2003
#############################
Thema : Windows-Ende abfangen
#############################
 $H windows.ph
 $H messages.ph
DEF HiWord(1) And(&(1)>>16,$FFFF)
DEF LoWord(1) And(&(1),$FFFF)
Declarar Ende&,Button&,OldWindowProc&

Proc Speicher_Routine

    Declarar X&
    Statt uno Speicher-Rutina se ejecuta hier sólo una Zähler por
    ~TextOut(%hDC,0,0,"Speicher-Dummy :",16)

    Sinestar encargado X& > 20000

        Localizar 2,0
        Imprimir X&
        Inc X&

    EndWhile

    ~TextOut(%hDC,0,100,"fertig con Guardar :",22)
    ~TextOut(%hDC,0,150,"Taste.... :",11)
    Waitinput

ENDPROC

Proc Frage_Speichern

    If Messagebox("Erstmal todos Daten speichern ?","Windows_Ende?",36) = 7

        volver 1Windows se inmediatamente final

    Más

        bevor 1 zurückgegeben se kann hier una Speicher-Rutina
        instalado se. Windows se sólo final si alles hecho es.
        Speicher_Routine
        volver 1Windows se después de el Guardar final
        volver 0 Windows no final

    Endif

ENDPROC

Proc WindowProc

    Parámetros Wnd&, Msg&, wParam&, lParam&

    If Msg& = ~WM_COMMAND

        If lParam& = Button&Control abfragen

            If HiWord(wParam&) = ~BN_CLICKEDKlick en Button

                SendMessage(Wnd&,~WM_CLOSE,0,0)

            Endif

        Endif

    Endif

    If Msg& = ~WM_CLOSE

        Speicher_Routine
        ~PostQuitMessage(0)Programa-Ende

    Endif

    If Msg& = ~WM_QUERYENDSESSION

        Volver Frage_Speichern()

    Endif

    todos Messages el no behandelt fueron a el Original-Procedimiento weiterleiten
    volver ~CallWindowProc(OldWindowProc&,Wnd&, Msg&, WParam&, LParam&)

ENDPROC

set("FastMode",1)
SetTrueColor 1
Ventana de Estilo 31
Ventana 0,0-640,480
CLS ~GetSysColor(~COLOR_BTNFACE)
Button& = CreateButton(%hwnd,"Ende",10,50,80,24)
SendMessage(Button&,~WM_SETFONT,~GetStockObject(~DEFAULT_GUI_FONT),1)
Ventana-Procedimiento austauschen y el Original-Procedimiento en
OldWindowproc sichern
OldWindowProc& = ~SetWindowLong(%hwnd,~GWL_WNDPROC, ProcAddr(windowProc,4))

Sinestar encargado Ende&

    WaitInput

EndWhile


Gracias
Stefan
 
Ich habe grosses Glück, weil ich Mitmenschen helfen darf.
Entwicklungsumgebung:
XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit
PC: P4/3GHz , 2GB RAM , 1700GB HD
Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD
12.08.2009  
 



Yo fürchte - en lo kurz a hacer - el va no (sauber).

Usted könntest el sistema API(s) hooken y "zurücksetzen" y luego incluso selbige Shutdown-Anforderung nochmals absenden - Yo mi aber hier debería anders angesetzt voluntad porque auch solch Hook entweder vom OS no erlaubt se/voluntad podría (z.B. UAC) o. ach viel blabla... Wenn el Code aber sólo para una bestimmtes Windows ser se, entonces podría uno vlt. aber todavía ansetzen. Geht lo also z.B. einzig en Win98 - entonces una Hook vlt. una Möglichkeit.

Besser wäre: Wenn Shutdown "registriert" (con obigen Code) entonces inmediatamente final - z.B. todos States _fix abspeichern y sólo beim nächsten Start Deiner Anwendung entonces reagieren - z.B. con Wiederherstellen el fix gespeicherten States. So bliebe lo en cada Fall "sauber" y Usted müsstest no Kämpfe gegen el OS führen.
 
13.08.2009  
 




Stefan
M.
Caillet
Laut el Code de Andreas hay sí el Möglichkeit Durch Volver = 0 de el Frage_Speichern Proc
el herunterfaren abzubrechen. Was Yo nun bräuchte es danach el winproc otra vez a deaktivieren, y de el Mientras que Ende& schleife rauszukommen. Danach kann Yo mi Dinge erledigen y una neuen Shutdown abzusetzen. Mein Problema: como kann Yo después de el Volver 0 esta Winproc otra vez deaktivieren, dmit Windows seine messages otra vez selber regelt?
Stefan
 
Ich habe grosses Glück, weil ich Mitmenschen helfen darf.
Entwicklungsumgebung:
XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit
PC: P4/3GHz , 2GB RAM , 1700GB HD
Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD
13.08.2009  
 



Achso, simplemente indem Usted OldWindowProc& nutzt en lugar de procAddr y el SetWindowLong nochmals absendest.
 
13.08.2009  
 




Stefan
M.
Caillet
Sorry IF, steh en el Schlauch (wiedermal)
Sei así lieb y zeig me, como y wo Yo Was genau en el Code einfügen muss.
Wär me echt ne grosse Ayuda.
Gracias.
Stefan
 
Ich habe grosses Glück, weil ich Mitmenschen helfen darf.
Entwicklungsumgebung:
XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit
PC: P4/3GHz , 2GB RAM , 1700GB HD
Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD
13.08.2009  
 



Usted änderst el WProc sí con el Línea:
wobei así el vorherige procAddr sí en oldWindowProc& landet.

Na y si Su wProc nombre "WindowProc" otra vez ablösen möchtest entonces:
~SetWindowLong(%hwnd,~GWL_WNDPROC, OldWindowProc&)
womit (como Usted meintest "winproc otra vez a deaktivieren") Su wndProc sólo otra vez fuera de el Spiel es.

Was Yo eben no genau blanco es, wann genau Usted Su propio wProc otra vez "abschiessen" willst aber el Línea kannst Usted einfügen wo Usted möchtest.
 
13.08.2009  
 




Stefan
M.
Caillet
IF, glaub lo oder glaub no, pero klappt!
Yo como nämlich ne Möglichkeit gebraucht, en nem älteren Laptop de ner älteren Frau, el no así fest en el Sattel el Computerwelt sitzt, Daten como E-Mails, Adressbuch usw en regelmässigen abstänedn en ne Speicherkarte en el PCMCIA-Slot a sichern. el Plenario absolut sin ihr zutun beim Abschalten des "Lappis" (como ellos ihn liebevoll nennt) automáticamente passieren. Acronis Aunque no schlecht, fragt me aber a oft después de, y yo quería dies así haben, dass eben no rückfragen, pero sólo el Referencia "BackUp se erstellt - Der Computer schaltet se danach automáticamente aus") erscheint.
Nun kann Yo dieses Programa fertigstellen, porque dank Andreas Miethe y Usted IF funktioniert nun el Windows Hook.
Gracias eucch vielmals.
 
Ich habe grosses Glück, weil ich Mitmenschen helfen darf.
Entwicklungsumgebung:
XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit
PC: P4/3GHz , 2GB RAM , 1700GB HD
Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD
13.08.2009  
 




Sato
Pinto
¡Hola

Sí, para Glück hay unos pocos Personas aquí en Xprofan el uno no missen möchte.
If y Andreas Miethe son determinado auch así gemeint. Manchmal se "muss"
uno Komplimente a ellos escribir.

Gruss
Pedro
 
Sato Pinto
WIN XP Home
XPROFAN 11
13.08.2009  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.363 Views

Untitledvor 0 min.
RudiB.04.10.2016
Stefan M. Caillet29.07.2011
Untitled27.06.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie