 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1261 Wohnort: 127.0.0.1
|
Verfasst am: Fr Jan 25, 2008 10:05 pm Titel: Script Control |
|
|
Hallo,
ein update ... ein update! und wieso? nun, der restart des skriptes funktioniert jetzt mit angebenen parametern (sie werden übernommen) und nun auch direkt angezeigt... das gui ist jetzt in der größe veränderbar
ansonsten einfach nur nützlich
Die Parameter werden mit der Shimanovs Routine abgefragt. Parameter von Skripts anderer User / Skripts, die unter einem anderem Account gestartet wurden, lassen sich nicht einsehen. Den Teil habe ich bewusst weggelassen. In diesem Sourcecode ist der Link zu Shimanovs OrginalThread angegeben, so dass interessierte Programmierer das kleine Skript hier selbst um die gewünschte Funktionalität erweitern können. Hier kommt der Code:
| Code: | ; ScriptControl-v1-1.ahk / zLib License Style Relased / (c) & (w) 2008 by derRaphael(at)oleco.net
; Einfache Kontrolle über alle laufenden AHK Scripte
#Persistent
#NoEnv
Sendmode, Input
DetectHiddenWindows, ON
SetTitleMatchmode, 2
Menu, cMenu, Add, Editieren, AHKEDIT
Menu, cMenu, Add
Menu, cMenu, Add, Neu Starten, AHKRESTART
Menu, cMenu, Add, Beenden, AHKCLOSE
Menu, cMenu, Add
Menu, cMenu, Add, Eigenschaften, AHKPROPS
Menu, Tray, Icon, Shell32.dll, 81
Menu, Tray, NoStandard
Menu, Tray, Add, Skript Liste Anzeigen, AHKSkripts
Menu, Tray, Add, Beenden, AppExit
Menu, Tray, Default, Skript Liste Anzeigen
AHKSkripts:
Gui, Add, ListView, r15 w300 vListView gAHKListe hwndhLV AltSubmit, PID|Name|Parameter
Gui, +ToolWindow +AlwaysOnTop +Resize
Gui, Show,, Script Control 1.1
SetTimer, Update, 500
Gui +LastFound
WinGetPos,,,gW,gH
ControlGetPos,,,cW,cH,,ahk_id %hLV%
DIFFW := (gW - cW) / 2
DIFFH := (gH - cH) / 2
return
Update:
oListe := Liste
Liste := PIDs := PARAMS := ShortNames := ""
WinGet, hwnd, List, ahk_class AutoHotkey
Loop, %hwnd%
{
ID := hwnd%A_Index%
WinGetTitle, Titel, ahk_id %ID%
SkriptPath := RegExReplace(Titel, " - AutoHotkey v" A_AhkVersion )
SplitPath,SkriptPath,KurzName
WinGet, PID, PID, %SkriptPath% ahk_class AutoHotkey
Liste .= SkriptPath "`n"
PIDs .= PID "`n"
QP := QueryParameter(PID)
QP := RegExReplace(QP,"\Q""" A_AhkPath """\E\s+")
QP := RegExReplace(QP,"\Q""" SkriptPath """\E\s+")
PARAMS .= QP "`n"
ShortNames .= KurzName "`n"
}
if (oListe!=Liste) {
LV_Delete()
StringSplit,PID,PIDs,`n
StringSplit,PARAM,PARAMS,`n
StringSplit,FullPath,Liste,`n
ShortNames := SubStr(ShortNames,1,-1)
Loop, Parse, ShortNames,`n
LV_Add("",PID%A_Index%,A_LoopField, PARAM%A_Index% )
LV_ModifyCol()
}
return
AHKCLOSE:
GoSub, GetSkript
WinClose, %Skript% ahk_class AutoHotkey
return
AHKRESTART:
GoSub, GetSkript
Interpreter := A_AhkPath
Kommando := """" Interpreter """ /restart """ Skript """ " Param
Run, %Kommando%
return
AHKPROPS:
GoSub, GetSkript
Interpreter := A_AhkPath
Kommando := """" Skript """"
Run, properties %Kommando%
return
AHKEDIT:
GoSub, GetSkript
Interpreter := A_AhkPath
Kommando := """" Skript """"
Run, edit %Kommando%
return
GetSkript:
Zeile := LV_GetNext(0, "F")
Skript := FullPath%Zeile%
Param := PARAM%Zeile%
return
AHKListe:
If (A_GuiEvent="Normal") {
Zeile := LV_GetNext(0, "F")
ToolTip, % FullPath%Zeile%
SetTimer, TT, 1500
}
return
TT:
SetTimer, TT, OFF
ToolTip
return
GuiContextMenu:
If (A_GuiControl="ListView") {
Menu, cMenu, Show, %A_GuiX%, %A_GuiY%
}
return
GuiSize:
; MiniAnchor
NB := A_GuiWidth-DIFFW*2
NH := A_GuiHeight-DIFFH*2
ControlMove,,DIFFH,DIFFB, %NB%, %NH%, ahk_id %hLV%
return
GuiClose:
GuiEscape:
Liste := ""
Gui, Destroy
SetTimer, Update, OFF
return
AppExit:
ExitApp
; Teil aus der Funktion GetRemoteCommandLine
; von Process + Command Parameter View
; http://www.autohotkey.com/forum/post-54838.html
; Thx Shimanov!
QueryParameter( p_pid_target )
{
hp_target := DllCall( "OpenProcess", "uint", 0x10 ; PROCESS_VM_READ
, "int", false, "uint", p_pid_target )
if (ErrorLevel or !hp_target)
return
hm_kernel32 := DllCall( "GetModuleHandle", "str", "kernel32.dll" )
pGetCommandLineA := DllCall( "GetProcAddress", "uint"
, hm_kernel32, "str", "GetCommandLineA" )
buffer_size = 6
VarSetCapacity( buffer, buffer_size )
success := DllCall( "ReadProcessMemory", "uint", hp_target, "uint"
, pGetCommandLineA, "uint", &buffer, "uint", buffer_size, "uint", 0 )
if (ErrorLevel or !success)
return
loop, 4
ppCommandLine += ( ( *( &buffer+A_Index ) ) << ( 8*( A_Index-1 ) ) )
buffer_size = 4
VarSetCapacity( buffer, buffer_size, 0 )
success := DllCall( "ReadProcessMemory", "uint", hp_target, "uint"
, ppCommandLine, "uint", &buffer, "uint", buffer_size, "uint", 0 )
if (ErrorLevel or !success)
return
loop, 4
pCommandLine += ( ( *( &buffer+A_Index-1 ) ) << ( 8*( A_Index-1 ) ) )
buffer_size = 32768
VarSetCapacity( result, buffer_size, 1 )
success := DllCall( "ReadProcessMemory", "uint", hp_target, "uint", pCommandLine
, "uint", &result, "uint", buffer_size, "uint", 0 )
if (!success)
{
loop, %buffer_size%
{
success := DllCall( "ReadProcessMemory", "uint", hp_target, "uint"
, pCommandLine+A_Index-1, "uint", &result, "uint", 1, "uint", 0 )
if ( !success or Asc( result ) = 0 )
{
buffer_size := A_Index
break
}
}
success := DllCall( "ReadProcessMemory", "uint", hp_target, "uint", pCommandLine
, "uint", &result, "uint", buffer_size, "uint", 0 )
if (ErrorLevel or !success)
return
}
DllCall( "CloseHandle", "uint", hp_target )
return, result
} |
Der vollständigkeit halber hier die alte Version:
Dieses kleine Programm zeigt alle Laufenden Autohotkey Skripte mit Ihrem jeweiligen Namen, so dass man auf einen Blick die jeweils abschießen und/oder editieren und/oder neustarten kann
| Code: | ; getAllAHKscripts.ahk / zLib Style Release (c) 2008 derRaphael(at)oleco.net
; Published: $2008-01-25_22-47$
; Dieses Skript zeigt alle laufenden _nichtkompilierten_ Skripte an
; und bietet die Möglichkeit diese neuzustarten, zu editieren oder zu beenden
DetectHiddenWindows, ON
SetTitleMatchMode, 2
Menu, cMenu, Add, Editieren, AHKEDIT
Menu, cMenu, Add
Menu, cMenu, Add, Neu Starten, AHKRESTART
Menu, cMenu, Add, Beenden, AHKCLOSE
Menu, cMenu, Add
Menu, cMenu, Add, Eigenschaften, AHKPROPS
Menu, Tray, NoStandard
Menu, Tray, Add, Liste Anzeigen, AHKSkripts
Menu, Tray, Add, Beenden, AppExit
Menu, Tray, Default, Liste Anzeigen
AHKSkripts:
Gui, Add, ListView, r15 w200 vListView gAHKListe AltSubmit, Name|PID
Gui, +ToolWindow +AlwaysOnTop
Gui, Show,, Script Control
SetTimer, Update, 500
return
Update:
oListe := Liste
Liste := PIDs := ShortNames := ""
WinGet, hwnd, List, ahk_class AutoHotkey
Loop, %hwnd%
{
ID := hwnd%A_Index%
WinGetTitle, Titel, ahk_id %ID%
SkriptPath := RegExReplace(Titel, " - AutoHotkey v" A_AhkVersion )
SplitPath,SkriptPath,KurzName
WinGet, PID, PID, %SkriptPath% ahk_class AutoHotkey
Liste .= SkriptPath "`n"
PIDs .= PID "`n"
ShortNames .= KurzName "`n"
}
if (oListe!=Liste) {
LV_Delete()
StringSplit,PID,PIDs,`n
StringSplit,FullPath,Liste,`n
Loop, Parse, ShortNames, `n
LV_Add("",A_LoopField, PID%A_Index%)
LV_ModifyCol()
}
return
AHKCLOSE:
GoSub, GetSkript
WinClose, %Skript% ahk_class AutoHotkey
return
AHKRESTART:
GoSub, GetSkript
Interpreter := A_AhkPath
Kommando := """" Interpreter """ /restart """ Skript """"
Run, %Kommando%
return
AHKPROPS:
GoSub, GetSkript
Interpreter := A_AhkPath
Kommando := """" Skript """"
Run, properties %Kommando%
return
AHKEDIT:
GoSub, GetSkript
Interpreter := A_AhkPath
Kommando := """" Skript """"
Run, edit %Kommando%
return
GetSkript:
Zeile := LV_GetNext(0, "F")
Skript := FullPath%Zeile%
return
AHKListe:
If (A_GuiEvent="Normal") {
Zeile := LV_GetNext(0, "F")
ToolTip, % FullPath%Zeile%
SetTimer, TT, 1500
}
return
TT:
SetTimer, TT, OFF
ToolTip
return
GuiContextMenu:
If (A_GuiControl="ListView") {
Menu, cMenu, Show, %A_GuiX%, %A_GuiY%
}
return
GuiClose:
GuiEscape:
Liste := ""
Gui, Destroy
SetTimer, Update, OFF
return
AppExit:
ExitApp |
ein weiteres für alle, die es nützlich finden skript
grüße
derRaphael _________________
Zuletzt bearbeitet von DerRaphael am Fr Feb 29, 2008 9:05 pm, insgesamt einmal bearbeitet |
|
| Nach oben |
|
 |
Tuncay
Anmeldedatum: 28.10.2006 Beiträge: 127 Wohnort: Berlin
|
Verfasst am: Fr Jan 25, 2008 10:26 pm Titel: |
|
|
Noch nicht ausprobiert. Ich finde es dennoch sehr extrem nützlich! Danke, sowas habe ich gebraucht. Kann es zur Zeit aber noch nicht testen. _________________ Manchmal ist es /falsch/ das "richtige" zu tun. |
|
| Nach oben |
|
 |
denick
Anmeldedatum: 15.09.2006 Beiträge: 1238 Wohnort: Berlin
|
Verfasst am: Fr Jan 25, 2008 11:00 pm Titel: |
|
|
Moin,
z.Zt. weiß ich noch, was auf meinem Rechner von mir gewollt läuft. Sollte ich mich aber mal nicht mehr erinnern können, werde ich mich hoffentlich an dieses Skript erinnern.  _________________ Hilfe zur Hilfe
(de)nick |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Sa Jan 26, 2008 5:39 am Titel: |
|
|
@DerRaphael
Das liest allerdings nur Skripte mit Fenster, soweit ich das beim Überfliegen des Codes gesehen habe?
Ich muss mir bei Gelegenheit ansehn wie man an die Commandline-Parameter eines Programmes rankommt (wie z.B. Processexplorer). Wäre sowohl für dieses Skript als auch für meinen Taskmanager durchaus nützlich
Thalon
Edit: Finde es übrigens sehr schick was du alles für Skripte erstellst und wie du sie im Forum organisierst! _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
denick
Anmeldedatum: 15.09.2006 Beiträge: 1238 Wohnort: Berlin
|
Verfasst am: Sa Jan 26, 2008 11:06 am Titel: |
|
|
Moin Thalon,
| Zitat: | | Ich muss mir bei Gelegenheit ansehn wie man an die Commandline-Parameter eines Programmes rankommt (wie z.B. Processexplorer). Wäre sowohl für dieses Skript als auch für meinen Taskmanager durchaus nützlich |
Da gibt es etwas: http://www.autohotkey.com/forum/post-54838.html
| Zitat: | | Das liest allerdings nur Skripte mit Fenster, soweit ich das beim Überfliegen des Codes gesehen habe? |
Darüber bin ich vor Kurzem auch mal gestolpert. ahk_class AutoHotkey sucht nach dem verborgenen AHK Main Window. _________________ Hilfe zur Hilfe
(de)nick |
|
| Nach oben |
|
 |
M3CSL
Anmeldedatum: 21.01.2008 Beiträge: 28
|
Verfasst am: Sa Jan 26, 2008 1:32 pm Titel: |
|
|
| Thalon hat Folgendes geschrieben: | | Das liest allerdings nur Skripte mit Fenster, soweit ich das beim Überfliegen des Codes gesehen habe? |
Nein, auch die ohne.
Allerdings hat es einen Bug: Unter dem letzten Eintrag, gibt es noch einen der allerdings nur durch Anklicken erkennbar wird und bei einem Teil der Aktionen im Kontextmenü AHK zum Absturz bringt und dann SYSDM.CPL oder einen Laufzeitfehler anzeigt.
CU |
|
| Nach oben |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1261 Wohnort: 127.0.0.1
|
Verfasst am: Sa Jan 26, 2008 1:45 pm Titel: |
|
|
für windows xp gibts folgende lösung sich command line parameter anzeigen zu lassen:
WMI command line tool (WMIC)
WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid
oder
WMIC /OUTPUT:C:\ProcessList.txt path win32_process get Caption,Processid,Commandline
so aufgerufen speichern die befehle die aktuellen prozesse unter C:\ProcessList.txt
gefunden unter
http://windowsxp.mvps.org/listproc.htm
aber ich such nochmal weiter
grüße
derRaphael _________________
|
|
| Nach oben |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1261 Wohnort: 127.0.0.1
|
Verfasst am: Sa Jan 26, 2008 1:49 pm Titel: |
|
|
| Thalon hat Folgendes geschrieben: | @DerRaphael
Edit: Finde es übrigens sehr schick was du alles für Skripte erstellst und wie du sie im Forum organisierst! |
wenn du damit den smalltalk thread meinst, da gibt es wohl gespaltene meinungen hier im forum - aber danke für die blumen
das mit dem 'unsichtbaren' eintrag kann ich bestätigen und werde heute abend einen fix posten
grüße
derRaphael _________________
|
|
| Nach oben |
|
 |
M3CSL
Anmeldedatum: 21.01.2008 Beiträge: 28
|
Verfasst am: Sa Jan 26, 2008 2:07 pm Titel: |
|
|
| DerRaphael hat Folgendes geschrieben: | | Thalon hat Folgendes geschrieben: | @DerRaphael
Edit: Finde es übrigens sehr schick was du alles für Skripte erstellst und wie du sie im Forum organisierst! |
wenn du damit den smalltalk thread meinst, da gibt es wohl gespaltene meinungen hier im forum - aber danke für die blumen |
Wo denn? Ich kann mich Thalons Lob da nur anschließen!
| DerRaphael hat Folgendes geschrieben: | | das mit dem 'unsichtbaren' eintrag kann ich bestätigen und werde heute abend einen fix posten |
Ok, eilt nicht!
Was anderes, scheint bisher übersehen worden zu sein: Ich könnte hier mal die Hilfe von nen paar Profis gebrauchen, ich denke davon sind hier genug in diesem Thread: http://de.autohotkey.com/forum/viewtopic.php?t=2434
CU |
|
| Nach oben |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1261 Wohnort: 127.0.0.1
|
Verfasst am: Sa Jan 26, 2008 2:15 pm Titel: |
|
|
anhang zu recherche:
Sysinternals Topic: get command-line of running processes
da gibts ein code snippet, wie man command line parameters in erfahrung bringt, bin aber noch nicht durch den quelltext gestiegen ...
(einfach scheint es wohl nicht mehr zu sein)
grüße
derRaphael _________________
|
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Sa Jan 26, 2008 7:03 pm Titel: |
|
|
Ich halt mir die Links mal offen, werde ich vll morgen ansehn (oder in den nächsten Tagen, oder irgendwann *g*).
Erst muss ich ein Spielzeug lösen das ich heute gekauft hab (Knobel-Zeug des höchsten Schwierigkeitsgrades dens dort gab).
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
BoBo¨ Gast
|
Verfasst am: Sa Jan 26, 2008 8:53 pm Titel: |
|
|
| Zitat: | | Knobel-Zeug des höchsten Schwierigkeitsgrades dens dort gab | Die Summe der Augen auf den sich gegenüberliegenden Seiten ist immer 7. Ist doch ganz einfach.   |
|
| Nach oben |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1261 Wohnort: 127.0.0.1
|
Verfasst am: Fr Feb 29, 2008 9:07 pm Titel: |
|
|
ein update, das jetzt alle parameter anzeigt, mit denen ein skript so getartet wurde (inklusive restart )
danke an shimanov, dass ich teile seines quelltextes einfach moppsen konnte und danke an denick an dieser stell für den link.
viel spaß!
grüße
derRaphael _________________
|
|
| Nach oben |
|
 |
M3CSL
Anmeldedatum: 21.01.2008 Beiträge: 28
|
Verfasst am: Fr Feb 29, 2008 9:37 pm Titel: |
|
|
| Sieht schick aus, aber hat nen Bug: Beim Klick auf Eigenschaften crasht AHK. |
|
| Nach oben |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1261 Wohnort: 127.0.0.1
|
Verfasst am: Fr Feb 29, 2008 9:54 pm Titel: |
|
|
mit was für einer version von windows bist du denn unterwegs? ich habe es hier mit win2k sp4 getestet und es funktioniert.
eigenschaften ... kein problem
es ruft ja auch nur run properties "skriptpfad" auf
wenn du sowas aus einem anderen skript machst, hast du da auch probleme?
kann dieses verhalten denn auch auf anderen computern beobachtet werden?
fragen über fragen ... _________________
|
|
| Nach oben |
|
 |
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|