Foro | | | | funkheld | Hallo, guten Tag.
Wie kann man bitte 2 Processe laufen lassen, die ich je Process mit einem Button starte. Im Anhang ist es mit einem Process, Wie geht es bitte mit zwei ?
Danke. Gruss
{$cle}
{$PUSHKEYWORD pExec,process,filemap}
Declare h&,hd&,hd1&,ende&,wert&,wert1&,b_send&,text$,tadr&, hFileMap&,zielfenster&
declare pointer#
Struct Daten = w&, w1&, zk$(256)
dim pointer#,Daten
Proc Prozess
parameters win&, hd&,hd1&
Declare pointer#
declare w&,w1&,ende&, hFileMap&
Struct Daten = w&, w1&, zk$(256)
dim pointer#, Daten
windowtitle "empfang"
window 10,10 - 350, 200
ende& = 0
UserMessages $1000
whilenot ende&
Case GetText$(win&) = "" : ende& = 1
sleep 1
GetMessage
If %UMessage = $1000
hFileMap& = FileMap("Open", "Test")
If hFileMap&
pointer# = FileMap("Map", hFileMap&)
locate 3,1
print " " + str$(pointer#.w&) + " "
setText hd&, str$(pointer#.w&)
locate 5,1
print " " + str$(pointer#.w1&) + " "
setText hd1&, str$(pointer#.w1&)
Locate 7, 1
Print " "
Locate 7, 1
Print pointer#.zk$'
FileMap("Close", hFileMap&)
EndIf
EndIf
endwhile
Dispose pointer#
endproc
proc senden
hFileMap& = FileMap("Open", "Test")
If hFileMap&
pointer# = FileMap("Map", hFileMap&)
pointer#.w& = wert&
pointer#.w1& = wert1&
pointer#.zk$ = text$
FileMap("Close", hFileMap&)
PostMessage(ZielFenster&, $1000, 0, 0)
EndIf
endproc
windowtitle "send"
window 10,300-200,200
hd& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd1& = create("Text", %hWnd, "", 20, 35, 60, 20)
b_send& = Create("Button",%hWnd,"send", 10, 65, 80, 24)
hFileMap& = Create("FileMap", "Test", 265)
h&=pExec("|Prozess",%HWnd, hd&,hd1&)
sleep 500
ZielFenster& = FindWindow("empfang")
ende& = 0
UserMessages $1000
whilenot ende&
waitinput
If Clicked(b_send&)
wert&=wert&+1
wert1&=wert1&+5
text$="es geht"
senden
endif
endwhile
Dispose pointer#
end
|
| | | | |
| | H.Brill | Na, mit pExec(). Da die Prozesse ja wie Procs aufgebaut sind, kann man sie auch so aufrufen :
In Verbindung mit 2 Buttons. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 12.04.2016 ▲ |
| |
| | funkheld | Mit Filemap 2 Processe...und PostMessage(ZielFenster&, $1000, 0, 0) bekomme ich nicht hin. Es wird immer nur 1 Fenster angesprochen obwoh ich 2 verschiedene Windownamen habe per Postmessage. Und diesen Pointer#r per Filemap...mit 2 Processen?
Danke. Gruss |
| | | | |
| | H.Brill | Versuche mal in den Prozessen die Fenster mit
anzulegen. Es kann sein, daß Fenster mit dem Cls oder Window-Befehl immer das gleiche Handle hanno.
Natürlich mußt du per jedes Fenster eine andere UserMessage haben, also z.B.
Die Struktur und der Pointer# darauf müssen naturalmente auch in jedem Prozess definiert werden. Am besten die Struktur so erweitern, daß jeder Prozess auf seine eigenen Elemente zugreift.
Somit potuto Prozess1 auf w1&, w2& und zk1$ und Prozess2 auf w3&, w4&, und zk2$ zugreifen. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 12.04.2016 ▲ |
| |
| | funkheld | Manchmal geht das rechte Fenster und das linke mit weiterzählen und wenn ich wieder neu starte, geht zb nur das linke Fenster mit weiterzählen.
Kannst du bitte mal die Postmessage-Adressen und die %UMessage mal richtig verteilen?
Danke. Gruss
declare ende&
Declare h&,hd&,hd1&,zielfenster&,b_send&
declare h1&,hd2&,hd3&,zielfenster1&,b_send1&
declare wert&,wert1&,wert2&,wert3&,text$,text1$
declare hFileMap&,hFileMap1&
declare pointer#,pointer1#
Struct Daten = w&, w1&, zk$(256)
dim pointer#,Daten
Struct Daten1 = w2&, w3&, zk1$(256)
dim pointer1#,Daten1
Proc Prozess
parameters win&, hd&,hd1&
Declare pointer#
declare w&,w1&,ende&, hFileMap&
Struct Daten = w&, w1&, zk$(256)
dim pointer#, Daten
windowtitle "empfang"
window 10,10 - 300, 200
ende& = 0
UserMessages $1000
whilenot ende&
Case GetText$(win&) = "" : ende& = 1
sleep 1
GetMessage
If %UMessage = $1000
hFileMap& = FileMap("Open", "Test")
If hFileMap&
pointer# = FileMap("Map", hFileMap&)
locate 3,1
print " " + str$(pointer#.w&) + " "
setText hd&, str$(pointer#.w&)
locate 5,1
print " " + str$(pointer#.w1&) + " "
setText hd1&, str$(pointer#.w1&)
Locate 7, 1
Print " "
Locate 7, 1
Print pointer#.zk$'
FileMap("Close", hFileMap&)
EndIf
EndIf
endwhile
Dispose pointer#
endproc
Proc Prozess1
parameters win&, hd2&,hd3&
Declare pointer1#
declare w2&,w3&,ende&, hFileMap1&
Struct Daten1 = w2&, w3&, zk1$(256)
dim pointer1#, Daten1
windowtitle "empfang1"
window 320,10 - 300, 200
ende& = 0
UserMessages $1000
whilenot ende&
Case GetText$(win&) = "" : ende& = 1
sleep 1
GetMessage
If %UMessage = $1000
hFileMap1& = FileMap("Open", "Test1")
If hFileMap1&
pointer1# = FileMap("Map", hFileMap1&)
locate 3,1
print " " + str$(pointer1#.w2&) + " "
setText hd2&, str$(pointer1#.w2&)
locate 5,1
print " " + str$(pointer1#.w3&) + " "
setText hd3&, str$(pointer1#.w3&)
Locate 7, 1
Print " "
Locate 7, 1
Print pointer1#.zk1$'
FileMap("Close", hFileMap1&)
EndIf
EndIf
endwhile
Dispose pointer1#
endproc
proc senden
hFileMap& = FileMap("Open", "Test")
If hFileMap&
pointer# = FileMap("Map", hFileMap&)
pointer#.w& = wert&
pointer#.w1& = wert1&
pointer#.zk$ = text$
FileMap("Close", hFileMap&)
PostMessage(ZielFenster&, $1000, 0, 0)
EndIf
endproc
proc senden1
hFileMap1& = FileMap("Open", "Test1")
If hFileMap1&
pointer1# = FileMap("Map", hFileMap1&)
pointer1#.w2& = wert2&
pointer1#.w3& = wert3&
pointer1#.zk1$ = text1$
FileMap("Close", hFileMap1&)
PostMessage(ZielFenster1&, $1000, 0, 0)
EndIf
endproc
windowtitle "send"
window 10,300-200,200
hd& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd1& = create("Text", %hWnd, "", 20, 35, 60, 20)
hd2& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd3& = create("Text", %hWnd, "", 20, 35, 60, 20)
b_send& = Create("Button",%hWnd,"send", 10, 65, 80, 24)
b_send1& = Create("Button",%hWnd,"send1", 10, 90, 80, 24)
hFileMap& = Create("FileMap", "Test", 265)
hFileMap1& = Create("FileMap", "Test1", 265)
h&=pExec("|Prozess",%HWnd, hd&,hd1&)
h1&=pExec("|Prozess1",%HWnd, hd2&,hd3&)
sleep 500
ZielFenster& = FindWindow("empfang")
ZielFenster1& = FindWindow("empfang1")
ende& = 0
UserMessages $1000,$2000
whilenot ende&
waitinput
If Clicked(b_send&)
wert&=wert&+1
wert1&=wert1&+5
text$="es geht"
senden
endif
If Clicked(b_send1&)
wert2&=wert2&+10
wert3&=wert3&+50
text1$="es geht bei 1"
senden1
endif
endwhile
Dispose pointer#
Dispose pointer1#
end
|
| | | | |
| | H.Brill | Frag mich jetzt nicht, wieso das plötzlich geht. Habe jetzt nur die UserMessages richtig verteilt und pExec() umgekehrt aufgerufen. Also erst Prozess1 und dann Prozess.
Schau mal, ob es so nach deinen Wünschen corre :
declare ende&
Declare h&,hd&,hd1&,zielfenster&,b_send&
declare h1&,hd2&,hd3&,zielfenster1&,b_send1&
declare wert&,wert1&,wert2&,wert3&,text$,text1$
declare hFileMap&,hFileMap1&
declare pointer#,pointer1#
Struct Daten = w&, w1&, zk$(256)
dim pointer#,Daten
Struct Daten1 = w2&, w3&, zk1$(256)
dim pointer1#,Daten1
Proc Prozess
parameters win&, hd&,hd1&
Declare pointer#
declare w&,w1&,ende&, hFileMap&
Struct Daten = w&, w1&, zk$(256)
dim pointer#, Daten
windowtitle "empfang"
window 10,10 - 300, 200
ende& = 0
UserMessages $1000
whilenot ende&
Case GetText$(win&) = "" : ende& = 1
sleep 1
GetMessage
If %UMessage = $1000
hFileMap& = FileMap("Open", "Test")
If hFileMap&
pointer# = FileMap("Map", hFileMap&)
locate 3,1
print " " + str$(pointer#.w&) + " "
setText hd&, str$(pointer#.w&)
locate 5,1
print " " + str$(pointer#.w1&) + " "
setText hd1&, str$(pointer#.w1&)
Locate 7, 1
Print " "
Locate 7, 1
Print pointer#.zk$'
FileMap("Close", hFileMap&)
EndIf
EndIf
endwhile
Dispose pointer#
endproc
Proc Prozess1
parameters win&, hd2&,hd3&
Declare pointer1#
declare w2&,w3&,ende&, hFileMap1&
Struct Daten1 = w2&, w3&, zk1$(256)
dim pointer1#, Daten1
windowtitle "empfang1"
window 320,10 - 300, 200
ende& = 0
UserMessages $2000
whilenot ende&
Case GetText$(win&) = "" : ende& = 1
sleep 1
GetMessage
If %UMessage = $2000
hFileMap1& = FileMap("Open", "Test1")
If hFileMap1&
pointer1# = FileMap("Map", hFileMap1&)
locate 3,1
print " " + str$(pointer1#.w2&) + " "
setText hd2&, str$(pointer1#.w2&)
locate 5,1
print " " + str$(pointer1#.w3&) + " "
setText hd3&, str$(pointer1#.w3&)
Locate 7, 1
Print " "
Locate 7, 1
Print pointer1#.zk1$'
FileMap("Close", hFileMap1&)
EndIf
EndIf
endwhile
Dispose pointer1#
endproc
proc senden
hFileMap& = FileMap("Open", "Test")
If hFileMap&
pointer# = FileMap("Map", hFileMap&)
pointer#.w& = wert&
pointer#.w1& = wert1&
pointer#.zk$ = text$
FileMap("Close", hFileMap&)
PostMessage(ZielFenster&, $1000, 0, 0)
EndIf
endproc
proc senden1
hFileMap1& = FileMap("Open", "Test1")
If hFileMap1&
pointer1# = FileMap("Map", hFileMap1&)
pointer1#.w2& = wert2&
pointer1#.w3& = wert3&
pointer1#.zk1$ = text1$
FileMap("Close", hFileMap1&)
PostMessage(ZielFenster1&, $2000, 0, 0)
EndIf
endproc
windowtitle "send"
window 10,300-200,200
hd& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd1& = create("Text", %hWnd, "", 20, 35, 60, 20)
hd2& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd3& = create("Text", %hWnd, "", 20, 35, 60, 20)
b_send& = Create("Button",%hWnd,"send", 10, 65, 80, 24)
b_send1& = Create("Button",%hWnd,"send1", 10, 90, 80, 24)
hFileMap& = Create("FileMap", "Test", 265)
hFileMap1& = Create("FileMap", "Test1", 265)
h1&=pExec("|Prozess1",%HWnd, hd2&,hd3&)
h&=pExec("|Prozess",%HWnd, hd&,hd1&)
sleep 500
ZielFenster& = FindWindow("empfang")
ZielFenster1& = FindWindow("empfang1")
ende& = 0
UserMessages $1000,$2000
whilenot ende&
waitinput
If Clicked(b_send&)
wert&=wert&+1
wert1&=wert1&+5
text$="es geht bei 1"
senden
endif
If Clicked(b_send1&)
wert2&=wert2&+10
wert3&=wert3&+50
text1$="es geht bei 10"
senden1
endif
endwhile
Dispose pointer#
Dispose pointer1#
end
|
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 13.04.2016 ▲ |
| |
| | funkheld | Hallo danke. Jetzt funktioniert es, das 2 Processe angesprochen werden.
Ich steige bei den Adresszuweisungen nicht durch, das ist meine Schwierigkeit.
Danke. Gruss |
| | | | |
| | H.Brill | Bei welchen Zuweisungen hakt es denn ? |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 14.04.2016 ▲ |
| |
| | funkheld | Das sind die Adressen $1000 und $2000 zb.
Was bedeuten die bitte ?
Danke. Gruss |
| | | | |
| | H.Brill | Meinst du bei den UserMessages ?
Das sind einfach nur Zahlen. Da kannst du auch 1000 und 2000 nehmen. Es dient rein nur zur eindeutigen Identifizierung der Messages.
$1000 = 4096 $2000 = 8192
Wichtig ist, daß du circa 1000 gehst, um Konflikte mit den windowseigenen Messages zu vermeiden. Diese sind unter 1000. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 14.04.2016 ▲ |
| |
| | | | | | | |
| | funkheld | Ja danke per die Info.
ich hatte mich schon gewundert , weil ich es mal mit 1, 2 oder 3 versucht hatte und funktioniert nicht.
Danke. Gruss |
| | | | |
|
AnswerThemeninformationenDieses Thema hat 3 subscriber: |