mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-22 11:18:08 -06:00
Replaced check_pid to use psutil as opposed to deal directly with win32 API
This commit is contained in:
parent
b57a430dc5
commit
ffbb67765d
@ -2,8 +2,9 @@ TWBlue Changelog
|
|||||||
|
|
||||||
## changes in this version
|
## changes in this version
|
||||||
|
|
||||||
* per popular request, We will generate a 32-bit portable version of TWBlue available for Windows 7 operating systems. This version will not be supported in our automatic updater, so in case using such version, you would need to download it manually every time there is a new update. TWBlue will continue to be available for Windows 7 as long as it is possible to build it using Python 3.7.
|
* per popular request, We will generate a 32-bit portable version of TWBlue available for Windows 7 operating systems. This version will not be supported in our automatic updater, so in case of using such version, you would need to download it manually every time there is a new update. TWBlue will continue to be available for Windows 7 as long as it is possible to build it using Python 3.7.
|
||||||
* Fixed a couple of bugs that were making TWBlue unable to be opened in some computers.
|
* Fixed a couple of bugs that were making TWBlue unable to be opened in some computers, related to our translator module and some COM objects handled incorrectly.
|
||||||
|
* Fixed an issue that was making TWBlue unable to open in certain computers due to errors related to Win32 API'S.
|
||||||
* Twitter:
|
* Twitter:
|
||||||
* Fixed a bug that was making sent direct messages to be placed in received direct messages buffer.
|
* Fixed a bug that was making sent direct messages to be placed in received direct messages buffer.
|
||||||
* When quoting a tweet, you can use all 280 characters to send your quoted tweet, as opposed to the 256 characters TWBlue allowed before.
|
* When quoting a tweet, you can use all 280 characters to send your quoted tweet, as opposed to the 256 characters TWBlue allowed before.
|
||||||
|
@ -50,6 +50,7 @@ numpy
|
|||||||
pillow
|
pillow
|
||||||
charset-normalizer
|
charset-normalizer
|
||||||
demoji
|
demoji
|
||||||
|
psutil
|
||||||
git+https://github.com/accessibleapps/libloader
|
git+https://github.com/accessibleapps/libloader
|
||||||
git+https://github.com/accessibleapps/platform_utils
|
git+https://github.com/accessibleapps/platform_utils
|
||||||
git+https://github.com/accessibleapps/accessible_output2
|
git+https://github.com/accessibleapps/accessible_output2
|
||||||
|
15
src/main.py
15
src/main.py
@ -1,5 +1,4 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from win32com.client import GetObject
|
|
||||||
import httpcore
|
import httpcore
|
||||||
httpcore.SyncHTTPTransport = httpcore.AsyncHTTPProxy
|
httpcore.SyncHTTPTransport = httpcore.AsyncHTTPProxy
|
||||||
import sys
|
import sys
|
||||||
@ -16,6 +15,7 @@ import paths
|
|||||||
# ToDo: Remove this soon as this is done already when importing the paths module.
|
# ToDo: Remove this soon as this is done already when importing the paths module.
|
||||||
if os.path.exists(os.path.join(paths.app_path(), "Uninstall.exe")):
|
if os.path.exists(os.path.join(paths.app_path(), "Uninstall.exe")):
|
||||||
paths.mode="installed"
|
paths.mode="installed"
|
||||||
|
import psutil
|
||||||
import commandline
|
import commandline
|
||||||
import config
|
import config
|
||||||
import output
|
import output
|
||||||
@ -109,21 +109,16 @@ def donation():
|
|||||||
webbrowser.open_new_tab(_("https://twblue.es/donate"))
|
webbrowser.open_new_tab(_("https://twblue.es/donate"))
|
||||||
config.app["app-settings"]["donation_dialog_displayed"] = True
|
config.app["app-settings"]["donation_dialog_displayed"] = True
|
||||||
|
|
||||||
def is_running(pid):
|
|
||||||
"Check if the process with ID pid is running. Adapted from https://stackoverflow.com/a/568589"
|
|
||||||
WMI = GetObject('winmgmts:')
|
|
||||||
processes = WMI.InstancesOf('Win32_Process')
|
|
||||||
return [process.Properties_('ProcessID').Value for process in processes if process.Properties_('ProcessID').Value == pid]
|
|
||||||
|
|
||||||
def check_pid():
|
def check_pid():
|
||||||
"Insures that only one copy of the application is running at a time."
|
"Ensures that only one copy of the application is running at a time."
|
||||||
pidpath = os.path.join(os.getenv("temp"), "{}.pid".format(application.name))
|
pidpath = os.path.join(os.getenv("temp"), "{}.pid".format(application.name))
|
||||||
if os.path.exists(pidpath):
|
if os.path.exists(pidpath):
|
||||||
with open(pidpath) as fin:
|
with open(pidpath) as fin:
|
||||||
pid = int(fin.read())
|
pid = int(fin.read())
|
||||||
if is_running(pid):
|
p = psutil.Process(pid=pid)
|
||||||
|
if p.is_running():
|
||||||
# Display warning dialog
|
# Display warning dialog
|
||||||
commonMessageDialogs.common_error(_(u"{0} is already running. Close the other instance before starting this one. If you're sure that {0} isn't running, try deleting the file at {1}. If you're unsure of how to do this, contact the {0} developers.").format(application.name, pidpath))
|
commonMessageDialogs.common_error(_("{0} is already running. Close the other instance before starting this one. If you're sure that {0} isn't running, try deleting the file at {1}. If you're unsure of how to do this, contact the {0} developers.").format(application.name, pidpath))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
commonMessageDialogs.dead_pid()
|
commonMessageDialogs.dead_pid()
|
||||||
|
Loading…
Reference in New Issue
Block a user