powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Общение через фокс
13 сообщений из 38, страница 2 из 2
Общение через фокс
    #38482038
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522,

Вместо папки "Моя музыка" сделай что-нибудь попроще
...
Рейтинг: 0 / 0
Общение через фокс
    #38482068
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG, спасибо завтра тестить будем.
...
Рейтинг: 0 / 0
Общение через фокс
    #38482076
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG, у нас как получается я открываю всё норм 2й ком жмёт открыть у него прога не открывается я закрываю и у него сразу открывается

попробовал
USE \\ENERGY\SharedDocs\Base\hlp.dbf IN 1 SHARED
и
USE \\ENERGY\SharedDocs\Base\hlp.dbf IN 2 SHARED
также
...
Рейтинг: 0 / 0
Общение через фокс
    #38482115
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522IgorNG, у нас как получается я открываю всё норм 2й ком жмёт открыть у него прога не открывается я закрываю и у него сразу открывается

попробовал
USE \\ENERGY\SharedDocs\Base\hlp.dbf IN 1 SHARED
и
USE \\ENERGY\SharedDocs\Base\hlp.dbf IN 2 SHARED
также

Смена областей открытия файла здесь не при чем (IN 1, IN 2).
Код приводи, где файл открывается.
Где-то видел у тебя ZAP. Забудь про эту команду.
...
Рейтинг: 0 / 0
Общение через фокс
    #38482487
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNGКод приводи, где файл открывается.


Код: sql
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.
SET ESCAPE Off
SET talk off      
SET status off    
SET scoreboard off
SET bell off      
SET date DMY  
SET ECHO OFF
set safety off
clea macros
close all
SET CENTURY ON

*SELECT 2
*USE setup
*
*SELECT 1
*USE hlp
*ZAP 
*
*setup2 = ADDBS(setup.prover)
*
*IF FILE (setup2+'hlp.dbf') =.T. 
*  APPEND FROM ALLTRIM(setup.prover)+'\'+'hlp.dbf'
*  APPEND FROM ALLTRIM(setup.prover)+'\'+'n1.dbf'  
*ENDIF

USE \\ENERGY\SharedDocs\Base\hlp.dbf IN 0 SHARED


DO FORM proverka  
READ EVENTS



zap все убрал
...
Рейтинг: 0 / 0
Общение через фокс
    #38482560
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все уже украдено придумано до нас
Простецкий сетевой чат
...
Рейтинг: 0 / 0
Общение через фокс
    #38482828
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
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.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
*
* Простецкий сетевой чат
*
* Запускаем его на кадой машине 
* Метод - SendMsg - форма для отправки сообщения
* указывается имя компьютера без \\ 
* длина сообщения не более 425 - ограницение mailslot
* для пытливых умов - пожалуйста msdn
* 
* При получении сообщения окно само выпрыгивает
*
* Ввиду своей тупости - сообщения уходят даже на несуществуюцие
* компьютеры
* 
* Остальное - острые края обработать напильником


#define MYSLOT		"\myslot"


#Define GENERIC_READ                     (0x80000000)
#Define GENERIC_WRITE                    (0x40000000)

#Define FILE_SHARE_READ                 0x00000001
#Define FILE_SHARE_WRITE                0x00000002
#Define FILE_SHARE_DELETE               0x00000004

#Define FILE_ATTRIBUTE_NORMAL           0x00000080

#Define MAILSLOT_NO_MESSAGE             0xFFFFFFFF
#Define MAILSLOT_WAIT_FOREVER           0xFFFFFFFF

#Define OPEN_EXISTING       3

Public goPager
goPager=CreateObject("MailSlot")
gopager.Wait()


Define Class Mailslot As Custom
	hMailSlot=-1

	Add Object Timer as Timer  with interval=200

	Procedure Read
	* Чтение сообщения из слота
	* Возвращает строку сообщения 
	* При ошибке - возвращает пустую строку

	With this
		If .hMailSlot > 0 && Слот создан
			Local nSize
			nSize=0
			If .GetInfo(@nSize) > 0
				Local buffer, read, h
				read=0
				buffer=Replicate(Chr(0),nSize)
				h=ReadFile(.hMailSlot,@buffer,Len(buffer),@read,0)
				If h = 0
	*				=MessageBox("Ошибка при чтении сообщения",64,_screen.Caption)
					Return ""
				Else
					Return Left(buffer,read)
				EndIf			
			EndIf			
		EndIf
		Return ""
	EndWith


	Procedure Send(m.cComputerName, m.cMsg)
	* Отправка сообщения m.cMsg на компьютер m.cComputerName
	* Возвращает кол-во отправленных байт
	* При ошибке - возвращает 0
	With this
		if Len(m.cMsg)> 425
			=MessageBox("Размер сообщение слишком велик",64,_screen.Caption)
			Return 0
		EndIf

		Local h, buffer, written, ret

		h=CreateFile;
			('\\'+m.cComputerName+'\mailslot'+MYSLOT;
			,GENERIC_WRITE;
			,FILE_SHARE_READ;
			,0;
			,OPEN_EXISTING;
			,FILE_ATTRIBUTE_NORMAL;
			,0)

		If h < 0
			=MessageBox("Не могу отправить сообщение.",64,_Screen.Caption)
			Return 0
		EndIf

		buffer=m.cMsg
		written=0

		ret=WriteFile(h,@buffer,Len(buffer),@written,0)
		CloseHandle(h)
		If ret = 0
			=MessageBox("Ошибка при отправке сообщения",64,_screen.Caption)

			Return 0
		EndIf
		Return written
	EndWith

	
	Procedure GetInfo(nMsgSize)
	* Провека наличия сообщения в почтовом ящике
	* Возвращает кол-во сообшений
	* Параметр nMsgSize - передается по ссылке и возвращает
	* размер первого непрочитанного сообщения
	With this
		If .hMailSlot > 0	&& Если слот создан
			Local h, nSizeNextMsg, nMsgCount
			nSizeNextMsg=0
			nMsgCount=0

			h=GetMailslotInfo;
				(.hMailSlot;
				,0;
				,@nSizeNextMsg;
				,@nMsgCount;
				,0)

			If h=0
				=MessageBox("Ошибка при получении информации о полученных сообщениях",64,_screen.Caption)
				Return 0
			EndIf
			If nMsgCount=0
				* Сообщений нет
				Return 0
			EndIf	
			nMsgSize=nSizeNextMsg
			Return nMsgCount
		Else
			Return 0
		EndIf
	EndWith

	Procedure Wait
	* Цикл ожидания сообщения
	With this
		If .GetInfo() > 0
			Local x, s
			s=.Read()
			If not Empty(s)
				PlaySound("MailBeep",0,1)
				x=CreateObject("ShowMsgForm")
				x.text.value=s
				x.show(1)
			EndIf
		EndIf
	EndWith	

	Procedure SendMsg
	With this
		Local x
		Private m.comp, m.msg
		m.comp=''
		m.msg=''
		
		x=CreateObject('SendMsgForm')
		With x
			.txtComp.ControlSource='m.comp'
			.edtMsg.ControlSource='m.msg'
			.show(1)
			If .Tag='OK'
				This.Send(Alltrim(m.Comp),Alltrim(m.msg))
			EndIf
		EndWith
	EndWith

	
	Procedure Timer.Timer
	this.Parent.wait

	Procedure Init
	With this
		.DeclareApi()
		.Create()
	EndWith

	Procedure Create
	* Процедура - вынесена из Init для моих целей
	With this
		.hMailSlot=CreateMailSlot('\\.\mailslot'+MYSLOT,0,0,0)
		If .hMailSlot > 0
			* Слот сзодан - можно читать
		Else
			=MessageBox("Не могу создать почтовый ящик",64,_Screen.Caption)
			Return .F.
		EndIf	
	EndWith

	Procedure Destroy
	With this
		CloseHandle(.hMailSlot)
	EndWith

	Procedure DeclareApi

	Declare Integer CreateMailslot In win32api ;
		string SlotName,;
		integer MaxSize,;
		integer Timeout,;
		string Sec


	Declare Integer WriteFile In kernel32 ;
		INTEGER hFile,;
		string lpBuffer,;
		INTEGER nBt2Write,;
		INTEGER @ lpBtWritten,;
		INTEGER lpOverlapped


	Declare Integer ReadFile In kernel32 ;
		INTEGER   hFile,;
		STRING    lpBuffer,;
		INTEGER   nNumberOfBytesToRead,;
		INTEGER @ lpNumberOfBytesRead,;
		STRING  @ lpOverlapped

	Declare Integer CloseHandle In win32api Integer
	Declare Long GetLastError In win32api

	Declare Integer GetMailslotInfo In win32api ;
		integer hMailSlot,;
		integer @ MaxSize,;
		integer @ NextSize,;
		integer @ MessageCount,;
		integer @ Timeout

	Declare Integer CreateFile In kernel32.Dll;
		STRING  lpFileName,;
		INTEGER dwDesiredAccess,;
		INTEGER dwShareMode,;
		INTEGER lpSecurityAttributes,;
		INTEGER dwCreationDistribution,;
		INTEGER dwFlagsAndAttributes,;
		INTEGER hTemplateFile

	Declare integer PlaySound in winmm.dll string, integer, integer

Enddefine

Define Class SendMsgForm AS Form
	Caption='Отправка сообщения'
	AutoCenter=.T.
	BorderStyle=2
	Width=375
	Height=375
	Icon=_Screen.Icon
	MinButton=.F.
	MaxButton=.F.
	WindowType=1

	Add Object lblComp as Label with ;
		Top=12,;
		Left=10,;
		Width=80,;
		FontName='Arial',;
		FontSize=8,;
		AutoSize=.T.,;
		Caption='Компьютер'
		
	Add Object txtComp as TextBox with ;
		Top=10,;
		Left=100,;
		Width=250,;
		Height=20,;
		Margin=1,;
		FontName='Arial',;
		FontSize=8


	Add Object lblMsg as Label with ;
		Top=42,;
		Left=10,;
		Width=80,;
		FontName='Arial',;
		FontSize=8,;
		AutoSize=.T.,;
		Caption='Сообщение'

	Add Object edtMsg as EditBox with ;
		Top=60,;
		Left=10,;
		Width=355,;
		Height=270,;
		FontName='Arial',;
		FontSize=8
	
	Add Object cmdOk as CommandButton with ;
		Default=.T.,;
		FontName='Arial',;
		FontSize=8,;
		Caption='Готово',;
		Top=375-24-5,;
		Left=375-5-80-5-80,;
		Width=80,;
		Height=24

	Add Object cmdCancel as CommandButton with ;
		Cancel=.T.,;
		FontName='Arial',;
		FontSize=8,;
		Caption='Отмена',;
		Top=375-24-5,;
		Left=375-5-80,;
		Width=80,;
		Height=24

	Procedure UnLoad
	Return This.Tag='OK'
	EndProc

	Procedure CmdOk.Click
	With thisform
		.Tag='OK'
		.Hide()
		.Release()
	EndWith

	Procedure CmdCancel.Click
	With thisform
		.Hide()
		.Release()
	EndWith

EndDefine

Define Class ShowMSGForm AS Form
	Caption='Получено сообщение'
	AutoCenter=.T.
	BorderStyle=2
	Width=375
	Height=375
	Icon=_Screen.Icon
	MinButton=.F.
	MaxButton=.F.
*	WindowType=1

	Add Object Text as EditBox with ;
		Top=10,;
		Left=10,;
		Width=355,;
		Height=325,;
		FontName='Arial',;
		FontSize=8,;
		ReadOnly=.T.

	Add Object cmdCancel as CommandButton with ;
		Cancel=.T.,;
		FontName='Arial',;
		FontSize=8,;
		Caption='Отмена',;
		Top=375-24-5,;
		Left=375-5-80,;
		Width=80,;
		Height=24

	Procedure UnLoad
	Return This.Tag='OK'
	EndProc

	Procedure CmdCancel.Click
	With thisform
		.Hide()
		.Release()
	EndWith

EndDefine



Подскажите где имена компов прописывать.
...
Рейтинг: 0 / 0
Общение через фокс
    #38482829
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
('\\'+m.cComputerName+'\mailslot'+MYSLOT;

вопрос снят)
...
Рейтинг: 0 / 0
Общение через фокс
    #38482842
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Help! "Не могу создать почтовый ящик"
...
Рейтинг: 0 / 0
Общение через фокс
    #38482847
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DagВсе уже украдено придумано до нас
Простецкий сетевой чат
вы проверяли этот чат? что-то у нас он совсем не хочет работать (1.asu6s 2.ENERGY если что)
...
Рейтинг: 0 / 0
Общение через фокс
    #38482959
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из-за 7ки может не работать?
...
Рейтинг: 0 / 0
Общение через фокс
    #38483814
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522,
И в win7 и в winXP работает нормально. У меня эта мулька встроена в приложение.
...
Рейтинг: 0 / 0
Общение через фокс
    #38485698
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dag, приложением не поделишься? у нас так и не получилось 1н файл в 2м запустить для чата
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Общение через фокс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]