Showing results for 
Search instead for 
Do you mean 
Blue Screen Again
Posts: 4
Registered: ‎04-04-2009
Location: Needham, MA
Message 1 of 6 (13,935 Views)

EasyEject and Windows 7

[ Edited ]



I upgraded my X200 Tablet from Vista 64-bit to Windows 7 64-bit, but I noticed that the EasyEject utility (Fn+F9) is not available for Windows 7.


I use my X200 with the docking station at work and frequently need to eject it to take it to meetings, etc.  How can I safely eject the X200 from the dock without EasyEject?


When I just pull the eject lever the system starts to beep loudly, like an error or alarm.



Community SuperMod
Posts: 4,170
Registered: ‎04-25-2008
Location: US
Message 2 of 6 (13,856 Views)

Re: EasyEject and Windows 7

Click Start>Shut down>Undock.


Windows 7 does the "safe" undock, no need for EasyEject (that's why it's not available). I have to admit I'm a rip and go guy, and have never run into any problems (except for the beep!).

I don't work for Lenovo. I'm a crazy volunteer!
Paper Tape
Posts: 6
Registered: ‎05-06-2009
Location: New Jersey
Message 3 of 6 (13,799 Views)

Re: EasyEject and Windows 7

In Windows 7 in the lower right-hand corner of the screen you'll see a small up arrow. This will show the hidden icons on the tool bar. Click on the arrow and when you see the hidden icons, look for the icon that looks like a USB plug. This is the Windows 7 "Safely Remove Hardware and Eject Media" tool.

Blue Screen Again
Posts: 6
Registered: ‎01-08-2010
Location: New Jersey
Message 4 of 6 (13,444 Views)

Re: EasyEject and Windows 7

[ Edited ]

there a button on the DOCK itself to easy eject. Its on the left side, next to the RED circle. Its a flate button. Just press it and it was undock for you.


You can also get the easy eject utility from lenovo drivers page. It says its for vista but it also works on windows 7

Blue Screen Again
Posts: 15
Registered: ‎02-26-2010
Location: Moldova, Chisinau
Message 5 of 6 (10,937 Views)

Re: EasyEject and Windows 7

[ Edited ]

when I undock my X200, the HDD led is on constantly - I have to restart the PC to bring it to normal...anyone found a solution to this?


BTW, when I undock while using Ubuntu, there is not such a problem, only when using Win 7 I have this problem...


please help

Paper Tape
Posts: 3
Registered: ‎06-24-2011
Location: Germany
Message 6 of 6 (6,143 Views)

Re: EasyEject and Windows 7

[ Edited ]

Sorry for reactivating this old topic, but it is one of the first search result in Google when searching for “EasyEject Windows 7 x64”…


Anyway, hitting “Start” → “Undock” or pressing the button on my docking station works fine for my X220t, but I wished for the old Fn+F9 function (undock and hibernate) as I am using an external Lenovo keyboard with Fn-keys and enjoyed EasyEject…


So, I want to share the results of the last weekend for other people who might be searching for this solution…


First of all: Any hardware giving you undock-problems must be removed manually beforehand. In my case, I have to unplug my external Upek fingerprint reader as it blocks the undocking.


Secondly, I was looking for a way to undock and automatically hibernate my X220t with a visual feedback so that I know whether the script is working or not. Hence, a little Visual-Basic programming was required.


Now to the complicated part of the solution: 1) we need to create a little VB-Script and 2) we need to create the Fn+F9 shortcut.


  1. Create the VB-Script
    1. open an Explorer and navigate to “C:\Program Files\Lenovo”
    2. create a new Folder “FN-F9”, giving you “C:\Program Files\Lenovo\FN-F9”
    3. in there, create a new file an name it “undock_and_hibernate.vbs”
    4. right-click the file andchoose to edit it
    5. in the Notepad-window (or other editor if you are not using Notepad), put the code I proivde at the end of my post and save the file
    6. close the Notepad
  2. create the Fn-F9 shortcut
    1. “Start” → “Run” ⇒ “regedit”
    3. create a new Key “09”, giving you “HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\CLASS\01\09”
    4. in “09”, create a new String “File” and give it the value “wscript.exe”
    5. in “09”, create a new String “Parameters” and give it the value “C:\Program Files\Lenovo\Fn-F9\undock_and_hibernate.vbs” (or where ever you have saved the VB-Script to)
    6. repeat 2.2, 2.3, 2.4 and 2.5 for “HKEY_LOCAL_MACHINE\SOFTWARE\LENOVO\TPHOTKEY\CLASS\01”
  3. try if it works by pressing Fn+F9 ;-)


Note: Should you kill the running VB-Script at any time, all harware that has been undocked is undocked, so you need to reconnect it in order to have it working again. Also, please note that you will get a script-exception on doing so, but this can be ignored, so just close the exception. - Should you let the script run to its end, no errors will be display.



Contents of “undock_and_hibernate.vbs”:


'start undocking
set wShell = CreateObject("Shell.Application")
set wShell = nothing

'check periodically if undocking finished
strRegKey = "HKLM\SYSTEM\CurrentControlSet\Control\IDConfigDB\CurrentDockInfo\DockingState"
Set wshShell = CreateObject("WScript.Shell")

'create the wait-animation
Dim pb
Dim percentComplete
Set pb = New ProgressBar
percentComplete = 0
pb.SetTitle("please wait...")
pb.SetText("waiting for undocking to finnish")
state = 0
while wshShell.RegRead(strRegKey)=2
    wscript.sleep 250
    select case state
        case 0
            pb.SetText("waiting for undocking to finnish<br />|")
        case 1
            pb.SetText("waiting for undocking to finnish<br />/")
        case 2
            pb.SetText("waiting for undocking to finnish<br />—")
        case 3
            pb.SetText("waiting for undocking to finnish<br />\")
            state = -1
    end select
    percentComplete = percentComplete + 10
    state = state + 1
    if (percentComplete > 100) then
        percentComplete = 0
    end if
pb.SetText("successfully undocked<br />preparing to hibernate...")
wscript.sleep 2500

'goto standby
'wshShell.Run "%windir%\system32\rundll32.exe powrprof,SetSuspendState" 'standby
wshShell.Run "%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate" 'hibernate
set wshShell = nothing

'the progress-bar
Class ProgressBar
    Private m_PercentComplete
    Private m_CurrentStep
    Private m_ProgressBar
    Private m_Title
    Private m_Text
    Private m_StatusBarText
    Private Sub ProgessBar_Initialize
        m_PercentComplete = 0
        m_CurrentStep = 0
        m_Title = "Progress"
        m_Text = ""
    End Sub
    Public Function SetTitle(pTitle)
        m_Title = pTitle
    End Function
    Public Function SetText(pText)
        m_Text = pText
    End Function

    Public Function Update(percentComplete)
        m_PercentComplete = percentComplete
    End Function

    Public Function Show()
        Set m_ProgressBar = CreateObject("InternetExplorer.Application")
        m_ProgressBar.navigate2 "about:blank" : m_ProgressBar.width = 315 : m_ProgressBar.height = 40 : m_ProgressBar.toolbar = false : m_ProgressBar.menubar = false : m_ProgressBar.statusbar = false : m_ProgressBar.visible = True
        m_ProgressBar.document.write "<body Scroll=no style='margin:0px;padding:0px;'><div style='text-align:center;'><span name='pc' id='pc'>0</span></div>"
        m_ProgressBar.document.write "<div id='statusbar' name='statusbar' style='border:1px solid blue;line-height:10px;height:10px;color:blue;'></div>"
        m_ProgressBar.document.write "<div style='text-align:center'><span id='text' name='text'></span></div>"
    End Function
    Public Function Close()
    End Function
    Private Function UpdateProgressBar()
        m_ProgressBar.Document.title = m_Title
        m_ProgressBar.Document.GetElementById("pc").InnerHtml = m_Title
        If m_PercentComplete = 0 Then
            m_StatusBarText = ""
        End If
        For n = m_CurrentStep to m_PercentComplete - 1
            m_StatusBarText = m_StatusBarText & "|"
            m_ProgressBar.Document.GetElementById("statusbar").InnerHtml = m_StatusBarText
        m_ProgressBar.Document.GetElementById("statusbar").InnerHtml = m_StatusBarText
        m_ProgressBar.Document.title = m_Title
        m_ProgressBar.Document.GetElementById("pc").InnerHtml = m_Title
        m_ProgressBar.Document.GetElementById("text").InnerHtml = m_Text
        m_CurrentStep = m_PercentComplete
    End Function
End Class

Top kudoed Authors
User Kudos Count