Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Autostart-Controller v1.0 (https://www.delphipraxis.net/120-autostart-controller-v1-0-a.html)

nsamaster 12. Jun 2002 13:46


Autostart-Controller v1.0
 
Hi!

Ich möchte hier mal mein eigenes kleines Programm vorstellen:

Autostart - Controller v1.2

Damit ist es möglich, Programme die beim starten automatisch geladen werden zu kontrollieren und zu deaktivieren. Da das manuelle kontrollieren immer eine Aufwendige Sache mit der Registry ist, hab ich dieses Tool programmiert. Die Registrierung ist neben bei nur ein kleiner "Test" und dient für mich als kontrolle wer das Programm benutzt.

http://www.msts-burgenland.de/portal...d=2&s=download, ca 300 kByte

Ich würde mich sehr über ein Feedback von euch freuen und vergesst nicht mir eventuelle Bug's zu mailen oder zu posten!

Danke für's zuhören (lesen)!

MathiasSimmack 12. Jun 2002 17:47

Da kommt er her und kritisiert gar fein ...
 
Hi nsamaster. Dann woll´n wir mal:

1. Ein direkter Link auf das Programm wäre schön. :roll: Aber ich hab´s auch so gefunden ... Aber schau mal in die Vorgabe des Admin, in der es heißt
Zitat:

direkter Download-Link evtl. mit Angabe, wie gross der Download ist
2. Im Autostart passiert noch viel mehr. Dein Tool durchsucht (offenbar) nur den Zweig unter "hkey_current_user"?! Das ist prima, weil´s dann auch unter NT keine Probleme mit den Zugriffsrechten gibt, aber es stecken auch unter "hkey_local_machine" die gleichen Schlüssel.
Das Zugriffsproblem kannst du umgehen, wenn du (programmierst du mit der VCL?) den Registryschlüssel nur zum Lesen öffnest:
Code:
cReg := TRegistry.Create(KEY_READ);
...
Dann kannst du die Schlüssel zumindest lesen, auch mit eingeschränkten Rechten unter NT. Du musst aber eben damit rechnen, dass du (bzw. der User, der dein Tool nutzt) Einträge nicht deaktivieren kann usw. weil ihm dazu eben diese Rechte fehlen.

Nicht zu vergessen der Autostart-Ordner und die Einträge "run" und "load" in der WIN.INI.

In der Hinsicht -entschuldige bitte!- ist das in Windows 9x und XP eingebaute MSCONFIG-Tool leistungsfähiger. Aber für Win95/NT/2000-User wäre eine Alternative sicher interessant.

3. Mich persönlich irritiert das "Beenden" an erster Stelle im Menü. Ich bin´s gewohnt (und ich glaube, GUI-technisch ist´s sogar ein Standard), dass dort vielleicht "Datei" oder so was steht, worin man dann den Punkt zum Schließen findet. Ich habe das Programm mehr als einmal aus Versehen beendet. :oops:

4. Die Liste der installierten Software ist weitaus umfangreicher. Dafür könnte ich dir den Quälcode meines eigenen "UIS" empfehlen, das sich immer noch auf dem Reihe5-Server rumtreibt (hier).
Der liest auch die inoffiziellen Einträge aus, die du in der Systemsteuerung überhaupt nicht siehst. Ein Beispiel bei dir wäre "Suchen im ... Internet". Das Ding hat zwar einen Displaynamen aber keinen Uninstallstring. Da du nach einem von beiden suchen dürftest, sieht man es in deinem Tool, nicht aber in der Systemsteuerung. Nach diesem Prinzip verstecken sich noch mehr Programme.

Schau mal in die Registry, oder auch in meinen (OPEN) Source :wink:

5. Meine ganz persönliche Meinung: Feedback bekommst du auch ohne Registrierung, wie du an meinem Beispiel siehst. :!: Zumindest in der Testphase halte ich eine Registrierung für übertrieben.

nsamaster 12. Jun 2002 20:18

Hi!

1. Okay, Okay! Das mit dem direkten Link hab ich leider nicht gelesen..., aber das nächste mal ;)

2. Da muß ich dir leider wiedersprechen, das Tool durchsucht auch den Schlüssel: HKEY_LOCAL_MACHINE. Was für ein Zugriffsproblem meinst du? Ich arbeite unter WinXP und die Technick sollte doch mit der von 2000 und NT übereinstimmen, oder bin ich da falsch informiert?

Okay, das mit dem Autostart-Ordner ist ne gute Idee, aber win.ini? Naja, der Kompatibilität wegen...

3. :D Jep, das hat mein Kumpel (Tester) auch schon bemängelt...

4. Danke für den Tipp! Werd ich mir mal ansehen!

5. Mhh... stimmt auch wieder (Übertrieben)

6. Hätte nie gedacht das man so ein Feedback bekommt, vorallem dazu noch konstriktive Vorschläge! Bin Beeindruckt!

Luckie 12. Jun 2002 20:40

Zu 2.: Hast du es schon mal probiert, wenn du nicht als Admin eingeloggt bist?

MathiasSimmack 12. Jun 2002 20:44

Hi.

Also in meiner Autostart-Liste wird nur ein Eintrag angezeigt, der sich im Schlüssel hkey_current_user befindet. Die anderen unter HKLM werden ignoriert, obwohl sie mir z.B. das besagte MSCONFIG wiederrum anzeigt.

Könnte ein Bug sein. Oder du hast vergessen, den Root-Key vorher festzulegen, denn bei mir (Delphi 5 Pro) ist dieser standardmäßig hkey_current_user. Das würde erklären, warum ich nur den einen Eintrag sehe.

Zugriffsprobleme könnten auftreten, wenn einer deiner Anwender auf seinem Rechner nicht genügend Rechte hat. In einer Firma wird es beispielsweise nicht 20 Admins geben, sondern nur einen. Die anderen sind also bestenfalls normale Benutzer, und bei denen könnte es Zugriffsprobleme geben, wenn sie versuchen, irgendwelche Einstellungen in der Registry zu ändern.

Arbeitest du mit den Standardeinstellungen von XP? Dann bist du ein Admin. Leg doch bei der Pro-Version von XP mal ein Benutzerkonto an, das keine Admin-Rechte hat; oder auch ein Gastkonto. Dann versuch mal verschiedene Dinge (Zugriff auf Systemordner von Windows, INF-Dateien einspielen, Zugriff auf bestimmte Registryeinträge usw.) - einige werden nicht klappen, weil dich Windows auf mangelnde Rechte hinweist.

Gerade bei Programmen, die ins System eingreifen, solltest du immer bedenken, dass einige ihr System absichern, bzw. dass einige Benutzer unter WindowsNT (usw.) ohne ausreichende Rechte arbeiten.

Du solltest also Funktionen abschalten, von denen du weißt, dass nur ein Admin sie ausführen kann. Eine entsprechende Prüffunktion habe ich aus dem Delphi-Forum, und die steckt auch in meinem erwähnten Programm drin. (Hoffe ich jedenfalls. :roll:)

RomanK 12. Jun 2002 20:48

Hoi
dacht ich anfangs auch aber da ist ne Checkbox wo man Auswählen kann ob Benutzer oder System und wenn man System auswehlt dann kommen nen paar mehr :D

MathiasSimmack 13. Jun 2002 07:10

Okay, dann nehme ich die Kritik zurück (war ja auch mein Fehler) und gebe nsamaster nur noch den Tipp das Programm auch mal mit eingeschränkten Rechten zu testen, um eben mögliche Zugriffsprobleme in den Griff zu bekommen.

nsamaster 13. Jun 2002 09:36

Puhh! Jetzt bin ich aber Erleichtert! Ich war mir jetzt nicht mehr so sicher mit dem auslesen von HKLM obwohl ich's selbst programmiert hab... Na ja, da nächste mal werd ich die Checkboxen wohl etwas größer machen (die unten rechts) :)

das mit den eingeschränkten Rechten werd ich gleich mal testen, aber ich dachte wenn man mit der Win-API auf diese Funktion zukreift ist es egal ob man ein Admin ist oder nicht, besser gesagt ob das Programm von einem Admin ausgeführt wird oder nicht.

MathiasSimmack 13. Jun 2002 11:47

Mehr Feedback!
 
1. Im Splash-Screen fehlt ein R bei ProgrammiereR. Und im Registrier-Screen könntest du entweder das gute alte Deutsch benutzen (Web-Seite) oder du schreibst "Website". Das, was da bei dir drin steht, ist ein Musical und heißt "Web Side Story". :wink:

2. Das Fenster mit den Sicherheitseinstellungen lässt sich leider nicht über den Button in der Titelleiste schließen, obwohl es doch nichts anderes als ein "Abbruch" wäre.

3. Warum ein Client-Fenster? Wenn das Programm nicht Teil einer anderen Anwendung werden soll, dann wäre ein normaler Stil mit Systemmenü und Minimierbutton in der Titelleiste besser.

4. Theoretisch könnten die "Beenden"-Buttons raus, wenn du das Menü drin lässt.

5. Ich habe ja schon das Programm MSCONFIG angesprochen. Hier gibt´s eine ganz prima Sache. (Achtung, Ironie!) Unter Windows 98 schreibt das Tool deaktivierte Einträge in solche Schlüssel "Run-" usw. Unter WinXP existiert ein eigener Programmschlüssel, in dem deaktivierte Einträge vermerkt werden.

Logischerweise erkennt dein Programm nicht, welche Einträge bereits deaktiviert sind. Umgekehrt kann MSCONFIG nicht erkennen, dass dein Tool vielleicht schon ein paar Einträge deaktiviert hat.

Wenn du gut bist, dann prüfst du beim Start also auch solche Sachen ab. Noch besser wäre, wenn du dich erkundigst, unter welchen Systemen das MSCONFIG-Tool noch existiert (ich tippe noch auf ME), und wie es dort funktioniert. Beim Start fragst du dann das OS ab, unter dem dein Programm läuft und suchst dir die Einträge entsprechend raus. Dann zeigt dein Programm sogar das an, was Microsoft´s MSCONFIG versteckt hat.

Wenn du richtig gut bist, dann schreibt dein Tool auch versteckte Einträge so korrekt zurück, dass man sie mit MSCONFIG wiederherstellen könnte. Allerdings solltest du dabei deine eigene Version 1.0 immer im Auge behalten und auch dein Schlüsselformat "xxx_Disable" nie vergessen - es könnte ja Leute geben, die nur damit gearbeitet haben und sich dann wundern, dass die neue Version 1.1 (was auch immer) ihre versteckten Einträge nicht mehr anzeigt.


Zu deiner Frage:
Die Funktionen der verschiedenen Units benutzen intern auch nur die entsprechenden API-Funktionen. Das heißt nicht, dass du durch die direkte Nutzung irgendwelche bestehenden Rechte außer Kraft setzen kannst. Als Tipp würde ich vorschlagen, du prüfst beim Start, ob Admin-Rechte vorhanden sind. Wenn nein, zeigst du beim Autostart nur die Schlüssel des Benutzers an (die Auswahl der System-Schlüssel deaktivierst du!), und die Liste mit den Software-Installationen lässt du am besten ganz weg. Dann dürfte es die wenigsten Probleme geben.

Wie gesagt, eine solche Prüffunktion (von NicoDE) steckt in meinem Programm (s. oben) drin.

nsamaster 15. Aug 2002 00:29

Mhhh... Nun programmier ich schon am Tool weiter und führte mir gerade die Liste an Verbesserungen zu gemüde, das stellte sich mir die Frage wo finde ich Informationen zu MSConfig??? Habt ihr einen kleinen Tip?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz