Entwickler-Ecke
Sonstiges (Delphi) - anwendung soll nichts tun
Jakob Schöttl - Mi 19.03.08 00:20
Titel: anwendung soll nichts tun
Hallo,
ich hab ein unsichtbares programm, dass öffnet am Anfang eine Datei, und soll dann aber die ganze Zeit nichts tun, nur weiter "laufen".
also möglichst wenig prozessorleistung brauchen.
wie soll ich das machen? mit einer While-Schleife und Sleep? oder gibts was besseres?
Narses - Mi 19.03.08 00:25
Moin!
Was für ein Typ von Anwendung ist denn das? Eine VCL oder eine Konsolen-Anwendung?
cu
Narses
Xentar - Mi 19.03.08 00:29
Wenn die Anwendung "nichts" tun soll, dann schreib halt "nichts" hin.. also keine Schleife, kein sleep, einfach laufen lassen.
Narses - Mi 19.03.08 00:31
Moin!
Xentar hat folgendes geschrieben: |
Wenn die Anwendung "nichts" tun soll, dann schreib halt "nichts" hin.. also keine Schleife, kein sleep, einfach laufen lassen. |
Das ist dann die Lösung für eine VCL-Anwendung. ;)
Fragt sich, ob es eine Konsolen-Anwendung ist? :gruebel:
cu
Narses
Xentar - Mi 19.03.08 00:44
bei einer Konsolenanwendung reicht doch ein einfaches ReadLn; oder so ähnlich? Oder wie war das noch?
Jakob Schöttl - Mi 19.03.08 01:02
ich würde weder noch machen (ohne GUI): im projektquellcode einfach:
Delphi-Quelltext
1: 2: 3: 4:
| program pn; begin end; |
Moderiert von
Narses: Delphi-Tags hinzugefügt
.#R4id - Mi 19.03.08 03:39
Ich versteh das nicht.
Egal was für ein Anwendungs-Typ du hast, einfach zu begin des Programms die Datei laden.
Und sonst nichts.
Oder seh ich das falsch? :gruebel:
DelphiMarkus - Mi 19.03.08 10:10
Zitat: |
bei einer Konsolenanwendung reicht doch ein einfaches ReadLn; oder so ähnlich? Oder wie war das noch? |
Das sollte eigentlich reichen, weil das Programm dann ja auf das nächste ENTER wartet.
(Das war noch richtig schön als ich 2006 mit Programmieren angefangen habe (TurboPascal 7) ;) )
Delete - Mi 19.03.08 11:15
Wenn der Threadersteller uns über den tieferen Sinn aufklären würde, könnte man eventuell sogar helfen.
[Glaskugelmodus an]Er will die Datei exklusiv öffnen, um so zu verhindern, dass sie von einem anderen Programm geöffnet werden kann.[Glaskugelmodus aus]
BenBE - Mi 19.03.08 11:31
Man nehme SuspendThread ... Schon nicht nur resourcen, sondern das Programm macht danach wirklich nix mehr ... Nun noch ein while true do eine Zeile davor und ne Prüfung ob Windows auch nicht grad runterfährt ... Siehe da ... Das Programm macht nix mehr ...
@Luckie ... das denk ich mal auch ... Kann aber theoretisch sogar in die Kategorie Scherzprogramme fallen, weil sauber beendet werden kann es bei nahezu keiner Variante mehr ...
Jakob Schöttl - Mi 19.03.08 15:07
Naja, sorry, ich erkläre jetzt mal, für was ich das programm genau brauche:
bei jedem AntiVir-Update wird
avnotify.exe gestartet; Das zeigt nur Werbung an, und ich will das nicht haben. Löschen der exe hilft nichts, weil sie immer wieder neu erzeugt wird.
Deswegen will ich ein unsichtbares Programm, dass die Datei Exklusiv öffnet, dann kann der Updater sie nicht mehr starten.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| program avnotify_besetzer; uses ...; var fs: TFileStream; begin fs := TFileStream.Create('avnotify.exe',fmShareExclusive);
end; |
ich will eben, dass das prog keine gui hat, weder konsole, noch fenster.
Vielleicht könnt ihr mir jetzt besser helfen.
jaenicke - Mi 19.03.08 18:34
Hast du einmal versucht einfach die Rechte so zu setzen, dass kein Zugriff möglich ist? Es könnte sein, dass dann eine Fehlermeldung kommt, dies wäre dann aber auch bei deiner Variante der Fall.
Und btw. ist das der Grund weshalb ich die kostenlose Version von AntiVir nicht mehr einsetze, ich nehme jetzt AVG Free, da gibt es die Probleme schlicht nicht. Und auf 2 PCs nutze ich ein kommerzielles Produkt, aber das wäre für alle zu teuer.
Xentar - Mi 19.03.08 18:42
Welche "Probleme"?
Dass man einmal am Tag dieses Fenster wegklicken muss?
Martok - Mi 19.03.08 18:46
+25 Meldungen von der Firewall, weil hier nicht jeder ins Internet darf.
Bin übrigens auch bei AVG gelandet, auch wenn das an dem absolut miesen Release der 7er Antivir lag. Und ohne Signaturupdates brauch ich auch keinen Virenscanner, die hätte man damals ja aber nicht mehr gekriegt.
Jakob Schöttl - Mi 19.03.08 22:18
jaenicke hat folgendes geschrieben: |
Hast du einmal versucht einfach die Rechte so zu setzen, dass kein Zugriff möglich ist? Es könnte sein, dass dann eine Fehlermeldung kommt, dies wäre dann aber auch bei deiner Variante der Fall. |
einmal hab ichs bis jetzt probiert, und da war keine Fehlermeldung von AntiVir...
Yogu - Mi 19.03.08 23:52
Martok hat folgendes geschrieben: |
+25 Meldungen von der Firewall, weil hier nicht jeder ins Internet darf. |
Schonmal was von "Für diese Anwendung speichern" oder so gehört?
Jakob Schöttl: Du könntest auf die
WM_ENDSESSION reagieren.
Hidden - Do 20.03.08 00:01
Jakob Schöttl hat folgendes geschrieben: |
Naja, sorry, ich erkläre jetzt mal, für was ich das programm genau brauche:
bei jedem AntiVir-Update wird avnotify.exe gestartet; Das zeigt nur Werbung an, und ich will das nicht haben. Löschen der exe hilft nichts, weil sie immer wieder neu erzeugt wird.
Deswegen will ich ein unsichtbares Programm, dass die Datei Exklusiv öffnet, dann kann der Updater sie nicht mehr starten.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| program avnotify_besetzer; uses ...; var fs: TFileStream; begin fs := TFileStream.Create('avnotify.exe',fmShareExclusive);
end; |
ich will eben, dass das prog keine gui hat, weder konsole, noch fenster.
Vielleicht könnt ihr mir jetzt besser helfen. |
geile Idee, das nervt mich auch immer...
Edit: Komisch, Beim ausführen von avnotify.exe passiert nichts, vermutlich nur in kombination mit dem Update. Dafür bekomme ich eine Datei(Suche) angezeigt, AVNOTIFY.EXE-22AE9451.pf in C:\WINDOWS\prefetch. Prefetch heißt frei übersetzt "vor dem Abruf".Hat das was mit der ganzen Sache zu tun?
Xentar - Do 20.03.08 00:43
Ich denke mal, der Anwendung muss ein Parameter mitgegeben werden, damit sie was anzeigt. Und wenn du diesen nicht kennst, kannst du sie noch so oft per Hand starten ;)
Und Prefetch ist eine funktion von Windows, häufig benutzte Programme zwischenzuspeichern, damit diese schneller starten.
Und das mit der Firewall versteh ich noch nicht ganz. Jeder Virenscanner braucht doch tägliche Updates - wieso ist das also ein Kritikpunkt von AntiVir?
BTW: Hab letztlich gelesen (glaub auf Heise?), dass in einigen Wochen die AntiVir 8 rauskommen soll, und die dafür extra die Bandbreite der UpdateServer erhöht haben.
Hidden - Do 20.03.08 10:54
Xentar hat folgendes geschrieben: |
Ich denke mal, der Anwendung muss ein Parameter mitgegeben werden, damit sie was anzeigt. Und wenn du diesen nicht kennst, kannst du sie noch so oft per Hand starten ;)
Und Prefetch ist eine funktion von Windows, häufig benutzte Programme zwischenzuspeichern, damit diese schneller starten.
Und das mit der Firewall versteh ich noch nicht ganz. Jeder Virenscanner braucht doch tägliche Updates - wieso ist das also ein Kritikpunkt von AntiVir?
BTW: Hab letztlich gelesen (glaub auf Heise?), dass in einigen Wochen die AntiVir 8 rauskommen soll, und die dafür extra die Bandbreite der UpdateServer erhöht haben. |
Das Update ist nicht das Problem. Bei jedem Update geht nur immer Werbung auf.
Delete - Do 20.03.08 11:02
Jakob Schöttl hat folgendes geschrieben: |
Naja, sorry, ich erkläre jetzt mal, für was ich das programm genau brauche:
bei jedem AntiVir-Update wird avnotify.exe gestartet; Das zeigt nur Werbung an, und ich will das nicht haben. Löschen der exe hilft nichts, weil sie immer wieder neu erzeugt wird.
Deswegen will ich ein unsichtbares Programm, dass die Datei Exklusiv öffnet, dann kann der Updater sie nicht mehr starten. |
Dann kauf das Produkt oder nimm einen anderen Virenscanner. Der Virenscanner wird dir imemrhin kostenlos angeboten, ist es da zu viel verlangt einmal kurz die Werbung wegzuklicken? Stell dir vor alle wären so wie du, dann gäbe es solche Angebote nicht mehr.
Hidden - Do 20.03.08 11:47
Luckie hat folgendes geschrieben: |
Jakob Schöttl hat folgendes geschrieben: | Naja, sorry, ich erkläre jetzt mal, für was ich das programm genau brauche:
bei jedem AntiVir-Update wird avnotify.exe gestartet; Das zeigt nur Werbung an, und ich will das nicht haben. Löschen der exe hilft nichts, weil sie immer wieder neu erzeugt wird.
Deswegen will ich ein unsichtbares Programm, dass die Datei Exklusiv öffnet, dann kann der Updater sie nicht mehr starten. |
Dann kauf das Produkt oder nimm einen anderen Virenscanner. Der Virenscanner wird dir imemrhin kostenlos angeboten, ist es da zu viel verlangt einmal kurz die Werbung wegzuklicken? Stell dir vor alle wären so wie du, dann gäbe es solche Angebote nicht mehr. |
Da kommen wir jetzt aber auf den kategorischen Imperativ und damit die moralische Frage hinter dem Wegdrücken von Werbung zu sprechen und werden damit (wie so gerne immer wieder spontan im Delphi-Forum :wink: )
[OT]
- Hat die Werbung überhaupt Einfluss auf den Teil der Zielgruppe, die sie immer wegklickt, oder kann dem Unternehmen dann sowieso egal sein, dass sie geblockt wird, wenn sie keinen Einfluss hat?
- Gehört das nicht einfach zu einem kalkulierter Teil der Zielgruppe, bei dem die Werbung nicht ankommt?
- Hat das Unternehmen überhaupt ein Anrecht darauf, dass du seine Werbung konsumierst? Ist dann auch zappen verwerflich :lol: ? Sitzen wir bald wie Dieter Nuhr glaube ich mal sagte alle verpflichtend eine Stunde täglich vor der Werbung?
- Der Punkt, an dem ich dir Recht geben muss, ist, dass(sollte diese Software große Verbreitung finden :lol: ) das Unternehmen - wie du schon sagtest - sich überlegen könnte, den für es nutzlosen Dienst einzustellen.
[/OT]
mfG,
jaenicke - Do 20.03.08 14:03
Luckie hat folgendes geschrieben: |
Dann kauf das Produkt oder nimm einen anderen Virenscanner. Der Virenscanner wird dir imemrhin kostenlos angeboten, ist es da zu viel verlangt einmal kurz die Werbung wegzuklicken? Stell dir vor alle wären so wie du, dann gäbe es solche Angebote nicht mehr. |
Richtig, wobei die Werbung an sich nicht das war, was mich zum Wechsel zu AVG gebracht hat. Das Problem war, dass der Updater sich mehrmals hintereinander in den Vordergrund geschoben hat. Und das nervt tierisch.
Bei AVG kommt auch eine Update-Meldung, die stört aber nicht das was ich gerade tue. Dass da auch keine Werbung dabei ist, ist ein angenehmer Nebeneffekt.
Jakob Schöttl - Do 20.03.08 14:12
Yogu hat folgendes geschrieben: |
Jakob Schöttl: Du könntest auf die WM_ENDSESSION reagieren. |
Aber das geht ja nur, wenn ich eine Nachrichtenschleife habe, so wie
TApplication oder?
elundril - Do 20.03.08 14:25
welches Antivir hast du?? bei uns läuft auch antivir und das blendet nie werbung ein.
lg elundril
jaenicke - Do 20.03.08 14:27
In der letzten Version, die ich hatte, konnte ich mich daran auch nicht erinnern, aber das Update-Fenster hat sich eben immer in den Vordergrund gedrängt.
Auf einem anderen PC in meiner alten Schule war aber zu dem Zeitpunkt noch Werbung zu sehen, keine Ahnung wo da der Unterschied ist.
elundril - Do 20.03.08 14:29
vielleicht ist das eine die personal edition und das andere nicht??
lg elundril
jaenicke - Do 20.03.08 14:32
Von Antivir habe ich nur auf einem PC nicht die kostenlose Version gehabt, aber auf beiden angesprochenen lief die selbe kostenlose Version. Und was die Version angeht: die sollte ja vom Updater aktuell gehalten werden. OS war beides XP (das ich jetzt nur noch auf diesem älteren PC zum energiesparenden Surfen benutze^^).
PC: Ich nehm nen Virtual PC und probiers aus ;-).
Narses - Do 20.03.08 15:15
Moin!
In diesem Topic geht´s nicht darum, wer warum welchen Virenscanner einsetzt. :| Bitte zurück zum Thema! ;)
cu
Narses
Raffo - Do 20.03.08 19:38
Ich hab seinerseit das Werbefenster einfach mit einem simplen Aufruf von
Delphi-Quelltext
1: 2: 3:
| x:=findwindow(nil,'fenstertilel der werbung'); if x>0 then sendmessage(x,wm_close,0,0); |
ausgeblendet. Da die Kaufversion für schlappe 20 EUR pro Jahr einen echten Mehrwert bringt und eben auch keine Werbung, konnte ich auf mein Progrämmchen verzichten.
Jakob Schöttl - Fr 21.03.08 12:24
das ist ein guter tipp; ich würde dann die Schleife so lange laufen lassen bis WM_ENDSESSION kommt.
Aber hoffentlich nimmt er mir dann nicht zu viel prozessorleistung weg.
Raffo hat folgendes geschrieben: |
Ich hab seinerseit das Werbefenster einfach mit einem simplen Aufruf von
Delphi-Quelltext 1: 2: 3:
| x:=findwindow(nil,'fenstertilel der werbung'); if x>0 then sendmessage(x,wm_close,0,0); | |
aber dazu müsste ich ja den aufruf in einer schleife machen, da ist glaube ich die erste version ressourcen-sparender.
Hidden - Fr 21.03.08 14:58
schonmal probiert, ein leeres Programm gleichen Namens an die Stelle zu setzen?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!