掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フォーム無しのコンソール・アプリで FormCloseQuery の処理をするには? (ID:21716)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ほぼできました。 一応、お世話になりましたので、報告しておきます。 単に、終了時刻を記録するだけです。 あと、起動時刻も追加予定ですが・・・。 こんなことしなくても、何かのファイルのスタンプを見るだけで 判るのでしょうかね・・・? と、それを先にPC関係の Q&A で 尋ねるべきでしたね(^^;)。 ま、こんなタイプのマイクロ・アプリを作る どなたかの参考にでもなれば・・な感じです。 ありがとうございました。 program Project1; uses windows, messages, SysUtils, Dialogs; procedure WMQUERYENDSESSION(hWindow: HWND); var f: TextFile; begin //ShowMessage('222222222222'); // 確認用 AssignFile(f, 'C:\WINDOWS\デスクトップ\test.txt'); // 0 バイトのファイルをメモ帳面とかで Append(f); // 作成しておかなければエラーになります。 Writeln(f, DateTimeToStr(Now)); Flush(f); CloseFile(f); DestroyWindow(hWindow); end; procedure WMCLOSE(hWindow:HWND); var i:Integer; begin if MessageBox(hWindow,'終わるよ','ミニ',MB_YESNO)= IDYES then DestroyWindow(hWindow); end; procedure WMHOTKEY(hWindow:HWND; WParam: WPARAM; LParam: LPARAM); begin if WParam=1 then SendMessage(hWindow,WM_CLOSE,0,0); end; procedure MainDestroy(hWindow: HWND); begin // ShowMessage('00000000'); // 確認用 UnregisterHotKey(hWindow, 1); PostQuitMessage(0); end; //------------------------------------------------------------ // Main Window Procedure //------------------------------------------------------------ function MainWndProc(hWindow: HWND; Msg: UINT; WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall; export; var ps: TPaintStruct; begin Result := 0; case Msg of WM_CLOSE : WMCLOSE(hWindow); WM_Hotkey : WMHOTKEY(hWindow,WParam,LParam); WM_DESTROY: MainDestroy(hWindow); WM_QUERYENDSESSION: WMQUERYENDSESSION(hWindow); else begin result := DefWindowProc( hWindow, Msg, wParam, lParam ); exit; end; end; end; //------------------------------------------------------------ // Main Procedure //------------------------------------------------------------ var wc: TWndClass; hWindow: HWND; Msg: TMsg; begin wc.lpszClassName := 'AppClass'; wc.lpfnWndProc := @MainWndProc; wc.style := CS_VREDRAW or CS_HREDRAW; wc.hInstance := hInstance; wc.hIcon := LoadIcon(0,IDI_APPLICATION); wc.hCursor := LoadCursor(0,IDC_ARROW); wc.hbrBackground := (COLOR_WINDOW+1); wc.lpszMenuName := nil; wc.cbClsExtra := 0; wc.cbWndExtra := 0; RegisterClass(wc); hWindow := CreateWindowEx(0,'AppClass','',0,0,0,0,0,0,0,hInstance,nil); RegisterHotKey(hWindow, 1, 0, VK_F12); // F1 はヘルプ系 に良く使うので F12 に変更 //ShowWindow(hWindow,CmdShow); //UpDateWindow(hWindow); //---- Message Loop --------------------- while GetMessage(Msg, 0, 0, 0) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; Halt(Msg.wParam); end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.