Avatar billede bamig Nybegynder
23. august 2002 - 23:10 Der er 9 kommentarer og
2 løsninger

kommunikation mellem to exe-filer

Hej. Hvordan kommunikere man mellem to exe-filer. For eksempel: i projekt 1(1.exe) har man en boolean(boolean1) som er false. Når projekt 2 (2.exe) åbnes/startes (form_load) skal programmet ændre i projekt 1 så boolean1 er true.
Avatar billede jba750 Nybegynder
23. august 2002 - 23:34 #1
Du bør nok gemme din boolean i en extern fil
Avatar billede bamig Nybegynder
23. august 2002 - 23:53 #2
Projekt 1 skal køre hele tiden og når projekt 2 startes skal det gøre noget plus det skal lukke projekt 2 og køre videre selv.
Avatar billede joern Nybegynder
24. august 2002 - 10:23 #3
jba har ret, skriv til en lille fil, kald den hvad du vil, begge programmer skal jo bare vide hvad den hedder og hvor den ligger.

Open sti & "\data,dit" for output as #1
  print #1, var1
close #1

I din anden exe.

Open sti & "\data.dit" for input as #1
  line input #1, var2
close #1

Giver det mening?

M.v.h.  Jørn
Avatar billede sion Nybegynder
24. august 2002 - 11:40 #4
En anden, måske lidt nemmere, løsning er at gemme og hente infomationerne fra registeringsdatabasen (med GetSetting & SaveSettng)
-Sion
Avatar billede jba750 Nybegynder
24. august 2002 - 11:58 #5
Det kommer an på hvad det er for en type informationer, hvis det bare er en midlertidig boolean bør man da ikke svine registreringsdatabasen til.
Avatar billede krismort Nybegynder
25. august 2002 - 22:08 #6
Okay jeg ved ikke om du vil synes denne metode er mere stueren, og jeg ved ikke om det virker fordi jeg aldrig har prøvet at gøre det med VB... men i teorien skulle det være muligt.
Når du starter program2 så finder du program1's processID... det kan du gøre hvis du kender noget til program1's vindue...alså caption eller classname eller parent eller noget lign.
Derefter aflæser/skriver du til boolean1 via windowsAPI'en. Det kræver naturligvis at dit program íkke bruger dynamisk hukommelse og hvergang du ændrer på dit program1 og compiler det igen skal du finde variablens adresse i hukommelsen igen.
En anden metode kunne være at bruge interprocess-communication... men jeg tror måske ikke det er muligt i visual basic.
-
Hvis du er interesseret så og jeg kan komme med nogle eksempler eller noget dokumentation.

Kristian
Avatar billede cyborgsoftware Nybegynder
26. august 2002 - 11:38 #7
Ellers ville det også værre muligt, at lave en standard winsocket kommunikation. Sådan at det ene program lyttede på en socket, og når det andet startede op, connectede den til sockete, og meddelte, at den var startet op.
Avatar billede krismort Nybegynder
26. august 2002 - 13:59 #8
udemærket forslag cyborg
Avatar billede krismort Nybegynder
26. august 2002 - 14:02 #9
Eller du kan oprette et messagehook til det ene projekts hoved form og lytte på beskeder... så kan du finde projekts1's form når du starter projekt2 og sende en besked til project 1 om at det er startet og at projekt1 skal ændrer variablen boolean1

Kristian
Avatar billede bamig Nybegynder
27. august 2002 - 14:51 #10
Jeg havde tænkt mig noget som det krismort sagde til sidst. Jeg vil helst ikke gemme noget nogen steder, da projekt2 bare skal åbne, sende til projekt1 at det er åbnet og lukke på under 1 sek. OG uden at bruge for meget CPU- eller Harddisk-kraft. Kan man ikke noget med at, projekt1 gør noget når et program ved navn ”projekt2” åbnes.
Krismort>>> Kan du ikke lave eksempel til det messagehook du taler om.
Avatar billede bamig Nybegynder
28. august 2002 - 21:42 #11
Nå nå ingen svar så tror jeg at jeg vil prøve det som joern sagde, jeg havde nu håbet der var en smartere måde.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester