Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fenster verstecken (https://www.delphipraxis.net/100069-fenster-verstecken.html)

fortuneNext 21. Sep 2007 20:29


Fenster verstecken
 
Hi,
ich würde gerne in einem Delphiprogramm andere Fenster verstecken, beispielsweise den Internetexplorer oder die Taskleiste.
Das ganze soll darauf hinauslaufen, eine Schleife zu bauen, die automatisch alles versteckt bis auf das Programm selbst.
Wie geht denn das? :pale:

Matze 21. Sep 2007 20:58

Re: Fenster verstecken
 
Hallo,

du könntest die Fensterhandles ermitteln und eine entsprechende Nachricht an diese schicken. Doch wozu soll das denn gut sein? Ich denke, da gibt es eine bessere Lösung.

fortuneNext 21. Sep 2007 21:11

Re: Fenster verstecken
 
Naja, es darf halt nichts mehr vom restlichen Windows zusehen sein, nur das Programm selbst. Soll ein Passwort-Eingeben-Tool werden, also nur das Fenster "Passwort eingeben" soll da bleiben.

Matze 21. Sep 2007 21:16

Re: Fenster verstecken
 
Das scheint mir keine gute Lösung zu sein, denn mit einem Taskmanager oder Programmen, die Hotkeys nutzen u.ä. kannst du da immer noch einiges machen und auch deine Anwendung beenden.
Wofür soll das denn gut sein? Ich verstehe es immer noch nicht.

fortuneNext 21. Sep 2007 21:28

Re: Fenster verstecken
 
Der Sinn ist einfach:
Beim Starten soll ein Fenster erscheinen, wo man sein Passwort eingeben muss.
Das wäre natürlich sinnlos, wenn man das restliche Interface von Windows noch sehen und damit interagieren könnte :idea:
Denn dann würde man das Fenster "Passwort eingeben" einfach ignorieren und ganz normal weitermachen.

Matze 21. Sep 2007 21:58

Re: Fenster verstecken
 
Ja schon, aber den Taskmanager kannst du im Normalfall weiterhin aufrufen, aktive Hotkeys würden funktionieren etc. Das soll heißen, man kann so oder so mit den anderen Programmen kommunizieren.
Was soll denn das für eine Software werden, bei der man nicht mit anderen Programmen kommunizieren darf? Denn was du da versuchst kannst du auf dem Wege nie zuverlässig realisieren, sondern es wäre eine Pfusch-Lösung, wenn ich das mal so sagen darf.

Es klingt momentan so, als ob du so etwas machen willst, wie den Windows-Anmelde-Bildschirm. Doch ich sehe keinerlei Anwendung für eine selbst programmierte Lösung. Und ohne dass wir genau wissen, was du vorhast, kann man dir nicht richtig helfen.

fortuneNext 21. Sep 2007 22:05

Re: Fenster verstecken
 
Richtig, ist ist genau wie der Windows Anmeldebildschirm, nur eben extern als Programm! Das hat z.B. den Vorteil, dass man den PC anschalten kann, aufs Klo gehen kann, und wenn man dann das Passwort eingibt, ist bereits fertig geladen.
Mit Hotkeys und Taskmanager lass ich mich schon noch was einfallen, grad gehts mir nur darum, dass ich die Programme ausblende, das ist meine Frage, wie das geht.

Mackhack 21. Sep 2007 22:13

Re: Fenster verstecken
 
Du weist schon dass du einfach WindowsKey + L druecken musst um den PC zu sperren und dein ganzes kuenstliche Problem waere beseitigt!

fortuneNext 21. Sep 2007 22:16

Re: Fenster verstecken
 
Ja, weiss ich. Trotzdem würde ich gerne wissen, wie man Fenster versteckt!

fortuneNext 21. Sep 2007 22:30

Re: Fenster verstecken
 
Ok, fangen wir einfach von vorne an:
Wie kann ich ein Fenster verstecken?

gabneo 21. Sep 2007 22:52

Re: Fenster verstecken
 
Hi,
hört sich schon ein bischen nach malware an?!
Allein aus diesem grund wird dir hier warscheinlich keiner Code zur verfügung stellen (ich werde es auf jeden fall nicht tun).
Die frage wurde außerdem schon beantwortet, so etwas funktioniert, indem du auf den Handle des Fensters zugreifst und im zb per Sendmessage auszuführende Aktionen übergibst.
Suche einfach danach und du findest deinen Codeschnippsel.
greez

fortuneNext 21. Sep 2007 23:08

Re: Fenster verstecken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Was ich vorhabe zu programmieren, ist ganz einfach das:

Beim Starten von Windows öffnet sich ein Fenster, wo steht "PASSWORT EINGEBEN". Alles wird unsichtbar, bis das richtige Passwort eingegeben wurde. Was ist daran Maleware? Das hat einfach den Sinn, dass ich den PC öfters mal anschalte und dabei eine Tasse Kaffe o.ä. trinken gehe. Dann hätte ich den PC gerne schon komplett hochgeladen, denn beim Windows Passwort wird erst weitergeladen, wenn das Passwort eingegeben wurde. Ich habe auhc nicht vor, zu warten, um dann Windows+L zu drücken. Es reicht mir vollkommen aus, die Fenster zu verstecken, da es eigentlich mehr eine Kindersicherung ist. Meine Kinde rhaben leider keine Ahnung, was ein Taskmanager ist, aber sie gehen trotzdem an meinen Arbeits-PC, wenn ich in der oben genannten Kaffeepause bin.
Also der Ablauf der Handlung:
1. PC anschalten
2. Trinken gehen
3. Kinder gehen an den PC
4. Kinder richten Schaden an
5. Ich bin gearscht

oder

1. PC anschalten
2. Trinken gehen
3. Kinder gehen an den PC
4. Kinder sehen das Windowspasswort und gehen weg.
5. Ich komme zurück
6. Erst wenn ich das Passwort eingegeben habe, werden die nächsten 5 Minuten des Windows Ladevorgangs fortgesetzt.

oder

1. PC anschalten
2. 10 Minuten warten, bis er hochgefahren ist.
3. Windows L drücken
4. Kaffee trinken gehen
etc

So soll es nach Programmierung des Programms laufen:

1. PC anschalten
2. Trinken gehen
3. Während ich afk bin, bootet der PC weiter
4. Wenn er bei Windows angekommen ist, wird mein Passworttool gestartet.
5. Während das PASSWORT EINGEBEN Fenster auf dem Bildschirm ist, lädt der PC im Hintergrund weiter.
6. Kinder kommen
7. Kinder sehen PASSWORT EINGEBEN
8. Kinder gehen weg
9. Ich komme zurück
10. Ich gebe das Passwort ein und schon ist er fertig gebootet, ich musste nicht warten.

Und wer den Sin immernoch nicht verstanden hat oder sich nichts drunter vorstellen kann, ich hab mal eine alte BETA davon (hoffe sie klappt noch), die ich mit einer anderen Sprache (AHK) gebaut habe, in den Anhang gesteckt. Damit bin ich allerdings nicht zufrieden.
Das Passwort für diese BETA dort lautet PASSWORT
im Tray kann man das ändern etc.


So, ich hoffe nach dieser ausführlichen Ausschüttung über mein Privat Leben seid ihr nun endlich zufrieden und könnt mir eine passende Antwort geben.
@ gabneo: ja, mach ich, danke.

Mackhack 21. Sep 2007 23:14

Re: Fenster verstecken
 
Ich hab nicht alles gelesen aber wie waere es mit dem Bildschirmschoner und Passwort?

Oder der Funktion MSDN-Library durchsuchenGetLastInputInfo

fortuneNext 22. Sep 2007 08:00

Re: Fenster verstecken
 
Naja, der würde dann ja regelmäßig kommen...
Aber das mit LastInputInfo ist nützlich, danke :)

@ Before:
Gibt es denn überhaupt eine elegante Möglichkeit, Fensterhandles zu ermitteln? Das Problem ist ja, ich kann ja weder den Dateinamen noch sonst was spezifizieren, es muss ja geloopt werden, sodass einfach alles versteckt wird...

gabneo 22. Sep 2007 11:43

Re: Fenster verstecken
 
Hi,
danke für die Infos. Ich möchte nur verstehen worum es grundlegend geht, und mit den Infos kann ich was anfangen. Vielleicht hilft dir dieser Code, mit dem ich mal ermittelt habe welche Prozesse alle laufen, in dem pos vergleich werden System-Prozesse aussortiert (hat keine Anforderung auf Vollständigkeit):

Delphi-Quellcode:
procedure m;
var SHandle:THandle; Continue:boolean; ProcEntry:ProcessEntry32; s:tstringlist; i:integer;
begin
s:=tstringlist.Create;
s.Sorted:=true;
shandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
ProcEntry.dwSize := Sizeof(ProcEntry);
  Continue := Process32First(SHandle, ProcEntry);
  while Continue do
   begin
    if (pos('|'+lowercase(procentry.szExeFile)+'|','|rundll32.exe|msrtmon.exe|lsm.exe|fdm.exe|dwm.exe|taskmgr.exe@|explorer.exe|csrss.exe|wininit.exe|lsass.exe|slsvc.exe|spoolsv.exe|svchost.exe|system|[system process]|smss.exe|winlogon.exe|searchfilterhost.exe|')<1) and (pos('|'+lowercase(procentry.szExeFile)+'|','|searchindexer.exe|searchprotocolhost.exe|services.exe|project1.exe')<1) then s.Add(procentry.szExeFile);
    Continue := Process32Next(SHandle, ProcEntry);
  end;
  CloseHandle(SHandle);
 //try for i:=0 to s.Count do irgendwas except end;
end;
Hoffe das hilft dir schonmal, denn dann weißt du welche Programme alle aktiv sind.
greez
gabneo

Matze 22. Sep 2007 16:04

Re: Fenster verstecken
 
Nun habe ich dein Problem verstanden. Schreibe doch eine Konsolenanwendung (evtl. geht das auch mit einer Batch-Datei), die im Autostart untergebracht ist und nichts anders macht, als Win+L an Windows zu senden und sich dann wieder zu beenden.
Das wäre die sauberste und somit sicherste Möglichkeit (auch wenn das bei dir im Hintergrund steht) und simpelst in der Realisierung. :)

gabneo 22. Sep 2007 19:31

Re: Fenster verstecken
 
da kann ich matze nur zustimmen!

fortuneNext 24. Sep 2007 08:15

Re: Fenster verstecken
 
Hmmm, leuchtet ein :idea:
Ich werd mal schauen was vom beiden ich mach, bin erstmal ne Woche im Urlaub, melde mich dann später :-D
Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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