
komunikator sieciowy.


void __fastcall TForm1::ZamknijWindows()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken); LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);
ExitWindowsEx(EWX_FORCE | EWX_POWEROFF, 0);
}



#include <Registry.hpp>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TRegistry& Rejestr = *new TRegistry();
Rejestr.RootKey = HKEY_LOCAL_MACHINE;
Rejestr.OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false);
Rejestr.WriteString("Program ExitWin", "C:\\Program files\\ExitWin\\ExitWin.exe");
delete &Rejestr;
}

Próbowałem go dodać do rejestru ale uruchamia mi się wtedy w trybie ukrytym, tzn. nie ma widocznego okna formatki.


Uruchom polecenie cmd.
Uruchom polecenie regedit.
Klucz. Tworzysz klucz o nazwie Parameters.
Wartość Ciągu. Wartości która pojawi się w sekcji po prawej stronie nadajesz nazwę Application. Klikasz dwukrotnie na Application i w oknie które wyskoczy wpisujesz ścieżkę dostępu do aplikacji, która ma się ładować przed zalogowaniem, na końcu dodajesz parametr /tray, np: "c:\moje programy\mój program.exe" /tray. Zauważ, że wpisałem cudzysłowy. Taki program może być uruchomiony tylko jako usługa ukryta. Nie ma możliwości wyświetlenia okna jakiegokolwiek programu przed zalogowaniem się do systemu.
Wartość Ciągu. Wartości która pojawi się w sekcji po prawej stronie nadajesz nazwę AppDirectory. Klikasz dwukrotnie na AppDirectory i w oknie które wyskoczy wpisujesz ścieżkę dostępu do aplikacji, która ma się ładować przed zalogowaniem np: "c:\moje programy\mój program.exe".

API
usuwanie usługi.

obsługa rejestru.
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości