VisualBasic!
Главная | Регистрация | Вход
Понедельник, 06.05.2024, 10:16
Меню сайта
Мини-чат
Наш опрос
Оцените мой сайт
Всего ответов: 10
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Главная » FAQ [ Добавить вопрос ]


????????????????????????????????????????????????????????????????????????????????????
Есть форма, на ней две кнопки:

1.
Form1.BorderStyle=0
Form1.Refresh

2.
Form1.BorderStyle=2
Form1.Refresh

Почему не работает?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Это свойство можно изменять только в режиме дизайна, т.е. не во время выполнения!

????????????????????????????????????????????????????????????????

Как определить, отображается ли приложение на панели задач?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

MsgBox App.TaskVisible
Так же:
Скрытие из панели задач - App.TaskVisible = False,
отображение - True

?????????????????????????????????????????

Как добавить/удалить вкладку в SSTab?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Properties - Tab Count.
(Свойство Tab Count, далее можно разобраться.)

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Есть форма с компонентом RichEdit. Но у этого компонента нет методов для печати содержимого, а это очень нужно! Как быть?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

RichTextBox1.SelPrint (Printer.hDC)


????????????????????????????????????????????????????????

Как отловить отловить событие вращения колеса мыши?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Нужно ловить оконное сообщение WM_SCROLL.


 ????????????????????????????????????????????????????????????????????????????????????????????????????????????

Как получить икону файла и ее нарисовать где-нибудь?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Чтобы получить иконку файла/ассоциированого с файлом приложения можно воспользоваться SHGetFileInfo:

'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@allapi.net

Private Const MAX_PATH = 260
Private Const SHGFI_DISPLAYNAME = &H200 ' get display name
Private Const SHGFI_EXETYPE = &H2000 ' return exe type
Private Const SHGFI_LARGEICON = &H0 ' get large icon
Private Const SHGFI_SHELLICONSIZE = &H4 ' get shell size icon
Private Const SHGFI_SMALLICON = &H1 ' get small icon
Private Const SHGFI_SYSICONINDEX = &H4000 ' get system icondex
Private Const SHGFI_TYPENAME = &H400 ' get type name
Private Const ILD_BLEND50 = &H4
Private Const ILD_BLEND25 = &H2
Private Const ILD_TRANSPARENT = &H1
Private Const CLR_NONE = &HFFFFFFFF
Private Const CLR_DEFAULT = &HFF000000
Private Type SHFILEINFO
hIcon As Long ' : icon
iIcon As Long ' : icondex
dwAttributes As Long ' : SFGAO_ flags
szDisplayName As String * MAX_PATH ' : display name (or path)
szTypeName As String * 80 ' : type name
End Type
Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
Private Declare Function ImageList_Draw Lib "comctl32.dll" (ByVal himl As Long, ByVal i As Long, ByVal hdcDst As Long, ByVal x As Long, ByVal y As Long, ByVal fStyle As Long) As Long
Private Declare Function ImageList_DrawEx Lib "comctl32.dll" (ByVal himl As Long, ByVal i As Long, ByVal hdcDst As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal rgbBk As Long, ByVal rgbFg As Long, ByVal fStyle As Long) As Long
Private Sub Form_Load()
Dim hImage As Long, udtFI As SHFILEINFO

Me.AutoRedraw = True

hImage = SHGetFileInfo("c:\AUTOEXEC.BAT", ByVal 0&, udtFI, Len(udtFI), SHGFI_SYSICONINDEX Or SHGFI_LARGEICON)
ImageList_Draw hImage, udtFI.iIcon, Me.hDC, 0, 0, ILD_TRANSPARENT
ImageList_DrawEx hImage, udtFI.iIcon, Me.hDC, 32, 0, 32, 32, CLR_NONE, CLR_DEFAULT, ILD_BLEND50
End Sub


?????????????????????????????????????????????????????????????????????

Как проверить, сушествует ли папка?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

If Dir$("762004",vbDirectory) <> vbNullString then msgbox "Папка есть"


?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Как узнать число строк в текстовом файле?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Можно считать весь файл, вызвать функцию Split со вторым параметром vbCrLf и посмотреть количество элементов в полученном массиве.


????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Есть такие таблицы:

1) Покупатели (ПокупательID, Покупатель, Город)
2) Покупки (ПокупательID, ПокупкаID, Оплата, Сумма)

Оплата принимает значение: нал, безнал.
Необходимо составить SQL-запрос, чтобы выбрать: Покупатель, Город, Сумма оплаты по налу, Сумма оплаты по безналу, при условии, что Сумма оплаты по налу больше, чем по безналу.

Именно SQL. Access 97.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SELECT Покупатель, Город, nal, beznal
(SELECT Сумма FROM Покупки WHERE ПокупательID = Покупатели.ПокупательID and Оплата = 'нал') as nal
(SELECT Сумма FROM Покупки WHERE ПокупательID = Покупатели.ПокупательID and Оплата = 'безнал') as beznal
FROM Покупатели
WHERE nal>beznal


????????????????????????????????????????????

Как работать с БД Access 2000 и Выше?

С 97 все нормально, а 2000 не открывается.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Обнови MDAC.

(Англ. яз - www.microsoft.com)

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Есть форма, в ней 3 текстовых поля text1(I). Одно или несколько полей могут быть пустыми. Нужно сделать выборку из базы по непустым полям. Как решить проблему?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Надо строить запрос динамически, т.е.

str = "Select * from BAZA"
'проверка или задано условие поиска
if len(text1(1).text)> 0 then str = str & " where field1 = text1(1).text"

И так далее, в том же духе.


????????????????????????????????????????????????????????

Как сделать закрепление первой строки в Excel?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Dim oExcel As Excel.Application
Dim oWorkbook As Workbook

Set oExcel = New Application
oExcel.Visible = True
Set oWorkbook = oExcel.Workbooks.Add

oWorkbook.Worksheets.Application.Range("b2").Activate

oExcel.ActiveWindow.FreezePanes = True


???

Есть класс А, в нем

public overloadable sub GO()

Также есть приватный метод, который вызывает его. Есть класс В, потомок А, в нем метод GO() перекрыт.
Проблема: при создании объекта класса В вызывается, соотвественно, приватный метод из А, но он вызывает не перекрытый метод GO(), а свой, из класса А. Что делать?

Базовый класс:

class A

public overridable sub GO()
msgbox 1
end sub

public sub Do()
...
call PrivSub()
...
end sub

private sub PrivSub()
...
GO()
...
end sub

end class 'A

Унаследованный: class B

public overriden sub GO()
msgbox 2
end sub

end class 'B

Использование:

dim d as new B()
d.Do() В результате выведется сообщение "1", а не "2".

!!!

Вот работающий код:

Imports System

Public Class MyApplication
Public Shared Sub Main()
dim d as new B()
d.Doo()
Console.ReadLine()
End Sub
End Class

Class A
public overridable sub GOO()
Console.WriteLine("A")
end sub

public sub Doo()
call PrivSub()
end sub

private sub PrivSub()
GOO()
end sub
End Class

class B
Inherits A
public overrides sub GOO()
Console.WriteLine("B")
end sub
end class


???

Как получить страницу по HTTP?

!!!

Для простых задач, если не надо вплотную работать со стримами или куками, например, может пригодиться класс System.Net.WebClient.

Dim client As New WebClient()
Dim pageData As [Byte]() = client.DownloadData("http://www.contoso.com")
Dim pageHtml As String = Encoding.ASCII.GetString(pageData)


???

Как програмно сгенерировать uniqueidentifier (уникальное значение)?

!!!

Guid g = Guid.NewGuid();
string s = g.ToString();


???

Интересно, тема архивации актуальна на сегодняшний день?

!!!

В принципе есть готовые реализации под .NET :

SharpZipLib
Chilkat .NET Zip Component
Xceed Zip Compression for .NET


???

Как получить список запущенных приложений?

!!!

Process.GetProcesses()


???

Exe должен обращаться к определенному файлу, смотреть там ключик, сопоставлять со своим, и если они равно, дать работать.

Как зашифровать ключик в этом файле, чтобы пользователь сам не мог изменить его? Ключом может быть и дата, до которой должна работать программа.

!!!

Лучше хранить не сам ключ, а hash. Использовать System.Security.Cryptography. Про криптографию в MSDN можно почитать вот здесь:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1033/cpguide/html/cpconcryptographyoverview.htm

Пример:

Hash = FormsAuthentication.HashPasswordForStoringInConfigFile(Key, "sha1")


???

Где можно скачать официальные логотипы .Net Logo?

!!!

http://www.microsoft.com/mscorp/legal/trademarks/logoprog.asp


???

Как будет выглядить строка VBSCript на VB.NET?

' Создаем объект SWbemSink
Set objSink = WScript.CreateObject("WbemScripting.SWbemSink","Sink_")

!!!

В .Net есть свои средства для доступа к WMI. Смотри пространство имён System.Management (в сборке System.Management.dll).


???

Как получить имя пользователя и компьютера в .Net?

!!!

Environment.MachineName
Environment.UserName

Так же:
В VB6 - C помощью API, спрашивать на форуме.

???

Как сконвертровать переменную типа Byte в двоичное число? Например, из 32 получить 00100000. (В .NET!) 

!!!

byte b = 55;
string s = System.Convert.ToString(b, 2);


???

Как в .NET работать с INI файлами?

!!!

Встроенных средств для работы с INI в .NET нет. Можешь использовать API функции.

А вообще, лучше хранить настройки другим способом. Например, в XML-файле.

(Спрашивать на форуме!)

???

Нужно скачать бинарный файл из ASP .NET Web Service. Подскажите, какие классы использовать, чтобы получить файл?

!!!

HttpWebRequest req = WebRequest.CreateFromUrl("http://tra-la-la.com/file.zip");
Stream s = req.GetResponse().GetResponseStream();

Так же:
В VB6 - Через API (DownloadToFile Lib "urlmon"), код дам на форуме (спрашивать на форуме).

???

Мне интересно посмотреть, что посылает и получает сервер при взаимодействии с клиентами. Везде говорится, что отсылаются SOAP-сообщения, и даже приводятся фрагменты этих сообщений. А есть ли такая готовая программа, которая позволяет отслеживать и просматривать эти сообщения в реальном времени? Это касается Remoting и Веб-сервисов.

!!!

В MS SOAP Toolkit есть утилита MsSoapT.exe.


???

Я написал dll на Framework 1.1. Можно ли её использовать под Framework 1.0?

!!!

Посмотрите официальную информацию о совместимости версий.

Compatibility Considerations and Version Changes


???

Как вписать комментарий в пользовательский метод?
Родные классы\методы включают в себя комментарии, которые при наведении мыши показываются в строке подсказки. Можно ли вставить мои комментарии в метод\класс\тип?

!!!

Для С# и C++ модель такая:
В коде перед объявлением методов, классов или, там переменных, вставляются комментарии вида:

///
/// This method bails user off the system or ensures
/// that he(she) not going to get there anymore.
///

///Delinquent user ID
public void BailOff(int userID) {...}

С момента создания этого комментария VS уже с готовностью демонстрирует подсказки в подсказках IntelliSense в любом месте решения (Solution). Если же надо, чтобы подсказки были видны и далее, когда сборка уже собрана и используется в готовом виде из других сборок, то все эти комментарии экспортируются в xml с помощью специальной опции компилятора /doc (напомню, речь идет о С#). В результате создается xml со структурой вида:




organismbase





This class defines common properties for all commands/actions that can
be assigned to a creature. These actions include movement, reproduction,

eating, attacking, etc...






The ID of the creature requesting the action. This will always be the
GUID/ID for your creature.



System.String of the GUID/ID for the organism requesting the action.


...

И теперь достаточно положить этот xml рядом со сборкой, чтобы IntelliSense начал показывать подсказки по всем описанным элементам.

Теоретически поведение сборки не зависит от того, на каком языке были исходники, так что можно предположить, что если рядом со сборокой, написанной на vb, положить правильный xml, то IntelliSense будет все равно, из какого языка она произошла. Проблема только в том, что xml придется писать ручками, либо с помощью add-in'ов сторонних фирм.
Но в VB 2005 уже имеется встроенная поддержка XML-комментариев.


???

Как изменить ориентацию координат в .NET? В VB6 было так:

pict.Scale (0, pict.ScaleHeight) - (pict.ScaleWidth, 0)

!!!

Свойство Transform класса Graphics.


???

Есть проблема с генерацией событий для клиентов удаленного объекта в VB .NET.

При вызове метода на сервере, инициируется событие, например так:

public sub Submit()
raiseevent MySubmitEvent( me, new eventargs() )
end sub

А клиенты, которые имеют ссылку на удаленный объект, получают это событие. Проблема в том, что если один из клиентов отключается аварийно (без соответствующего вызова RemoveHandler), то остальные клиенты при последующей генерации этого события получают исключение.

Я видел пример на C#, как избежать такой ситуации. Там на сервере событие инициировалось для каждого клиента отдельно в блоке try...catch:

public void Submit(){
if( mysubmitEventHandler != null ){
delegate[] invList = mysubmitEventHandler.GetInvocationList()
for each delegate d in invList{
try
d.Invoke( this, new eventargs )
catch
}
}
}

Можно ли как-нибудь проделать такое же и в VB.NET?

!!!

Надо объявлять переменную без ключевого слова Еvent. Только клиенты теперь подписываются на событие сервера, при помощи метода Delegate.Combine( ... ), а не AddHandler. По крайней мере, это работает.

Сервер:

public class CMyRemote
inherits MarshalByRefObject

public delegate sub mysubmitEventHandler( sender as Object, e as EventArgs )
public MySubmitEvent as mysubmitEventHandler

public sub Submit()
if not( MySubmitEvent is nothing ) then
dim aInvList() as [delegate] = MySubmitEvent.GetInvocationList()
dim d as [delegate]
for each d in aInvList
try
' вызывается для каждого клиента, подписавшегося на событие
' если один из клиентов аварийно завершит свою работу, то будет
инициировано исключение...
d.DynamicInvoke( new Object(){ me, new eventargs() } )
catch e as Exception
MySubmitEvent = system.Delegate.Remove( MySubmitEvent, d )
end try
next
end if
end sub
End Class

Клиент:

public class MyClient
inherits MarshalByRefObject

public shared sub Main()
ConfigureRemoteServer()

dim ro as New MyRemoteAssm.CMyRemote
dim d as MyRemoteAssm.CMyRemote.mysubmitEventHandler = AddressOf me.MyCallbackFunc

ro.MySubmitEvent = system.Delegate.Combine( ro.MySubmitEvent, d )
console.WriteLine( "подключение к удаленному объекту прошло успешно!...")
ro.Submit()
console.ReadLine()
ro.MySubmitEvent = system.Delegate.Remove( ro.MySubmitEvent, d )
End Sub

public sub ConfigureRemoteServer()
RemotingConfiguration.Configure( "..\ClientConsole.exe.config" )
End Sub

public sub MyCallbackFunc( o as Object, e as EventArgs )
console.WriteLine( "событие получено..." )
End Sub

End Class



???

Как по ip определить hostname (на клиентской машине, DNS настроен)?

!!!

Dns.GetHostByAddress()


???

Необходимо создать маленькую утилитку, которая блокировала или разблокировала бы учетную запись в домене.
Создаем вхождение:

DirectoryEntry entry = new DirectoryEntry("WinNT://domain/user");

и получаем через entry.Properties набор свойств. Насколько я понимаю, за состояние учетной записи отвечает свойство userFlags. Но как понять какой бит за что отвечает? Как нужно поменять этот флаг для того, чтобы например заблокировать запись?

!!!

Судя по значению маски UF_ACCOUNTDISABLE - это 1-ый бит (если считать с 0-го), когда он установлен - account в disabled состоянии.
Вот функция для изменения этого флага:

void EnableAccount(string path, bool enable)
{
DirectoryEntry entry = new DirectoryEntry(path);
entry.UsePropertyCache = false;
PropertyValueCollection valueCollection =
entry.Properties["userFlags"];
int userFlags = (int)valueCollection[0];
if (enable)
userFlags &= ~2;
else
userFlags |= 2;
valueCollection[0] = userFlags;
}

А вот ее использование (перевод в состояние disabled account'a Гость):

EnableAccount("WinNT://COMPUTER/Гость", false);


???

Необходимо создать маленькую утилитку, которая блокировала или разблокировала бы учетную запись в домене.
Создаем вхождение:

DirectoryEntry entry = new DirectoryEntry("WinNT://domain/user");

и получаем через entry.Properties набор свойств. Насколько я понимаю, за состояние учетной записи отвечает свойство userFlags. Но как понять какой бит за что отвечает? Как нужно поменять этот флаг для того, чтобы например заблокировать запись?

!!!

Судя по значению маски UF_ACCOUNTDISABLE - это 1-ый бит (если считать с 0-го), когда он установлен - account в disabled состоянии.
Вот функция для изменения этого флага:

void EnableAccount(string path, bool enable)
{
DirectoryEntry entry = new DirectoryEntry(path);
entry.UsePropertyCache = false;
PropertyValueCollection valueCollection =
entry.Properties["userFlags"];
int userFlags = (int)valueCollection[0];
if (enable)
userFlags &= ~2;
else
userFlags |= 2;
valueCollection[0] = userFlags;
}

А вот ее использование (перевод в состояние disabled account'a Гость):

EnableAccount("WinNT://COMPUTER/Гость", false);


???

Мне необходимо зашифровать, а потом расшифровать текстовый файл. Как это сделать?

!!!

Посмотрите пространство имен System.Security.Cryptography. На сайте vbnet.ru в библиотеке кодов есть примерчик по симметричному шифрованию, а в разделе Статьи - статья по той же теме.


???

Пишу:

Imports System.Drawing.Drawing2D

Выдаёт ошибку. Что я сделал не так?

!!!

Писать это надо в самом верху (выше объявления класса (Class ...).
VBNet.Ru Павел Сурменок. (Копия Павлом Кутуковым)

???

Как получить путь, в котором находится приложение?

!!!

System.appdomain.currentdomain.basedirectory


???

Недавно установил Visual Basic .NET. Не подскажите какие-нибудь ссылки на сайты?

!!!

http://progs.biz/
http://www.vbnet.ru/
http://gotdotnet.ru/
http://dotsite.spb.ru/

Из конференции SoobCha_VB


???

После нескольких часов привыкания к интерфейсу VB.NET (+MSDN), VB6 сиротой кажется.

Думаю, без хорошей книги - никак! Но книг много! Посоветуйте толковую. Дайте название, имя автора и ISDN, а я сам найду. Хотя, если будут ориентиры - еще лучше!

!!!

Говорят, что книга Дэна Эпплмэна - лучшая:

Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.) Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...

Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

Заказать можно здесь:
http://vbnet.ru/vbshop/buybook.asp?id=236

Артем Кривокрисенко


???

Чем принципиально отличаются классы Trace и Debug?

!!!

Trace используется для Web-приложений.
Насколько я знаю, Trace - для вывода информации на страницу, а Debug - в IDE в окошко типа Command или Output.

Павел Сурменок, vbnet.ru (Копия Павлом Кутуковым) 


Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright Kutukov Pavel ©, FAQ Powred By VBNet.Ru, 2024
    Сделать бесплатный сайт с uCoz