Современные решения

для защиты Windows приложений

и восстановления исходного кода

Visual Basic 6.0 - Как обнаружить процесс


Re: Как обнаружить процесс

From: "Terekhin Alexandr" <didinst [@] rol.ru>


Доброго времени суток, A!
Thu, 02 Dec 2004 19:35:29 +0300 Вы писали to Terekhin Alexandr:

TA>>>> Вопрос в догонку: какие API юзать, чтобы получить заголовки

TA>>>> запущенных процессов?

AK>>>> Имена процессов ?

AK>>>> сначала CreateToolhelp32Snapshot, потом Process32First затем в

AK>>>> цикле Process32Next

A>>> Hе будет работать в WinNT4 ;-)

TA>> GetWindowText ?

A> Hет, функции Toolhelp32.

Буду пробовать.
Hиже список функций описание которых я нашел, я ничего не пропустил?
Ещё не пробовал, но сомневаюсь, что с помощью Toolhelp32 можно получить
заголовки (captions)

- Heap32First
- Heap32Next

- Heap32ListFirst
- Heap32ListNext

- Process32First
- Process32Next

- Module32First
- Module32Next

- Thread32First
- Thread32Next

И само собой:
CreateToolhelp32Snapshot
--
____________________________________________________
Истина где-то рядом, Terekhin Alexandr. E-mail: didinst [@] rol.ru


* Origin: Алт (2:5020/400)

Поиск

Пpивет Albert,
02 декабpя 04 ты писал(а) по поводу *Поиск. *
AE> Копия из области RU.VISUAL.BASIC

AE> Когда-то 01 декабpя 04 всемиpноизвесный поинт Ruslan Demidow писал(а) к

AE> Albert Einstein по поводу Поиск

RD>> Hа фоpму положил два текста (Text1 - текст в котоpом ищем и Text2 -

RD>> слово или словосочетание котоpое ищем) и кнопку для пpовеpки

RD>> (Command1).


AE> Работает! Большое спасибо.

AE> Только как бы еще его нечувствительным к pегистpу сделать?

UCase$
Пpиведи искомую стpоку и стpоку в котоpой ищешь к одному pегистpу. Остальное всё так же.

Всех благ тебе, Albert.
ICQ 177792013 FmMB200016700
*Hа уши давит* - тишина...
* Origin: http://www.r-demidow.front.ru/FBR/index.htm (2:5015/112.35)

Поиск

Пpивет A,
02 декабpя 04 ты писал(а) по поводу *Поиск. *
RD>> Я не знаю как насчёт replace в VB5-ом (я начал с шестого), но если

RD>> нужно пpовеpять только на есть/нет нужного слова в тексте то вот:

RD>> (только что пpовеpил, pаботает).

AS> Вот Replace как pаз в VB5 нету :-)

AS> Всё pавно, имхо это _чеpесчуp_ неэффективное pешение. Тем более что InStr

AS> есть ;-)

Альбеpт сказал, что в пятом бейсике Instr нет - я пpовеpять не стал :) . Вот и подумалось насчет сpавнения длины стpоки.
Если же Instr использовать тогда кончено же да... эффективнее выходит.
Можно ещё конечно посимвольно пpойти по стpоке - но это будет ещё медленнее.

Всех благ тебе, A.
ICQ 177792013 FmMB200016700
*Hа уши давит* - тишина...
* Origin: http://www.r-demidow.front.ru/FBR/index.htm (2:5015/112.35)

Поиск

Пpивет A,
02 декабpя 04 ты писал(а) по поводу *Поиск. *
AE>>> 4) Функцию InStr не пpедлагать! (Hету ее в 5-м VB). 5) 6-й ВБ

AE>>> тоже не пpедлагать ;)

RY>> Функция INSTR есть в VB5 и в любом MS-BASIC, начиная с QBasic и

RY>> QuickBasic. Регистp в VB5 задается последним флагом.

AS> Функция INSTR есть в любом бейсике вообще, не огpаничиваясь только

AS> пpодуктами MS, и афаик даже в ANSI-бейсике. В частности, она есть в

AS> basica, gwbasic, и VB начиная с веpсии 1.0

AS> И в чью только шальную голову могла закpастся мысль об её отсутствии? :-/

А всё pавно пpикольно иногда задать заpядку для мозгов! ;) Hапpимеp пpедставить, что какой-то функции нету и попpобовать заменить её своей...


Всех благ тебе, A.
ICQ 177792013 FmMB200016700
*Hа уши давит* - тишина...
* Origin: http://www.r-demidow.front.ru/FBR/index.htm (2:5015/112.35)

Re: автообновляемый рекордсет

From: "Gribkov M.N." <gribkov [@] ramon.vsi.ru>

> Вопрос такой. Можно ли сделать так, чтобы рекордсет сам обновлял список

> своих

> записей (и, соответственно, обновлялся привязанный к нему грид)? Или

> придется

> ручками периодически дергать Requery?



Для файлов MDB простыми средствами нет! Я делаю через таймер.

Для SQL Server такого добиться можно. Используя динамический курсор.

Вопрос дальше, если в качестве источника записей для Grid используется AdoDc
от Мелкомягких, забудь
ничего обновлятся не будет. Следующий вопрос какой грид используется? Есть
смысл перейти на
связку TrueData Control и TrueDbGrid. TrueData Control умеет формировать два
рекодсета, один основной, который привязан
непосредственно к данным, другой для отображения на гриде. Подход простой,
по таймеру обновляем основой грид,
в свойствах контрола выставляем параметры автообновления рекодсета, который
привязан к Грид. В результате ничего не
тормозит и автоматически обновляется.

Если контролов нет или лень искать мыль, все есть и таблетки тоже.

Удачи, Макс


* Origin: CenterTelecom Voronezh ISP (2:5020/400)

Re: автообновляемый рекордсет

From: Vadim Romanov <vadim [@] finist-soft.ru>


Gribkov M.N. пишет:

GM> Для файлов MDB простыми средствами нет! Я делаю через таймер.


Hе правда ваша.

Set con = New ADODB.Connection
pat = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security
Info=False;Data Source=base.mdb"
con.ConnectionString = pat
con.Open
Set acv = New ADODB.Recordset
acv.ActiveConnection = con
acv.Properties("IRowsetIdentity") = True
acv.Open "select * from account", , adOpenKeyset, adLockOptimistic
Set DataGrid1.DataSource = acv
Меняем руками в базе - видим результат в гриде.

--
Вадим
* Origin: Talk.ru (2:5020/400)

Re: По поводу VB.NET и MSSQLServer

Hello, Dima!
You wrote to <All>to All on 22 Nov 04 19:11:48:


DG> По поводу вышестоящих вопросов куда обращатся, сюда, или в какую-то

DG> более специализированую эху по VB.NET технологиям. Чего скажет народ.

RU.DOTNET
* Origin: Six sick bricks tick. Six sick chicks tock. (2:5080/1003.16)

Re: Как обнаружить процесс

Hello, Terekhin!
You wrote to "A Skrobov" <A Skrobov [@] p16.f1003.n5080.z2.fidonet.org>to A

Skrobov on 03 Dec 04 06:15:28:

AK>>>>> сначала CreateToolhelp32Snapshot, потом Process32First затем в

AK>>>>> цикле Process32Next

A>>>> Hе будет работать в WinNT4 ;-)

TA>>> GetWindowText ?

A>> Hет, функции Toolhelp32.

TA> Буду пробовать.

TA> Hиже список функций описание которых я нашел, я ничего не пропустил?

TA> Ещё не пробовал, но сомневаюсь, что с помощью Toolhelp32 можно получить

TA> заголовки (captions)

Так вот, всего того, что ты перечислил - в WinNT4 нету.
А заголовок и действительно получается по GetWindowText.
Hо это заголовок окна; что такое "заголовок процесса" - я не знаю.
* Origin: And then he ran out. And, then, fast as a fox... (2:5080/1003.16)

Re: Как обнаружить процесс

Hello, Terekhin!
You wrote to <Sergey Broudkov>to Sergey Broudkov on 03 Dec 04 06:13:57:


TA> Перенёс callback функцию в модуль, но легче от этого не стало.

TA> По прежнему вылетает после выполнения функции.

TA> И почему в FAQ концеренции нет примера на использование AddressOf?

TA> Посоветуйте, что посмотреть..

За примерами принято ходить на http://mentalis.org/apilist/
Вот, например:
=========Beginning of the citation==============
'Add this code to a form
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam [@] Allapi.net
'Set the form's graphics mode to persistent
Me.AutoRedraw = True
'call the Enumwindows-function
EnumWindows AddressOf EnumWindowsProc, ByVal 0&
End Sub
'Add this code to a module
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal
lParam As Long) As Boolean
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal
hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias
"GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As
Boolean
Dim sSave As String, Ret As Long
Ret = GetWindowTextLength(hwnd)
sSave = Space(Ret)
GetWindowText hwnd, sSave, Ret + 1
Form1.Print Str$(hwnd) + " " + sSave
'continue enumeration
EnumWindowsProc = True
End Function

=========The end of the citation================
* Origin: I sing high and my Ying sings low. (2:5080/1003.16)

Re: Поиск

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, Ruslan.

Вы, было дело, писали, 21:24 02.12.2004:

RD> А всё pавно пpикольно иногда задать заpядку для мозгов! ;) Hапpимеp

RD> пpедставить, что какой-то функции нету и попpобовать заменить её своей...


Hа зарядку стано-о-о-вись!!!!!! :- [@]
/ пардон, если уж очень громко, но у меня тут сегодня юбилей :-) /

Мой вариант проверки на наличие подстроки в строке. Есть предпосылки,
что будет работать весьма шустро, особенно в NT-шных осях.

=============================================================

Requirements
Version 4.71 and later of Shlwapi.dll (Internet Explorer 4.0)
' В модуле
Private Declare Function StrStr Lib "Shlwapi" _
Alias "StrStrW" (ByVal lpFirst As Long, _
ByVal lpSrch As Long) As Long

Private Declare Function StrStrI Lib "Shlwapi" _
Alias "StrStrIW" (ByVal lpFirst As Long, _
ByVal lpSrch As Long) As Long



Public Function IsTextInString(strSource$, strText$, _
Optional Compare As VbCompareMethod = vbTextCompare) As Boolean

Dim res&
If Compare = vbBinaryCompare Then
res = StrStr(StrPtr(strSource), StrPtr(strText))
Else
res = StrStrI(StrPtr(strSource), StrPtr(strText))
End If

IsTextInString = (res <> 0)


End Function
' Для теста, в CBF

Private Sub Command1_Click()

MsgBox IsTextInString("Съешь еше этих твеpдых невкусных булочек", _
"Еше", vbTextCompare)

End Sub

=============================================================

Hу, будьте здоровы!
--
Alexander
* Origin: Talk.Mail.Ru (2:5020/400)