AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Doppelstartverhinderung incl Parameterübergabe
Thema durchsuchen
Ansicht
Themen-Optionen

Doppelstartverhinderung incl Parameterübergabe

Ein Thema von Ulrich Prinz · begonnen am 24. Nov 2003 · letzter Beitrag vom 24. Nov 2003
Antwort Antwort
Ulrich Prinz

Registriert seit: 24. Nov 2003
Ort: Aachen
7 Beiträge
 
#1

Doppelstartverhinderung incl Parameterübergabe

  Alt 24. Nov 2003, 11:49
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
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Doppelstartverhinderung incl Parameterübergabe

  Alt 24. Nov 2003, 11:51
Dazu gibt es in der Code-Library folgenden Beitrag: Click
Programming today is a race between Software Engineers striving to build bigger and better idiot-proof Programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Doppelstartverhinderung incl Parameterübergabe

  Alt 24. Nov 2003, 11:54
Herzlich willkommen in der DP-Gemeinde,

schau mal hier nach, da gibt es schon einiges dazu (vor allem das Letztere)
Hier im Forum suchendoppelstart


http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Ulrich Prinz

Registriert seit: 24. Nov 2003
Ort: Aachen
7 Beiträge
 
#4

Re: Doppelstartverhinderung incl Parameterübergabe

  Alt 24. Nov 2003, 11:54
<erschreckt> Huch! </erschreckt>

Das war Echtzeit!

Danke!
  Mit Zitat antworten Zitat
Ulrich Prinz

Registriert seit: 24. Nov 2003
Ort: Aachen
7 Beiträge
 
#5

Re: Doppelstartverhinderung incl Parameterübergabe

  Alt 24. Nov 2003, 13:23
Ö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
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Doppelstartverhinderung incl Parameterübergabe

  Alt 24. Nov 2003, 13:25
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:

Label1.Caption := ParamStr(1);
Programming today is a race between Software Engineers striving to build bigger and better idiot-proof Programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning!
  Mit Zitat antworten Zitat
Ulrich Prinz

Registriert seit: 24. Nov 2003
Ort: Aachen
7 Beiträge
 
#7

Re: Doppelstartverhinderung incl Parameterübergabe

  Alt 24. Nov 2003, 13:42
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:
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.
(Äh, Dialer ist keiner dieser lästigen Internet-Dialer, sondern eine Fernsteuerung unserer Telefonanlage, deren TAPI, weil Siemens, viel zu viel extra kostet)

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]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Doppelstartverhinderung incl Parameterübergabe

  Alt 24. Nov 2003, 20:13
Moin Ulrich,

such' hier mal nach Hier im Forum suchenWM_COPYDATA. Damit könntest Du dann den Parameter an die Instanz die erhalten bleiben soll weiterleiten.
Es gibt hier bestimmt mehrere Beispiele dafür.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 06:43 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