| Autor |
Beitrag |
maxk 
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Di 28.10.03 22:19
| focus hat folgendes geschrieben: | Und bei mir fängt er das neu Scannen an wenn ich auf fertigstellen klicke. |
Ja das meine ich mit Übernehmen, nachdem ändern, schaut er, ob sich noch etwas ergeben hat. Hat seine Richtigkeit.
Internetverknüpfungen (*.URL) werden nur auf Richtigkeit des Protokolls geprüft - sprich ob Windows weiß, welches Programm http:// öffnet.
Uninstallverknüpfungen A und B vollkommen identisch? Wenn nein, ist alles OK.
Fertigstellen werde ich noch umbenennen.
Ich habe mich nun für TCheckListBox entschieden. Da TTreeView keine Checkboxen anbietet - oder?
PS: Version 2.2 online
- Schaut auch ob die Icons existieren
- Kopiert Icons von Wechsellaufwerken auf die Platte
- Erkennt Verknüpfungen auf Wechsellaufwerken
- Kontextmenüs und Checkboxen

_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.03 09:57
| maxk hat folgendes geschrieben: | | Uninstallverknüpfungen A und B vollkommen identisch? Wenn nein, ist alles OK. |
a) Selbstverständlich sind beide Verknüpfungen identisch, sonst würde mein Programm das doch nicht erkennen. b) Du erhebst doch mit deinem Programm den Anspruch, Uninstall-Verknüpfungen zu finden. Und es gibt nachweislich einen NSIS-Uninstall-Link im Startmenü und in der Systemsteuerung. Und der Befehl ist in beiden Fällen der gleiche, es gibt keinen Unterschied - wie ich schon sagte.
| Zitat: | | Ich habe mich nun für TCheckListBox entschieden. Da TTreeView keine Checkboxen anbietet - oder? |
Von dem API her kann man einen Tree-View auch mit Checkboxen ausstatten, aber wozu wolltest du den eigentlich nehmen? Ich finde eine listenartige Übersicht besser. Die Check-Listbox oder bspw. auch eine List-View mit Checkboxen ist IMHO eine sehr gute Wahl. Wozu ein Baum? Aha, ich sehe schon:
| focus hat folgendes geschrieben: | | RootNodes könnten dann z.b. deine Items aus der ComboBox sein |
Das heißt, die gefundenen Probleme werden also unter den jeweils empfohlenen Aktionen angeordnet. Schön und gut, aber dann müsste es einen leeren Knoten "behalten" geben, und man müsste (der Einfachheit halber!) die Items per Drag&Drop verschieben können, wenn man sie bspw. behalten möchte.
Wie gesagt, die Listenansicht zum Auswählen via Checkbox ist einfacher.
| maxk hat folgendes geschrieben: | | Schaut auch ob die Icons existieren |
Problem: "Geplante Tasks" (Win 9  hat angeblich ein nicht existierendes Symbol. Bei mir gibt´s aber sowohl Icon als auch die DLL, in der es steckt. Vielleicht solltest du auf diese (IMHO überflüssige) Prüfung verzichten?
| Zitat: | | Kopiert Icons von Wechsellaufwerken auf die Platte |
Wozu soll´n das gut sein?
| Zitat: | | Erkennt Verknüpfungen auf Wechsellaufwerken |
Auf Disketten: Ja. Auf CDs, bzw. im Netzwerk: Nein.  Und sag jetzt nicht, die letzten beiden sind keine Wechseldatenträger bzw. "permanente Ziele".
PS:
| StartMenuCleaner.exe hat folgendes geschrieben: | Herzlich Willkommen beim
StartMenuCleaner - Das Original |
 Ich habe nie abgestritten, dass die Anregung für mein Tool von dir ist.
Zuletzt bearbeitet von MathiasSimmack am Mi 29.10.03 13:54, insgesamt 1-mal bearbeitet
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.03 10:31
PS: Die Sache mit den Datenträgern (Floppy, CD, Netzwerk, ...) kannst du relativ simpel prüfen. Ich poste mal einen Auszug aus meiner Scan-Funktion.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| lnk := GetLinkDestination(ds.cFileName,lnkraw,lnkarg);
fFound := (lnk <> '') and (fileexists(lnk));
if(not fFound) or (ds.nFileSizeLow = 0) then begin if(not fFound) and (GetDriveType(pchar(ExtractFileDrive(lnk) + '\')) in[DRIVE_REMOVABLE,DRIVE_REMOTE,DRIVE_CDROM]) then LV_ItemInsert(loop,path + '\' + ds.cFileName, 'nicht verfügbarer Wechseldatenträger')
else LV_ItemInsert(loop,path + '\' + ds.cFileName, szProblemArray[ds.nFileSizeLow=0]);
end; |
Die eigentlich wichtige Funktion GetDriveType ist eine API-Funktion und sollte sich problemlos in dein Programm übernehmen lassen.
Gruß.
|
|
maxk 
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Mi 29.10.03 21:43
 Da war wirklich ein Fehler beim Uninstallfinden - Sorry.
| Zitat: | Problem: "Geplante Tasks" (Win 9 hat angeblich ein nicht existierendes Symbol. Bei mir gibt´s aber sowohl Icon als auch die DLL, in der es steckt. Vielleicht solltest du auf diese (IMHO überflüssige) Prüfung verzichten?
|
Könntest du das vielleicht ein bisschen genauer erläutern? Ich habe auch unter W98 (vmWare) keine Probleme... PS: Was heißt "IMHO"?
| Zitat: | | Zitat: | | Kopiert Icons von Wechsellaufwerken auf die Platte | Wozu soll´n das gut sein? |
Wenn Windows die Gruppe öffnet sucht es nach den Icons. A) Die Diskette ist nicht eingelegt -> Windows findet kein Icon. B) Die Diskette ist zu langsam -> Windows braucht ewig zum öffnen der Gruppe.
Ich benutze GetDriveType bereits if not (GetDriveType in [DRIVE_FIXED,0,1) then ....
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 29.10.03 23:41
Das Problem (wenn´s ein ist) dürfte sein, dass das Icon aus der "mstask.dll" stammt, die DLL aber ohne Pfad als Icondatei angegeben ist. Windows selbst hat kein Problem damit, da es sein eigenes und das Systemverzeichnis ja kennt.
Aber dein Programm kann nichts damit anfangen und ist offensichtlich der Meinung, die DLL existiert nicht. Darum die fälschliche Meldung, das Icon existiert nicht.
Abhilfe: "FileSearch" (s. Hilfe). Du könntest bspw. das Windows- und das Systemverzeichnis, sowie den kompletten Inhalt von "PATH" als Suchliste übergeben. (Jeweils durch Semikolon getrennt.) Der erste Parameter ist der Dateiname, auf den du es abgesehen hast. Rückgabe ist Name inkl. Pfad, wenn die Datei irgendwo in einem Ordner aus der Suchliste (Windows+System+PATH) gefunden wurde.
| Zitat: | | Ich benutze GetDriveType bereits if not (GetDriveType in [DRIVE_FIXED,0,1) then .... |
Warum Null und Eins? Warum benutzt du nicht die Konstanten, mit denen du auch nach Monaten noch was anfangen kannst? 
|
|
focus
      
Beiträge: 187
XP, 2k, 98, Me
D6 Prof
|
Verfasst: Do 30.10.03 09:44
| Zitat: |
Ja das meine ich mit Übernehmen, nachdem ändern, schaut er, ob sich noch etwas ergeben hat. Hat seine Richtigkeit.
|
Ich will dir ja echt nicht auf den Zeiger gehen aber nachdem ich zehnmal auf fertigstellen geklickt hab wird er ja wohl hoffentlich nichtsmehr finden oder? Ansonsten würde ich meine Programmstrategie nochmal überdenken...
Gruss
Michael
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 30.10.03 12:39
Mache ich aber genauso, @focus. Es kann ja sein, dass sich durch das Beheben eines Problems ein anderes ergeben hat. Ich habe bspw. spaßeshalber eine Verknüpfung erstellt und das Ziel (war eine Kopie von Notepad in einem anderen Ordner) gelöscht.
Folglich hat mein Programm den toten Link gefunden. Ich habe ihn aber nicht löschen lassen, sondern ich habe die Dialogbox von Windows aufgerufen, mit der du nach dem Verknüpfungsziel suchen lassen kannst (@maxk: s. "IShellLink.Resolve"  ). Das originale Notepad im Windows-Ordner wurde gefunden und als passendes Ziel vorgeschlagen.
Und nach dem erneuten Scan (nach der Reparatur!) fand das Tool dann auch zwangsläufig zwei identische Verknüpfungen. Logisch, die verwiesen ja nun beide auf das Notepad im Windows-Ordner.
Insofern halte ich ein erneutes Scannen durchaus für sinnvoll. Es sollte bei max aber auch eine deutlich sichtbare Möglichkeit geben, das Programm abzubrechen. Der X-Knopf in der Titelleiste macht das zwar, fällt aber kaum auf. Ein deutliches "Abbrechen" o.ä. wäre IMHO besser.
|
|
maxk 
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Do 30.10.03 19:27
Ja, die Idee mit Resolve hatte ich auch schon. Mit FileSearch(,GetEnvironmentVariable('Path')); habe ich auch schon gearbeitet, weiß der Treufel, warum ich dann doch FileExists genommen habe...
PS: Ich lade am Wochenende eine neue Version hoch.
PPS: Ich habe schon einmal gefragt, was IMHO heißt 
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
mirage228
      
Beiträge: 338
Win 7 Prof.
Delphi 2005 Prof., Delphi 2010 Prof.
|
Verfasst: Do 30.10.03 22:54
Hi maxk,
IMHO heist In My Humble Opinion - Meiner bescheidenen Meinung nach
mfG
mirage228
_________________ May the source be with you, stranger.
|
|
maxk 
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Fr 31.10.03 21:39
 Ich danke vielmals!
Version 2.2 R2 hochgeladen.
- Der Fertigstellen Knopf heißt jetzt Los geht's...
- Tote Links werden gesucht (Resolve).
- Die Suchroutinen für Links/Icons arbeiten mit FileSearch.
Das sind die auffäligsten Änderungen!
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 14.11.03 11:32
Bei mir gibt´s übrigens meinen SMC + Quellcode.
Interessiert´s wen? 
|
|
mirage228
      
Beiträge: 338
Win 7 Prof.
Delphi 2005 Prof., Delphi 2010 Prof.
|
Verfasst: Fr 14.11.03 15:01
[OT]Immer diese Leute, die Schleichwerbung machen  [/OT]
_________________ May the source be with you, stranger.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 14.11.03 18:56
Na ja,  , auf Grund der Ähnlichkeit zum Tool von maxk wollte ich es nicht direkt anpreisen. Obwohl mich die ein oder andere Meinung durchaus interessieren würde. 
|
|
maxk 
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Fr 14.11.03 19:31
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Fr 06.02.04 13:34
Also wenn man auf den Info-Button klickt (ganz am anfang) kommt man da nicht wieder raus...
Dann ist das Fenster extrem zu klein, oder du baust eine vertikale scrollleiste ein (ich kann die pfadangaben net lesen)
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
j-a-n@gmx.de
      
Beiträge: 84
Delphi 7
|
Verfasst: Di 25.01.05 10:55
Titel: target.lnk
noch was:
Zieh mal einen Ordner vom Explorer ins Startmenü.
Windows erstellt keine Verknüpfung sondern irgendwas spezielles, sodasss der Order im Startmenü aufgeklappt wird.
Das könntest Du deinem Programm noch beibringen.
_________________ --
Dieses Werk ist unter einer Creative Commons 3.0 Lizenz lizenziert und darf unter Namensnennung kopiert, weitergegeben, veröffentlicht und verändert werden.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 25.01.05 11:38
Was soll Max dem Programm beibringen? Solche Ordner anzulegen? Ich weiß nicht, immerhin soll der Cleaner das Startmenü ja von unnützen Dingen befreien. Aber wenn dich das Verfahren interessiert, bitte schön: klick. 
|
|
j-a-n@gmx.de
      
Beiträge: 84
Delphi 7
|
Verfasst: Di 25.01.05 11:47
| MathiasSimmack hat folgendes geschrieben: | | Was soll Max dem Programm beibringen? Solche Ordner anzulegen? Ich weiß nicht, immerhin soll der Cleaner das Startmenü ja von unnützen Dingen befreien. |
ne.. natürlich nicht. obwohl das auch ein schönes programm wäre...
Max' programm erkennt nur die targed.lnk und will die verschieben und damit den ordner zerstören. das sollte er natürlich nicht tun.
| MathiasSimmack hat folgendes geschrieben: |
Aber wenn dich das Verfahren interessiert, bitte schön: klick.
|
gibts dazu auch nen fertiges programm?
_________________ --
Dieses Werk ist unter einer Creative Commons 3.0 Lizenz lizenziert und darf unter Namensnennung kopiert, weitergegeben, veröffentlicht und verändert werden.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 25.01.05 12:05
| j-a-n@gmx.de hat folgendes geschrieben: | | Max' programm erkennt nur die targed.lnk und will die verschieben und damit den ordner zerstören. das sollte er natürlich nicht tun. |
Oh, da muss ich doch glatt mal gucken ob meiner cleverer ist.
| Zitat: | | gibts dazu auch nen fertiges programm? |
Was willst du denn machen? Ein Programm zum Erstellen solcher Verknüpfungen? Schreib´s doch selbst. Du brauchst doch nur die paar Quellcodezeilen in dein Programm einbinden. 
|
|
maxk 
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Di 25.01.05 12:15
Titel: Re: target.lnk
| j-a-n@gmx.de hat folgendes geschrieben: | Zieh mal einen Ordner vom Explorer ins Startmenü.
Windows erstellt keine Verknüpfung sondern irgendwas spezielles, sodasss der Order im Startmenü aufgeklappt wird. |
Ich habe es jetzt an 3 Rechner versucht und irgendwo funktioniert da was nicht so richtig. Vielleicht könntest du mir da einfach mal einen "Link" auf C:\Test erstellen und mir dein Startmenü mailen - Danke!
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|