Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Передача данных между приложениями под разными пользователями / 14 сообщений из 14, страница 1 из 1
06.08.2007, 09:18
    #34706785
boles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
Добрый день!

Помогите, пожалуйста! Ситуация следующая. Запускаются 2 приложения под разными пользователями, и необходимо, чтобы одно приложение передало другому текстовые данные.

С помощью функции CreateFileMapping (файловое отображение) под одним пользователем реализовать такое получилось. Однако, под разными пользователями выделяются разные области памяти, и приложения не видят друг друга.

Может, будут какие-нибудь идеи, как реализовать такую передачу данных? Очень прошу помочь! Ну просто позарез нужно!

Заранее спасибо за любую помощь!
...
Рейтинг: 0 / 0
06.08.2007, 09:52
    #34706847
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
boles wrote:

> Может, будут какие-нибудь идеи, как реализовать такую передачу данных?
> Очень прошу помочь! Ну просто позарез нужно!
>
Можно сокеты использовать.

Потом в WinAPI были функции для работы с pipe'ами (CreateNamedPipe, что
ли?), которыми я никогда не пользовался - это, случайно, не то, что вам
нужно?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
06.08.2007, 09:59
    #34706868
boles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
ErV
Можно сокеты использовать.

Потом в WinAPI были функции для работы с pipe'ами (CreateNamedPipe, что
ли?), которыми я никогда не пользовался - это, случайно, не то, что вам
нужно?
Posted via ActualForum NNTP Server 1.4

Вот я абсолютно не знаком с сокетами, пайпами... Поэтому затрудняюсь сказать, это ли мне нужно... Буду очень благодарен какому-нить примеру, чтобы омжно было переделать под себя, т.к. даже не представляю, с чего начать...
...
Рейтинг: 0 / 0
06.08.2007, 10:08
    #34706890
topa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
А ты перед созданием Отбображения с начало открой файл (OpenFile) по имени потом отображение и передавай в функцию CreateFileMapping дескриптор открытого файла. И почитай книгу Джефри Рихтера
Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows
...
Рейтинг: 0 / 0
06.08.2007, 10:11
    #34706901
boles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
topa1А ты перед созданием Отбображения с начало открой файл (OpenFile) по имени потом отображение и передавай в функцию CreateFileMapping дескриптор открытого файла. И почитай книгу Джефри Рихтера
Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows

Я именно так и делаю... Только, говорю же, что это работает, когда оба приложения запущены от имени одного пользователя, а надо, чтобы можно было запустить их от имени разных пользователей.
...
Рейтинг: 0 / 0
06.08.2007, 10:12
    #34706906
topa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
А ты как открываешь отображение под другим пользователем? По имени?
...
Рейтинг: 0 / 0
06.08.2007, 10:13
    #34706917
topa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
Ну тогда код в студию
...
Рейтинг: 0 / 0
06.08.2007, 10:15
    #34706921
boles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
topa1Ну тогда код в студию
Один момент... Щас будет код в студии :)
...
Рейтинг: 0 / 0
06.08.2007, 10:17
    #34706928
topa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
А также под какой операционкой запускаешь?
...
Рейтинг: 0 / 0
06.08.2007, 10:25
    #34706959
boles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
Описана структура:

Код: plaintext
1.
2.
3.
4.
Type CheckStand
    Done As Long
    text As String *  20 
    Client As String *  8 
End Type
################################################
Текст того, кто будет получать данные:

Код: plaintext
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.
Private Sub chkOpen_Click()
    Dim usename$
    Dim InitialStand As CheckStand
    Dim written&
    usename$ = "ChkStd" & txtCheck.text
    If chkOpen.value =  1  Then
        If FileHandle <>  0  Then Exit Sub
        FileHandle = CreateFile(usename$, GENERIC_READ Or GENERIC_WRITE, _
                                 0 , Security, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL Or FILE_FLAG_RANDOM_ACCESS,  0 )
        If FileHandle = - 1  Then
            MsgBox "Can't create file"
            FileHandle = 0
            Exit Sub
        End If
        Call WriteFile(FileHandle, InitialStand, Len(InitialStand), written, 0)
        Call FlushFileBuffers(FileHandle)
        MappingHandle = CreateFileMapping(FileHandle, Security, PAGE_READWRITE, 0, 0, usename$ & "map")
        If MappingHandle = 0 Then
            MsgBox "Can't create file mapping"
            Exit Sub
        End If
        MappingAddress = MapViewOfFile(MappingHandle, FILE_MAP_ALL_ACCESS,  0 ,  0 ,  0 )
        If MappingAddress =  0  Then
            MsgBox "Can't map view of the file"
            Exit Sub
        End If
        Timer1.Enabled = True
    Else
        CleanUp
        lblStatus.Caption = "Closed"
    End If
End Sub

Private Sub Form_Load()
    With Security
        .nLength = Len(Security)
        .lpSecurityDescriptor =  0 
        .bInheritHandle = True
    End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
    CleanUp
End Sub

Private Sub CleanUp()
    Timer1.Enabled = False
    If MappingAddress <>  0  Then
        Call UnmapViewOfFile(MappingAddress)
        MappingAddress =  0 
    End If
    If MappingHandle <>  0  Then
        Call CloseHandle(MappingHandle)
        MappingHandle =  0 
    End If
    If FileHandle <>  0  Then
        Call CloseHandle(FileHandle)
        FileHandle =  0 
    End If
End Sub

Private Sub Timer1_Timer()
    Dim cs As CheckStand
    agCopyData ByVal MappingAddress, cs, Len(cs)
    If cs.Done =  1  Then
            lstCustomers.AddItem cs.text
            cs.Done =  0 
            Timer1.Enabled = False
            lblStatus.Caption = "Waiting to pay"
    Else
        lblStatus.Caption = "Waiting for customer"
    End If
    
End Sub

####################################################################33
Тот, кто отправляет:

Код: plaintext
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.
Private Sub Timer1_Timer()
    Dim usename$
    Dim newtotal&
    Dim cs As CheckStand
    Dim x%
      
    Select Case CurrentState
        Case  0 
            If chkShop.value =  1  Then
                CurrentState =  1 
            End If
        Case  1 
            usename$ = GetMappingName$()
            MappingHandle = OpenFileMapping(FILE_MAP_WRITE, False, usename$)
            If MappingHandle =  0  Then Exit Sub
            MappingAddress = MapViewOfFile(MappingHandle, FILE_MAP_ALL_ACCESS,  0 ,  0 ,  0 )
            CurrentState =  2 
        Case  2 
            CurrentState =  3 
        Case  3 
            Open "C:\config.ini" For Input As # 1 
            If Not EOF( 1 ) Then
               Line Input # 1 , cs.text
            End If
            Close # 1 
            cs.Done =  1 
            cs.Client = "Client" & txtClient.text
            agCopyData cs, ByVal MappingAddress, Len(cs)
            CurrentState =  4 
            CleanUp
    End Select
End Sub

Public Function GetMappingName() As String
    GetMappingName = "ChkStd1map"
End Function

Private Sub CleanUp()
    If MappingAddress <>  0  Then
        Call UnmapViewOfFile(MappingAddress)
        MappingAddress =  0 
    End If
    If MappingHandle <>  0  Then
        Call CloseHandle(MappingHandle)
        MappingHandle =  0 
    End If
End Sub

Операционка вроде бы Windows 2000 () не уверен, т.к. это запускается на терминальном сервере. Если принципиально - могу уточнить
...
Рейтинг: 0 / 0
06.08.2007, 10:37
    #34706990
topa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
скорее всего грабли в том что это работает из под терминального сервера, так как там для каждого пользователя своя среда ник как на перекрывающаяся с другим пользователем.

Значить сокеты. Инфы про них полно и инете.
...
Рейтинг: 0 / 0
06.08.2007, 10:40
    #34707003
boles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
topa1скорее всего грабли в том что это работает из под терминального сервера, так как там для каждого пользователя своя среда ник как на перекрывающаяся с другим пользователем.

Значить сокеты. Инфы про них полно и инете.

Может, поможете написать чего-нить с использованием этих сокетов? Ибо абсолютно не знаю, как это писать... И время ОООООЧЕНЬ ограничено! В общем, если есть возможность, то очень прошу помочь!
...
Рейтинг: 0 / 0
06.08.2007, 10:42
    #34707012
topa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
мыло давай
...
Рейтинг: 0 / 0
06.08.2007, 10:43
    #34707018
boles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных между приложениями под разными пользователями
topa1мыло давай

boles@e1.ru
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Передача данных между приложениями под разными пользователями / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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