AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Prüfen ob Programm mit "runas" gestartet worden ist.
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen ob Programm mit "runas" gestartet worden ist.

Offene Frage von "jaenicke"
Ein Thema von freimatz · begonnen am 20. Nov 2020 · letzter Beitrag vom 20. Nov 2020
Antwort Antwort
Seite 1 von 2  1 2      
venice2
(Gast)

n/a Beiträge
 
#1

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 08:21
Du könntest eine SendMessage an das zweite Programm schicken.
Dieses liefert dir dann den status zurück ob es mit "runas" gestartet wurde oder nicht.

Das geht dann aber nur zwischen diesen beiden Programmen.

Delphi-Quellcode:
const
  WM_MYRUNASCHECK = WM_User + 10;

SendMessage(Programm2.Handle, WM_MYRUNASCHECK, WPARAM(True), 0);
In WM_MYRUNASCHECK (wParam) kannst du dann prüfen ob WPARAM(True) oder WPARAM(False) geschickt wurde.

WM_MYRUNASCHECK muss dann aber in beiden Programmen definiert sein.
Das eine schickt den Status das andere wertet ihn über wParam aus.

Geändert von venice2 (20. Nov 2020 um 09:10 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.530 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 09:14
Ich habe wohl Schwierigkeiten mich verständlich auszudrücken.
... den status zurück ob es mit "runas" gestartet wurde oder nicht.
Das ist mein Problem. Die Programme können jeweils selbst in ein Log schreiben.

Ich hätte gerne
Delphi-Quellcode:
function IsStartedWithRunas():Boolean;
begin
  ...
end;
und diese soll False liefern wenn das Programm normal gestartet wurde und True wenn mit "runas".
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.176 Beiträge
 
Delphi 12 Athens
 
#3

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 09:22
Ich habe wohl Schwierigkeiten mich verständlich auszudrücken.
Nein, du glaubst nur den Antworten nicht.

Es ist aber so: Diese Information gibt es nicht. Es gibt nur die Information, ob das Programm bestimmte Rechte und Parameter besitzt. Wie die Funktion zum Starten aufgerufen wurde, wird nirgends gespeichert.

Du kannst natürlich einen speziellen Parameter übergeben und auf den prüfen (ParamStr). Aber das heißt noch lange nicht, dass die Rechte, die du brauchst, vorhanden sind. Auch runas ist dafür keine Garantie!
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.785 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 09:26
Prgramm A legt wenn es Programm B mit runas startet im temp Verzeichnis eine Datei an.
Porgamm B schaut nach ob die Datei vorhanden ist - ist sie da
a) wird die Datei gelöscht und
b) weiß Programm B das es mit runas gestartet wurde.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.378 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 09:32
Beide Programme sind von dir, also kannst du die selbst anpassen.

Übergib beim runas doch einfach einen Parameter an das aufzurufende Programm. Diesen Parameter kannst du prüfen und weißt dann, ob es mit runas gestartet wurde.
Peter
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 09:35
Beide Programme sind von dir, also kannst du die selbst anpassen.

Übergib beim runas doch einfach einen Parameter an das aufzurufende Programm. Diesen Parameter kannst du prüfen und weißt dann, ob es mit runas gestartet wurde.
Danke
Sagte ich ihm schon.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.378 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 09:39
Beide Programme sind von dir, also kannst du die selbst anpassen.

Übergib beim runas doch einfach einen Parameter an das aufzurufende Programm. Diesen Parameter kannst du prüfen und weißt dann, ob es mit runas gestartet wurde.
Danke
Sagte ich ihm schon.
Ich finde das nicht. In deinen Beispielen schickst du Messages. Bei meinem Vorschlag wird beim Aufruf schon ein Parameter übergeben, der im Programm geprüft werden kann.
Falls du das doch irgendwo so vorgeschlagen hast, dann Asche auf mein Haupt und ich gehe meine Brille putzen.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.176 Beiträge
 
Delphi 12 Athens
 
#8

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 11:09
Trotzdem ist wichtig auch zu beachten, was ich oben zur Lösung mit einem Parameter geschrieben habe:
Du kannst natürlich einen speziellen Parameter übergeben und auf den prüfen (ParamStr). Aber das heißt noch lange nicht, dass die Rechte, die du brauchst, vorhanden sind. Auch runas ist dafür keine Garantie!
Das gilt natürlich für die anderen genannten Lösungen genauso (nur dass Messages oder temporäre Dateien unnötiger Mehraufwand sind, weil sie keinen Vorteil gegenüber einem Parameter haben).
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#9

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 11:16
Zitat:
Du kannst natürlich einen speziellen Parameter übergeben
Wann?
Mit shellexecute?

Zeig ihm doch ein Beispiel.

Und ich behaupte! Ob ich nun einen Parameter oder einen Message schicke ist gehüpft wie gesprungen.
Es muss nur in der 2 Anwendung ankommen.

Zitat:
weil sie keinen Vorteil gegenüber einem Parameter haben
Und ein Parameter keinen vorteil gegenüber SendMessage
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.176 Beiträge
 
Delphi 12 Athens
 
#10

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 12:31
Zitat:
weil sie keinen Vorteil gegenüber einem Parameter haben
Und ein Parameter keinen vorteil gegenüber SendMessage
Haben Parameter z.B. auch bei einer Kommandozeilenanwendung keinen Vorteil?

Um eine Nachricht zu senden musst du ein passendes Handle ermitteln und diese Nachricht dort dann auch empfangen und verarbeiten. Und die Nachricht darf nicht geschickt werden bevor das zweite Programm sie empfangen kann usw.
Einen Parameter kannst du mit einer Zeile abfragen und kannst ihn einfach mitgeben, das sind nur eine geänderte und eine neue Zeile Code und es funktioniert unabhängig von den sonstigen Gegebenheiten...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:51 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