Never mind, solved it (unless anybody knows a better way).
It’s a windows app, so:
require ‘Win32API’
SW_HIDE = 0
WS_OVERLAPPED = 0
WS_DISABLED = 0x08000000
WS_MINIMIZED = 0x20000000
def already_running
#
# Not sure of any other way to do this.
# Create a window with the title “i4FileProcessorHiddenWindow”.
When we come to run this program again,
# if there is already a window called
“i4FileProcessorHiddenWindow” then abort that instance.
# In this way, only one instance of the script should run.
#
findwindow = Win32API.new('user32','FindWindow', ['p','p'], 'L')
return true if findwindow.call("STATIC",
“i4FileProcessorHiddenWindow”) != 0
createwindow = Win32API.new('user32', 'CreateWindowEx', ['l', 'p',
‘p’, ‘l’, ‘i’, ‘i’, ‘i’, ‘i’, ‘l’, ‘l’, ‘l’, ‘P’], ‘l’)
dwStyle = (WS_DISABLED | WS_MINIMIZED)
cw = createwindow.call( WS_OVERLAPPED, ‘STATIC’,
‘i4FileProcessorHiddenWindow’, dwStyle, 0, 0, 0, 0, 0, 0, 0, 0 )
show = Win32API.new(‘user32’, ‘ShowWindow’, [‘L’, ‘L’], ‘L’)
show.call(cw, SW_HIDE)
return false
end
On 07/11/06, Glenn S. [email protected] wrote:
Ta muchly
–
All the best
Glenn
Aylesbury, UK