AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Form aus DLL unsichtbar, wenn Programm per createprocess
Thema durchsuchen
Ansicht
Themen-Optionen

Form aus DLL unsichtbar, wenn Programm per createprocess

Ein Thema von stalkingwolf · begonnen am 6. Apr 2020 · letzter Beitrag vom 7. Apr 2020
Antwort Antwort
stalkingwolf

Registriert seit: 6. Mai 2011
518 Beiträge
 
#1

Form aus DLL unsichtbar, wenn Programm per createprocess

  Alt 6. Apr 2020, 16:17
Ok ich habe ein etwas merkwürdiges Problem. Ich hoffe ich kann das erklären.

Ich habe eine DLL entwickelt mit einer Form drin.
Starte ich ein Programm direkt aus dem Explorer welche die DLL lädt und die Form darin öffnet, dann wird diese korrekt angezeigt.
Die Form erhält unter Windows dann ein neues Icon in der Taskbar.

So starte ich aber nun das Programm welches die DLL eingebunden hat aus einem anderen Programm mit createprocess(), dann ist die Form unsichtbar aus der DLL und blockt das Programm.

Kurz Erklärung. Wir haben eine Art Launcher welche unsere anderen Programm durch Berechtigungen, Menüs etc. startet.
Dies geschieht durch

Code:
var
  SUInfo: TStartupInfo;
  ProcInfo: TProcessInformation;

FillChar(SUInfo, SizeOf(TStartupInfo), #0);
FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
with SUInfo do begin
  cb := SizeOf(SUInfo);
  dwFlags := STARTF_USESHOWWINDOW;
  wShowWindow := sw_hide;
end;

result := createprocess(
    nil,
    pchar(cmd),
    nil,
    nil,
    FALSE,
    NORMAL_PRIORITY_CLASS,
    nil,
    PChar(pfad),
    SUINFO, PROCINFO);
Ich habe den Eindruck das irgendwie auf einmal die Form der DLL nicht dem aufrufenden Programm, sondern dem Programm davor gehört.
Das Programm welches die DLL einbindet und die Form aufruft ist dann auch nicht mehr in ALT+TAB sichtbar.

Die Forms in der DLL werden ganz normal mit TMYform.create(nil) erstellt und mit myform.showmodal angezeigt.
Wie gesagt funktioniert 1a wenn man das Programm direkt startet.

Jemand eine Idee zu dem kuriosen Fall?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#2

AW: Form aus DLL unsichtbar, wenn Programm per createprocess

  Alt 6. Apr 2020, 16:34
Mal eine dumme Frage, zu deinem Problemchen:
Jemand benutzt SW_HIDE und wundert sich dann, wenn ein Fenster nicht sichtbar ist?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
518 Beiträge
 
#3

AW: Form aus DLL unsichtbar, wenn Programm per createprocess

  Alt 6. Apr 2020, 16:45
ganz ehrlich, das ist mir eben beim Copy&Paste gar nicht aufgefallen.
Das ist dort schon seit Jahren drin und hatte auch nie eine negative Auswirkung auf die Programme welche wir gestartet haben.

Und ja das war das Problem. auf sw_normal geändert und es funktioniert.

Danke für den Zaunpfahl.
  Mit Zitat antworten Zitat
Alt 6. Apr 2020, 17:19     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#4

AW: Form aus DLL unsichtbar, wenn Programm per createprocess

  Alt 6. Apr 2020, 17:27
Bitte.

Joar, es gibt massig Programme, die vergessen sich an ihre Startparameter zu halten,
aber Delphi ist hier mal nett und tut es.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
518 Beiträge
 
#5

AW: Form aus DLL unsichtbar, wenn Programm per createprocess

  Alt 7. Apr 2020, 09:06
Das interessante ist ja das wir alle Prozesse welche damit vorher gestartet wurden Delphi Programm sind.
Und keins hat es gestört. Aber ein Fenster welches ich dann in einer nachfolgenden DLL starte reagiert dann darauf
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:50 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