| |
|
|
ToM | hi!
wie kann man das letzt gestartete Programm herausfinden ?! meine letzte frage für heut *g* und danke für eure antworten.
mfg tom |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 21.09.2005 ▲ |
|
|
|
|
| Das ist Irrsinn.
Worum geht es Dir denn wirklich? |
|
|
| |
|
|
|
ToM | sorry dass ich paar sachen womit ich mich schon lange beschäftige wissen möchte, will nur ein kleines netop ähnliches programm schreiben.
naja mfg tom |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 22.09.2005 ▲ |
|
|
|
|
| Und wofür braucht Dein NetOpClone diese Info? Ich bezweifle ganz stark das es genau diese Information ist die Du benötigst. |
|
|
| |
|
|
|
| Hallo ToM...
So? Geht aber erst ab Windows2000... KompilierenMarkierenSeparierenDef @CreateToolhelp32Snapshot(2) !"kernel32","CreateToolhelp32Snapshot"
Def @Process32First(2) !"kernel32","Process32First"
Def @Process32Next(2) !"kernel32","Process32Next"
Def @CloseHandle(1) !"kernel32","CloseHandle"
Def @OpenProcess(3) !"kernel32","OpenProcess"
Def @GetProcessTimes(5) !"kernel32","GetProcessTimes"
Def @FileTimeToSystemTime(2) !"kernel32","FileTimeToSystemTime"
Def @FileTimeToLocalFileTime(2) !"kernel32","FileTimeToLocalFileTime"
Def @CompareFileTime(2) !"kernel32","CompareFileTime"
Def &TH32CS_SNAPPROCESS 2
Declare PROCESSENTRY#,Starttime#,Exittime#,Kerneltime#,Usertime#,SystemTime#,FileTime#,FileTime2#
declare Prozessname$,hSnapshot&, Result&,hProcess&,LastProzess$,TimeCompare&
Struct PROCESSENTRY32 =dwSize&,cntUsage&,th32ProcessID&,th32DefaultHeapID&,th32ModuleID&,cntThreads&,th32ParentProcessID&,pcPriClassBase&,dwFlags&,szExeFile$(260)
Dim FileTime2#,8
Clear FileTime2#,LastProzess$
If @VAL(@LEFT$($WINVER,3))<5
@Messagebox("Son Scheiß, geht hier nicht","Falsche Windowsversion, das geht erst ab Windows2000...",64)
else
Dim PROCESSENTRY#, PROCESSENTRY32
Long PROCESSENTRY#,0 =296
hSnapshot& = @CreateToolhelp32Snapshot(&TH32CS_SNAPPROCESS, 0)
IfNot hSnapshot& = -1
Result& = @Process32First(hSnapshot&, PROCESSENTRY#)
While Result&
LET Prozessname$=Lower$(PROCESSENTRY#.szExeFile$)
hProcess& = @OpenProcess($400, 0, PROCESSENTRY#.th32ProcessID&)
Dim Starttime#,8
Dim Exittime#,8
Dim Kerneltime#,8
Dim Usertime#,8
Dim Systemtime#,16
Dim FileTime#,8
Clear Starttime#,Exittime#,Kerneltime#,Usertime#,Systemtime#
@GetProcessTimes(hProcess&,Starttime#,Exittime#,Kerneltime#,Usertime#)
@FileTimeToLocalFileTime(Starttime#,FileTime#)
@FileTimeToSystemTime(FileTime#,Systemtime#)
LET TimeCompare&=@CompareFileTime(FileTime#,FileTime2#)
IF TimeCompare&=1
LET LastProzess$=Prozessname$
Endif
LET Prozessname$=Prozessname$+": Gestartet am "
LET Prozessname$=Prozessname$+@str$(@WORD(Systemtime#,6))+"."
LET Prozessname$=Prozessname$+@str$(@WORD(Systemtime#,2))+"."
LET Prozessname$=Prozessname$+@str$(@WORD(Systemtime#,0))+" um "
LET Prozessname$=Prozessname$+@str$(@WORD(Systemtime#,8))+":"
If @WORD(Systemtime#,10)<10
LET Prozessname$=Prozessname$+"0"+@str$(@WORD(Systemtime#,10))+", "
else
LET Prozessname$=Prozessname$+@str$(@WORD(Systemtime#,10))+", "
endif
LET Prozessname$=Prozessname$+@str$(@WORD(Systemtime#,12))+"sec "
LET Prozessname$=Prozessname$+@str$(@WORD(Systemtime#,14))+"millisec"
ADDSTRING Prozessname$
Long FileTime2#,0=@long(FileTime#,0)
Long FileTime2#,4=@long(FileTime#,4)
Dispose Starttime#
Dispose Exittime#
Dispose Kerneltime#
Dispose Usertime#
Dispose Systemtime#
Dispose FileTime#
@CloseHandle(hProcess&)
Result& = @Process32Next(hSnapshot&, PROCESSENTRY#)
EndWhile
endif
@CloseHandle(hSnapshot&)
Dispose PROCESSENTRY#
Dispose FileTime2#
ADDSTRING "Letzter gestarteter Prozess: "+LastProzess$
@Listbox$("Startzeiten der Prozesse:",1)
endif
|
|
|
| |
|
|
|
| PS: Manche Prozesse laufen mit eingeschränkten Zugriffsrechten (in der Regel spezielle Services), an deren Startzeiten kommst du nicht heran (alle Prozesse die um AD 1600 gestartet wurden). |
|
|
| |
|
|
|
| Typisch AH. |
|
|
| |
|
|
|
| Hallo ToM...
Du mußt dich nicht entschuldigen, wenn du hier eine Frage stellst. Durch deine Frage ist mir aufgefallen, daß ich in einem meiner Programme den letzten Schreibzugriff auf einen Registryschlüssel um zwei Stunden falsch berechnet habe - das wäre mir ohne dich nie aufgefallen. . Wenn ich hier eine Frage beantworte, lerne ich jedes Mal etwas dazu und auch IF wird dieses Forum hier nicht ganz ohne Eigennutz betreiben, dem gehts bestimmt ganz ähnlich... |
|
|
| |
|
|
|
| [quote:bc3c9a1c43]dem gehts bestimmt ganz ähnlich...[/quote:bc3c9a1c43]Sogar ganz genau so. |
|
|
| |
|
|