1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
| * PROGRAM BAŞLATICI - HER KULLANICI PROGRAMI SUNUCUDAN KOPYALAYIP KULLANIYOR
#DEFINE AYNI_ANDA "AYNI ANDA İKİ AYNI UYGULAMA ÇALIŞMAMALI"
#DEFINE UYGULAMA_ACIK "UYGULAMA AÇIK"
#DEFINE KAYNAK_YOK "kaynak dosya yok"
#DEFINE MUHTEMELEN "muhtemelen sunucuya bağlanmadınız"
#DEFINE SORUNU_COZEMEZSENIZ "SORUNU ÇÖZEMEZSENİZ SİSTEM SORUMLUSUNA DANIŞIN"
#DEFINE LUTFEN_BEKLEYIN "lütfen bekleyin"
#DEFINE YENI_SURUM "programın yeni sürümü kopyalanıyor"
#DEFINE CRT CHR(13)
LOCAL lokaldizin, kaynakdizin, lokaldosya, kaynakdosya, uygulama
ON ERROR RETURN
uygulama="exeirs9.exe"
lokaldizin="C:\atenuygulamalar"
dlldizin="\\tlsanasunucu\fox\vf9rf"
kaynakdizin="\\tlsanasunucu\fox"
* önce lokal bilgisayarda dizin oluştur ve vfp dll dosyaları kopyala...
SET PATH TO
IF ! DIRECTORY(lokaldizin)
MD(lokaldizin)
ENDIF
*vfp9r.dll
*vfp9t.dll
*vfp9renu.dll
*msvcr71.dll
*gdiplus.dll
*msvcr70.dll
*rar.exe && bunu program içinden kullanıyorum
IF !FILE(lokaldizin+"\vfp9r.dll")
kaynakdosya=dlldizin+"\*.dll"
lokaldosya=lokaldizin+"\*.dll"
COPY FILE &kaynakdosya TO &lokaldosya
kaynakdosya=dlldizin+"\rar.exe"
lokaldosya=lokaldizin+"\rar.exe"
COPY FILE &kaynakdosya TO &lokaldosya
ENDI
SET DEFA TO &lokaldizin
** PROGRAMIN ÇALIŞIP ÇALIŞMADIĞINI KONTROL ET
*IF uygulamaçik(JUSTFNAME(ADDBS(lokaldizin)+uygulama))
* =MESSAGEBOX(AYNI_ANDA,16,UYGULAMA_ACIK)
* RETU
*ENDI
kaynakdizin="\\tlsanasunucu\fox\prgexe"
lokaldosya=ADIR(dosyabilgilerilokal,uygulama) && lokal dizin: default
kaynakdosya=ADIR(dosyabilgilerikaynak,ADDBS(kaynakdizin)+uygulama) && kaynak dizin
IF kaynakdosya= 0 && kaynak yoksa çık
=MESSAGEBOX( KAYNAK_YOK+CRT+MUHTEMELEN,16,SORUNU_COZEMEZSENIZ)
RETU && QUIT
ENDI
IF lokaldosya=0 OR ; && ilk defa
! dosyabilgilerilokal[1,3]=dosyabilgilerikaynak[1,3] OR ;
! dosyabilgilerilokal[1,4]=dosyabilgilerikaynak[1,4]
WAIT WINDOW LUTFEN_BEKLEYIN+CRT+YENI_SURUM NOWAIT NOCLEAR
SET SAFE OFF && KULLANICIYA İNSİYATİF İÇİN KALDIRILABİLİNİR
kaynakdosya=ADDBS(kaynakdizin)+uygulama
lokaldosya=ADDBS(lokaldizin)+uygulama
COPY FILE &kaynakdosya TO &lokaldosya
SET SAFE ON
WAIT CLEAR
ENDIF
** uygulamayı başlat
lnWindowState = 9 && SW_SHOWNORMAL
lnhWnd = 0
lcop = 'open'
lcparms = ""
*lcfilename = " " ->lokaldosya=lokaldizin+uygulama
*lcpath = JUSTPATH(lcFilename) ->lokaldizin
lokaldosya=ADDBS(lokaldizin)+uygulama
DECLARE INTEGER ShellExecute IN Shell32;
INTEGER hWnd, STRING @lpOperation,;
STRING @lpFile, STRING @lpParameters,;
STRING @lpDirectory, INTEGER nShowCmd
lnresult = ShellExecute(0, @lcop, @lokaldosya,;
@lcparms, @lokaldizin, lnWindowState)
IF lnresult < 33 && Error occurred
IF lnresult = 31 && No file associated
DECLARE INTEGER GetSystemDirectory IN Win32API STRING @lpBuffer, INTEGER nSize
lnsize = 260
lcbuffer = SPACE(lnsize)
lnsize = GetSystemDirectory(@lcbuffer, lnsize)
IF lnsize > 0
lcbuffer = LEFT(lcbuffer, lnsize)
lcrundll = "RUNDLL32.EXE"
lcparms = "shell32.dll,OpenAs_RunDLL "
lnresult = ShellExecute(lnhWnd, @lcop, lcrundll,;
lcparms + lokaldosya, lcbuffer, lnWindowState)
ENDI
ENDI
ENDI
RETURN lnresult
***********************************************************
** UYGULAMA TEK ÇALIŞMALI
PROCEDURE uygulamaçik
** uygulamaçik("uygulama.exe")
PARAMETERS myApp
=ddesetoption("SAFETY",.F.)
ichannel = DDEINITIATE(myapp,"ZOOM")
IF ichannel =>0
=DDETERMINATE(ichannel)
RETU .t.&& QUIT
ENDI
=DDESETSERVICE(myapp,"define")
=DDESETSERVICE(myapp,"execute")
=DDESETTOPIC(myapp,"","ddezoom")
RETURN .f.
*********************************************************
PROCEDURE ddezoom
PARAMETER ichannel,saction,sitem,sdata,sformat,istatus
ZOOM WINDOW SCREEN MAX
RETURN
*kopyalanan dosyalar
IF !FILE(lokaldizin+"\vfp9r.dll")
kaynakdosya=dlldizin+"\vfp9r.dll"
lokaldosya=lokaldizin+"\vfp9r.dll"
COPY FILE &kaynakdosya TO &lokaldosya
kaynakdosya=dlldizin+"\vfp9t.dll"
lokaldosya=lokaldizin+"\vfp9t.dll"
COPY FILE &kaynakdosya TO &lokaldosya
kaynakdosya=dlldizin+"\vfp9renu.dll"
lokaldosya=lokaldizin+"\vfp9renu.dll"
COPY FILE &kaynakdosya TO &lokaldosya
kaynakdosya=dlldizin+"\msvcr71.dll"
lokaldosya=lokaldizin+"\msvcr71.dll"
COPY FILE &kaynakdosya TO &lokaldosya
kaynakdosya=dlldizin+"\gdiplus.dll"
lokaldosya=lokaldizin+"\gdiplus.dll"
COPY FILE &kaynakdosya TO &lokaldosya
ENDI |