Support in other languages: 
Reply
Blue Screen Again
stillerz
Posts: 4
Registered: ‎04-04-2009
Location: Needham, MA
0

EasyEject and Windows 7

[ Edited ]

Hi,

 

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.

 

Thanks!

Community SuperMod
bananaman
Posts: 3,643
Registered: ‎04-25-2008
Location: San Francisco
0

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
trigger_phish
Posts: 6
Registered: ‎05-06-2009
Location: New Jersey
0

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
tpadela
Posts: 6
Registered: ‎01-08-2010
Location: New Jersey
0

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

 

http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-70656

Blue Screen Again
a_petrov303
Posts: 15
Registered: ‎02-26-2010
Location: Moldova, Chisinau
0

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
the-tester
Posts: 3
Registered: ‎06-24-2011
Location: Germany
0

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”
    2. navigate to “HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\CLASS\01
    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")
wShell.EjectPC
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")
pb.Show()
pb.Update(percentComplete)
 
state = 0
while wshShell.RegRead(strRegKey)=2
    wscript.sleep 250
    pb.Update(percentComplete)
    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
wend
pb.SetText("successfully undocked<br />preparing to hibernate...")
pb.Update(percentComplete)
wscript.sleep 2500
pb.Close()

'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
wscript.quit

'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
        UpdateProgressBar()
    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()
        m_ProgressBar.quit
    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
        Next
        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