7

コンソールアプリケーションでガラス効果を有効にすることができます。私はWindows 7とDelphi 2010を使用しています。デルファイを使用してコンソールアプリケーションでガラス効果(Windows Vista/7)を有効にする方法

私はthisアプリケーションを見つけました。

+1

コンソールウィンドウは共有リソースです。それはあなたのプログラムに属しません。あなたに属していないウィンドウをグローバルに変更しないでください。顧客がコンソールウィンドウを見た目に見せたい場合は、リンクしたプログラムをインストールすることができます。 –

答えて

15

私は数週間前に私のブログにthis articleを公開しました。

キーは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のバージョンをチェックする必要があります。

Screenshot

+0

"ウィンドウの色と外観"が凍結に設定されている場合、これはうまくいかない...白い背景に白いテキスト –

関連する問題