Seite 3 von 4
Verfasst: 21.02.2006 17:31
von Programie
Reichen dafür etwa 100 Zeichen?
Und was ist bei CloseHandle_() ?
Da muss man auch irgendwas einsetzen. Nur was (String, Float, Long, Byte)?
Verfasst: 21.02.2006 17:37
von ts-soft
Programie hat geschrieben:Reichen dafür etwa 100 Zeichen?

Sollten genügen
Oder Du erzeugst einmalig eine GUID, die sollte einmalig sein.
Code: Alles auswählen
Procedure.s MakeGUID()
LBuffer.s = Space(76)
SBuffer.s = Space(38)
CoCreateGuid_(GuidId.GUID)
StringFromGUID2_(GuidId, LBuffer,76);
WideCharToMultiByte_(0, 0, LBuffer, 76, SBuffer, 38, 0, 0);
ProcedureReturn SBuffer
EndProcedure
Nachtrag:
Das was OnlyOne zurückgibt, ist der Wert, den Du an CloseHandle_(
übergeben mußt. So das Dein Programm, nach beenden wieder Startbar ist.
Ist ein Long, kann man aber alles an dem vom mir geposteten Beispiel erkennen.
Verfasst: 21.02.2006 17:39
von Programie
Und CloseHandle_() ? Was bekommt der Befehl?

Verfasst: 21.02.2006 18:29
von AndyX
siehe Win32.hlp -_-"
Verfasst: 22.02.2006 17:23
von Programie
Das Programm kann man immer noch mehrfach starten! Hier ist mal der
Sourcecode.
Was denkt ihr, was da falsch ist?

Verfasst: 22.02.2006 17:34
von ts-soft
Mach doch mal bitte ein Zip (oder ähnlich) draus, so kann ich es nicht
downloaden.
Wahrscheinlich ist der String, den Du übergibst, nicht Konstant sondern wird
gebildet.
Verfasst: 22.02.2006 17:42
von Programie
Hier der Sourcecode als
Executable.

Verfasst: 22.02.2006 17:49
von ts-soft
Wie gesagt, der String ist nicht Konstant, sondern wird gebildet, das kann nicht gehen.
MakeGuid() verwenden und den String in Deinem Code einfügen, z.B. so:
Code: Alles auswählen
Global Running
Running=OnlyOne("{544470D2-8FB0-49E3-8334-6E34309EC038}")
MakeGuid kannste aus dem eigentlichem Programm entfernen.
Verfasst: 22.02.2006 17:52
von Programie
Du hast doch mir erst gesagt, dass ich den Befehl MakeGUID() verwenden soll. Wieso jetzt doch nicht?

Verfasst: 22.02.2006 17:59
von AndyX
weil du ja selber auch eine GUID tippen kannst, siehe Ts-softs post.