Парочка вопросов...

Создание, использование компонентов ActiveX
--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Парочка вопросов...

Сообщение --=GAMER=-- » 20.05.2004 (Чт) 12:55

Вот несколько моих вопросов (позже я добавлю ещё несколько).


1. Как сделать что-бы в текстовом поле вводились только английские буквы :?:

2. Как сделать чат через WinSock без *.тхт файла :?:

3.
а) Можно-ли вкл./выкл. Num, Scroll и Caps lock'и через VB6 :?:

б) Можно-ли управлять CD-ROM'ом через VB6 :?:


Ответы типа: "Как делать, как делать - РУЧКАМИ!" -
НЕ ПРИНИМАЮТСЯ! :wink:
Последний раз редактировалось --=GAMER=-- 23.05.2004 (Вс) 12:48, всего редактировалось 1 раз.
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 20.05.2004 (Чт) 13:27

1. Примерно так:
Код: Выделить всё
Private Sub Text1_Change()
If Len(Text1.Text) = 0 Then Exit Sub
If Asc(Right$(Text1.Text, 1)) < 65 Or Asc(Right$(Text1.Text, 1)) > 122 Then
    Text1.Text = Left$(Text1.Text, Len(Text1.Text) - 1)
    Text1.SelStart = Len(Text1.Text)
End If
End Sub


2. Не совсем понятен вопрос - что значит "без *.тхт файла"?
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Сообщение --=GAMER=-- » 23.05.2004 (Вс) 12:44

Tarik поясняю:

Я делал так, что, если ты что-то написал, то всё записывалась в *.тхт
(Находящегося в общей папке лок. сети), затем это всё из *.тхт "вставлялось" в текстовое поле человека по ту сторону провода.
Прим. схема:

Отправитель --------> |*.txt|--------> Получатель
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Сообщение --=GAMER=-- » 27.05.2004 (Чт) 10:41

Чё ни кто не знает?
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Сообщение --=GAMER=-- » 27.05.2004 (Чт) 10:43

Вот ещё впросик.....

Можно-ли в VB6 файлы из обычных превратить в скрытые или сделать их способными только для чтения :?:
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 27.05.2004 (Чт) 19:27

Код: Выделить всё
Private Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
'Нужные константы добавляешь во второй параметр вышеобъявленной функции, разделяя Or'ом: SetFileAttributes FileName, Parameter1 Or Parameter2 Or ... Or ParameterN
Private Const FILE_ATTRIBUTE_ARCHIVE As Long = &H20               'архивный
Private Const FILE_ATTRIBUTE_COMPRESSED As Long = &H800           'сжатый
Private Const FILE_ATTRIBUTE_DEVICE As Long = &H40                'устройство
Private Const FILE_ATTRIBUTE_DIRECTORY As Long = &H10             'папка
Private Const FILE_ATTRIBUTE_ENCRYPTED As Long = &H4000           'зашифрованный
Private Const FILE_ATTRIBUTE_HIDDEN As Long = &H2                 'скрытый
Private Const FILE_ATTRIBUTE_NORMAL As Long = &H80                'обычный
Private Const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED As Long = &H2000 'не готов для индексирования
Private Const FILE_ATTRIBUTE_OFFLINE As Long = &H1000             'содержимое файла на данный момент недоступно
Private Const FILE_ATTRIBUTE_READONLY As Long = &H1               'только чтение
Private Const FILE_ATTRIBUTE_REPARSE_POINT As Long = &H400
Private Const FILE_ATTRIBUTE_SPARSE_FILE As Long = &H200
Private Const FILE_ATTRIBUTE_SYSTEM As Long = &H4                 'системный
Private Const FILE_ATTRIBUTE_TEMPORARY As Long = &H100            'временный

Private Sub Form_Load()
Open "c:\bla.bla" For Output As #1: Close #1
SetFileAttributes "C:\bla.bla", FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_HIDDEN 'только что созданному файлу "C:\bla.bla" присваеваем параметры "только чтение" и "скрытый"
End Sub
Нет меня больше

--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Сообщение --=GAMER=-- » 31.05.2004 (Пн) 3:27

Вопрос к A.A.Z.:
Почему or? Насколько я знаю or переводится как или, а вот and как и!
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

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

Сообщение GSerg » 31.05.2004 (Пн) 9:42

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

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 31.05.2004 (Пн) 13:16

1. Как сделать что-бы в текстовом поле вводились только английские буквы

Самое простое - в событии KeyPress обнуляй KeyAscii для символов которые тебе не нужны.

2. Как сделать чат через WinSock без *.тхт файла

Поищи примеры на www.planet-Source-Code.com там полно подобных.
Сам там смотрел когда-то.

3. а) Можно-ли вкл./выкл. Num, Scroll и Caps lock'и через VB6

Можно - через API-шную SetKeyboardState.

б) Можно-ли управлять CD-ROM'ом через VB6

Можно. Самое простое - используюя Nero SDK.
Иначе самому через API-шные дебри придется пробираться.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Сообщение --=GAMER=-- » 01.06.2004 (Вт) 4:35

А можно поподробнее, а то я ентом нифига не знаю.... :(
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 01.06.2004 (Вт) 15:27

1) Код позволяет печатать цифры, символы над цифрами на клавиатуре (только черные) и англ. буквы
Код: Выделить всё
Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii > Asc("z") Then Beep: KeyAscii = 0
End Sub


2) Простой чат через WinSock, с комментариями на англ. языке

3) Использование:
TurnOn VK_NUMLOCK - вкл. Num Lock
TurnOn VK_CAPITAL - вкл. Caps Lock
TurnOn VK_SCROLL - вкл. Scroll Lock

TurnOff VK_NUMLOCK - выкл. Num Lock
TurnOff VK_CAPITAL - выкл. Caps Lock
TurnOff VK_SCROLL - выкл. Scroll Lock
Код: Выделить всё
Private Const VK_NUMLOCK = &H90
Private Const VK_CAPITAL = &H14
Private Const VK_SCROLL = &H91

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Dim Num As Boolean, Caps As Boolean, Scroll As Boolean

Sub Form_Load()
Num = GetKeyState(VK_NUMLOCK)
Caps = GeyKeyState(VK_CAPITAL)
Scroll = GetKeyState(VK_SCROLL)
End Sub

Sub TurnOn(ByVal Lock As Long)
Select Case Lock
Case VK_NUMLOCK
If Num Then
Exit Sub
Else
keybd_event VK_NUMLOCK, 0, 0, 0
keybd_event VK_NUMLOCK, 0, 2, 0
Num = True
End If
Case VK_CAPITAL
If Caps Then
Exit Sub
Else
keybd_event VK_CAPITAL, 0, 0, 0
keybd_event VK_CAPITAL, 0, 2, 0
Caps = True
End If
Case VK_SCROLL
If Scroll Then
Exit Sub
Else
keybd_event VK_SCROLL, 0, 0, 0
keybd_event VK_SCROLL, 0, 2, 0
Scroll = True
Case Else
Beep
End Select
End Sub

Sub TurnOff(ByVal Lock As Long)
Select Case Lock
Case VK_NUMLOCK
If Not Num Then
Exit Sub
Else
keybd_event VK_NUMLOCK, 0, 0, 0
keybd_event VK_NUMLOCK, 0, 2, 0
Num = False
End If
Case VK_CAPITAL
If Not Caps Then
Exit Sub
Else
keybd_event VK_CAPITAL, 0, 0, 0
keybd_event VK_CAPITAL, 0, 2, 0
Caps = False
End If
Case VK_SCROLL
If Not Scroll Then
Exit Sub
Else
keybd_event VK_SCROLL, 0, 0, 0
keybd_event VK_SCROLL, 0, 2, 0
Scroll = False
Case Else
Beep
End Select
End Sub


4) Использование:
OpenCD - открыть CD-ROM
CloseCD - закрыть CD-ROM
Код: Выделить всё
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Private Sub OpenCD()
mciSendString "set cdaudio door open", 0, 0, 0
End Sub

Private Sub CloseCD()
mciSendString "set cdaudio door closed", 0, 0, 0
End Sub
Вот только почему-то у меня не работает, хотя раньше работало... :?
Нет меня больше

XATTAB
Новичок
Новичок
Аватара пользователя
 
Сообщения: 25
Зарегистрирован: 08.05.2004 (Сб) 23:48
Откуда: Russia,Saint-Peterburg

Сообщение XATTAB » 03.06.2004 (Чт) 0:50

Есть у меня примерчик с диска к книге.Правда там на английском комментарии :shock:
У вас нет доступа для просмотра вложений в этом сообщении.
Кто не был на марсе, тот много потерял!!!

--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Сообщение --=GAMER=-- » 07.06.2004 (Пн) 5:47

Новой вопрос:

а)Как добавить свою программу в список вызываемый правой кнопкой мышки?


б)Как добавить значок своей программы список возле "часов"(правый нижний угол", и возле "Пуска"(левый нижний угол).

На сегодня ВСЁ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

sanches
El compa&#241;ero
El compa&#241;ero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 07.06.2004 (Пн) 11:33

--=GAMER=-- писал(а):Новой вопрос:
б)Как добавить значок своей программы список возле "часов"...

:lol: :lol: :lol: :lol:
no comments ... :)
Раз, наверное, в 150 спрашивается
:lol: :lol:
Изображение

--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Сообщение --=GAMER=-- » 08.06.2004 (Вт) 1:59

Нифига! Ни где НЕ ВИДЕЛ!
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 08.06.2004 (Вт) 14:18

Как сказал Ducis, об этом не спрашивал только ленивый! :lol:
Значит, так: пример от GoGosh'ы: создай меню с помощью Menu Editor'а с несколькими подпунктами; имя у самого первого меню (не у подпункта!) должно быть Menu.
Код: Выделить всё
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_NULL = &H0

Private Type NOTIFYICONDATA
    cbSize           As Long
    hWnd             As Long
    uID              As Long
    uFlags           As Long
    uCallbackMessage As Long
    hIcon            As Long
    szTip            As String * 64
End Type

Private NID As NOTIFYICONDATA

Private m_hWnd          As Long
Private m_Icon          As Long
Private m_ToolTipText   As String

Public Enum TrayIcon_Mouse
    TRAYICON_MOUSE_NONE = 0
    TRAYICON_MOUSE_LEFTDOWN = 1
    TRAYICON_MOUSE_LEFTUP = 2
    TRAYICON_MOUSE_LEFTDBLCLICK = 3
    TRAYICON_MOUSE_RIGHTDOWN = 4
    TRAYICON_MOUSE_RIGHTUP = 5
    TRAYICON_MOUSE_RIGHTDBLCLICK = 6
End Enum

Public Sub Add(hWnd As Long, Icon As Long, Tip As String)
    Dim ret As Long
     
    NID.uID = hWnd
    NID.hWnd = hWnd
    NID.hIcon = Icon
    NID.szTip = Left(Tip, 63) & Chr(0)
    NID.uFlags = NIF_TIP + NIF_MESSAGE + NIF_ICON
    NID.uCallbackMessage = WM_RBUTTONDOWN
    NID.cbSize = Len(NID)

    ret = Shell_NotifyIcon(NIM_ADD, NID)
End Sub

Public Sub Delete(hWnd As Long)
    Dim ret As Long
     
    NID.uID = hWnd
    NID.hWnd = hWnd
    NID.cbSize = Len(NID)

    ret = Shell_NotifyIcon(NIM_DELETE, NID)
End Sub

Private Sub Form_Load()
    Add Me.hWnd, Me.Icon, "МЕНЮ!!!"
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Y = 0 And X = 7740 Then
'щелчок правой клавишей мыши
PopupMenu Menu
ElseIf Y = 0 And X = 7695 Then
'щелчок левой клавишей мыши
PopupMenu Menu
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
Delete Me.hWnd
End Sub
Нет меня больше


Вернуться в Компоненты

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

    TopList