Deutsch
Forum

Letztes Gestartetes Programm

 

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?
 
22.09.2005  
 




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.
 
22.09.2005  
 



Hallo ToM...

So? Geht aber erst ab Windows2000...
KompilierenMarkierenSeparieren
Def @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

 
22.09.2005  
 



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).
 
22.09.2005  
 



Typisch AH.
 
22.09.2005  
 



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...
 
23.09.2005  
 



[quote:bc3c9a1c43]dem gehts bestimmt ganz ähnlich...[/quote:bc3c9a1c43]Sogar ganz genau so.
 
23.09.2005  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.225 Betrachtungen

Unbenanntvor 0 min.
RudiB.16.08.2022
liveFamilie02.05.2012

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

iF (4x)
unbekannt (3x)
ToM (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie