Gedankenfurz
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Perlchamp: Ja das ist eine Art Sandbox.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
ahoi !
ich bin bereits einen Tag am Suchen, finde aber leider nichts.
Wie kann ich SnippingTool.exe wieder beenden ?
Bishereige Versuche u.a.:
app_snip.kill()
app_snip.terminate()
shell.kill()
shell.terminate()
ich bin bereits einen Tag am Suchen, finde aber leider nichts.
Code: Alles auswählen
SYSTEM_PATH = 'c:/windows/system32/'
def btn_snip_clicked():
shell = win32com.client.Dispatch("WScript.Shell")
app_snip = shell.Run(f'{SYSTEM_PATH}SnippingTool.exe')
win32api.Sleep(300)
shell.AppActivate(f'{SYSTEM_PATH}SnippingTool.exe')
win32api.Sleep(300)
shell.SendKeys("^n")
win32api.Sleep(300)
Bishereige Versuche u.a.:
app_snip.kill()
app_snip.terminate()
shell.kill()
shell.terminate()
wer lesen kann ist klar im Vorteil
es gibt keine Probleme, sondern nur Lösungen !
Bildung ist die Freude auf mich selbst !
es gibt keine Probleme, sondern nur Lösungen !
Bildung ist die Freude auf mich selbst !
Programmieren ist halt nicht raten. Hast Du geschaut, was der Rückgabewert von Run ist?
Dann ist ziemlich schnell klar, dass `app_snip` weder eine kill noch eine terminate Methode hat (was auch die Fehlermeldung sagen würde).
Warum benutzt Du überhaupt direkt Windows-Funktionen, wenn auch einfache Pythonvarianten gibt, wie time.sleep oder subprocess.Popen?
Dann ist ziemlich schnell klar, dass `app_snip` weder eine kill noch eine terminate Methode hat (was auch die Fehlermeldung sagen würde).
Warum benutzt Du überhaupt direkt Windows-Funktionen, wenn auch einfache Pythonvarianten gibt, wie time.sleep oder subprocess.Popen?
@ Sirius3:
danke für deine schnelle Antwort
1.
Natürlich habe ich festgestellt (durch die Fehlermeldungen - ich kann ja lesen), dass *app_snip* diese Methoden nicht kennt. Ich hatte meine *Versuche* deswegen aufgeführt, dass ihr nicht denkt, ich würde hier 'Däumchen drehen' und darauf warten, bis mir jemand eine Lösung präsentiert ... und im Netz habe ich bisher keine Lösung gefunden, und bin noch am lesen/recherchieren ...
2.
time_sleep und subprocess bringen mich insofern nicht weiter, weil ich bisher keine Lösung des eigentlichen Problems gefunden habe:
zeitweise automatische Steuerung von Programmen via Tastatur (Übergabe von Tastendruck-Events) und Maus (MouseDown, MouseUp, rechte, linke Taste, etc.)
ich habe was gefunden, das mich mit der Maus weiterbringt, guckst du:
die *break*s habe ich gesetzt, weil ich nur einen Durchgang der Schleife haben möchte (dann brauche ich auch time.sleep nicht, ich weiß) ...
wenn das auch nur mit Python-Mitteln geht, wäre ich der letzte, der dies ablehnen würde, da es dann nicht windows-proprietär wäre ...
danke für deine schnelle Antwort
1.
Natürlich habe ich festgestellt (durch die Fehlermeldungen - ich kann ja lesen), dass *app_snip* diese Methoden nicht kennt. Ich hatte meine *Versuche* deswegen aufgeführt, dass ihr nicht denkt, ich würde hier 'Däumchen drehen' und darauf warten, bis mir jemand eine Lösung präsentiert ... und im Netz habe ich bisher keine Lösung gefunden, und bin noch am lesen/recherchieren ...
2.
time_sleep und subprocess bringen mich insofern nicht weiter, weil ich bisher keine Lösung des eigentlichen Problems gefunden habe:
zeitweise automatische Steuerung von Programmen via Tastatur (Übergabe von Tastendruck-Events) und Maus (MouseDown, MouseUp, rechte, linke Taste, etc.)
ich habe was gefunden, das mich mit der Maus weiterbringt, guckst du:
Code: Alles auswählen
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''detecting_mouseclicks_in_windows_using_python.py:
Code to check if left or right mouse buttons were pressed
'''
__author__ = 'Markacho'
__date__ = '30.01.2017'
import win32api
import time
state_left = win32api.GetKeyState(0x01) # Left button down = 0 or 1. Button up = -127 or -128
state_right = win32api.GetKeyState(0x02) # Right button down = 0 or 1. Button up = -127 or -128
while True:
a = win32api.GetKeyState(0x01)
b = win32api.GetKeyState(0x02)
if a != state_left: # Button state changed
state_left = a
print(a)
if a < 0:
print('Left Button Pressed')
else:
print('Left Button Released')
break
if b != state_right: # Button state changed
state_right = b
print(b)
if b < 0:
print('Right Button Pressed')
else:
print('Right Button Released')
break
time.sleep(0.001)
wenn das auch nur mit Python-Mitteln geht, wäre ich der letzte, der dies ablehnen würde, da es dann nicht windows-proprietär wäre ...
wer lesen kann ist klar im Vorteil
es gibt keine Probleme, sondern nur Lösungen !
Bildung ist die Freude auf mich selbst !
es gibt keine Probleme, sondern nur Lösungen !
Bildung ist die Freude auf mich selbst !