Entwickler-Ecke

Windows API - Prüfen ob neues Programm gestartet.


koller1 - Di 23.08.05 21:17
Titel: Prüfen ob neues Programm gestartet.
Wie kann ich z.B. mit einem Timer rauskriegen, wann und was für ein Prozess gestartet wurde. Nehmen wir an, mein Programm arbeitet im Hintergrund und soll rauskriegen, wann welcher Prozess gestartet wird! Geht das?

@Luckie und raziel
DAS IST KEIN VIRUS, TROJANER ODER ANDERES! ES SOLL LEDIGLICH FÜR EINE LOGDATEI FÜR EIN NETZWERKPROGRAMM GENUTZT WERDEN! DA SOLL NÄMLICH DER LEHRER SEHEN, WAS WANN GESTARTET WURDE! :wink:


Delete - Di 23.08.05 23:04

Erstell dir eine Prozessliste, wie das geht findest du im Forum oder auf meiner Seite und vergleiche mit der vorherigen. Ich würde das aber nicht mit einem Timer machen, sondern mit einem Thread, das belastet das System weniger.


koller1 - Do 25.08.05 19:24

Ja, wie man eine Prozessliste erstellt weiß ich, aber wie kann ich diese vergleichen und was für ein Thread???


hallo - Do 25.08.05 19:28

Threads: Schon mal Google gefragt?!?! 1.Ergebnis bringt schon viel!

Vergleichen: Einfach die Liste mit einer Schleife durchlaufen!


koller1 - Do 25.08.05 19:37

Wie kann ich mit so ner Schleife vergleichen? Muss ich dann Eintrag für Eintrag abgleichen??? Ich habe zwar schon mit schleifen gearbeitet, aber habe überhaupt keine Ahnung mit welcher Schleife ich das machen soll, un wie ich die Listen vergleichen soll :oops:


hallo - Do 25.08.05 19:43

Nehmen wir an das sind TStringList en

Source: (ungefähr!!!)

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
for i:=0 to liste1.count-1 do
begin
for j:=0 to liste2.count-1 do
begin
if (liste1[i])liste2[j])then
begin
inc(gleich);
end;
end;
end;
if (gleich<>liste2.count)then veraenderung;


Das war jetzt das so ungefähr... Kann auch schwachsinn sein der Code...
Natürlich könntest du auch die Anzahl der Elemente in der neuen Liste mit der alten vergleichen...


uall@ogc - Do 25.08.05 19:43

du erstellst eine liste mit den namen der prozesse und den process ids (TStringlist)

nach ner sekunde erstellst eine 2. liste

dann schasue welcher eintrag neu ist (also welcher von der 2. liste noch nicht in der 1. ist) (programm gestartet)
diesen füsgte dann nacher hinzu

und du vergleichst welcher eintrag in der 1. nicht mehr in der 2. liste ist (programm beendet)
diesen löscht du dann einfach