AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Programm bei Systemstart ausführen wie chkdsk?
Thema durchsuchen
Ansicht
Themen-Optionen

Programm bei Systemstart ausführen wie chkdsk?

Ein Thema von jus · begonnen am 1. Aug 2012 · letzter Beitrag vom 23. Apr 2015
Antwort Antwort
Seite 1 von 3  1 23      
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#1

Programm bei Systemstart ausführen wie chkdsk?

  Alt 1. Aug 2012, 21:43
Hallo,

Man kann ja in Windows das Festplattentool chkdsk so einstellen, dass es gestartet wird, bevor überhaupt der Windowsanmeldeschirm kommt. Das Programm scheint auch einen Konsolentext auszugeben.
Ich frage mich wie kann man sowas machen?

Lg,
jus
  Mit Zitat antworten Zitat
Dawn87

Registriert seit: 15. Feb 2007
Ort: Lüdenscheid
189 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 1. Aug 2012, 21:47
Für solche Anwendungen ist Delphi nicht das Mittel der Wahl.

Du musst auf die Native Api zurückgreifen um solche Programme zu schreiben. Auch einige PE-Flags der EXE sind bei nativen Anwendungen anders gesetzt als bei normalen Windows-Anwendungen.

http://technet.microsoft.com/en-us/s.../bb897447.aspx

Möglicherweise bringt Dich hier Visual C im Zusammenhang mit dem DDK (Driver Developement Kit) weiter.

Grüße
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 1. Aug 2012, 22:40
Schau doch mal hier herein.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 2. Aug 2012, 09:26
Registry - Runonce

The Runonce key allows you to run an application on the next boot. Once it runs, the Value is removed.

Location:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\RunOnce

Values: Any name. Data should be the path to application you want to run.

Value Type: String
  Mit Zitat antworten Zitat
Dawn87

Registriert seit: 15. Feb 2007
Ort: Lüdenscheid
189 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 2. Aug 2012, 09:54
Anwendungen die im RunOnce-Schlüssel stehen werden aber auch erst ausgeführt, nachdem sich ein Benutzer bei Windows angemeldet hat.

Was jus möchte ist eine Anwendung auszuführen bevor die Windows-Oberfläche überhaupt angezeigt wird. Bei Windows XP gab es z.B. eine Konsole mit hellblauem Hintergrund. Die hat man immer dann gesehen wenn chkdsk oder ein Partitionierungsprogramm wie Partition Magic ausgeführt wurde.

Diese Programme sind anders aufgebaut als herkömmliche, da diese sich der Native Api bedienen. Da zu dem Boot-Zeitpunkt noch einiges an Funktionen nicht angesprochen werden kann, wird man auch nichts anderes benutzen können.
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 2. Aug 2012, 09:56
@hathor: Das ist nicht das, wonach jus gefragt hat. Da ist es nämlich schon zu spät.

@jus: Gibt es einen bestimmten Grund, warum du das erfahren möchtest? Dawn87 hat hier aber in großen Teilen Recht: Anwendungen wie chkdsk sind sogennante Native NT Anwendungen, welche nicht die Windows API verwenden, sondern die darunterliegende API des Kernels (für Usermodeanwendungen bereitgestellt durch ntdll.dll). Dort ist es für einen normalen Windows Entwickler sehr ungewohnt, da sich die API doch teilweise stark unterscheidet.
Eine Anwendung, welche derart früh (nach dem Start von smss.exe und vor dem Start der Subsysteme) gestartet werden möchte, muss sich in den passenden Registry-Key eintragen und eben eine native Anwendung sein (sonst könnte es zum Bluescreen kommen ).

@Dawn87: Delphi ist hier nicht geeignet, aber Free Pascal befindet sich dank mir auf gutem Weg dorthin

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons

Geändert von JamesTKirk ( 2. Aug 2012 um 09:56 Uhr) Grund: Nickname korrigiert
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 6. Aug 2012, 01:09
Vielen Dank für eure antworten!
@hathor: Das ist nicht das, wonach jus gefragt hat. Da ist es nämlich schon zu spät.

@jus: Gibt es einen bestimmten Grund, warum du das erfahren möchtest? Dawn87 hat hier aber in großen Teilen Recht: Anwendungen wie chkdsk sind sogennante Native NT Anwendungen, welche nicht die Windows API verwenden, sondern die darunterliegende API des Kernels (für Usermodeanwendungen bereitgestellt durch ntdll.dll). Dort ist es für einen normalen Windows Entwickler sehr ungewohnt, da sich die API doch teilweise stark unterscheidet.
Eine Anwendung, welche derart früh (nach dem Start von smss.exe und vor dem Start der Subsysteme) gestartet werden möchte, muss sich in den passenden Registry-Key eintragen und eben eine native Anwendung sein (sonst könnte es zum Bluescreen kommen ).

@Dawn87: Delphi ist hier nicht geeignet, aber Free Pascal befindet sich dank mir auf gutem Weg dorthin

Gruß,
Sven
Einen bestimmten Grund gibt es eigentlich nicht, es war einfach interessenshalber wie man sowas machen kann. Das mit native API scheint mir vom Aufwand zu sehr hoch sein. Interessant ist aber der weg mit freepascal schon.

Lg,
Jus
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#8

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 6. Aug 2012, 01:20
FP wird da auch nicht viel dran drehen können, dass man eine völlig andere Umgebung als gewohnt vor sich hat. Ich denke mal, dass es hier eher darum geht, dass man es überhaupt in einer Pascal-Sprache bewerkstelligen kann. Der Aufwand wird am Ende wohl nahezu der selbe sein. Bei sowas merkt man immer wieder, dass Delphi (bzw. die VCL) ein evtl. doch zu weiches Kissen im Werdegang von manchem ist
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 6. Aug 2012, 11:17
FP wird da auch nicht viel dran drehen können, dass man eine völlig andere Umgebung als gewohnt vor sich hat. Ich denke mal, dass es hier eher darum geht, dass man es überhaupt in einer Pascal-Sprache bewerkstelligen kann. Der Aufwand wird am Ende wohl nahezu der selbe sein. Bei sowas merkt man immer wieder, dass Delphi (bzw. die VCL) ein evtl. doch zu weiches Kissen im Werdegang von manchem ist
Vergiss nicht, dass Free Pascal schon zahlreiche Plattformen erfolgreich abstrahiert hat. Unter anderem DOS, Linux, Windows, Mac OS (Classic!), Amiga und OS/2. Diese unterscheiden sich hinsichtlich ihrer API schon immens und die Native NT API ist hier in recht guter Gesellschaft, auch wenn sie zuerst einmal ungewohnt (und auch noch dazu nur spärlich dokumentiert) ist.

Mein Port bettet sich ganz brav in die Abstraktionsschicht von FPC ein und so kannst du zum Beispiel Dateiein-/ausgabe, FindFirst/-Next/-Close und so weiter ohne Probleme bereits verwenden. Die einzigen (großen) Grundfunktionen, die noch fehlen sind Threading und "Anzapfung" des Exceptionhandlings von NT (welches zum Glück von der Win32 API auch einfach nur durchgereicht wird zur NT API ).

Und um den Entwicklern das Schreiben von Startupanwendungen zu erleichtern, möchte ich auch die Units CRT, Video, Keyboard, Mouse und wenn möglich auch Graphics und Sockets implementieren. Da der Native NT Port allerdings nur eines von vielen meiner Projekte ist, geht das aber nur recht gemächlich voran

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Programm bei Systemstart ausführen wie chkdsk?

  Alt 6. Aug 2012, 11:24
Es gibt inzwischen ein NativeNT-Target für FPC? Das ist ja absolut genial

Ich erinnere mich noch, wie ich vor einigen Jahren sowas angefangen hatte, dann aber aus Bequemlichkeit doch auf C ausgewichen bin.

Ein megariesengroßes Dankeschön (und ich gehöre nicht zu den Menschen, die zu Superlativen neigen)!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz