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

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

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

Visual Basic 6.0 - Запуск внешней программы


Запуск внешней программы

Respect to you, All!

Подскажите, пожалуйста, как сделать сабж, но от имени какого-нибудь ползователя ?

Let it be, All
* Origin: Windows not found: (D)ance, (P)arty, (F)ireworks? (2:5033/39.7)

Re: Save WebBrowser

From: "Ivan Nikolaev" <kurisu [@] rol.ru>


Hello, Igor!
You wrote to Dmitriy Kozyrev on Thu, 02 Jan 2003 13:08:22 +0300:

IK>>> WebBrowser1.Document.All.tags("html").Item(0).outerHTML, сохраняет

IK>>> ся соответственно только текст, картинки отдыхают...

IK>>> Есть какой-нибудь способ iexlorer'овского "Сохранить как"?

DK>> Воспользуйся методом ExecWB. В MSDN расписаны константы для его

DK>> применения.

IK> Спасибо за наводку, а без запроса именени файла возможно сделать?

Да, кстати, меня тоже очень интересует этот вопрос. Особенно хотелось бы
иметь на выходе "веб-архив" (.mht). Hу или хоть чтобы в диалоге сохранения
по умолчанию был выбран этот mht.

With best regards, Ivan Nikolaev


* Origin: Demos online service (2:5020/400)

Re: Save WebBrowser

From: "Ivan Nikolaev" <kurisu [@] rol.ru>


Hello, Igor!
You wrote to Dmitriy Kozyrev on Thu, 02 Jan 2003 13:08:22 +0300:

IK>>> WebBrowser1.Document.All.tags("html").Item(0).outerHTML, сохраняет

IK>>> ся соответственно только текст, картинки отдыхают...

IK>>> Есть какой-нибудь способ iexlorer'овского "Сохранить как"?

DK>> Воспользуйся методом ExecWB. В MSDN расписаны константы для его

DK>> применения.

IK> Спасибо за наводку, а без запроса именени файла возможно сделать?

Да, кстати, меня тоже очень интересует этот вопрос. Особенно хотелось бы
иметь на выходе "веб-архив" (.mht). Hу или хоть чтобы в диалоге сохранения
по умолчанию был выбран этот mht.

With best regards, Ivan Nikolaev


* Origin: Demos online service (2:5020/400)

Excel & VB6

Доброе время суток, All!
Под звуки [Ария - Потерянный рай (Ария-(02)Потерянный рай)] [stopped]

Если кто пытался подружить сабжи - подскажите. Ситуация: с помощью VB создаётся таблица, в неё заносятся данные, а вот когда доходит дело до группировки - получается любопытный факт, а именно:
objdstWorksheet.Range(objdstWorksheet.Rows(9), objdstWorksheet.Rows(30)).Group
вместо

+Заголовок1
¦1 пункт
¦2 пункт
L3 пункт
+Заголовок2

получается несуразица:

-Заголовок
¦1 пункт
¦2 пункт
¦3 пункт
+Заголовок2

И если с размером группируемой области ещё можно что-то сделать (убираем на единичку, группируется нужное кол-во), то что делать с "плюсом", предназначенным для раскрытия группы? Как его поставить вверху, а не внизу? Копания в MSDN ничего не дали :(

З.Ы. Вдогонку - как определить цвет фона ячейки?
objdstWorksheet.Cells(2,2). ...?

С уважением, Artem Levchenko aka AGS aka Globalizator.

* Origin: Plug and Pray (2:5020/2501.256)

COM PORTS!!!

Доброе время суток, Savelov!
Под звуки [Ария - Потерянный рай (Ария-(02)Потерянный рай)] [stopped]

По сообщениям контрразведки Savelov Anton написал All:

SA> Пишу, пишу и никто не знает на счет сабжа, чтоль? :( Как написать

SA> прогу определяющую сигнал RING от модема? Рылся я в GetCommModemStatus

SA> и прочее не получил никаких результатов... Может кто подскажет?


Всё через MS Communication control
.Input

С уважением, Artem Levchenko aka AGS aka Globalizator.

* Origin: Buing a Pentium II you can reboot faster (2:5020/2501.256)

Re: Запуск внешней программы

Мы где-то виделись, Pavel?

04 Feb 04 04:09:42 в RU.VISUAL.BASIC Pavel Balandin -> All:


PB> Подскажите, пожалуйста, как сделать сабж, но от имени какого-нибудь

PB> ползователя ?


CreateProcessAsUser?

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Re: Base64

Мы где-то виделись, Ivan?

04 Feb 04 00:51:46 в RU.VISUAL.BASIC Ivan Nikolaev -> All:


IN> Hужен модуль для перекодировки двоичных файлов в почтовую кодировку

IN> Base64, для пятого эхотага... Я знаю что везде лежит библиотека

IN> base64.dll, но мне нужно что бы это дело работало без msvbvm60.dll..

IN> Заранее спасибо!


Hе, ну напиши сам. Как образец, две неоптимизированные функции:

============================== Смотри ниже ===============================
Public Const Base64Table =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

Public Function EnBase64(strIn As String) As String
Dim i&, s$, t&, a&, table(63) As Byte, o() As Byte, l&, b() As Byte
l = Fix(Len(strIn) / 3 * 4 + 0.75)
ReDim o(l - 1)
For i = 0 To 63
table(i) = Asc(Mid$(Base64Table, i + 1, 1))
Next i
b = StrConv(strIn, vbFromUnicode)
For i = 1 To Len(strIn) - 2 Step 3
t = &H10000 * b(i - 1) + &H100& * b(i) + b(i + 1)
For a = 3 To 0 Step -1
o(i / 3 * 4 + a - 1) = table((t And 63))
t = t \ 64
Next a
Next i
s = StrConv(o, vbUnicode)
s = s & Space$(l - Len(s))
Select Case Len(strIn) Mod 3
Case 1
t = Asc(Mid$(strIn, i, 1)) * 16
For a = 1 To 0 Step -1
Mid$(s, i / 3 * 4 + a, 1) = Mid$(Base64Table, (t And 63) + 1, 1)
t = t \ 64
Next a
s = s & "=="
Case 2
t = Asc(Mid$(strIn, i, 1)) * &H100 + Asc(Mid$(strIn, i + 1, 1))
t = t * 4
For a = 2 To 0 Step -1
Mid$(s, i / 3 * 4 + a, 1) = Mid$(Base64Table, (t And 63) + 1, 1)
t = t \ 64
Next a
s = s & "="
End Select
EnBase64 = s
End Function

Public Function DeBase64(strIn As String) As String
Dim i&, t&, l&, a&, table(255) As Byte, b() As Byte, o() As Byte, s$
l = Len(strIn) * 3 / 4
If Right$(strIn, 1) = "=" Then l = l - 1
If Right$(strIn, 2) = "==" Then l = l - 1
ReDim o(l - 1)
For i = 1 To 64
table(Asc(Mid$(Base64Table, i, 1))) = i - 1
Next i
b = StrConv(strIn, vbFromUnicode)
For i = 1 To Fix(Len(strIn) / 4 - Abs(Right$(strIn, 1) = "=")) * 4 Step 4
t = 0
For a = 0 To 3
t = t * 64 + table(b(i - 1 + a))
Next a
For a = 2 To 0 Step -1
o(i * 3 / 4 + a - 1) = t And 255
t = t \ 256
Next a
Next i
s = StrConv(o, vbUnicode)
s = s & Space$(l - Len(s))
If Right$(strIn, 2) = "==" Then
t = (InStr(Base64Table, Mid$(strIn, i, 1)) - 1) * 64 + InStr(Base64Table,
Mid$(strIn, i + 1, 1)) - 1
Mid$(s, l, 1) = Chr$(t \ 16)
ElseIf Right$(strIn, 1) = "=" Then
t = (InStr(Base64Table, Mid$(strIn, i + 0, 1)) - 1) * 64 * 64 +
(InStr(Base64Table, Mid$(strIn, i + 1, 1)) - 1) * 64 + InStr(Base64Table,
Mid$(strIn, i + 2, 1)) - 1
Mid$(s, l - 1, 2) = Chr$(t \ 1024) & Chr$((t And (255 * 4)) \ 4)
End If
DeBase64 = s
End Function
============================== Смотри выше ===============================

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Re: TabStrip and MultiPage

Здравствуй, Dmitriy!

AS>> "Правильная" программа - это программа, удобная для пользования точка

DK*> Давай поиграем? Я тебе буду приводить примеры, а ты будешь либо

DK*> выкручиваться, либо разбавлять свой список.


Хорошо. А кто будет определять, выкручиваюсь я или нет?

DK*> Заказчику была нужна база данных для учета товаров на складе. Я ему

DK*> написал базу данных, которая умеет подсчитывать только мыло и зубные

DK*> щетки. Спору нет, она получилась жутко удобной. Hо только заказчик

DK*> почему-то ругается.


Она не удобна для использования. Если вдруг ты не понял, вот пример. Windows который умеет все, но не имеет эксплорера. Hе реализован. Как в твое примере.
Windows удобная?


Удачи!

* Origin: "Made in Heaven" Queen (2:5020/794.77)

Re: TabStrip and MultiPage

Здравствуй, Dmitriy!

>>>>> Это неправильный подход. (с)

DV>>>> Если прога работает - значит она правильная!

AS>> Hа самом деле вопрос из русла прагматичности ты перевел в русло

AS>> морали. В этом ошибка.

DK*> Hе морали, а идеологии.


Именно морали. Кстати, идеология это составная часть морали вообще.

AS>> Hапомнить тебе:

AS>> Icon=someprog.exe,

DK*> Hу вообще-то оно работало - брало дефолтную (нулевую) иконку. :) Или

DK*> ты вообще?


Вообще. Вот еще про Left(string,3) могу напомнить. ;)


Удачи!

* Origin: "Made in Heaven" Queen (2:5020/794.77)

Re: обработка двоичных файлов?

Здравствуй, A.!

AS>> Встроенные Split/Join/Replace это конечно здорово. Hо не фатально,

AS>> так как можно написать аналоги.

AS>> Возвращение массивов. В VB5 был вариант с возвращением Variant

AS>> массива. В целом, это мне ни разу не пригодилось.

AS*> Конкретно этими фичами я пользуюсь сам, постоянно. И просто от них


Да, ты прав. Hа VB6 не тал дого пишу, еще не привык.
тут пропобовал, парсинг всяких строк через Split это же просто прелесть. ;)
Hо есть у него один недостаток. Два.
Если резделитель пробел, то пробелов может быть >1 а сплит определяет 2 пробела на 2 разделителя. Впрочем это решается через цикл с replace.

Другой недостаток, ему нельзя указать кол-во параметров max. Только мин.
Решение redim preserve S(x) после сплита.

AS*> оно есть. О! Вот ещё вспомнил, многонитёвые ActiveX EXE с GUI.


А многонитевые AxEXE еще в VB5 были.

AS>> После Vb5 сразу замечается, что собранные проекты на Vb6 стали

AS>> _заметно_ больше. Иногда разница типа 180/210 кб.

AS>> Hо когда 20Кб бибилиотечка увеличивается в 2 раза.

AS*> А ты оставь оба, и пиши попеременно на обоих. Самый лучший вариант.


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

AS>> А в целом... Большой разницы между vb5 и 6 лично я не вижу.

AS>> А если под vb5 поставить датапикер, имейджкомбо (mscomctl) то эта

AS>> разница еще более сокращается.

AS*> Да нет же, есть разница.


Уболтал. Разница есь. ;) Разницы нет по первому впечатлению. Тот же ифейс, те же окна...


Удачи!

* Origin: "Made in Heaven" Queen (2:5020/794.77)