![]() |
Explorer / Internet Explorer
Hallo Zusammen,
ich habe eine kleine Benutzeroberfläche für das Multimedia Center in dem ich arbeite geschrieben, die soweit auch ganz gut funktioniert. Es wird z.B. überprüft, ob ein Explorerfenster geöffnet ist und wenn, dann wird es gleich wieder geschlossen. So will ich unter win98, ohne großen Aufwand verhindern, dass jemand am System rumspielt. Die Leute sollen aber den Internet Explorer benutzen können... soweit auch kein Problem, denn die klasse des IE ist 'IEFrame' und die des Explorers ist 'ExploreWClass' bzw. 'CabinetWClass' und so schließe ich einfach immer nur den Explorer, wenn er halt geöffnet wird. Nun kommt mein Problem, wenn ich z.B. in den Internet Explorer 'c:' eingebe, dann wird der quasi zum Explorer, behält aber die Klasse des Internet Explorers. Nun habe ich mir gedacht, da sich auf jedem Explorer ein 'SysListView32' befindet, kann ich darüber rausfinden, ob jemand den IE zum navigieren im System benutzt. Aber leider fehlt mir da die nötige Kenntnis..., weiß jemand, wie ich den IE überprüfe ob er ein 'SysListView32' in sich hat?! MFG Evian |
Re: Explorer / Internet Explorer
Moin Evian,
such' hier mal nach ![]() ![]() Ein Programm, dass solche Scherze veranstaltet, wie es das Deine tun soll, flöge allerdings bei mir sofort wieder runter. :stupid: |
Re: Explorer / Internet Explorer
Dein Rechner wird wahrscheinlich auch nicht an einer öffentlichen Bushaltestelle stehen. ;)
|
Re: Explorer / Internet Explorer
Zitat:
Ja Danke, ich werds mir mal anschauen. Zitat:
Meiner Meinung nach ist die Idee, den Explorer zu verbieten, zumindest für diese sEinsatzgebiet gar nicht so schlecht, zumal wir sowieso eine Benutzeroberfläche haben. |
SearchSysListView - Funktion
Ich hab mir mal zu diesem Thema Gedanken gemacht und mal eine Funktion geschrieben. Vielleicht ist sie sogar nützlich:
Delphi-Quellcode:
Sie macht alle Kinder des Fensters mit dem angegebenem Handle durch nach einem Fenster mit der Klasse "SysListView32". Wenn sie es findet, dann gibt die Funktion das Handle zurück, andernfalls gibt sie 0 zurück.
function SearchSysListView(HWND: THandle): THandle;
var return: THandle; ClassName: string; count: integer; const MaxClassLength = 256; begin Result:= 0; // Die Klasse des Fensters wird ermittelt SetLength(ClassName, MaxClassLength); count:= GetClassName(HWND, PChar(ClassName), MaxClassLength); If count = 0 then RaiseLastOSError; SetLength(ClassName, count); // Falls das Fenster schon die Klasse besitzt wird das Handle zurückgegeben If ClassName = 'SysListView32' then begin Result:= HWND; Exit; end; // wenn die Klasse nicht SysListView32 ist dann folgen rekursive Aufrufe // der Funktion mit den Handles aller Kinder des Fensters return:=GetTopWindow(HWND); If return <> 0 then begin while (return <> 0) and (Result = 0) do begin Result:= SearchSysListView(return); return:= GetNextWindow(return, GW_HWNDNEXT); end; end; end; Wenn der Code schreckliche Fehler enthält, dann bitte nicht böse sein, ich bin noch Anfänger :oops: Ciao, Reddog. |
Re: Explorer / Internet Explorer
Wow Super, Danke!
Also ich habs jetzt noch nicht getestet, aber es sieht sehr gut aus, ich denke wenn es noch Fehlerchen gibt, dann werde ich sie selber hinbekommen, aber echt klasse! Da nehm ich den Code von Dir "Anfänger"(glaube Du hast aber das falsche Wort gewählt) 1000x mal lieber, als irgendwo im Internet was "Besseres" zu finden. Wenns funzt, dann sag ich nochmal bescheid! |
Re: Explorer / Internet Explorer
Hi Evian,
und was ist wenn jemand den Arbeitsplatz öffnet? |
Re: Explorer / Internet Explorer
nur auf ein SysListView32 zu überprüfen reicht meiner Meinung nicht aus, denn der Benutzer kann immer noch Dateien direkt über die Adressleiste starten. Auch wenn er nicht die kompletten Pfadangaben weiss, kann er mit Hilfe der Autovervollständigung durch die Verzeichnisse navigieren.
MfG Luki |
Re: Explorer / Internet Explorer
Zitat:
Greetz alcaeus |
Re: Explorer / Internet Explorer
mh... stimmt... :roll:
naja also der Explorer, sofern er ein SysListView32 enthält, wird geschlossen... aber der Zugriff auf Dateien ist damitt nicht unterbunden. Also ich bin für alle Ideen offen, aber glaube fast langsam... dass es so nicht 100 Pro zu lösen ist. *schnief* Evian ---Edit---- Zitat:
Aber was meinst Du mit "das problem von Memphis"? ---Edit---- |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz