~osomon/moovida/upicek_language_option_screen

« back to all changes in this revision

Viewing changes to elisa-core/bin/elisa

Add forgotten tweaks for the command line on windows

Show diffs side-by-side

added added

removed removed

Lines of Context:
193
193
def _exit_if_running(options):
194
194
    import platform
195
195
    system = platform.system()
196
 
    if system == 'Windows':
 
196
    if system == 'Linux':
 
197
        _exit_if_running_linux(options)
 
198
    elif system == 'Windows':
197
199
        _exit_if_running_win32(options)
198
 
        return
 
200
    return
 
201
 
 
202
def _exit_if_running_linux(options):
199
203
    try:
200
204
        import dbus
201
205
        import dbus.mainloop.glib
234
238
def _exit_if_running_win32(options):
235
239
    from win32gui import FindWindow
236
240
    from win32api import SendMessage
237
 
    from sys import exit
238
241
    
239
242
    try:
240
243
        handle = FindWindow("elisa_win32_message_window", "Win32 message window")
242
245
        return
243
246
    
244
247
    if len(options['files']) > 0:
245
 
        WM_COPYDATA = 74
246
248
        import ctypes
247
249
        from ctypes import Structure, POINTER, byref, c_void_p, c_char, sizeof, cast
248
 
        from ctypes.wintypes import ULONG, DWORD
 
250
        from ctypes.wintypes import ULONG
 
251
        from mswin32.structures import COPYDATASTRUCT
249
252
        
250
 
        ops = ' '.join(options['files'])
 
253
        command_line = ' '.join(options['files'])
251
254
        
252
255
        class COMMANDLINEDATA(Structure):
253
256
            _fields_ = [
254
 
                        ("data", c_char * len(ops)),
255
 
                       ]
256
 
        
257
 
        class COPYDATASTRUCT(Structure):
258
 
            _fields_ = [
259
 
                         ("dwData", POINTER(ULONG)),
260
 
                         ("cbData", DWORD),
261
 
                         ("lpData", c_void_p),
 
257
                        ("data", c_char * len(command_line)),
262
258
                       ]
263
259
        
264
260
        commandlinedata = COMMANDLINEDATA()
265
 
        commandlinedata.data = ops
 
261
        commandlinedata.data = command_line
266
262
        copydata = COPYDATASTRUCT()
267
263
        COMMAND_LINE = POINTER(ULONG)()
268
264
        COMMAND_LINE.value = 1
269
265
        copydata.dwData = COMMAND_LINE
270
266
        copydata.cbData = sizeof(commandlinedata)
271
267
        copydata.lpData = cast(byref(commandlinedata), c_void_p)
 
268
        from win32con import WM_COPYDATA
272
269
        SendMessage(handle, WM_COPYDATA, 0, copydata)
273
270
    
274
271
    print 'Elisa is already running, exiting'
275
 
    exit(1)
 
272
    sys.exit(1)
276
273
 
277
274
def main():
278
275
    _setup_environment()