Перехватить и обезвредить сочитаний клавиш

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Valerik
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 18.10.2002 (Пт) 14:02
Откуда: Russia

Перехватить и обезвредить сочитаний клавиш

Сообщение Valerik » 20.04.2004 (Вт) 21:33

Привет всем :!:
Народ мне нужно перехватить сочетание клавиш и послать вместо их кода ноль :
1) Alt - Tab
2) Alt - F4
3) Esc
4) Ctrl - Alt - Del
5) Клавишу Windows
6) Ctrl - Esc
7) Alt - Esc

И как сделать так чтобы с программы нельзя было убрать фокус, чтобы нельзя было передать фокус другим приложениям. Чтобы форма нетеряла Фокус !

Заранее Благодарен :!:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Re: Перехватить и обезвредить сочитаний клавиш

Сообщение Ennor » 21.04.2004 (Ср) 10:18

Valerik писал(а):И как сделать так чтобы с программы нельзя было убрать фокус, чтобы нельзя было передать фокус другим приложениям. Чтобы форма нетеряла Фокус !

Странно, зарегистрировался ты здесь ажно в 2002-м, а таких вещей до сих пор не знаешь. Твое намерение противоречит идеологии мультизадачной ОС, каковой является винда. Не позволит она тебе такого.

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 21.04.2004 (Ср) 15:46

Пазволит, пазволит в 98ых такое можно делать в ХР не знаю ,не пробовал :wink:
Max!

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Перехватить и обезвредить сочитаний клавиш

Сообщение codemaster » 21.04.2004 (Ср) 15:57

Ennor писал(а):
Valerik писал(а):И как сделать так чтобы с программы нельзя было убрать фокус, чтобы нельзя было передать фокус другим приложениям. Чтобы форма нетеряла Фокус !

Странно, зарегистрировался ты здесь ажно в 2002-м, а таких вещей до сих пор не знаешь. Твое намерение противоречит идеологии мультизадачной ОС, каковой является винда. Не позволит она тебе такого.



К зарегистрированному аж в 2001 году (Ennor ) и с тех пор так
и не прочитавшему ни одной книги по архитектуре Win !

Интересно узнать какая cвязь между идеологией мультизадачной ОС и фокусом формы? :lol: :lol: :lol:
Последний раз редактировалось codemaster 21.04.2004 (Ср) 16:02, всего редактировалось 1 раз.

Valerik
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 18.10.2002 (Пт) 14:02
Откуда: Russia

Сообщение Valerik » 21.04.2004 (Ср) 15:59

Ennor писал(а):
Странно, зарегистрировался ты здесь ажно в 2002-м, а таких вещей до сих пор не знаешь. Твое намерение противоречит идеологии мультизадачной ОС, каковой является винда. Не позволит она тебе такого.

Ну что сказать *censored* -> МОЛОДЦА. :twisted:
НУ вот знай что нет нечего невозможного, я слышал что типа моно поставить Hook, кличитца точно не помню вроде как Set Windows Hook.
Вроде как моно сделать так чтобы ваще мультимедийные кнопки отрубить из под Windows, либо определённые сочетания. Только нуна вспомнить как это делается.

Может кто поможет :!:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 21.04.2004 (Ср) 18:06

В мастдае, к коему я отношу 9x/ME, можно и не такое сделать. Только вот... грамотный пользователь все равно такие навороты обойти сможет. А вот в винде (то есть NT) - уже вряд ли сделаешь, если только не начнешь напрямую патчить ntoskrnl.exe, hal.dll, etc. Три пальца еще никто не отменял.
Хотя, возможно, есть один штатный способ. В XP появился режим работы (не помню, как он называется), при котором вообще не показывается десктоп. Его как бы нет, сразу грузится твоя программа. Ну и по ее выходе тоже, соотв-но - шатдаун полный. На моей предыдущей работе народ так встроенные системы на черных ящиках делал.

2 CodeMaster: сделать модальную форму ты можешь только в пределах одного процесса (т.е., своего). А вот запретить юзеру переключиться на десктоп через, например, Win+D - я такого пока не встречал. Минимизируется все, даже MsgBox'ы - сам проверь.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 21.04.2004 (Ср) 22:48

Ennor писал(а):В мастдае, к коему я отношу 9x/ME, можно и не такое сделать. Только вот... грамотный пользователь все равно такие навороты обойти сможет. А вот в винде (то есть NT) - уже вряд ли сделаешь, если только не начнешь напрямую патчить ntoskrnl.exe, hal.dll, etc. Три пальца еще никто не отменял.
.................
2 CodeMaster: сделать модальную форму ты можешь только в пределах одного процесса (т.е., своего). А вот запретить юзеру переключиться на десктоп через, например, Win+D - я такого пока не встречал. Минимизируется все, даже MsgBox'ы - сам проверь.


Долго думал?
Почитай для начала книжку по Архитектуре (Администрированию )NT
подумай чем занимаются ntoskrnl.exe, hal.dll и что есть процесс
в NT

Да .......

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 22.04.2004 (Чт) 9:37

2 CodeMaster: Я что-то не въеду: это форум по VB 6 или по асму? И как ты собираешься в нулевое кольцо залезать?..

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 22.04.2004 (Чт) 10:22

Ennor писал(а):2 CodeMaster: Я что-то не въеду: это форум по VB 6 или по асму? И как ты собираешься в нулевое кольцо залезать?..


человек спросил
Valerik писал(а):И как сделать так чтобы с программы нельзя было убрать фокус, чтобы нельзя было передать фокус другим приложениям. Чтобы форма нетеряла Фокус ! ?..


Причем тут нулевое кольцо ntoskrnl.exe, hal.dll

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 22.04.2004 (Чт) 10:25

Valerik, еще один матюг и полетишь с форума как деревяннотехническое изделие над столицей европейской страны, подарившей миру Ги Савуа.

Valerik
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 18.10.2002 (Пт) 14:02
Откуда: Russia

Сообщение Valerik » 22.04.2004 (Чт) 19:44

Народ ну что некто чтоли не делал этого ?
Киньте пример кода, очень нуна :!:

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 23.04.2004 (Пт) 10:57

Эх, вы парень с просьбой к вам.....а вы к нему жопой......ну так тоже не делается.....тема была создана для того, чтобы решить вопрос, а вы решаете свои собственные проблеммы.

Вот маленький пример прога ловит ALT+TAB:

Код: Выделить всё
'В модуль
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Const VK_TAB = &H9
Public Const VK_MENU = &H12



Код: Выделить всё
Private Sub tmrTimer_Timer()
If GetAsyncKeyState(VK_MENU) And GetAsyncKeyState(VK_TAB) Then

'Делаешь что то страшное

End If
End Sub



Все что тебе осталось узнать константы тех клавишь которые тебе еще осталось отловить....
Существует не только виртуальная реальность - все будет.

ChelDm
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 112
Зарегистрирован: 14.02.2004 (Сб) 14:56

Сообщение ChelDm » 25.04.2004 (Вс) 10:29

Отключение действия Ctrl+Alt+Del в Windows 9x (не в NT!)

Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, _
ByVal uParam As Long, ByVal lpvParam As Any, _
ByVal fuWinIni As Long) As Long

Для отключения реакции на Ctrl+Alt+Del:
SystemParametersInfo 97, True, ByVal 1&, 0

Для включения:
SystemParametersInfo 97, False, ByVal 1&, 0

Примечание: Не забудьте после закрытия программы снова включить реакцию на Ctrl+Alt+Del.

Скрытие программы в списке задач Task Manager (т.е. в списке Ctrl+Alt+Del)

Declare Function RegisterServiceProcess Lib "kernel32.dll" _
(ByVal dwProcessId As Long, ByVal dwType As Long) As Long

Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long

Для скрытия:
RegisterServiceProcess GetCurrentProcessId, 1

Для показа:
RegisterServiceProcess GetCurrentProcessId, 0

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 21.02.2005 (Пн) 11:06

Эх, вы парень с просьбой к вам.....а вы к нему жопой......ну так тоже не делается.....тема была создана для того, чтобы решить вопрос, а вы решаете свои собственные проблеммы.

Дело говоришь! :!:
'В модуль
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Const VK_TAB = &H9
Public Const VK_MENU = &H12

Код:
Private Sub tmrTimer_Timer()
If GetAsyncKeyState(VK_MENU) And GetAsyncKeyState(VK_TAB) Then

'Делаешь что то страшное

End If
End Sub

А за это спасибо... :)
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 21.02.2005 (Пн) 18:51

Memfivosfey писал(а):
'В модуль
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Const VK_TAB = &H9
Public Const VK_MENU = &H12

Код:
Private Sub tmrTimer_Timer()
If GetAsyncKeyState(VK_MENU) And GetAsyncKeyState(VK_TAB) Then

'Делаешь что то страшное

End If
End Sub

А за это спасибо... :)


Не успеешь ты не фига(((
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 21.02.2005 (Пн) 18:58

Sebas писал(а):
Memfivosfey писал(а):
'В модуль
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Const VK_TAB = &H9
Public Const VK_MENU = &H12

Код:
Private Sub tmrTimer_Timer()
If GetAsyncKeyState(VK_MENU) And GetAsyncKeyState(VK_TAB) Then

'Делаешь что то страшное

End If
End Sub

А за это спасибо... :)


Не успеешь ты не фига(((
Ты вроде гуру, а по делу говорить не умеешь...
Если есть что, говори, а нет не болтай в пустую.....
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 21.02.2005 (Пн) 19:01

Memfivosfey, не обращай внимания... Гуры - они такие :D

А Sebas дело говорит, только загадками ;)

Samrat
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 11.08.2004 (Ср) 10:32

Блокировка клавиш

Сообщение Samrat » 21.02.2005 (Пн) 19:36

Самое простое присвоить окну аттрибут system - modal , точно не помню, короче сделать его системным и модальным а единственную кнопку заблокировать нафиг . Конечно западло дикое - зато просто и сердито.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 21.02.2005 (Пн) 19:37

Samrat, обрадую: это вообще не западло...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 21.02.2005 (Пн) 20:20

Короче, вот штука, которой я спасаюсь от кей логгеров.

Выдрал из проекта, так чистите сами, если есть желание. Мож деклараций не хватит. (остались в других модулях....)

класс

Код: Выделить всё
Option Explicit

Private Hooked As Boolean


Public Event MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Public Event MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Public Event MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Public Event KeyDown(KeyCode As Integer, Shift As Integer)
Public Event KeyUp(KeyCode As Integer, Shift As Integer)
Public Event SystemKeyDown(KeyCode As Integer)
Public Event SystemKeyUp(KeyCode As Integer)

Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Private Declare Function GetAsyncKeyState% Lib "user32" (ByVal vKey As Long)

Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_MBUTTONDBLCLK = &H209
Private Const WM_MOUSEWHEEL = &H20A
Private Const WM_SYSTEMKEYDOWN = &H104
Private Const WM_SYSTEMKEYUP = &H105

Private Const WH_JOURNALRECORD = 0
Private Const WH_GETMESSAGE = 3

Private Type EVENTMSG
     wMsg As Long
     lParamLow As Long
     lParamHigh As Long
     msgTime As Long
     hWndMsg As Long
End Type

Dim EMSG As EVENTMSG

Public Function SetHook() As Boolean
On Error Resume Next
    If Hooked Then Exit Function
    hJournalHook = SetWindowsHookEx(WH_JOURNALRECORD, AddressOf JournalRecordProc, App.hInstance, 0)
    'If hAppHook = 0 Then hAppHook = SetWindowsHookEx(WH_GETMESSAGE, AddressOf AppHookProc, App.hInstance, App.ThreadID)
    SetHook = True
    Hooked = True
End Function

Public Sub RemoveHook()
'Dim x As Long
On Error Resume Next
    'UnhookWindowsHookEx hAppHook
    If Not Hooked Then Exit Sub
    Call UnhookWindowsHookEx(hJournalHook)
    Hooked = False
End Sub

'Private Sub Class_Initialize()
'On Error Resume Next
    'SHptr = ObjPtr(Me)
'End Sub

Private Sub Class_Terminate()
On Error Resume Next
    If Hooked Then RemoveHook
    'If hJournalHook Or hAppHook Then RemoveHook
End Sub

Friend Function FireEvent(ByVal lParam As Long)
On Error Resume Next
  Dim i%, j%, k%
  Dim s As String
  If lParam = WM_CANCELJOURNAL Then
     hJournalHook = 0
     SetHook
     Exit Function
  End If
 
  CopyMemory EMSG, ByVal lParam, Len(EMSG)
  Select Case EMSG.wMsg
    Case WM_KEYDOWN
         j = 0
         If GetAsyncKeyState(vbKeyShift) Then j = (j Or 1)        'fixed by JJ
         If GetAsyncKeyState(vbKeyControl) Then j = (j Or 2)      'fixed by JJ
         If GetAsyncKeyState(vbKeyMenu) Then j = (j Or 4)         'fixed by JJ
         s = Hex(EMSG.lParamLow)
         k = (EMSG.lParamLow And &HFF)
         RaiseEvent KeyDown(k, j)

    Case WM_KEYUP
         j = 0                                                    'fixed by JJ
         If GetAsyncKeyState(vbKeyShift) Then j = (j Or 1)        'fixed by JJ
         If GetAsyncKeyState(vbKeyControl) Then j = (j Or 2)      'fixed by JJ
         If GetAsyncKeyState(vbKeyMenu) Then j = (j Or 4)         'fixed by JJ
         s = Hex(EMSG.lParamLow)
         k = (EMSG.lParamLow And &HFF)
         RaiseEvent KeyUp(k, j)
         's = Left$(s, 2) & Right$("00" & Hex(k), 2)               'fixed by JJ
         'EMSG.lParamLow = CLng("&h" & s)
         'CopyMemory ByVal lParam, EMSG, Len(EMSG)
    'Case WM_MOUSEMOVE
    '     i = 0                                                    'fixed by JJ
    '     If GetAsyncKeyState(vbKeyLButton) Then i = (i Or 1)      'fixed by JJ
    '     If GetAsyncKeyState(vbKeyRButton) Then i = (i Or 2)      'fixed by JJ
    '     If GetAsyncKeyState(vbKeyMButton) Then i = (i Or 4)      'fixed by JJ
    '     j = 0                                                    'fixed by JJ
    '     If GetAsyncKeyState(vbKeyShift) Then j = (j Or 1)        'fixed by JJ
    '     If GetAsyncKeyState(vbKeyControl) Then j = (j Or 2)      'fixed by JJ
    '     If GetAsyncKeyState(vbKeyMenu) Then j = (j Or 4)         'fixed by JJ
    '     RaiseEvent MouseMove(i, j, CSng(EMSG.lParamLow), CSng(EMSG.lParamHigh))
    'Case WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN
    '     i = 0                                                    'fixed by JJ
    '     If GetAsyncKeyState(vbKeyShift) Then i = (i Or 1)        'fixed by JJ
    '     If GetAsyncKeyState(vbKeyControl) Then i = (i Or 2)      'fixed by JJ
    '     If GetAsyncKeyState(vbKeyMenu) Then i = (i Or 4)         'fixed by JJ
    '     RaiseEvent MouseDown(2 ^ ((EMSG.wMsg - 513) / 3), i, CSng(EMSG.lParamLow), CSng(EMSG.lParamHigh))
    'Case WM_LBUTTONUP, WM_RBUTTONUP, WM_MBUTTONUP
    '     i = 0                                                    'fixed by JJ
    '     If GetAsyncKeyState(vbKeyShift) Then i = (i Or 1)        'fixed by JJ
    '     If GetAsyncKeyState(vbKeyControl) Then i = (i Or 2)      'fixed by JJ
    '     If GetAsyncKeyState(vbKeyMenu) Then i = (i Or 4)         'fixed by JJ
    '     RaiseEvent MouseUp(2 ^ ((EMSG.wMsg - 514) / 3), i, CSng(EMSG.lParamLow), CSng(EMSG.lParamHigh))
    Case WM_SYSTEMKEYDOWN
         s = Hex(EMSG.lParamLow)
         k = (EMSG.lParamLow And &HFF)
         If k <> vbKeyMenu Then RaiseEvent SystemKeyDown(k)
         's = Left$(s, 2) & Right$("00" & Hex(k), 2)               'fixed by JJ
         'EMSG.lParamLow = CLng("&h" & s)
         'CopyMemory ByVal lParam, EMSG, Len(EMSG)
    Case WM_SYSTEMKEYUP
         s = Hex(EMSG.lParamLow)
         k = (EMSG.lParamLow And &HFF)
         If k <> vbKeyMenu Then RaiseEvent SystemKeyUp(k)
         's = Left$(s, 2) & Right$("00" & Hex(k), 2)               'fixed by JJ
         'EMSG.lParamLow = CLng("&h" & s)
         'CopyMemory ByVal lParam, EMSG, Len(EMSG)
    Case Else
        'Debug.Print "Hook code = " & EMSG.wMsg
  End Select
End Function


модуль

Код: Выделить всё
Option Explicit
Type POINTAPI
        x As Long
        y As Long
End Type

Type TMSG
    hwnd As Long
    message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpDest As Any, lpSource As Any, ByVal cBytes As Long)
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public hJournalHook As Long ', hAppHook As Long
'Public SHptr As Long
Public Const WM_CANCELJOURNAL = &H4B

Public Function JournalRecordProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next

    If nCode < 0 Then
            JournalRecordProc = CallNextHookEx(hJournalHook, nCode, wParam, ByVal lParam)
            Exit Function
        End If
       
 
  Call CallNextHookEx(hJournalHook, nCode, wParam, ByVal lParam)
  frmMain.SystemHook.FireEvent lParam
  'ResolvePointer(SHptr).FireEvent lParam
 
End Function

'Public Function AppHookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'On Error Resume Next
'    If nCode < 0 Then
'            AppHookProc = CallNextHookEx(hAppHook, nCode, wParam, ByVal lParam)
'            Exit Function
'        End If
'    Dim msg As TMSG
'
'    CopyMemory msg, ByVal lParam, Len(msg)
'    Select Case msg.message
'        Case WM_CANCELJOURNAL
'            If wParam = 1 Then ResolvePointer(SHptr).FireEvent WM_CANCELJOURNAL
'        End Select
'
'   Call CallNextHookEx(hAppHook, nCode, wParam, ByVal lParam)
'End Function

'Private Function ResolvePointer(ByVal lpObj&) As clsHook
'On Error Resume Next
'    Dim oSH As clsHook
'    CopyMemory oSH, lpObj, 4&
'    Set ResolvePointer = oSH
'    CopyMemory oSH, 0&, 4&
'End Function


- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.02.2005 (Вт) 3:57

Код оловянниковский, только почему-то его копирайты стёрты. Ай, как некрасиво...
Изображение

Samrat
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 11.08.2004 (Ср) 10:32

Сообщение Samrat » 23.02.2005 (Ср) 18:19

Код оловянниковский, только почему-то его копирайты стёрты. Ай, как некрасиво...
Интересная тема выехала. Copyriht мужики просветите меня неграмотного. То есть даже путем проб и ошибок написав такой - же код, я что не свободен в его примении? 8) Ведь для каждой задачи множество работоспособных вариантов кода сильно ограниченно и написать тоже самое элементарно причём с точностью до буквы.....

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.02.2005 (Ср) 18:32

Вот когда твой код кто-нибудь будет выдавать за свой, тогда ты и поймёшь - элементарно или нет ;-)
Изображение

attackie
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 29.08.2003 (Пт) 7:01
Откуда: Владивосток

Сообщение attackie » 23.02.2005 (Ср) 18:42

Это НЕ ТВОЙ код. Ты МОЖЕШЬ его использовать, раз тебе его дали. Но ты не можешь его выдавать за свой, потому что он НЕ ТВОЙ, у него есть АВТОР.

Хотя в некоторых странах, где авторское право берегут ровно до того момента, пока защищают свое, а как использовать крякнутые виндусы, компиляторы и т.п. - так нет никакого авторского права, как оказывается - можно вообще делать что хочешь, и пихать что хочешь куда хочешь.
---
FreeBasic Russia - http://2088pm.com/fb/ - русский фэнклуб Фрибейсика

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 24.02.2005 (Чт) 11:44

Вот, балин, этот код у меня с 2000 года, и чё, я должен помнить откуда я его взял?

Ну,звиняйте, я свои райт тож не ставил.

ЗЫ: Чтото я е видел чтоб примеры зеся пестрели копирайтами)))
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Samrat
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 11.08.2004 (Ср) 10:32

Сообщение Samrat » 26.02.2005 (Сб) 14:22

Ну что - же ситуация со сферическим кодом в вакууме понятна, но похоже вы не совсем до конца прочитали мой вопрос. Когда я читаю похожие строки у Эпплмана я понимаю что, он живёт на западе и всё такое, но нам то сирым теперь что - бежать по поводу и без в патентное бюро и патентовать вложенный 2 раза цикл for - next(double click уже запатентован ) или ещё какое либо классическое решение. По моему речь о копирайте может идти только в суде и только для изначально неразглашённых кодов. Если Ты выложил свою интеллектуальную собственность на всеобщее обозрение - ты её обобществил ВСЁ, ОНА ТЕПЕРЬ НЕ ТВОЯ, А ОБЩАЯ, ну а любишь копирайт и не хочешь кормить нахлебников - СМОТРИ ВНИМАТЕЛЬНЕЕ ЧЕМ ДЕЛИШЬСЯ !!!!!!!!!

Samrat
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 11.08.2004 (Ср) 10:32

Сообщение Samrat » 26.02.2005 (Сб) 14:24

Помните: информация обладает сверхтекучестью

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.02.2005 (Сб) 17:06

Samrat, ты путаешь патент и копирайт.


Вот, например написал Vitaly1 книгу. По-твоему получается, что либо он её никому не должен показывать (а зачем тогда он её написал?), либо любой может её копировать и выдавать за свою - так, что ли?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.02.2005 (Сб) 17:38

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

Право использования, право распоряжения и право собственности - это три разных вещи.

И даже если ты продал своё произведение с потрохами, ты не теряешь права называться его автором.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 26.02.2005 (Сб) 22:01

Кстати, а разве нельзя своей проге периодически слать сообщения, чтоб она была активной??? Если их слать достаточно часто, юзаер и не заметит, что переставил фокус.............

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 41

    TopList