;STPS - Switch to PubMed Search ;Version: 0.10 ;created by Martin Dehler - 2005 - www.martin-dehler.de ;Feel free to modify the code for your personal needs, but entirly on your on risk. #include Dim $AuthorName,$PublicationDate,$FirstPage ;create GUI with input fields and buttons GUICreate("Switch to PubMed Search",255,170,@DesktopWidth-300,@DesktopHeight-250,-1,$WS_EX_TOPMOST) GUISetState(@SW_SHOW) GUICtrlCreateLabel("Author name",5,10) $InputAuthorName=GUICtrlCreateInput("",85,8,165,18) GUICtrlCreateLabel("Publication date",5,37) $InputPublicationDate=GUICtrlCreateInput("",85,35,165,18) GUICtrlCreateLabel("First page",5,64) $InputFirstPage=GUICtrlCreateInput("",85,62,165,18) $ButtonSearch=GUICtrlCreateButton("Search PubMed",5,90,105) $ButtonClear=GUICtrlCreateButton("Clear",115,90,65) $ButtonClose=GUICtrlCreateButton("Close",185,90,65) $ButtonActivate=GUICtrlCreateButton("Acivate PubMed Search",5,130,245) $LabelInfo=GUICtrlCreateLabel("Version: 0.10 - Info: www.martin-dehler.de",0,155,255,20,$SS_CENTER ) GUICtrlSetFont($LabelInfo,8) GUICtrlSetState($InputAuthorName,$GUI_FOCUS) ;main loop While 1 $Msg=GUIGetMsg() Select Case $Msg=$ButtonClose OR $Msg=$GUI_EVENT_CLOSE ExitLoop Case $MsG=$ButtonActivate If Not WinExists("Reference Manager") Then MsgBox(8240,"Switch to PubMed Search","Reference Manager is not running!") Else ActivatePubmedSearch() EndIf Case $Msg=$ButtonSearch If Not WinExists("Reference Manager") Then MsgBox(8240,"Switch to PubMed Search","Reference Manager is not running!") Else Search() EndIf Case $Msg=$ButtonClear Clear() EndSelect Wend Func ActivatePubmedSearch() ;activates PubMed search ;activate Reference Manager window WinActivate("Reference Manager") WinWaitActive("Reference Manager") ;activate search Send("{F4}") WinWaitActive("Reference Manager - [Search]") ;switch to internet search ControlClick("Reference Manager - [Search]","","Button1") ;select PubMed as database ControlSend("Reference Manager - [Search]","",4043,"p") GUICtrlSetState($InputAuthorName,$GUI_FOCUS) EndFunc Func Search() ;activates required search fields, enters search strings ActivatePubmedSearch() Sleep(150) If GUICtrlRead($InputAuthorName)<>"" Then Send("a") Sleep(100) Send("u") Sleep(25) Send("{TAB}") Sleep(25) Send(GUICtrlRead($InputAuthorName)) Sleep(50) IF GUICtrlRead($InputPublicationDate)<>"" Or GUICtrlRead($InputFirstPage)<>"" Then Send("{TAB}") Sleep(25) Send("a") Sleep(25) Send("{TAB}") Sleep(25) EndIf EndIf If GUICtrlRead($InputPublicationDate)<>"" Then Send("p") Sleep(25) Send("{TAB}") Sleep(25) Send(GUICtrlRead($InputPublicationDate)) Sleep(25) If GUICtrlRead($InputFirstPage)<>"" Then Send("{TAB}") Sleep(25) Send("a") Sleep(25) Send("{TAB}") Sleep(25) EndIf EndIf If GUICtrlRead($InputFirstPage)<>"" Then Send("f") Sleep(25) Send("{TAB}") Sleep(25) Send(GUICtrlRead($InputFirstPage)) EndIF Send("{F12}") GUICtrlSetState($ButtonClear,$GUI_FOCUS) EndFunc Func Clear() ;clears input fields GUICtrlSetData($InputAuthorName,"") GUICtrlSetData($InputPublicationDate,"") GUICtrlSetData($InputFirstPage,"") GUICtrlSetState($InputAuthorName,$GUI_FOCUS) EndFunc