Entwickler-Ecke
Open Source Projekte - LuckieDIPS
mortus - Sa 16.08.03 18:44
tschuldigung. wollte ich eigentlich nicht absenden
Delete - Sa 16.08.03 18:49
Was hast du denn schlimmes geschrieben?
mortus - Sa 16.08.03 18:54
Habe gedacht, du haettest ein Beispiel aus einem Buch von Jeffrey Richter nach Delphi uebersetzt und mit deinem Namen versehen. Dann habe ich mir den Quelltext angesehen und wollte es eigentlich nicht mehr absenden :)
Delete - Sa 16.08.03 19:35
Aber selbst dann hätte ich mein Copyright druntersetzen können, da man Jeffrey Richters Code nicht einfach eins zu eins übersetzen kann, da der Delphi Compiler keine Shared Resources unterstützt. Kuck dir mal in meiner Ablage unter Exports die Dipsscr.zip an. Das ist die Delphi-Übersetzung des Programmes vom Richter von Nico. Und da, wie gesagt, Delphi dieses Feature nicht unterstützt, mußte er einige recht interessanten Klimmzüge machen. :wink:
Delete - So 17.08.03 08:54
Neue Version ist da: 1.1
Was ist neu? Die Ini-Datei mit den Iconpositionen wird jetzt nicht mehr im Programmverzeichnis gespeichert, wo der Anwender eventuell keine Schreibrechte hat, sondern in seinem persönlichen lokalen Einstellungen für die Anwendungsdaten, zum Beispiel:
Quelltext
1:
| x:\Dokumente und Einstellungen\username\Lokale Einstellungen\Anwendungsdaten |
Download: LuckieDIPS [
http://www.luckie-online.de/downloads/luckiedips.zip] [29 KB]
Delete - Mi 20.08.03 10:45
Kleine Kritik am Rande: Wenn das Programm nur unter NT und höher funktioniert, warum kann ich´s dann unter 98 starten? :)
UC-Chewie - Mi 20.08.03 20:06
Vielleicht enthält die kernel32.dll von Win98 ebenfalls eine Funktion namens VirtualAllocateEx?
Delete - Mi 20.08.03 21:46
Das habe ich aber nicht gemeint. Wenn ich mein Programm so gestalte, dass es -warum auch immer?- nur unter NT und Co. funktioniert, dann sollte ich auch den Start unter "unerwünschten" Systemen blockieren. - Oder aber eine Lösung suchen, damit es vielleicht auch unter 9x und ME klappt. :roll:
Im Augenblick wird diese Bedingung
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| MemLocal := VirtualAlloc(nil, Size, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE); MemRemote := VirtualAllocEx(Process, nil, Size, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE); if Assigned(MemLocal) and Assigned(MemRemote) then try |
in der Prozedur "GetDesktopIconInfo" jedenfalls nicht erfüllt. Präziser gesagt, es scheitert an
VirtualAllocEx, weil
PSDK hat folgendes geschrieben: |
Requirements
Client: Included in Windows XP, Windows 2000 Professional, and Windows NT Workstation 4.0.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server 4.0. |
UC-Chewie - Mi 20.08.03 22:20
Richtig, das meinte ich. Da VirtualAllocEx in der windows.pas statisch importiert wird, sollte eigentlich beim Start eine Meldung kommen. Oder kommen da die Fehlermeldungen erst, wenn man die Funktion aufruft? Ich weiß nicht genau, ist ne Weile her, seitdem ich mich damit beschäftigt hab.
Delete - Mi 20.08.03 22:38
Es kommt keine Fehlermeldung. Weder wg. des statischen Imports (?), noch in der genannten Funktion in Luckies Programm. Der Bedingung zweiter Teil
Delphi-Quelltext
1:
| and Assigned(MemRemote) |
ist einfach nicht erfüllt, und darum geht´s nicht weiter.
Es wäre für mich persönlich übrigens noch interessant, einen NT4-Besitzer um einen Test zu bitten. Laut PSDK ist die Konstante
CSIDL_PROFILE erst in der Shell-Version 5.0 vorhanden. Möglicherweise reichen ein paar Updates von Microsoft, möglicherweise kann unter NT4 aber auch das Verzeichnis nicht gefunden und die INI-Datei nicht angelegt werden.
Delete - Mi 20.08.03 23:16
Ich wußte, dass ich was vergessen hatte. :roll:
Wird gefixt.
...
Ist gefixt.
UC-Chewie - Mi 20.08.03 23:33
Was mich trotzdem wundert: VirtualAllocEx wird bei Win98, wie du sagst, anstandlos aufgerufen. Kannst du mal im Dependeny Walker nachschauen, obs diese Funktion in der Kernel-DLL drin ist: Denn nach meinem Verständnis müsste folgende Zeile eine Access Violation hervorrufen, wenn die Funktion nicht geladen werden konnte, weil sie nicht existiert:
Delphi-Quelltext
1: 2:
| MemRemote := VirtualAllocEx(Process, nil, Size, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE); |
UC-Chewie - Mi 20.08.03 23:40
Habs jetzt nochmal ausprobiert. Wenn es die Funktion
nicht geben würde, würde beim Starten des Programms folgende Fehlermeldung ausgegeben werden:
Zitat: |
Der Prozedureinsprungspunkt "VirtualAllocExA" wurde in der DLL "kernel32.dll" nicht gefunden. |
[/quote]
Delete - Do 21.08.03 05:21
Und noch eine neue Version: 1.2
- Speicherort der Ini-Datei jetzt 'C:\Dokumente und Einstellungen\%username%\Lokale Einstellungen\Anwendungsdaten\LuckieDIPS
- Schaltfläche zum Entfernen der Datei und des Ordners hinzugefügt. @Mathias: :tongue:
Download: [url=
http://www.luckie-online.de/downloads/luckiedips.zip]LuckieDIPS[/url] [30 KB]
Delete - Do 21.08.03 08:29
bezüglich:
Luckie hat folgendes geschrieben: |
@Mathias: :tongue: |
Ich habe nämlich einen INI-Cleaner für Admins geschrieben, der kurzerhand nach Luckies INI-Datei sucht und entfernt. Und zwar für
alle Benutzer. Nachdem mir der Kollege Luckie nun seine Zunge rausgestreckt hat, habe ich es erst mal so erweitert, dass es nun auch den neuen Ordner entfernt. Mal seh´n, vielleicht biete ich es im Rahmen meiner neuen Produktlinie
Kill Luckie's tools öffentlich an. :wink:
Delete - Do 21.08.03 09:43
Mal sehen, dann generiere ich den Ordnernamen mit einem Keygenerator oder so.
Aber ich bin dir ja sehr verbunden, dass du dich so darum sorgst, dass sich meine Tools restlos wieder entfernen lassen. :roll:
Sollte ich allerdings eins deiner Luckie-Removal-Tools bei Symantec oder so wieder finden, dann richte dich darauf ein, dass ich irgendwann bei dir vor der Tür stehe und wenn ich wieder weg bin, dürfte von deinem PC nicht mehr all zu viel übrig sein. :x
Delete - Do 21.08.03 10:16
Schau mal auf meine HP. In die Beta-Area unter Delphi. :mrgreen:
Eyh, is´ nur Spaß! *kicher*
(@Tino: :wink: Hab mir mal was ausgeborgt.)
Grüße.
Delete - Do 21.08.03 10:22
Laß drauf, meine Antwort kommt noch.
Anonymous - Do 21.08.03 11:07
Warum nciht die Registry nehmen? Ich meine, die echte Stream-Info des Explorers lieg auch in der Registry. Außerdem ist sie seit NT eben nicht mehr anfällig für "zu große Hives" etc pp.
Naja und man hat eben alles in der NTUSER.DAT der Benutzers *g* ...
Also außer es werden Mandatory Profiles benutzt, spricht nix dagegen. Und wenn die benutzt werden, dann hat das Programm auf dem entsprechenden Rechner auch nix zu suchen - sagt der Administrator ;)
Anonymous - Do 21.08.03 11:14
1. ich teste mal unter einem (fast) jungfräulichen NT!
2. die meisten Funktionen sind auch in 9x vorhanden - viele davon aber einfach als Stubs um eben Fehler bei statischer Bindung zu verhindern! In der aktuellen Toolbox gibt es einen Workaround für das Problem auf 9x :)
Delete - Do 21.08.03 12:10
Mir gefällt das Wort "dubios" in dem Zusammenhang. :mrgreen:
Übrigens habe ich noch einen Widerspruch: Ich bin
nicht Gevatter Tod - ich schreibe
keine Luckie Removal Tools, sondern allerhöchstens
"Luckie's Tools" Removal Tools. :)
Anonymous - Do 21.08.03 12:40
Immer wieder schön euren Diskussionen beizuwohnen ... ja beiwohnen zu dürfen *g*
BTW: Ist jetzt klar, wieso es den Eintrittspunkt unter 9x gibt?
Delete - Do 21.08.03 14:14
Ja, und es sollte unbedingt erwähnt werden, dass wir das total ernst meinen. Nicht, dass einer noch denkt, wir machen hier nur Späße. - Nur dein Beitrag von 11 Uhr 07 macht mich irgendwie nachdenklich ...
Delete - Do 21.08.03 14:21
@Oliver: Schön dass wir dich so nett unterhalten. Aber könntest du uns mal deiner Ergebnisse unter NT4 mitteilen? :roll:
UC-Chewie - Do 21.08.03 17:29
Assarbad hat folgendes geschrieben: |
BTW: Ist jetzt klar, wieso es den Eintrittspunkt unter 9x gibt? |
Ja. Sowas in der Richtung hab ich schon vermutet. Entweder ein Dummy oder aber die Funktion gibts schon, aber war nicht offiziell dokumentiert.
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!