Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Intrerupator cu N - doza doar cu ...

Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata

Suprataxa card energie?!
 Cum era nivelul de trai cam din a...

probleme cu ochelarii

Impozite pe proprietati de anul v...

teava rezistenta panou apa calda
 Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...

Rezultat RMN

Numar circuite IPAT si prindere t...
 Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor

Discuții despre TVR Sport HD.

Cost abonament clinica privata
 

2 executabile care depind unul de celalalt

- - - - -
  • Please log in to reply
4 replies to this topic

#1
ryady

ryady

    Member

  • Grup: Members
  • Posts: 449
  • Înscris: 30.09.2003
Salut, as vrea sa stiu daca exista vreo cale sa rezolv aceasta problema, am 2 executabile intr-un director. si nu vreau sa se deschida al doiea executaibil decat daca il deschid prima data pe primul
Sa fie ceva de genul deschid primul executabil, in care exista un buton din care ma trimite in executabilul 2.
Dar daca deschid din prima al doilea executabil sa nu se deschida eventual un mesaj in care zice ca nu folosesc modulul principal

#2
romi

romi

    Junior Member

  • Grup: Members
  • Posts: 96
  • Înscris: 20.05.2005
Poti folosi functii API, declari urmatoarea functie api intr-un modul

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

si apoi o folosesti mai jos pt a testa dc programul este deschis
Public Sub Test (strCaleEXE As String)
  Dim rez As Double
  rez = FindWindow(vbNullString, strCaleEXE)
  if rez <> 0 then MsgBox "programul este deschis"
End


#3
hErr

hErr

    Member

  • Grup: Members
  • Posts: 738
  • Înscris: 16.12.2003
o metoda mult mai simpla.

al doilea exe il faci ActiveX exe, iar ca start-up definesti o procedura oarecare. in procedura de start testezi proprietatea StartMode in felul urmator:
if App.StartMode = vbSModeStandalone then
	end
end if
adica, daca aplicatia a fost pornita ca exe, executia se va termina imediat. daca aplicatia a fost pornita ca ActiveX, se continua executia normala a programului.

Edited by hErr, 08 February 2006 - 13:35.


#4
ryady

ryady

    Member

  • Grup: Members
  • Posts: 449
  • Înscris: 30.09.2003
I-mi cer scuze dar revin cu aceasta problema
romi : FindWindowA = ?
nu ii dau de cap :(

exista vreo cale sa rezolv aceasta problema, am 2 executabile intr-un director. si nu vreau sa se deschida al doiea executaibil decat daca il deschid prima data pe primul... ?

#5
Africanul

Africanul

    Active Member

  • Grup: Members
  • Posts: 1,739
  • Înscris: 24.10.2003
- Poti in primul executabil (master) sa creezi, la inceput, un named mutex (ii dai un nume unic pe sistem: numele tau+numarul de telefon+CNP-ul), si il inchizi la sfarsitul programului.
- In al doilea executabil (slave), la inceputul lui, incerci sa deschizi mutex-ul, dupa numele ala unic. Daca esueaza deschiderea, inseamna ca primul executabil nu a fost lansat...
Este unul dintre mecanismele unor virusi mai prosti de a vedea daca ruleaza o instanta de-a lor...

PRIMUL EXECUTABIL (MASTER):
// la inceputul lui WinMain():
HANDLE		hMutex;
hMutex = CreateMutex(NULL, TRUE, "cucuTest_numeleUnic");

// . . . alte functii ale tale

// inainte sa se termine WinMain-ul:
CloseHandle(hMutex);

AL DOILEA EXECUTABIL (SLAVE):
// la inceputul lui WinMain():
HANDLE		hMutex;
hMutex = OpenMutex(MUTEX_ALL_ACCESS, TRUE, "cucuTest_numeleUnic");
if (hMutex) OK(); // inseamna ca master-ul ruleaza - OK() - functie inexistenta
else Fail(); // master-ul nu ruleaza - Fail() - functie inexistenta

// . . . alte functii ale tale

// inainte sa se termine WinMain-ul:
CloseHandle(hMutex);

Traduci tu in VB...

Edited by Africanul, 21 April 2006 - 13:06.


Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate