Programm aus einer DLL sichtbar starten
Programm aus einer DLL sichtbar starten
Hallo zusammen,
ich schreibe gerade eine kleine dll die als UDF in Firebird eingebunden werden soll. Jetzt will ich aus dieser DLL Winmerge starten und der Anwendung zwei Texte zum Vergleichen übergeben. Das klappt soweit auch, nur dass Winmerge immer für den User SYSTEM unsichtbar gestartet wird. Das Verhalten ist gleich, egal ob ich shell_execute oder WinExec verwende. Betriebssystem ist Win7 64 Bit.
Habt Ihr eine Idee?
Viele Grüße, Andreas
ich schreibe gerade eine kleine dll die als UDF in Firebird eingebunden werden soll. Jetzt will ich aus dieser DLL Winmerge starten und der Anwendung zwei Texte zum Vergleichen übergeben. Das klappt soweit auch, nur dass Winmerge immer für den User SYSTEM unsichtbar gestartet wird. Das Verhalten ist gleich, egal ob ich shell_execute oder WinExec verwende. Betriebssystem ist Win7 64 Bit.
Habt Ihr eine Idee?
Viele Grüße, Andreas
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: Programm aus einer DLL sichtbar starten
Ja, die habe ich tatsächlich: Poste Quellcode. ShellExecute hat diverse Parameter mit denen man das Anzeigeverhalten beeinflussen kann.andikad hat geschrieben:(...)
Habt Ihr eine Idee?
(...)
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
Re: Programm aus einer DLL sichtbar starten
Der Aufruf sieht so aus:Antrepolit hat geschrieben: Ja, die habe ich tatsächlich: Poste Quellcode. ShellExecute hat diverse Parameter mit denen man das Anzeigeverhalten beeinflussen kann.
Code: Alles auswählen
WMArgs := format('/e %s %s', ['C:\Temp\LoadL.sql', 'C:\Temp\LoadR.sql']);
ShellExecute(0, 'open', apppath, PChar(WMArgs), nil, SW_NORMAL);
Viele Grüße, Andreas
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: Programm aus einer DLL sichtbar starten
Oh, das habe ich überlesen. Als User 'System' solltest du gar kein WinMerge starten. 'System' führt nämlich die wichtigen Sachen aus, und da hat keine GUI-Anwendung was zu suchen. Darf man generell fragen, was du damit vor hast?
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Programm aus einer DLL sichtbar starten
In dem Fall könnte man die Datenbank doch als "normalen" User starten?Antrepolit hat geschrieben:Oh, das habe ich überlesen. Als User 'System' solltest du gar kein WinMerge starten. 'System' führt nämlich die wichtigen Sachen aus, und da hat keine GUI-Anwendung was zu suchen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Programm aus einer DLL sichtbar starten
Wir haben eine Webanwendung zum Synchronisieren von Datenbanken geschrieben und würde Inhalte gerne mit Winmerge vergleichen. Hatten wir schon in der Desktopversion und fanden es besser als verschiedene webbasierte Diff-Bibliotheken.Antrepolit hat geschrieben:Darf man generell fragen, was du damit vor hast?
Da ich keinen Weg gefunden habe, Winmerge von der Webanwendung aus zu starten, wollte ich jetzt mal den Weg über die Firebird-UDF probieren. In der Umgebung ist Winmerge auch nicht auf dem Client, sondern auf dem gleichen Server wie Firebird installiert. Könnte das Problem hier auch sein, dass die Anforderung ja vom Client ausgeht?
Habt Ihr eine andere Idee, wie sich das umsetzen ließe?
Viele Grüße, Andreas
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Programm aus einer DLL sichtbar starten
Wie soll denn der User auf WinMerge zugreifen?andikad hat geschrieben:Wir haben eine Webanwendung zum Synchronisieren von Datenbanken geschrieben und würde Inhalte gerne mit Winmerge vergleichen. Hatten wir schon in der Desktopversion und fanden es besser als verschiedene webbasierte Diff-Bibliotheken.
Da ich keinen Weg gefunden habe, Winmerge von der Webanwendung aus zu starten, wollte ich jetzt mal den Weg über die Firebird-UDF probieren. In der Umgebung ist Winmerge auch nicht auf dem Client, sondern auf dem gleichen Server wie Firebird installiert. Könnte das Problem hier auch sein, dass die Anforderung ja vom Client ausgeht?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Programm aus einer DLL sichtbar starten
Naja, Winmerge soll für den Benutzer mit den Vergleichsergebnissen sinchtbar geöffnet werden und auch bedienbar sein.Socke hat geschrieben: Wie soll denn der User auf WinMerge zugreifen?
Viele Grüße, Andreas
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Programm aus einer DLL sichtbar starten
Wenn der Benutzer die Webanwendung verwendet, kann er nicht auf WinMerge auf dem Server zugreifen. Es sei denn, du überträgst WinMerge per Bild/VNC/X-Protokoll etc.andikad hat geschrieben:Naja, Winmerge soll für den Benutzer mit den Vergleichsergebnissen sinchtbar geöffnet werden und auch bedienbar sein.Socke hat geschrieben: Wie soll denn der User auf WinMerge zugreifen?
Eine Alternative wäre: WinMerge auf den Clients installieren und über ein Browser-Plugin aufrufen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Programm aus einer DLL sichtbar starten
Ich würde mal createprocesasuser versuchen. Muss man aber irgendwie das korrekte Token finden (etwas Googlen nehme ich an)
Auch alle Files worauf Winmerge zugreift (und in besonders diejenige die es schreiben soll) mussen die korrekte Erlaubnisse haben.
Auch alle Files worauf Winmerge zugreift (und in besonders diejenige die es schreiben soll) mussen die korrekte Erlaubnisse haben.