Ich habe zu danken
Immerhin habe ich genau das heute bei meinem eigenen Script benötigt.
Ich muss mir aber trotzdem mal überlegen, wie man die ganze Geschichte mit 2 dynamischen Arrays gemacht wird.
Gruß
Ich habe zu danken
Immerhin habe ich genau das heute bei meinem eigenen Script benötigt.
Ich muss mir aber trotzdem mal überlegen, wie man die ganze Geschichte mit 2 dynamischen Arrays gemacht wird.
Gruß
Naja deins hat halt gewonnen ich war ja quasi dazu gezwungen das aufzumachen
Finds aber sehr nice gelöst, ich bin grade dabei mich durchzuarbeiten aber das wird noch ein bisschen dauern
Ein paar der Funktionen die du verwendest hab ich mir auch so in etwa vorgestellt, zb das Zeichnen der Geste mit GDIPlus oder die berechnung der akutellen "Richtung" - leider wusste ich nicht wie ich das anstellen soll...
... mit deinem Tool hast du mich traurig gemacht progandy...
jetzt hab ich auch keine lust mehr
Naja so kann ich mir wenigstens anschauen wie ein profi das gemacht hat :wacko:
1. Es macht den anschein, dass geschützte Prozesse (Antivir / Systemprozesse) geschlossen werden können. Natürlich geht das nicht. Eine @error abfrage wäre da mit sicherheit ganz hilfreich. Vor allem da der prozess trotzdem aus der Liste entfernt wird.
2. Ich vermisse die Übersicht, wieviele Prozesse laufen, wieviel Ram benutzt wird, eine anzeige der CPU auslastungen.. halt alles was ein richtiger Task manager können sollte.
3. TAB ist wirklich sehr suboptimal als shortcut gewählt
4. Die Prozesse sollten sich in Echtzeit updaten. Bevor ich mir nämlich die Zeit nehme bei deinem "schlanken" Taskmanager auf Prozesse updaten zu klicken, hab ich den normalen Taskmanager schon 3 mal offen.
5. Prozesse sollten sich sortieren lassen.
6. der Taskmanager sollte nicht sofort in seiner "vollen" größe auftreten. Bei mir nimmt er, bedingt durch die vielen prozesse, die komplette Bildschirmhöhe ein. Zwar kann man ihn jetzt belibig vergrößern/verkleinern. Doch trotzdem finde ich das , vor allem für den Start nicht optimal gelöst.
Das Problem ist einfach dass mir die geeignete Testumgebung fehlt. Ich muss mir wohl mal in den nächsten Tagen eine VirtualBox installieren um das ganze wirklich fehlerfrei zu machen. Danke jedenfalls für den Tip
Wunderbar vielen dank. Dann werd ich das jetzt mal so in mein Skript übernehmen, und hoffe dass ich damit die bösen Fehlerteufel beseitigen kann
bis auf: immer wenn ich eine URL eingebe und auf öffnen gehe, öffnet er im IE nur https://autoit.de/www.3.de ich hab keine ahnung woran das liegt..
Versuch mal Zeile 45 von
[autoit]_IECreate($Input1, 0, 1, 0)
[/autoit]zu
[autoit]_IECreate(GUICtrlRead($Input1), 0, 1, 0)
[/autoit]
ändern.
wofür eine Bildschirmtastatur mit Hotkey starten wenn man doch die Bildschirmtastatur als Tastaturersatz nutzen möchte? Wenn mir zb mal wieder die Tasse Kaffe auf der Tastatur ausläuft und ich keine Ersatztastatur vorrätig habe muss ich nen Tag lang mit Bildschirmtastatur arbeite. Da hilft mir dann der Hotkey den ich benutzen muss auch nicht viel
Warum dann nicht einfach so wie in dem Skript in Post 7? Die windows Bildschirmtastatur funktioniert ja nach dem selben Prinzip
Nein, es soll ja nicht auf dein eigenes GUI beschränkt sein, sondern auf das Fenster, in dem der rechtsklick etwas auslösen soll. Wenn ich also einen rechtsklick im Editor abfangen will, mache ich folgendes
[autoit]_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "MouseSecondaryUp_Event","","",WinGetHandle("Unbenannt - Edior",""))
[/autoit][autoit] Zitatund beenden kann ich den modus auch nicht, weiß nicht wo
_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT,""); Damit wird der Hook aufgehoben
Und wenn das Programm abstürzt hast du eine zb: 500MB große txt datei die niemand braucht
Oder du lädst das Bild mit InetGet einfach ins @TempDir
komme mit hook nicht zurecht.
Du musst doch nur den letzen Parameter von MouseSetOnEvent anpassen.
Ein Beispiel wäre zum beispiel das hier:
_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "MouseSecondaryUp_Event","","",WinGetHandle("Titel deines Fensters",""))
musst doch nur noch den Titel deines Fensters eintragen
Ich finde es sehr interessant und frage mich ob es eine Methode gibt bzw möglichkeit mit Autoit Screenshots an eine Email zu verschicken?
Und ich frage mich..
warum du nicht einfach in dem andern Thread (in dem ja schon 2 Lösungsansätze gepostet worden sind) weitermachst
Warum dann nicht eifnach so:
[autoit]
$Ausschluss[3] = ["Program Manager", "Html Help", "Beta"]
$var = WinList()
For $i = 1 To $var[0][0]
; Listet nur die sichtbaren Fenster auf, die einen Titel haben
If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then
If $var[$i][0] <> $Ausschluss[0] AND $var[$i][0] <> $Ausschluss[1] AND $var[$i][0] <> $Ausschluss[2] Then
MsgBox(0, "Details", "Titel=" & $var[$i][0])
EndIf
EndIf
Next
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Func IsVisible($handle)
If BitAND(WinGetState($handle), 2) Then
Return 1
Else
Return 0
EndIf
EndFunc ;==>IsVisible
[/autoit]
Muss es dynamisch sein?
[autoit]
Hi,
Damit der Tastenanschlag nicht an das Programm selbst gesendet wird kann man ControlSend benutzen.
Wenn z.B. die Taste t gedrückt werden soll:[/autoit]
ControlSend("","","","t")
Jetzt wird immer an das aktive Control gesendet und der Anschlag wird von deinem Programm nicht erkannt.
Klappt aber auch nicht ganz, da beim drücken des Buttons das MausKeyboard das aktive Fenster, und der gedrückte Button die aktive Control ist.
Ich hab mir mal die Dreistigkeit erlaubt, diese Idde allerdings aufzugreifen.
guckstu hier
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Opt('GUIOnEventMode', 1)
Global $bShift = False, $bLock = False, $bOld = False, $ahKeys[57], $wHWND, $cHWND
Global $aKeys[57][6] = [ _
['^', '°', 010, 060, 32, 32],['1', '!', 044, 060, 32, 32],['2', '"', 078, 060, 32, 32],['3', '§', 112, 060, 32, 32], _
['4', '$', 146, 060, 32, 32],['5', '%', 180, 060, 32, 32],['6', '&&', 214, 060, 32, 32],['7', '/', 248, 060, 32, 32], _
['8', '(', 282, 060, 32, 32],['9', ')', 316, 060, 32, 32],['0', '=', 350, 060, 32, 32],['ß', '?', 384, 060, 32, 32], _
['´', '`', 418, 060, 32, 32],['<-', 'Del', 452, 060, 66, 32], _
['q', 'Q', 010, 100, 32, 32],['w', 'W', 044, 100, 32, 32],['e', 'E', 078, 100, 32, 32],['r', 'R', 112, 100, 32, 32], _
['t', 'T', 146, 100, 32, 32],['z', 'Z', 180, 100, 32, 32],['u', 'U', 214, 100, 32, 32],['i', 'I', 248, 100, 32, 32], _
['o', 'O', 282, 100, 32, 32],['p', 'P', 316, 100, 32, 32],['ü', 'Ü', 350, 100, 32, 32],['*', '+', 384, 100, 32, 32], _
['@', '|', 418, 100, 32, 32],['[', '\', 452, 100, 32, 32],[']', '~', 486, 100, 32, 32], _
['a', 'A', 010, 140, 32, 32],['s', 'S', 044, 140, 32, 32],['d', 'D', 078, 140, 32, 32],['f', 'F', 112, 140, 32, 32], _
['g', 'G', 146, 140, 32, 32],['h', 'H', 180, 140, 32, 32],['j', 'J', 214, 140, 32, 32],['k', 'K', 248, 140, 32, 32], _
['l', 'L', 282, 140, 32, 32],['ö', 'Ö', 316, 140, 32, 32],['ä', 'Ä', 350, 140, 32, 32],['#', "'", 384, 140, 32, 32], _
['LOCK', 'LOCK', 418, 140, 100, 32], _
['y', 'Y', 010, 180, 32, 32],['x', 'X', 044, 180, 32, 32],['c', 'C', 078, 180, 32, 32],['v', 'V', 112, 180, 32, 32], _
['b', 'B', 146, 180, 32, 32],['n', 'N', 180, 180, 32, 32],['m', 'M', 214, 180, 32, 32],[',', ';', 248, 180, 32, 32], _
['.', ':', 282, 180, 32, 32],['-', '_', 316, 180, 32, 32],['<', '>', 350, 180, 32, 32],['€', 'µ', 384, 180, 32, 32], _
['SHIFT', 'SHIFT', 418, 180, 100, 32], _
['SPACE', 'SPACE', 10, 220, 406, 32],['ENTER', 'ENTER', 418, 220, 100, 32] _
]
$hGui = GUICreate('Mouse-Keyboard v1.1 by Oscar (http://www.autoit.de)', 530, 280)
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
GUISetIcon('shell32.dll', -174, $hGui)
GUISetBkColor(0xCCCCCC)
$hInput = GUICtrlCreateLabel('Mouse-Keyboard v1.1 by Oscar (http://www.autoit.de)', 10, 10, 508, 28)
GUICtrlSetFont(-1, 14.5, 400, 0, 'Courier New')
For $i = 0 To UBound($aKeys) - 1
$ahKeys[$i] = GUICtrlCreateButton($aKeys[$i][0], $aKeys[$i][2], $aKeys[$i][3], $aKeys[$i][4], $aKeys[$i][5])
GUICtrlSetFont(-1, 14, 400, 0, 'Courier New')
GUICtrlSetOnEvent(-1, '_Key')
Next
$hStatus = GUICtrlCreateLabel(' Status: NORMAL', -2, 264, 534, 16, Default, $WS_EX_STATICEDGE)
GUICtrlSetBkColor(-1, 0xBBBBBB)
GUISetState()
WinSetOnTop($hGui, '', 1)
While True
If $wHWND <> WinGetHandle("") AND WinGetHandle("") <> $hGui Then
$wHWND = WinGetHandle("")
$cHWND = ControlGetFocus($wHWND)
Else
Sleep(100)
EndIf
WEnd
Func _End()
Exit
EndFunc
Func _Key()
Local $sKey = GUICtrlRead(@GUI_CtrlId)
Switch $sKey
Case '<-'
ControlSend($wHWND,"",$cHWND,"{BACKSPACE}")
Case 'Del'
GUICtrlSetData($hInput, '')
Case 'LOCK'
$bShift = False
$bLock = True
GUICtrlSetData($hStatus, ' Status: CAPS LOCK')
_Shift()
Case 'SHIFT'
GUICtrlSetData($hStatus, ' Status: SHIFT')
_Shift()
$bLock = False
Case 'SPACE'
ControlSend($wHWND,"",$cHWND,"{SPACE}")
Case 'ENTER'
ControlSend($wHWND,"",$cHWND,"{ENTER}")
Case '&&'
ControlSend($wHWND,"",$cHWND,'{&}')
If $bShift And Not $bLock Then _Shift()
Case Else
ControlSend($wHWND,"",$cHWND,$sKey)
If $bShift And Not $bLock Then _Shift()
EndSwitch
EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _Shift()
$bShift = Not $bShift
If Not $bShift Then GUICtrlSetData($hStatus, ' Status: NORMAL')
If $bShift = $bOld Then Return
$bOld = $bShift
For $i = 0 To UBound($aKeys) - 1
GUICtrlSetData($ahKeys[$i], $aKeys[$i][$bShift])
Next
EndFunc
Oder guckst hier
Hab die erste version nie getestet, aber sie unterstützt scheinbar auch Dateianhänge.
2te version klappt (wenn auch ohne Dateianhänge) wunderbar. Nur wird dir das bei deinem Problem nicht viel helfen.
fürs nächste mal:
[autoit]GUICtrlSetState(-1,$GUI_DISABLE)
[/autoit]hinter die Zeile in der du das Bild erstellst. Dann funktionieren auch die knöpfe noch.