8

コンソール アプリケーションでガラス効果を有効にできるためです。Windows 7 と Delphi 2010 を使用しています。

このアプリケーションを見つけたので、それが可能になるはずです。

4

1 に答える 1

16

数週間前、私は自分のブログでこの記事を公開しました。

キーは、関数GetConsoleWindowDwmEnableBlurBehindWindow関数を使用することです。

このGetConsoleWindow関数は、呼び出しプロセスに関連付けられたコンソールで使用されるウィンドウ ハンドルを取得します。

このDwmEnableBlurBehindWindow関数は、提供されたウィンドウ ハンドルでぼかし効果 (ガラス) を有効にします。

program ConsoleGlassDelphi;

{$APPTYPE CONSOLE}

    uses
  Windows,
  SysUtils;

type
  DWM_BLURBEHIND = record
    dwFlags                 : DWORD;
    fEnable                 : BOOL;
    hRgnBlur                : HRGN;
    fTransitionOnMaximized  : BOOL;
  end;

function DwmEnableBlurBehindWindow(hWnd : HWND; const pBlurBehind : DWM_BLURBEHIND) : HRESULT; stdcall; external  'dwmapi.dll' name 'DwmEnableBlurBehindWindow';//function to enable the glass effect
function GetConsoleWindow: HWND; stdcall; external kernel32 name 'GetConsoleWindow'; //get the handle of the console window

function DWM_EnableBlurBehind(hwnd : HWND; AEnable: Boolean; hRgnBlur : HRGN = 0; ATransitionOnMaximized: Boolean = False; AFlags: Cardinal = 1): HRESULT;
var
  pBlurBehind : DWM_BLURBEHIND;
begin
  pBlurBehind.dwFlags:=AFlags;
  pBlurBehind.fEnable:=AEnable;
  pBlurBehind.hRgnBlur:=hRgnBlur;
  pBlurBehind.fTransitionOnMaximized:=ATransitionOnMaximized;
  Result:=DwmEnableBlurBehindWindow(hwnd, pBlurBehind);
end;

begin
  try
    DWM_EnableBlurBehind(GetConsoleWindow(), True);
    Writeln('See my glass effect');
    Writeln('Go Delphi Go');
    Readln;
  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;
end.

これは基本的な例です。問題を回避するには、Windows OS のバージョンを確認する必要があります。

スクリーンショット

于 2009-11-19T21:08:12.100 に答える