![]() |
Problem mit RunOnce
Hi @ all.
Folgendes: Ich schreibe derzeit an einem Sicherheitsprogramm. Dieses soll sich (nach dem Anmeldebildschirm) als allererstes Öfnnen und Windows soll sämtliche anderen Programme erst dann laden, wenn das Passwort richtig ist. Das Programm beendet sich aber nicht, wenn das PW richtig ist, sondern geht in den SysTray. Windows scheint das aber nicht zu akzeptieren. Erst wenn ich das Programm vollständig schließe läuft Windows weiter. Kann ich Windows nicht irgendeine Message schicken, dass er mit der Bearbeitung der Autostarteinträge fortfahren kann? C ya! |
Re: Problem mit RunOnce
Für Sicherheitsprogramme solltest du (zumindest unter 2000/XP) die GINA modifizieren. Assarbard hat dazu mal was gemacht, such mal danach.
|
Re: Problem mit RunOnce
Zitat:
Das wurde mir schon öfters gesagt, aber löst das auch mein Problem? Derzeit funktioniert alles, ohne in irgendwelchen Systemdateien herumzueditieren (bis auf die Registry). C ya! |
Re: Problem mit RunOnce
Mach doch zwei Programm daraus:
- Anmelde Bildschirm Programm - SysTray Programm |
Re: Problem mit RunOnce
Zitat:
Ich hab da grad was entdeckt... ob ich mein Problem gelöst kriege, wenn ich mein Programm nicht mit RunOnce sondern mit RunServices starte? Werd's gleich mal probieren und mich dann wieder melden. C ya! |
Re: Problem mit RunOnce
Zitat:
Wie hast du es denn geschaft Windows praktisch anzuhalten? :shock: |
Re: Problem mit RunOnce
Zitat:
Wenn man ein Programm über RunOnce startet, wartet Windows (leider) so lange, bis das Programm beendet ist. Es soll aber nicht beendet werden, denn es geht in den SysTray. Nun würde ich gern wissen, ob ich Windows eine Message schicken kann, dass es weitermachen soll. C ya! PS: Das starten über RunServices hat nichts gebracht. |
Re: Problem mit RunOnce
Hi,
wie wärs' wenn du ein kleines Proggi machen würdest, das nur dein Hauptprog. aufruft und sich dann beendet? Ratte |
Re: Problem mit RunOnce
Zitat:
Da mir auch nix bessres eingefallen ist, hab ich das nun auch so gemacht... Eine Frage: Ich komprimier meine Programme immer mit ASPack, weil das recht sicher ist und sehr gut komprimiert... allerdings ist das "Restarter"-Programm trotzdem noch 132 Kb groß... kann ich irgendwie Delphi-Runtime-DLLs auslagern und die in das Verzeichnis legen? Da sind nun 3 Delphi-Progs in denen die Runtimes stecken... eine Runtime würde doch sicher reichen, oder? Wie mach ich das ^^ ? C Ya! |
Re: Problem mit RunOnce
Für's starten könntest du ein Kommandozeilenproggi nehmen. Das ist kleiner.
Ratte |
Re: Problem mit RunOnce
Zitat:
Ich frage, weil ich ein Programm habe, bei dem das auch sehr praktisch wäre mit dem warten... |
Re: Problem mit RunOnce
Es gibt da noch ne art von 'minimal' Delphi-Programmen:
Du erstellst mit z.B. Notepad eine textdatei speicherst diese, und gibst ihr die endung .dpr. Dieses Delphi-'Projekt' öffnest du dann mit Delphi und schreibst folgendes rein:
Delphi-Quellcode:
(Wobei x dem dateinamen entspricht)
program x;
begin end. Zwischen begin und end fügst du dann den code ein, der das hauptprogramm startet, und solange wartet, bis windows 'gestartet' werden soll. Diese Andwendung hat dann kein fenster, sondern schwirrt nur als prozess rum. Wenn du nicht zu viele dateien einbindest, dürfte dein programm relativ klein sein. ciao, Philipp |
Re: Problem mit RunOnce
Zitat:
|
Re: Problem mit RunOnce
Zitat:
|
Re: Problem mit RunOnce
Zitat:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} // <- löschen und da kommt kein Fenster mehr ;) uses SysUtils; begin { TODO -oUser -cConsole Main : Insert code here } end. |
Re: Problem mit RunOnce
Hi.
Ich hab mal den Tipp mit dem "Miniprogramm" benutzt... allerdings habe ich folgende Uses:
Code:
... und schon wird das Programm riesig (nur 9 KB kleiner als vorher)... aber ich kann nicht drauf verzichten!
uses
ShellAPI, StdCtrls, Windows, Messages, SysUtils, Dialogs; Kann man das Konsolenprogramm wirklich problemlos unter jedem Windows verwenden etc.? Bin da etwas skeptisch ^^. Werd das nachher mal versuchen... C ya! |
Re: Problem mit RunOnce
Brauchst du die Dialogs.pas? Messageboxen kannst du auch mit der Windows.pas erzeugen. Und brauchst du die SysUtils.pas? Die paar Funktionen, die man bräuchte (IntToStr, StrToInt) kann man sich auch schnell selber mit den Pascal Funktionen aus der System.pas schreiben. Und wozu StdCtrs? ist doch eine Konsolen-Anwendung. Was willst du da mit Buttons und Edits?
|
Re: Problem mit RunOnce
Zitat:
Es ist schön, dass man das kann :D . Aber ich habe nicht mal den Funken eines Schimmers einer Ahnung wie das zu bewerkstelligen ist :stupid: . SysUtils verwende ich für ExtractFilePath. Dialogs für MessageDlg. C ya. PS: StdCtrls hatte ich tatsächlich vergessen herauszunehmen. Danke. |
Re: Problem mit RunOnce
ExctractFilepath:
Delphi-Quellcode:
MesasageDlg:
////////////////////////////////////////////////////////////////////////////////
// Procedure : CutFilename // Comment : ExtractFilepath function CutFilename(s: string): string; var i: integer; begin result := s; for i := length(s) downto 1 do // Von hinten den Backslash suchen. Wenn gefunden alles bis inkl. Backslash kopieren if s[i] = '\' then begin result := copy(s, 1, i); // Nach dem ersten Backslash beenden break; end; end;
Delphi-Quellcode:
Messagebox(Handle, 'mein Text', 'Meine Caption', MB_ICONYESNO or MB_ICONQUESTION);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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