Open Side Menu Go to the Top
Register
Absolute UB Hotkeys Absolute UB Hotkeys

12-23-2009 , 07:54 PM
Quote:
Originally Posted by iworkout
Do these hotkeys actually make u play more efficiently? i multitable with my hand on mouse and other one on the keyboard and this combo seems most efficient. id like to start using hotkeys if this is not the case. thanks guys.
Different strokes for different blokes
Absolute UB Hotkeys Quote
12-26-2009 , 01:10 PM
Can I get 833x533 (833x600 was wrong, sorry)? Thanks!
Absolute UB Hotkeys Quote
01-02-2010 , 11:16 PM
Hi, never used any scripts before so its a brand new world for me.
Acctually i was hoping to se a bet 3/4 pot button for UB (i bet pot or 1/2 pot like never). Can this be done?
Thx
Absolute UB Hotkeys Quote
01-03-2010 , 12:01 AM
Code:
~MButton::			;Pot
MouseGetPos,,,win
WinGetClass, winClass, ahk_id %win%
If winClass = DxWndClass
{
WinActivate, ahk_id %win%
MouseGetPos, xx, yy
WinGetPos,,, w, h, A
potx:=w*(765/800)
poty:=h*(500/600)
MouseClick , left, potx, poty, 1, 0
;Send {WheelDown}
Mousemove, %xx%, %yy%, 0
return
}
Else
{
return
}
Remove the ; from

;Send {WheelDown}

and if you want add more {WheelDown} so it looks like

Send {WheelDown}{WheelDown}{WheelDown}

or you could add {WheelUp} to the HalfPot Bet so you can use the pot for your PFR.

Post back if I lost you.
Absolute UB Hotkeys Quote
01-03-2010 , 06:35 AM
how do u download this script?
Absolute UB Hotkeys Quote
01-03-2010 , 02:14 PM
Quote:
Originally Posted by madlion
Code:
~MButton::			;Pot
MouseGetPos,,,win
WinGetClass, winClass, ahk_id %win%
If winClass = DxWndClass
{
WinActivate, ahk_id %win%
MouseGetPos, xx, yy
WinGetPos,,, w, h, A
potx:=w*(765/800)
poty:=h*(500/600)
MouseClick , left, potx, poty, 1, 0
;Send {WheelDown}
Mousemove, %xx%, %yy%, 0
return
}
Else
{
return
}
Remove the ; from

;Send {WheelDown}

and if you want add more {WheelDown} so it looks like

Send {WheelDown}{WheelDown}{WheelDown}

or you could add {WheelUp} to the HalfPot Bet so you can use the pot for your PFR.

Post back if I lost you.
If that was directed to me, yes
Absolute UB Hotkeys Quote
01-03-2010 , 04:00 PM
Sorry, can I get 833x533 for UB? Thanks!
Absolute UB Hotkeys Quote
01-03-2010 , 04:21 PM
madlion,
Thanks for the script.
I would like to know how do you change Rbutton(fold/auto fold) to a difference button on the mouse (ex. xbutton1 or xbutton2).

also on no limit hold em, on the flop, when I click on the Rbutton, it check the "fold" button. It should check "fold/check" button.

Thank You so much.
Absolute UB Hotkeys Quote
01-03-2010 , 06:51 PM
@Legitte_C

I just re-uploaded it as a .rar which I should have done in the first place, sorry free hosting doesn't seem to want me to upload .zip files.
You will need 7zip or winRAR for extracting.

@zagor

Yes it was.

I have not found a way to get the pot size off the table or a betpot script would be fairly easy.

@El helado Patata

Sorry it's been on my to do list I will try today.

@AlwaysOnTop

Open the script with Notepad++ or Notepad

Change this line

Code:
^!f::				;Fold/Autofold
to

Code:
xbutton1::				;Fold/Autofold
or what ever button you prefer and delete this line, its right at the bottom of the script

Code:
RButton::^!f
I don't like using the check/fold button cause I miss a lot of spots to steal small pots but I will try and post something for you to use.
Absolute UB Hotkeys Quote
01-03-2010 , 07:37 PM
@AlwaysOnTop

Code:
^!f::				;Fold/Autofold
MouseGetPos,,,win
WinGetClass, winClass, ahk_id %win%
If winClass = DxWndClass
{
WinActivate, ahk_id %win%
MouseGetPos, xx, yy
WinGetPos,,, w, h, A
Send {F1}
foldx:=w*(440/800)
foldy:=h*(570/600)
MouseClick , left, foldx, foldy, 1, 0
foldx:=w*(440/800)
foldy:=h*(540/600)
MouseClick , left, foldx, foldy, 1, 0
Mousemove, %xx%, %yy%, 0
Sleep, 250
IfWinExist, Info
WinActivate, Info
Loop 3
{
ControlClick, Button2, Info
Sleep, 50
}
return
}
Else
Send {RButton}
{
return
}
Replace with this.

Only problem is if you misclick and want to uncheck fold/check you will have to do it with the mouse pointer.

Basically it first clicks where the 'Auto-Fold' button is then it clicks where the 'Auto-Check/Fold' button is.
Absolute UB Hotkeys Quote
01-03-2010 , 07:45 PM
Thanks,
I got the fold/autofold works now.
I want to click a button and it move the bet slider to the max, then i click on "Raise to" button. it's like all-in.

the script is awesome!
Absolute UB Hotkeys Quote
01-03-2010 , 08:31 PM
I really just want to use the fold option of this script.
can I just delete everything else in it (all of the other sections) ?

I tried it and it didn't work, is there something special I need to do.

Thanks
Absolute UB Hotkeys Quote
01-04-2010 , 01:28 AM
it's ok Madlion no need to apologise i just cant get it working, i extracted the files in 7 zip, but when i go to open it sais choose a programme to open this file with and then it sais cant detect any programmes to open it with, am i doing something wrong?
Absolute UB Hotkeys Quote
01-04-2010 , 03:41 AM
Quote:
Originally Posted by orentha
I really just want to use the fold option of this script.
can I just delete everything else in it (all of the other sections) ?

I tried it and it didn't work, is there something special I need to do.

Thanks
Code:
#NoEnv
SendMode Input
#WinActivateForce

^!f::				;Fold/Autofold
MouseGetPos,,,win
WinGetClass, winClass, ahk_id %win%
If winClass = DxWndClass
{
WinActivate, ahk_id %win%
MouseGetPos, xx, yy
WinGetPos,,, w, h, A
Send {F1}
foldx:=w*(440/800)
foldy:=h*(570/600)
MouseClick , left, foldx, foldy, 1, 0
Sleep, 250
foldx:=w*(440/800)
foldy:=h*(540/600)
MouseClick , left, foldx, foldy, 1, 0
Mousemove, %xx%, %yy%, 0
Sleep, 250
IfWinExist, Info
WinActivate, Info
Loop 3
{
ControlClick, Button2, Info
Sleep, 50
}
return
}
Else
Send {RButton}
{
return
}

RButton::^!f
Try this
Absolute UB Hotkeys Quote
01-04-2010 , 03:43 AM
Quote:
Originally Posted by Legitte_C
it's ok Madlion no need to apologise i just cant get it working, i extracted the files in 7 zip, but when i go to open it sais choose a programme to open this file with and then it sais cant detect any programmes to open it with, am i doing something wrong?
You need to download and install AutoHotkey for it to work.
Absolute UB Hotkeys Quote
01-04-2010 , 04:38 AM
Quote:
Originally Posted by AlwaysOnTop
Thanks,
I got the fold/autofold works now.
I want to click a button and it move the bet slider to the max, then i click on "Raise to" button. it's like all-in.

the script is awesome!
I use a fast scroll mouse wheel so I just spin it up and hit the bet/raise button.

I had a quick play with MouseClickDrag command but couldn't get it to do what you want I'm sure it will I just don't have the time atm.

MouseClickDrag - Here is the documentation if you want to have a go at it.
Absolute UB Hotkeys Quote
01-04-2010 , 06:04 AM
can you just make me a bot..thanks
Absolute UB Hotkeys Quote
01-04-2010 , 11:00 AM
Thanks dude for this script and help fixing it.

I am gonna donate as soon as I get a good result for 2010 in .

Btw, if you would fix stuff in the pokerpad script for the updated AP/UB, perhaps it would start working again? (Its better with 1 script for all sites rather then 1 script for each site).

I dont know if you are interested btw but if you know this stuff and could fix ftp+cake in the pokerpad script then I would pay for that.
Absolute UB Hotkeys Quote
01-04-2010 , 01:53 PM
hey madlion, how do i send you some $$? do u have Paypal?


I play lots of SitNGo at once and i would like to know what the Buy-in for each table. can you make a text display over the table? or somehow i know the buy-in for each table.

Thank You
Absolute UB Hotkeys Quote
01-04-2010 , 08:57 PM
Quote:
Originally Posted by madlion
Code:
#NoEnv
SendMode Input
#WinActivateForce

^!f::                ;Fold/Autofold
MouseGetPos,,,win
WinGetClass, winClass, ahk_id %win%
If winClass = DxWndClass
{
WinActivate, ahk_id %win%
MouseGetPos, xx, yy
WinGetPos,,, w, h, A
Send {F1}
foldx:=w*(440/800)
foldy:=h*(570/600)
MouseClick , left, foldx, foldy, 1, 0
Sleep, 250
foldx:=w*(440/800)
foldy:=h*(540/600)
MouseClick , left, foldx, foldy, 1, 0
Mousemove, %xx%, %yy%, 0
Sleep, 250
IfWinExist, Info
WinActivate, Info
Loop 3
{
ControlClick, Button2, Info
Sleep, 50
}
return
}
Else
Send {RButton}
{
return
}

RButton::^!f
Try this

Thanks !!
I just tried this, and it doesn't seem to be working...
not sure why. I copied and pasted exactly what you gave me.

also, how would I go about making the up arrow my fold button.
i'm not sure what the correct syntax is.
Absolute UB Hotkeys Quote
01-04-2010 , 09:14 PM
hello folks,
when I click with right button to fold the script autorebuy too.
how i change this?
thx
Absolute UB Hotkeys Quote
01-04-2010 , 10:38 PM
@orentha

Code:
#NoEnv
SendMode Input
#WinActivateForce

Up::                ;Fold/Autofold
MouseGetPos,,,win
WinGetClass, winClass, ahk_id %win%
If winClass = DxWndClass
{
WinActivate, ahk_id %win%
MouseGetPos, xx, yy
WinGetPos,,, w, h, A
Send {F1}
foldx:=w*(440/800)
foldy:=h*(570/600)
MouseClick , left, foldx, foldy, 1, 0
Mousemove, %xx%, %yy%, 0
Sleep, 250
IfWinExist, Info
WinActivate, Info
Loop 3
{
ControlClick, Button2, Info
Sleep, 50
}
return
}
Else
Send {Up}
{
return
}
I tested this one as long as you are using top view and your tables are not some weird size this should be good for up arrow folding

@binhozao

you can either delete this line (should be on line 46)

Code:
Send {F1}
or change the hotkey in Roland's reload script to something other than F1
Absolute UB Hotkeys Quote
01-04-2010 , 11:25 PM
@AlwaysOnTop

Can you see the buyin in the window title I'm guessing not?
Absolute UB Hotkeys Quote
01-04-2010 , 11:29 PM
hmmm.
not sure, i just tried it, and no go.
my tables are top view and default size.

I just checked, and I had an old version of ahk, so I upgraded to latest version, but that didn't help

any ideas on what could be causing my issues?

(it's probably something super easy, and i'll look like an idiot. lol)
Absolute UB Hotkeys Quote
01-05-2010 , 03:28 AM
Hey People,

I have the following script on UB that buy in automaticcily.
But i want that the script auto rebuys all the time when i
am playing.

Does anybody know what i must change?

Here is mine script

/**
* Rebuy script for Absolute and UltimateBet.
*
* Edit the DESIRED_STACK_SIZE variable to define
* how much to rebuy, in big blinds. The default
* is 100 big blinds.
* If you use the "Top" table view on UB, change the
* VIEW variable to from "CLASSIC" to "TOP.
* Press F1 to rebuy on the table under the mouse.
* The script also has an auto-buyin option (set AUTO_BUY_IN to 1 to enable).
* If you are having problems with this script, set LOGGING
* to 1, do some rebuys, and send me the log file.
*
* USE AT YOUR OWN RISK.
*
* Date: 8:01 PM Friday, November 20, 2009
* AHK Version: 1.0.48.05
* Author: Roland (roland@overcards.com)
* Wiki page: http://www.overcards.com/wiki/moin.c...oRebuyAbsolute
*
* --- Changelog ---
* @11:29 AM Saturday, November 21, 2009:
* • Adjusted y-coord so it won't click on Replay instead of Options.
* @2:46 PM Monday, November 23, 2009:
* • Fixed bug with recognising amounts over $1000 due to comma
* • Added (optional) logging. Set variable LOGGING to 1 to enable.
* @5:45 PM Monday, November 23, 2009:
* • Added auto-buyin option. Set AUTO_BUY_IN to 1 to enable.
* @8:30 PM Tuesday, November 24, 2009
* • Added auto-closing for the Alert pop-up when sitting down
* @4:18 PM Friday, November 27, 2009:
* • If the Options dialog doesn't appear, the script will click
* again every 250 ms for 1 second.
* @9:16 PM Friday, November 27, 2009:
* • Fixed problem that occured when other table popped up during rebuy.
* @9:43 AM Monday, November 30, 2009:
* • Close the "Additional chips will be available..." popup after rebuying.
* @10:51 AM Tuesday, December 01, 2009:
* • Added logging to record info when table under mouse is not AP/UB table.
* @9:09 PM Tuesday, December 01, 2009
* • Improved logging and made some slight changes to improve reliability.
* @7:32 PM Sunday, December 06, 2009:
* • Added check to ensure script is run as administrator
* @2:25 PM Monday, December 14, 2009:
* • When logging is turned on, the script now displays a tooltip when
* starting a rebuy. This can help detect situations where the hotkey
* has been overridden by another program.
*/

; ##### SETTINGS #####
; edit this:
DESIRED_STACK_SIZE:=100
; change to "TOP" if needed:
VIEW:="CLASSIC"
; change to 1 to auto-buy in:
AUTO_BUY_IN:=1
; change to 1 to enable logging
LOGGING:=0
; ##### /SETTINGS #####

#NoEnv
#SingleInstance force
SetWorkingDir %a_scriptDir%
SendMode Input
CoordMode, Mouse, Screen
SetDefaultMouseSpeed 0

; make sure it's run as administrator
if !A_IsAdmin {
msgbox, 49, AP/UB AutoRebuy,
( LTrim join`n
This script needs to be run as an administrator, otherwise it won't work properly.
Would you like to run it as an administrator now?
)
IfMsgBox, OK
DllCall("shell32\ShellExecuteA", uint, 0, str, "RunAs", str, A_AhkPath
, str, """" . A_ScriptFullPath . """", str, A_WorkingDir, int, 1)
exitApp
}

log("`n`n================== v1.10 ========================`n")
log("DESIRED_STACK_SIZE: " DESIRED_STACK_SIZE "`n")

; window classes (same at Absolute and UB)
TABLE_WINDOW_CLASS:="DxWndClass"
POPUP_WINDOW_CLASS:="DXPopupWnd"

if AUTO_BUY_IN
gosub autoBuyIn
return

; ===================

; change the hotkey to your liking
F12::
; not sure if "Critical" is neccessary, but make sure the
; auto-buy in loop can't interrupt and see the buy-in
; window and think it's an initial buy-in rather than
; a rebuy
Critical
MouseGetPos,,, win
rebuy(win)
return

; ===================

; simply runs in a loop, waiting for
; buy-in dialogs, and buying in when it
; sees one
autoBuyIn:
Loop {
WinWait, Alert ahk_class%POPUP_WINDOW_CLASS%, Security Notice - Do not divulge
loop 10 { ; make 10 attemps at closing the window, to be safe
ControlClick, Button1
WinWaitClose,,, 0.5
ifEqual, ErrorLevel, 0, break ; we closed it
} ifEqual, ErrorLevel, 1, continue ; couldn't close Alert window
WinWait, Buy chips ahk_class%POPUP_WINDOW_CLASS%,, 3 ; wait for the buy in window
ifNotEqual, ErrorLevel, 0, continue ; something went wrong
Sleep 250
buyIn(WinExist())
}
return

; ===================

/**
* Rebuys at Absolute or UltimateBet for
* DESIRED_STACK_SIZE*bigBlind.
*
* @param win <hwnd> The window handle of the
* table to rebuy on.
*/
rebuy(win) {
global DESIRED_STACK_SIZE, VIEW, TABLE_WINDOW_CLASS, POPUP_WINDOW_CLASS, LOGGING
WinExist("ahk_id" win) ; set LFW
WinGetTitle, title
if LOGGING {
Tooltip Starting rebuy...
SetTimer, tooltipOff, -1000
}
log("`nStarting rebuy... [Window title=" title)
WinGetClass, class
; not an absolute/ultimate table:
ifNotEqual, class, % TABLE_WINDOW_CLASS, {
WinGetTitle, title
log("Window not an AP/UB poker table [title=" title ", class=" class "]")
return
}
; determine if it's Absolute or Ultimate (only one can be open):
casino:=WinExist("Absolute Poker - Logged in as") ? "ABSOLUTE" : "UB"
log("Casino: " casino)
; position of "Options" button differs:
x:=casino="ABSOLUTE" ? 329 : ( VIEW="TOP" ? 329 : 749 )
y:=casino="ABSOLUTE" ? 14 : ( VIEW="TOP" ? 14 : 505 )
title:=casino="ABSOLUTE" ? "Options" : "UB Preferences" ; title differs
loop 4 { ; 4 attemps... perhaps solves some problems?
log("Opening options. Attempt " a_index "...")
AbsoluteOrUltimatePokerClick(x, y, win) ; click on options
WinWait %title% ahk_class %POPUP_WINDOW_CLASS%,, 0.25
ifEqual, ErrorLevel, 0, break
}
ifEqual, ErrorLevel, 1, {
log("Options dialog didn't open. Rebuy cancelled.")
return
}
log("Options successfully opened.")
x:=casino="ABSOLUTE" ? 268 : 460 ; x-coord differs
click(x, 40, WinExist()) ; click on Buy More Chips
WinWait Buy chips ahk_class %POPUP_WINDOW_CLASS%,, 2
ifNotEqual, ErrorLevel, 0, {
log("Buy chips dialog didn't open. Rebuy cancelled.")
return
}
log("Buy chips dialog opened.")
WinGetText, text
bigBlind:=bigBlind(text) ; get the big blind
maxStack:=maxStack(text) ; get the max stack size
allowedMaxRebuy:=allowedMaxRebuy(text) ; get the allowed max rebuy
stack:=maxStack-allowedMaxRebuy ; calculate stack size
log("Stack: " stack)
; calculate amount to rebuy:
rebuyAmount:=round((DESIRED_STACK_SIZE*bigBlind)-stack, 2)
log("RebuyAmount: " rebuyAmount)
if ( rebuyAmount<=0 ) { ; no rebuy possible
log("Cancelling rebuy...")
click(338, 382, WinExist()) ; cancel
return
}
if ( rebuyAmount>allowedMaxRebuy )
rebuyAmount:=allowedMaxRebuy
log("Final rebuyAmount: " rebuyAmount "`n`n")
ControlSetText, Edit1, % rebuyAmount
click(73, 379, WinExist()) ; click OK
; wait 2 secs for the "Additional chips will be available..." popup, and close it:
WinWait, Info ahk_class %POPUP_WINDOW_CLASS%, Additional chips will be available once you complete, 2
ifEqual, ErrorLevel, 0, WinClose
return

tooltipOff:
Tooltip
return
}

; ===================

/**
* Performs the initial buy-in. Buys in for
* DESIRED_STACK_SIZE big blinds.
* If DESIRED_STACK_SIZE*bigBlind > maxStack, the
* function will buy in for maxStack.
*
* @param win <hwnd> The hwnd of the buy-in dialog.
*/
buyIn(win) {
global DESIRED_STACK_SIZE
log("`nStarting buy in...")
WinExist("ahk_id" win) ; set LFW
WinGetText, text
bigBlind:=bigBlind(text) ; get the big blind
maxStack:=maxStack(text) ; get the max stack size
buyInAmount:=round(DESIRED_STACK_SIZE*bigBlind, 2) ; calc. amount
log("Buy in amount: " buyInAmount)
if ( buyInAmount>maxStack ) ; make sure we don't try to exceede max
buyInAmount:=maxStack
log("Final buy in amount: " buyInAmount)
SendRaw {%buyInAmount%}
click(73, 379, WinExist()) ; click OK
log("Buy in completed.")
}

; ===================

/**
* Returns the big blind, given the window text
* from the buy-in dialog.
*
* @param text <str> The window text from the buy-in dialog.
* @return <float> the big blind.
*/
bigBlind(text) {
regExMatch(text, "/\$([\d.,]+)", m) ; big blind
StringReplace, bigBlind, m1, `, ; get rid of comma (as in 1,200.00 -> 1200.00)
log("Big blind: " bigBlind)
return bigBlind
}

; ===================

/**
* Returns the allowed maximum stack size,
* given the window text from the buy-in dialog.
*
* @param text <str> The window text from the buy-in dialog.
* @return <float> the allowed max stack size.
*/
maxStack(text) {
regExMatch(text, "Maximum amount allowed : \$([\d.,]+)", m) ; max stack
StringReplace, maxStack, m1, `, ; get rid of comma (as in 1,200.00 -> 1200.00)
log("Max stack: " maxStack)
return maxStack
}

; ===================

/**
* Returns the allowed maximum rebuy amount,
* given the window text from the buy-in dialog.
*
* @param text <str> The window text from the buy-in dialog.
* @return <float> the allowed max rebuy.
*/
allowedMaxRebuy(text) {
regExMatch(text, "m)\$ \R\$ \R([\d.,]+)", m) ; allowed max rebuy
StringReplace, allowedMaxRebuy, m1, `, ; get rid of comma (as in 1,200.00 -> 1200.00)
log("allowedMaxRebuy: " allowedMaxRebuy)
return allowedMaxRebuy
}

; ===================

/**
* Writes a string to a file called "log.txt" in
* the working directory of the script. A linefeed
* is appended to the string.
*
* @param str <str> The string to write to the log file.
*/
log(str) {
global LOGGING
if LOGGING
FileAppend, %str%`n, log.txt
}

; ===================

/**
* Performs a click via the AHK Click command. The window must
* be an Absolute or UB Poker poker table, and coordinates should be
* for the default size of a table (792x556). They will then be
* converted to be relative to the current table size.
* NOTE: CoordMode, Mouse, Screen must be used in the auto-execute
* section of the script.
*
* @param x <int> The x-coord. Relative to client area.
* @param y <int> The y-coord. Relative to client area.
* @param win <hwnd> The handle to the window.
*/
AbsoluteOrUltimatePokerClick(x, y, win) {
getClientRect(cx, cy, cw, ch, win)
WinActivate ahk_id%win%
x:=cx+(cw/792)*x, y:=cy+(ch/556)*y
Click %x% %y%
}

; ===================

/**
* Performs a click via the AHK Click command, where coordinates
* are relative to the client area of a window.
* NOTE: CoordMode, Mouse, Screen must be used in the auto-execute
* section of the script.
*
* @param x <int> The x-coord. Relative to client area.
* @param y <int> The y-coord. Relative to client area.
* @param win <hwnd> The handle to the window.
*/
click(x, y, win) {
getClientRect(cx, cy, cw, ch, win)
x+=cx, y+=cy
Click %x% %y%
}

; ===================

/**
* Finds the "client rectangle" of a window, i.e. the area of
* the window not including borders, titlebar, menus, etc.
*
* @param x <int> Receives the x-coordinate of the window.
* @param y <int> Receives the y-coordinate of the window.
* @param w <int> Receives the width of the window.
* @param h <int> Receives the height of the window.
* @param hwnd <hwnd> Window handle. If blank, the Last Found Window will be used.
* @author Adapted from code by Sean. Modified and updated to use
* NumGet()/NumPut() by Roland.
* @see http://msdn.microsoft.com/en-us/libr...03(VS.85).aspx
* @see http://msdn.microsoft.com/en-us/library/aa931003.aspx
*/
getClientRect(byRef x="", byRef y="", byRef w="", byRef h="", hwnd=0) {
hwnd:=hwnd ? hwnd : WinExist() ; use LFW if no hwnd given
VarSetCapacity(rt, 16) ; alloc. mem. for RECT struc.
VarSetCapacity(pt, 8, 0) ; alloc. mem. for POINT struc.
DllCall("GetClientRect" , "uint", hwnd, "uint", &rt)
DllCall("ClientToScreen", "uint", hwnd, "uint", &pt)
x:=NumGet(pt, 0, "int"), y:=NumGet(pt, 4, "int")
w:=NumGet(rt, 8, "int"), h:=NumGet(rt, 12, "int")
}

Hope that somebody can help me.
Absolute UB Hotkeys Quote

      
m