Starten von weiteren Instanzen eines Programmes verhindern
Übersicht

![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht hilft dir unten stehender Code. Du brauchst dafür die WinAPI_user32dll.decls
Oder zumindest folgende Einträge unter decls Code: [AUSKLAPPEN] .lib "user32.dll"
api_GetWindow% (hwnd, flag) : "GetWindow" api_FindWindow% (ClassName$, Caption$) : "FindWindowA" api_GetWindowText% (hwnd, bank*, len) : "GetWindowTextA" Der Beispielprogrammcode lautet dann so Code: [AUSKLAPPEN] Graphics 1000,1000,0,2
SetBuffer BackBuffer() GetWindowHandle() WaitKey Function GetWindowHandle() Local IBank%=CreateBank(255) Local ICount%=0 Local ILast%=0 Local IName$="" Local IHWND%=0 IHWND=api_GetWindow(api_FindWindow("Blitz Runtime Class"," "),0) Repeat IHWND=api_GetWindow(IHWND,2) api_GetWindowText(IHWND,IBank,255) If PeekByte(IBank,0)>0 Then IName="" ICount=0 Repeat ILast=PeekByte(IBank,ICount) IName=IName+Chr$(ILast) ICount=ICount+1 Until ILast=0 IName=Left(IName,Len(IName)-1) If IName="Default IME" Then IName="" If IName="MSCTFIME UI" Then IName="" If Len(IName)>1 Then Print IName End If Until IHWND=0 FreeBank IBank End Function Du musst dann nur noch wissen wie deine EXE im fertigen Zustand heißt, dann kannst du diese eben abfangen. Das lief bei mir unter Windows XP, als auch jetzt unter Windows 8. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Knorx: Wenn's zu unbedeutend ist für deine Zeit und Aufmerksamkeit, warum dann darüber fragen?
Du sagst uns hier jetzt, dass es dir zu unbedeutend ist für deine Zeit, aber für unsere Zeit ist es dir's wert genug. Das könnte man richtig böse auffassen, dass du unsere Zeit als weniger bedeutend einschätzt, als deine eigene; als wären wir deine Angestellten. Wie Xerxes sagt: Xerxes hat Folgendes geschrieben: Programmieren ist besser googeln können als andere, endlos Dokumentationen wälzen und auf fremden Code starren, bis einem aufgeht, wie er funktioniert. Wenn du das nicht willst, findest du sicher Leute, die den technischen Teil übernehmen. Für einen angemessenen Stundenlohn.
Ich lös dir gerne ein jedes deiner Probleme. Tatsächlich hätte ich auch nichts dagegen, dir deine Programme auch gänzlich zu schreiben, und du darfst sogar deinen Namen darauf schreiben, und tun, als wärs deins. Kostet €40 die Stunde, das ist das was ich im Moment verdien. Solange du uns nichts zahlst, machen wir dir einen Gefallen, nicht anders rum. Behalte das im Auge, wenn du um Hilfe fragst. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OKay Oô
Moment, ich greife mal deine aussage auf: Du fährst erst auto, weil du mal flott einkaufen willst (ne nebensächlichkeit) und machst erst jahre später deinen Führerschein. Alles was du nutzne willst, musst du auch begreifen. Dh wenn du eine abfrage willst, ob dein programm bereits läuft, musst du dir auch selbst suchen, wie das funktioniert. Hier im forum war es bereits IMMER "tradition" das nur geholfen, nicht gearbeitet wird. Jeder von uns weiß, wie gerne man mal fertigen code hätte, doch seien wir mal ehrlich: Angenommen, person A gibt dir einen code. Dieser funktioniert nicht. Wen fragst du dann? Person A! Dh person A verpflichtet sich unwissentlich auch gleichzeitig dein babysitter zu sein, wenn du was möchtest. In arbeiten inner schule kriegst doch auch nicht die lösungen vom lehrer, weil er für deinen lernfortschritt verantwortlich zu sein scheint :/ Zu deinem problem: Es wurden berits 2 brauchbare methoden genannt. Win API und Port besetzung. Wobei ich weniger für die port besetzung bin ,weils auf 10.000 pcs funzen kann und einer meckert dann rum. Eine dritte idee die mir noch einfällt, wäre allerdings auch wieder über die WinAPI zu lösen: Handle vom prozess in eine datei schreiben und falls in der datei was steht, gucken ob der handle noch lebt (welchen du mit programm 2 aus der datei liest) Aber mal ganz ehrlich. Was in aller welt willst du für ein programm schreiben, was den user auf diese weise bevormunden will? -> imba krasses mmorpg mit multiclient verbot? Okay, du bist schon beim feintuning (was so zirka ganz am ende der todo steht). Cool ![]() -> Ein programm was mit netzwerk arbeitet und als client starten soll, wenn es bereits läuft? Da wäre der port wieder brauchbar. Womit sich die frage auch erledigt hätt' -> Eine art bot etc welche sich mit dem 2ten beißt? Nun, deine zielgruppe dürfte genug hirnleistung haben. -> Ein spiel, was nahezu 1,5gig frisst und beim 2ten client einen fehler / bluescreen verursacht? Glaub mir, den fehler macht man nur einmal. ... Es gibt hunderte möglichkeiten die mir grade einfallen, und keine will mir so recht gefallen. Würde ich ein solches programm nutzen, was mich wie ein kind an meinem eigenen rechner behandelt, so würd ichs glatt wieder löschen. (ausser die onlinespiel sache, da ists okay^^) |
||
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
@hectic: Danke, sowas habe ich mir vorgestellt!
@DAK: Hier ist niemand verpflichtet, zu helfen. Wer's gerne tut, dem danke ich, aber wer sich darüber nur aufregt, kann es lieber lassen. Und mir ging es ja eben nur um Details, ich programmiere ja gerne! Will ich selbst machen. @PhillipK: Nein, ich miete mir eine Limousine. Besser noch: Ich frage einen Bekannten, ob er mich fährt, und wenn er Lust hat, tut er es und ich bin ihm dankbar. Und wenn der Code von Person A nicht funktioniert, kann er trotzdem gehen. Und zuletzt: Ich habe nichts großes, sondern nur ein Mini-Programm das ich Bekannten schenke. Aber gerade das Fine-Tuning macht mir Spaß; auch wenn es verfrüht sein mag (das ist es bestimmt!), es ist ja nur meine Freizeit. Weil das Programm auch vielleicht nur 5 Leute kriegen erscheint mir diese 0,01%-Fehleranfälligkeit zu gering. Deine Lösung werde ich mir natürlich für irgendwann trotzdem merken. Also, wer es nicht mag, dass ich mich nur am Rand hierum kümmere, kann mich ja einfach hängen lassen. Das nur als Argumentation und nicht aggresiv aufzufassen. Mit freundlichen Grüßen, KnorxThieus |
||
Version: BlitzPlus / Blitz+ |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Aber gerade das Fine-Tuning macht mir Spaß
Dann tune auch fein, indem du lernst was du machst. Alles andere ist kein Tuning sondern "was dazupacken", ohne zu wissen ob es geht. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann lasse ich das jetzt ruhen und erstelle in 5 Jahren einen neuen Thread.
Macht's gut! |
||
Version: BlitzPlus / Blitz+ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group