Windows beenden abfangen



'Windows beenden abfangen

Beitrag, 15.07.2007 21:18: ;createCode() 'Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt: 'Windows beenden abfangen '############################# 'Test-Programm für : '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) Declare Ende&,Button&,OldWindowProc& Proc Speicher_Routine     Declare X&    'Statt einer Speicher-Routine läuft hier nur ein Zähler durch    ~TextOut(%hDC,0,0,"Speicher-Dummy :",16)     Whilenot X& > 20000        Locate 2,0       Print X&       Inc X&     EndWhile     ~TextOut(%hDC,0,100,"fertig mit Speichern :",22)    ~TextOut(%hDC,0,150,"Taste.... :",11)    Waitinput EndProc Proc Frage_Speichern     If Messagebox("Erstmal alle Daten speichern ?","Windows_Ende?",36) = 7        return 1'Windows wird sofort beendet     Else        'bevor 1 zurückgegeben wird kann hier eine Speicher-Routine       'eingebaut werden. Windows wird erst beendet wenn alles erledigt ist.       Speicher_Routine       return 1'Windows wird nach dem Speichern beendet       'return 0 'Windows nicht beendet     Endif EndProc Proc WindowProc     Parameters Wnd&, Msg&, wParam&, lParam&     If Msg& = ~WM_COMMAND        If lParam& = Button&'Control abfragen           If HiWord(wParam&) = ~BN_CLICKED'Klick auf Button              SendMessage(Wnd&,~WM_CLOSE,0,0)           Endif        Endif     Endif     If Msg& = ~WM_CLOSE        Speicher_Routine       ~PostQuitMessage(0)'Programm-Ende     Endif     If Msg& = ~WM_QUERYENDSESSION        Return Frage_Speichern()     Endif     'alle Messages die nicht behandelt wurden an die Original-Prozedur weiterleiten    return ~CallWindowProc(OldWindowProc&,Wnd&, Msg&, WParam&, LParam&) EndProc set("FastMode",1) SetTrueColor 1 WindowStyle 31 Window 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) 'Window-Prozedur austauschen und die Original-Prozedur in 'OldWindowproc sichern OldWindowProc& = ~SetWindowLong(%hwnd,~GWL_WNDPROC, ProcAddr(windowProc,4)) WhileNot Ende&     WaitInput EndWhile


Dies ist die Offlinevariante vom Thread [Windows beenden abfangen].

Valid CSS!

©2006 XProfan.Com