ネットをしている際に、宣伝広告などが勝手に立ち上がってしまうので困っています。そこで、私は宣伝広告が立ち上がった瞬間にAlt+F4で閉じるようにしております。
Alt+F4キーを他のキー(例えばSpaceキー)などに割り当てて、なおかつタスクトレイなどに常駐させておけば少しでも使い勝手がいいように思います。
別にネットに限らず、何か作業中のウィンドウを閉じる時にも使えそうなのですが・・・。
悲しいかな私の知識では分かりませんので、よろしくお願いします。
>「Alt+F4」はウインドウのシステムメニュー|閉じるを
>実行しているのでそれと同様な処理を行えば実現出来ます。
■Shiftキーを押した時、トップウインドウを終了させる。
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval :=10;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
Var
hWnd: integer;
begin
if GetAsyncKeyState(VK_SHIFT )<>0 then
begin
hWnd :=GetForegroundWindow ;
//if not hWnd=Form1.Handle then
SendMessage(hWnd,WM_SYSCOMMAND,SC_ClOSE,0);
end;
end;
■タスクトレイ常駐
DelphiページのWin32APIに使用方法が書いてあります。
■APIうんちくコーナー
GetAsyncKeyState
キーボードのキーが押されているかどうかを調べる
GetForegroundWindow
ユーザーが操作中のウインドウのハンドルを取得する
SendMessage
Windowsメッセージをウインドウに送る
■GetAsyncKeyStateの定数
Const VK_ADD = $6B '「+」キー
Const VK_BACK = $8 '「BS」キー
Const VK_CANCEL = $3 '「BREAK]キー
Const VK_ATTN = $F6 '「SHIFT LOCK]キー
Const VK_CAPITAL = $14 '
Const VK_CLEAR = $C '「CLEAR」キー
Const VK_CONTROL = $11 '「CTRL」キー
Const VK_CRSEL = $F7 '
Const VK_DECIMAL = $6E ' 少数点キー
Const VK_DELETE = $2E '「DEL」キー
Const VK_DIVIDE = $6F '「/」キー
Const VK_DOWN = $28 '「↓」キー
Const VK_END = $23 '「END」「HELP」キー
Const VK_EREOF = $F9 '
Const VK_ESCAPE = $1B '「ESC」キー
Const VK_EXECUTE = $2B '
Const VK_EXSEL = $F8 '
Const VK_F1 = $70 ' F1キー
Const VK_F2 = $71 ' F2キー
Const VK_F3 = $72 ' F3キー
Const VK_F5 = $74 ' F5キー
Const VK_F4 = $73 ' F4キー
Const VK_F6 = $75 ' F6キー
Const VK_F7 = $76 ' F7キー
Const VK_F8 = $77 ' F8キー
Const VK_F9 = $78 ' F9キー
Const VK_F10 = $79 ' F10キー
Const VK_F11 = $7A ' F11キー
Const VK_F12 = $7B ' F12キー
Const VK_F13 = $7C ' F13キー
Const VK_F14 = $7D ' F14キー
Const VK_F15 = $7E ' F15キー
Const VK_F16 = $7F ' F16キー
Const VK_F17 = $80 ' F17キー
Const VK_F18 = $81 ' F18キー
Const VK_F19 = $82 ' F19キー
Const VK_F20 = $83 ' F20キー
Const VK_F21 = $84 ' F21キー
Const VK_F22 = $85 ' F22キー
Const VK_F23 = $86 ' F23キー
Const VK_F24 = $87 ' F24キー
Const VK_HELP = $2F '「HELP」キー
Const VK_HOME = $24 '「HOME]キー
Const VK_INSERT = $2D '「INS」キー
Const VK_LBUTTON = $1 ' マウス左ボタン
Const VK_LCONTROL = $A2 '
Const VK_LEFT = $25 '「←」キー
Const VK_LMENU = $A4 '
Const VK_LSHIFT = $A0 ' マウス中央ボタン
Const VK_MENU = $12 '「MENU」「GRPH」キー
Const VK_MULTIPLY = $6A '「*」キー
Const VK_NEXT = $22 '「PgUp」キー
Const VK_NONAME = $FC '
Const VK_NUMLOCK = $90 '「NumLock」キー
Const VK_NUMPAD0 = $60 ' テンキーパッドの「0」キー
Const VK_NUMPAD1 = $61 ' テンキーパッドの「1」キー
Const VK_NUMPAD2 = $62 ' テンキーパッドの「2」キー
Const VK_NUMPAD4 = $64 ' テンキーパッドの「4」キー
Const VK_NUMPAD3 = $63 ' テンキーパッドの「3」キー
Const VK_NUMPAD5 = $65 ' テンキーパッドの「5」キー
Const VK_NUMPAD6 = $66 ' テンキーパッドの「6」キー
Const VK_NUMPAD7 = $67 ' テンキーパッドの「7」キー
Const VK_NUMPAD8 = $68 ' テンキーパッドの「8」キー
Const VK_NUMPAD9 = $69 ' テンキーパッドの「9」キー
Const VK_OEM_CLEAR = $FE '
Const VK_PA1 = $FD '
Const VK_PAUSE = $13 '「Pause」キー
Const VK_PLAY = $FA '
Const VK_PRIOR = $21 '
Const VK_PRINT = $2A '
Const VK_PROCESSKEY = $E5 '
Const VK_RBUTTON = $2 ' マウス右ボタン
Const VK_RCONTROL = $A3 '
Const VK_RETURN = $D '「Enter」キー
Const VK_RIGHT = $27 '「→」キー
Const VK_RMENU = $A5 '
Const VK_RSHIFT = $A1 '
Const VK_SCROLL = $91 '
Const VK_SELECT = $29 '「Select」キー
Const VK_SEPARATOR = $6C '
Const VK_SHIFT = $10 '「Shift」キー
Const VK_SNAPSHOT = $2C ' PrintScreen
Const VK_SUBTRACT = $6D '「-」キー
Const VK_SPACE = $20 ' スペースキー
Const VK_TAB = $9 '「TAB」キー
Const VK_UP = $26 '「↑」キー
Const VK_ZOOM = $FB '
※以下は自分で定義したもの
Const VK_WIN = $5B '「Windows」キー
Const VK_A = 65 '「A」キー
Const VK_B = 66 '「B」キー
Const VK_C = 67 '「C」キー
Const VK_D = 68 '「D」キー
Const VK_E = 69 '「E」キー
Const VK_F = 70 '「F」キー
Const VK_R = 82 '「R」キー
'
' 以下略・・・
'
Const VK_X = 87 '「X」キー
Const VK_Y = 89 '「Y」キー
Const VK_Z = 90 '「Z」キー
ありがとうございます。解決いたしました。
ツイート |