Ich hab mir hier ein Programm gebastelt, welches sich beim Reboot von Linux von allein wieder starten soll.
Also dachte ich mir ich fange die "Linux" beenden Nachricht ab, und erstelle dann einen Link im Autostart der meine Anwendung wieder startet.
Das Abfangen hab ich hin bekommen stand irgendwo hier im Forum :
Code: Alles auswählen
(*
Linux beenden
*)
Procedure SigTermHandler(Signal: Integer); cdecl;
Begin
CreateLink('/home/corpsman/.kde/Autostart/wecker', paramstr(0), '');
End;
Initialization
Libc.signal(SigHup, @SigTermHandler);
Code: Alles auswählen
Function CreateLink(Linkname: String; LinkTarget, Param: String): Boolean;
Var
f: Textfile;
Begin
result := false;
If Not FileExists(Linkname + '.desktop') Then Begin
Try
assignfile(f, Linkname + '.desktop');
rewrite(f);
writeln(f, '[Desktop Entry]');
writeln(f, 'Comment[en_US]=');
writeln(f, 'Comment=');
writeln(f, 'Exec=' + linkTarget + ' ' + Param);
writeln(f, 'GenericName[en_US]=');
writeln(f, 'GenericName=');
writeln(f, 'Icon=exec');
writeln(f, 'MimeType=');
writeln(f, 'Name[en_US]=' + ExtractFileNameOnly(linkTarget));
writeln(f, 'Name=' + ExtractFileNameOnly(linkTarget));
writeln(f, 'Path=' + ExtractFilePath(LinkTarget));
writeln(f, 'StartupNotify=true');
writeln(f, 'Terminal=false');
writeln(f, 'TerminalOptions=');
writeln(f, 'Type=Application');
writeln(f, 'X-DBUS-ServiceName=');
writeln(f, 'X-DBUS-StartupType=');
writeln(f, 'X-KDE-SubstituteUID=false');
writeln(f, 'X-KDE-Username=');
writeln(f, 'X-Ubuntu-Gettext-Domain=desktop_kdebase');
closefile(f);
Finally
result := True;
End;
End;
End;
Jedes mal wenn der Link ausgeführt werden soll kommt die Nachricht die ich auch als Dateianhang mit angehängt habe.
Ich gehe davon aus , das es daran liegt das meine erstellte Datei nicht als "Executable" markiert ist, sicher bin ich mir allerdings nicht ..
Doch selbst wenn das der Grund sein sollte, ist mir nicht klar wie man die Datei als Executable markiert, also hier die Frage an euch, kann mir das jemand von euch zeigen ?