![]() |
Doppelstartverhinderung incl Parameterübergabe
Hallo!
Folgendes Probleem stellt sich mir: Aus einer Access-Anwendung wird mein Programm aufgerufen und ihm eine zu wählende Nummer als Parameter übermittelt. Das Programm wählt die Nummer und beendet sich selbst. Soweit so gut. Nun habe ich das Programm aufgebohrt und, damit man nicht immer die wahnsinnig Ressourcen fressende Access Umgebung mit starten muss, eine komfortable Suchfunktion mit integriert. Auch das habe ich, zum Teil mit gefundenen Beiträgen aus diesem Forum gelöst. Das Programm verbleibt nun in der Task-Tray um es einfach zur Hand zu haben, womit sich aber folgendes Problem stellt: Es gibt genug Codeschnipsel, die mir helfen, dass das Programm nicht doppelt gestartet wird, aber die Parameterübergabe ist nun mein Problem. Wie löse ich die Integration in Access nach folgenden Regeln: A: Das Programm läuft nicht Es wird gestartet und wählt die als Commandozeilenparameter übergebene Nummer. Dann beendet es sich selbst, oder verdunstet in die TaskTray. ( Hängt von den Einstellungen ab) B: Das Programm läuft bereits ( egal ob als Fenster oder in das TaskTray) Ein Doppelstart soll verhindert werden, aber die als Parameter übergebene Nummer muss an das laufende Programm weitergeleitet werden. Wahrscheinlich gibt es hier schon lösende Codeschnipsel dafür, aber ich weiß ehrlich gesagt nicht, wonach ich jetzt am besten suchen soll. Danke schon mal Gruß, Ulrich |
Re: Doppelstartverhinderung incl Parameterübergabe
Dazu gibt es in der Code-Library folgenden Beitrag:
![]() |
Re: Doppelstartverhinderung incl Parameterübergabe
Herzlich willkommen in der DP-Gemeinde,
schau mal hier nach, da gibt es schon einiges dazu (vor allem das Letztere) ![]() http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Re: Doppelstartverhinderung incl Parameterübergabe
<erschreckt> Huch! </erschreckt>
Das war Echtzeit! Danke! |
Re: Doppelstartverhinderung incl Parameterübergabe
Öhem... Also ich hab die Unit eingefügt und bin soweit glücklich, als das das Programm nur noch einmal existiert. Auch der Parameterstring wird übergeben.
Fein. Nun stehe ich aber auf dem Schlauch (es war gestern wohl zu spät), denn, wie bekomme ich den String nun in meine eigene Application rüber? Das PopUp funktioniert, aber ich kann die mit Hilfe der JDI VCLs ( JvTrayIcon) versteckte Application jnicht wieder vergrößern und meinem Number.Text Edit Feld die übergebene Variable aus der SingleInstance Unit nicht übergeben. Ich fürchte 2 Jahre Pause in der Delphi-Programmierung sind etwas zu lang... Danke schon mal Ulrich |
Re: Doppelstartverhinderung incl Parameterübergabe
die Parameter die übergeben werden bekommst du mit ParamStr(1) für den ersren, ParamStr(2) für den zweiten, etc.
Somit wäre z.b. ein Label:
Delphi-Quellcode:
Label1.Caption := ParamStr(1);
|
Re: Doppelstartverhinderung incl Parameterübergabe
Hihi, nein, wie ich an die ParamStr(n) komme war mir klar. Das Problem ist wohl, dass die eingebundene Unit SingleInstance keinen bezug zu meiner Form hat. Also kann ich keinen Text an das Label oder die ComboBox übergeben, die ich im Fenstermodus als Eingabezeile verwende.
Also ich habe das bisher so gelöst:
Delphi-Quellcode:
(Äh, Dialer ist keiner dieser lästigen Internet-Dialer, sondern eine Fernsteuerung unserer Telefonanlage, deren TAPI, weil Siemens, viel zu viel extra kostet)
Project Dialer.dpr beinhaltet:
uses Forms, DialerMain in '..\DIALER 3\DialerMain.pas' {Form1}, SingleInstance in 'SingleInstance.pas'; begin Application.Initialize; Application.Title := 'Dialer'; Application.CreateForm(TForm1, Form1); Application.Run; end. Kann es sein, dass ich die SingleInstance nicht als Unit in meine Application einfügen muss, sondern meine Application in die SingleInstance.pas? Hilflos.... [edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit] |
Re: Doppelstartverhinderung incl Parameterübergabe
Moin Ulrich,
such' hier mal nach ![]() Es gibt hier bestimmt mehrere Beispiele dafür. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 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