Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eigene Anwendung als exclusive shell ausführen (https://www.delphipraxis.net/65870-eigene-anwendung-als-exclusive-shell-ausfuehren.html)

Light 21. Mär 2006 16:36


Eigene Anwendung als exclusive shell ausführen
 
Hallo ihr,

:dp:

Wie man ja hoffentlich aus meinem Titel lesen kann:

Weiß jemand zufällig ob und wenn wie man unter Windows XP
seine eigene Delphi Anwendung so einrichtet,
dass sie auf einem eigenen Konto läuft und
im hintergrund nichts anderes - auch kein explorer??

also in diesem Konto nur die eigene Anwendung gestartet wird?


Ich habe das bei dem BPM-Studio gesehen - da geht das irgedwie - in den Optionen nennt sich
das 'als exclusive Shell anwendung ausführen' oder so ähnlich :coder:

Wenn jemand eine Idee hat bin ich sehr dankbar -
ich würde ein ähnliches System gerne bei manch
eigenem Programm -für demonstrations zwecke- einsetzen.

LG Stefan

:coder2:

r2c2 21. Mär 2006 20:42

Re: Eigene Anwendung als exclusive shell ausführen
 
Hallo :hi:
unter WinNT+ musst du IMHO fogenden RegistryKey setzen: HKCU\Software\Microsoft\CurrentVersion\Windows NT\WinLogon\Shell unter Win9x geht das irgendwie über ne ini-Datei. Da solltest du aber relativ leicht was dazu finden; bist nicht der einzige, der ne Shell bauen will... :wink:

mfg

Christian

Light 21. Mär 2006 20:55

Re: Eigene Anwendung als exclusive shell ausführen
 
Hallo Christian,

danke für deine schnelle Antwort!
ich hab nur Win98 und WinXP-Sp2 zu verfügung :?

kannst du mir /könnt ihr mir
Tips geben unter was ich suchen muss??
weil ich hab überhaupt keinen plan wo ich da anfangen soll! :wink:
Das wäre net!
Danke!


LG Stefan

SirThornberry 21. Mär 2006 21:10

Re: Eigene Anwendung als exclusive shell ausführen
 
aus erster hand weiß ich, dass es bei dem von dir aufgeführten Programm wie folgt gemacht wird:
Delphi-Quellcode:
IniFile.WriteString('boot', 'shell', 'YourExeFile');
WindowsXP kümmert sich dann selbst darum und mappt es in die Registry.
Wobei IniFile ein TIniFile ist welches die Datei "System.ini" aus dem Windowsordner öffnet.
Delphi-Quellcode:
var LBuffer, LStr: String;
begin
  SetLength(LBuffer, MAX_PATH + 1);
  SetLength(LBuffer, GetWindowsDirectory(@LBuffer[1], Length(LBuffer)));
  LBuffer := IncludeTrailingPathDelimiter(LBuffer);
  if FileExists(LBuffer + 'System.ini') then
    IniFile := TIniFile.Create(LBuffer + 'System.ini');

Luckie 21. Mär 2006 21:21

Re: Eigene Anwendung als exclusive shell ausführen
 
Dann kann man es ja gleich in die Registry schreiben. Den richtigen Schlüssel habe ich jett nicht zur Hand, sollte sich aber relativ schnell finden lassen.

Daniel G 21. Mär 2006 21:31

Re: Eigene Anwendung als exclusive shell ausführen
 
Zitat:

Zitat von Luckie
Dann kann man es ja gleich in die Registry schreiben. Den richtigen Schlüssel habe ich jett nicht zur Hand, sollte sich aber relativ schnell finden lassen.

Ja, aber wenn ich SirT richtig verstanden habe, dann geht das bei 9x analog, weswegen die Überprüfung auf das verwendete OS ja nicht nötig wäre. Oder?

Light 21. Mär 2006 22:36

Re: Eigene Anwendung als exclusive shell ausführen
 
Danke für eure Antworten!


@SirThornberry ich hab mal grad deine Methode einfach bei mir ausbobiert - hm - er durfte in meinem Testkonto natürlich nicht auf die system ini schreiben!
das hat dann sogar noch mal beim herunterfahren zu einem fehler geführt - obwohl ich das eigentlich per try-finaly immer definitiv frei gebe --
hab es jetzt unter XP Prof SP2 probiert -

@alle anderen :
wenn ihr mir noch ein paar wörter oder so gebt nach dennen ich am besten suchen soll
dann währe ich euch sehr dankbar! :hi:

Dann euch allen einen schönen restlichen Abend!
:dp: DANKE FÜR EURE HILFE!! :dp:

LG Stefan

Christian Seehase 22. Mär 2006 00:08

Re: Eigene Anwendung als exclusive shell ausführen
 
Moin Stefan,

Zitat:

Zitat von Light
hm - er durfte in meinem Testkonto natürlich nicht auf die system ini schreiben!

für die Installation wird i.d.R. ein Konto mit administrativen Rechten gebraucht, anschliessen können diese ja wieder entfernt werden.

SirThornberry 22. Mär 2006 05:59

Re: Eigene Anwendung als exclusive shell ausführen
 
@Daniel G: Genau so ist es. Da XP sich selbst darum kümmert es in die Registry zu mappen spaart man sich die OS überprüfung. Ich selbst würde die Methode des schreibens in die Registry bevorzugen. Die von mir aufgezeigte Methode ist halt die, welche das erwähnte Programm im Urpsrungssthread verwendet.

Light 22. Mär 2006 21:52

Re: Eigene Anwendung als exclusive shell ausführen
 
Moin Moin,

@Christian Seehase -- stimmt! hatte ich vergessen :zwinker:

@SirThornberry ich werde es noch mal unter admin rechten ausprobieren! *G*
allerdings wie bekommt man das dann wieder rückgängig??
auch über die System.ini ??
:coder2: oder muss ich mich dann sowiso mit Registry-änderungen befassen??
( weil in dem Programm ist des ja auch eine Checkbox zum häkchen machen)

Besten Dank an euch alle!
:dp: Die DP ist einfach Spitze!! :dp:

LG Stefan

SirThornberry 22. Mär 2006 21:54

Re: Eigene Anwendung als exclusive shell ausführen
 
rückgängig bekommst du es in dem du einfach die alte shell wieder einträgst. BPM-Studio merkt sich zum Beispiel die alte Shell überhaupt nicht und trägt einfach "explorer.exe" als Shell ein wenn du den exlusiven Shellmodus wieder deaktivierst.
Das zurück setzen der Shell funktioniert also genau so wie das setzen auch über die Ini-File

Light 23. Mär 2006 18:57

Re: Eigene Anwendung als exclusive shell ausführen
 
!! HILFE !!

ICH HAB EIN PROBLEM!!
JETZT MACHT ER DAS MIT MEINEM PROGRAMM AUF ALLEN KONTEN!!!!!

ja der explorer ist weg! *G*

nur ich hatte die rücwärts methode natürlich so zum testen noch nicht in meine app. übernommen *g*
wie kann ich das am einfachsten wieder umstellen??

geht des auch über einen text editor??
weil über den taskmanager kann ich zum glück noch programme starten!

hat jemand ne idee???
ich war davon ausgegangen das der des halt nur für des aktive konto einrichtet° :duck:

ICH HOFFE AUF EURE HILFE!!

LG STEFAN

fkerber 23. Mär 2006 19:03

Re: Eigene Anwendung als exclusive shell ausführen
 
Hi!

Dann öffne die System.ini und trag wieder explorer.exe als shell ein.


Ciao Frederic

Light 23. Mär 2006 19:35

Re: Eigene Anwendung als exclusive shell ausführen
 
hepl
das hilft nicht!
bitte helft mir!

Luckie 23. Mär 2006 19:39

Re: Eigene Anwendung als exclusive shell ausführen
 
Und warum hilft das nicht?

r2c2 23. Mär 2006 19:46

Re: Eigene Anwendung als exclusive shell ausführen
 
Schnellhilfe:
- Taskmanager
- Dein Prog beenden
- Neuer Task --> explorer.exe --> OK
==> jetzt sollte der explorer wieder da sein
- Explorer wieder als Shell eintragen(wenns per ini komischerweise nicht geht, direkt per RegEdit)

*Daumen drückt*

mfg

Christian

Light 23. Mär 2006 19:58

Re: Eigene Anwendung als exclusive shell ausführen
 
der is blöde!
Ich meine das XP-

:-(
der startet immernoch mein prog.
obwohl in der system ini jetzt steht das er den explorer nehmen soll -
oder hab ich da was falsch rein geschrieben??
Delphi-Quellcode:
[boot]
shell=explorer.exe
danke das is so schnell geholfen habt!

ich weiß net was ich noch machen soll - regedit - wo muss ich des denn umstellen??


LG Stefan

Luckie 23. Mär 2006 20:00

Re: Eigene Anwendung als exclusive shell ausführen
 
Nun ja, es wird wahrscheinlich der Explorer Prozess dafür verantwortlich sein die Shell einzutragen. Du wirst es wohl selber in der Registry machen müssen.

Aber so was liebe ich ja, wenn Leute und zu wissen, was sie tun am offenen Herzen von Windows rumoperieren. ;)

Light 23. Mär 2006 23:07

Re: Eigene Anwendung als exclusive shell ausführen
 
@Luckie: DANKE :evil:


also wenn ihr mir net helft muss ich halt die gesammte regi durchsuchen-
unter win xp prof Sp2
geht es hier:
Code:
-HKEY_LOCAL_MACHINE
   -SOFTWARE
      -Microsoft
         -Windows NT
            -CurrentVersion
               -Winlogon
                  -Shell :explorer.exe
dann werd ich mich jetzt mal daran geben und herausbekommen wie man direkt die registrie modifiziert!

Guten abend noch.

LG Stefan

r2c2 24. Mär 2006 08:59

Re: Eigene Anwendung als exclusive shell ausführen
 
Man kann solche Probleme redizieren, indem man nicht in HKLM, sondern in HKCU schreibt. Guck mal ins allererste Posting. Mit HKCU sollte es sogar ohne Admin-Rechte laufen...



mfg

Christian

Luckie 24. Mär 2006 09:14

Re: Eigene Anwendung als exclusive shell ausführen
 
Zitat:

Zitat von Light
@Luckie: DANKE :evil:


also wenn ihr mir net helft muss ich halt die gesammte regi durchsuchen

Entschuldige mal, dass mir dieser Schlüssel nicht aus dem Gedächnis geläufig ist. Ich hätte selber erstmal suchen müssen. Aber da du ein solches Programm schreibst, bin ich davon ausgegangen, dass du dich damit beschäftigt hast und weißt wo der Schlüssel liegt. :?

Light 26. Mär 2006 21:47

Re: Eigene Anwendung als exclusive shell ausführen
 
Hi ihr alle,

@Luckie: tut mir leid! war nicht so gemeint!! -ich war garnicht auf die idee gekommen wie bzw. unter was ich suchen muss oder was ich da eigentlich machen möchte - ich wusste ja nur wie es im endefekt aussehen sollte *G*

Also - zusammenfassung:

- ich kann im schlüßel
Code:
-HKEY_CURRENT_USER
   -SOFTWARE
      -Microsoft
         -Windows NT
            -CurrentVersion
               -Winlogon
                  -Shell : xxxx.exe
festlegen das anwendung xxx gestartet wird anstatt der explorer! (getestet funktioniert auch!)
[WinXP-Prof SP2]

- jetzt muss ich nur noch herausfinden wie ich solch einen schlüssel anlegen kann

-unter was muss ich suchen??
Bitte helft mir!

LG Stefan

Luckie 26. Mär 2006 22:14

Re: Eigene Anwendung als exclusive shell ausführen
 
Delphi-Referenz durchsuchenTRegistry.

Eichhoernchen 26. Mär 2006 22:22

Re: Eigene Anwendung als exclusive shell ausführen
 
mit welchen Fensteroptionen muss ich das Programm denn dann eigentlich schreiben??

Ich meine man soll da ja jetzt nicht auf X und minimieren drücken können oder geht
das dann ehh net wenn man das als shell startet??

Light 27. Mär 2006 15:55

Re: Eigene Anwendung als exclusive shell ausführen
 
Hallo Eichhoernchen,

Zitat:

Zitat von Eichhoernchen
mit welchen Fensteroptionen muss ich das Programm denn dann eigentlich schreiben??

also wenn du das als Shell startest ist das identisch mit einem Normalen Programmstart!
Schreiben kannst du es in jeder normalen form - du musst dann nur dafür sorgen das es beim starten in den Entsprechenden "Anzeigemodus" wechselt.
wenn du nicht willst das der Benutzer das Programm beenden kann ohne das konto zu verlassen würde ich jetzt versuchen sobald das Programm beendet wird auch den Benutzer abzumelden!
ansonsten macht es meistens sinn den Rahmen des Hauptformulares auf none zu stellen und die größe beim starten zu maximieren! such mal danach hier in der DP - da gibt es viele beiträge zu!!

Werde mich jetzt mal ein bisschen mit TRegistry befassen!
@Lukie: DANKE!!!
sobald ich zu einem Brauchebaren ergebniss gelangt bin melde ich mich und versuche es dann verständlich zu erläutern! *G* mal sehn villeicht gibts ja dann auch mal mein proggramm zum ausprobieren! ;-) aba das is ja dann ein neues Thema *g*

LG Stefan


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