PDA

Показать полную графическую версию : Visual Basic 2008


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18

Admiral
10-09-2008, 22:28
Call (оператор) - передает управление процедуре модуля (Sub), функции модуля (Function) или подпрограмме DLL >> (http://bit.pirit.info/forum/viewtopic.php?t=216) определение от VB6 но справедливо и для VB.NET

В данном конкретном случаи оставлено мною для совместимости с проектами VB6.
VB.NET 2008 позволяет применять Shell и без этого оператора, VB6 же пожелает избавится от второго параметра функции Shell если я не напишу этот оператор.

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

Uzvern
15-09-2008, 01:25
а как-то можно без webbrowser загрузить код страницы?
и как в webbrowser отключить картинки?
Console.WriteLine - где посмотреть то, что сюда записалось?

Delirium
15-09-2008, 02:07
Console.WriteLine - это вывод на экран текста в консольной версии программы. Если Win32, то пишите MsgBox вместо Console.WriteLine.
и как в webbrowser отключить картинки? »
Смотря какой браузер :)

Uzvern
15-09-2008, 08:45
Delirium, компонент WebBrowser

Delirium
15-09-2008, 09:10
Затупил :)
Может быть это поможет?
http://forum.codeby.net/topic7793.html
http://www.gotdotnet.ru/Forums/Common/91613.aspx

Uzvern
15-09-2008, 09:48
ух. жутко, но попытаюсь разобрать. Спс, а случайно не знаешь как загрузить код станицы без WebBrowser?

Delirium
15-09-2008, 09:54
ммм..... ну только если так попробовать:
WebClient myClient = new WebClient();
myClient.Credentials = CredentialCache.DefaultCredentials;
Stream response = myClient.OpenRead("http://ru.uefa.com");
byte[] bytes = new byte[10000];
int n = response.Read(bytes,0,3000);
int br = 0;
while (n>0)
{
br+=n;
n = response.Read(bytes,br+1,3000);
}
String s = Encoding.ASCII.GetString(bytes);


В строке s и будет HTML код документа
Взято отсюда (http://www.rsdn.ru/Forum/?mid=1353494)
Поищи заодно на rsdn.ru по тексту "HTML-код страницы в C# коде".

Uzvern
15-09-2008, 10:13
чет я немогу последний код из С в VB переделать...

Admiral
15-09-2008, 10:18
Uzvern, написания своего ВебКомпонента, равносильно написании своего ВебБраузера. Принцип построения проще всего узнать просмотрев какой-нибудь ОпенСоурсе браузере, что несколько отводить от идеологии .NET где всё под рукой и готово.

Как не отображать (или сразу не грузить) картинки можно посмотреть здесь http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3513729&SiteID=1, а так же здесь (там правда C#) http://geekswithblogs.net/dotnetnomad/archive/2008/01/29/119065.aspx. Стоит проконтролировать что в странице действительно вырезаются картинки на лету (даже не грузятся), а не после загрузки когда они уже накрутили трафик и по просто не отображаются.

Uzvern
22-09-2008, 19:30
Как программно изменить свойства папки (сменить значок, тип файлов) ?

Delirium
23-09-2008, 01:28
Uzvern, вы там винду новую пишете? :)
Как программно изменить свойства папки (сменить значок) ? »
один из вариантов:
desktop.ini в папке:
[.ShellClassInfo]
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=22
Примерно так. Создать файл и запихать туда нужные строки.

А вообще посмотрите функции Shell, там должно это быть.

The following example shows how to set a window icon. (Window.Icon Property)
// Set an icon using code
Uri iconUri = new Uri("pack://application:,,,/WPFIcon2.ico", UriKind.RelativeOrAbsolute);
this.Icon = BitmapFrame.Create(iconUri);

Uzvern
23-09-2008, 17:40
Ну вот написал код, но чет он не пашет (Все создает, ноиконку не меняет) :
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
Do While IO.Directory.Exists("C:\" & i)
i += 1
Loop

MkDir("C:\" & i)

Try
If IO.File.Exists("C:\" & i & "\desktop.ini") Then
IO.File.SetAttributes("C:\" & i & "\desktop.ini", IO.FileAttributes.Normal)
End If

Dim File As Integer = FreeFile()
FileOpen(File, "C:\" & i & "\desktop.ini", OpenMode.Output)
PrintLine(File, "[.ShellClassInfo]")
PrintLine(File, "IconFile=%SystemRoot%\system32\SHELL32.dll")
PrintLine(File, "IconIndex=25")
FileClose(File)

IO.File.SetAttributes("C:\" & i & "\desktop.ini", IO.FileAttributes.System)
IO.File.SetAttributes("C:\" & i & "\desktop.ini", IO.FileAttributes.Hidden)

Shell("explorer /select, C:\" & i, AppWinStyle.NormalFocus)

End
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
End
End Try
End Sub
End Class

Delirium
24-09-2008, 01:17
Да, действительно, просто создание файла desktop.ini не дает нужного результата. Об этом писали здесь (http://forum.sources.ru/index.php?showtopic=210233) .
Похоже, единственные вариант - использовать функции Shell, пример использования(на делфи) есть здесь (http://forum.sources.ru/index.php?showtopic=211021&st=0&#entry1769451). Если брать VB или C#, то описание задано в
статье MSDN (http://msdn.microsoft.com/en-us/library/bb762199.aspx?ppud=4) :
SHGetSetFolderCustomSettings Function

Sets or retrieves custom folder settings. This function reads from and writes to Desktop.ini.

Uzvern
03-10-2008, 11:54
Как можно изменить размеры верхней (главной) строки программы (Где название, иконка, кнопки закрытия/максимизации/минимизации) ?


Например вот с такого
http://i36.tinypic.com/fazp51.jpg
до такого, если вообще возможно...
http://i38.tinypic.com/2583sx5.jpg

Admiral
03-10-2008, 23:23
Эта строка называется TitleBar, её параметры устанавливаются в настройках Виндовса, значения можно получить командой MsgBox(SystemInformation.CaptionHeight.ToString)
или
Dim TitlebarHeight As Integer = Me.Height - Me.ClientSize.Height - Me.Width + Me.ClientSize.Width
MsgBox(TitlebarHeight)
Как вариант решения можно создать свою аналогию, перерисовав графику, но стоит ли тогда вообще строить квадратно подобные формы? Если не стоит, то вот (http://msdn.microsoft.com/en-us/library/6k15y9et.aspx) как примерно такое окно можно построить, по готовому нарисованному рисунку.
Так же пример по С# (http://www.dreamincode.net/forums/showtopic64981.htm).

Uzvern
04-10-2008, 14:41
А как-то можно изменить размеры CaptionHeight?
По нарисованому рисунку не интерестно. Я хочу именно CaptionHeight изменить

Admiral
04-10-2008, 16:01
Uzvern, в том то и дело что SystemInformation.CaptionHeight параметр только для чтения, его можно косвенно (меняя Color Sheme) через это окно (http://www.microsoft.com/library/media/1033/windowsxp/images/using/setup/personalize/67381-click-appearance-tab.gif) затрагивая все оконные приложений Виндовс.

Uzvern
04-10-2008, 17:33
Admiral, а как тогда тут сделано оО
http://i38.tinypic.com/2583sx5.jpg

Admiral
04-10-2008, 18:41
Uzvern, я этот скрин ещё в предыдущем посте смотрел, и прикинул что это организовывается аналогично тому, как инсталлятор Висты/2008 рисуется в ХР/2003 >> (http://forum.oszone.net/thread-105971.html). Может в одном из ресурсов данной программы и лежит рамка этого окна.

Приблизить к такому эффекту в новом проекте может следующий код

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ShowIcon = False
Me.Text = ""
Me.MaximizeBox = False
Me.MinimizeBox = False
End Sub

на ХР этот код даёт такой эффект.
http://s39.radikal.ru/i086/0810/48/feecd6d5745a.jpg

Uzvern
04-10-2008, 19:51
Admiral, либо я что-то не понял, либо ты. У меня стоит Aero. как ты видишь, окно подвергается эффектам Aero. Т.е. это не нарисованая форма, а просто растянутый на всю прогамму TitleBar :unsure:
На ХР-шке окно не прозрачное!




© OSzone.net 2001-2012