|
Johan,
Thanks for the help. I found a macro to display the color index (don't know why I didn't think of that).
Thanks, OH
ohart
|
|
|
|
|
Hello,
I'm trying to write an own control and I want to draw the content by my self. But I have problems with the Visual Style-Support. The Visual Styles are supported and enabled for my application, but my code do nothing. Here it is:
Protected Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)<br />
' open theme data<br />
Dim hTheme As IntPtr = IntPtr.Zero<br />
hTheme = NativeMethods.OpenThemeData(hTheme, "EDIT")<br />
<br />
' make sure we have a valid handle<br />
If Not hTheme = IntPtr.Zero Then<br />
' get a graphics object the UxTheme can draw into<br />
Dim hdc As IntPtr = e.Graphics.GetHdc()<br />
<br />
' get the draw and clipping rectangles<br />
Dim dRect As RECT = RECT.FromRectangle(Me.ClientRectangle)<br />
Dim cRect As RECT = RECT.FromRectangle(Me.ClientRectangle)<br />
<br />
' draw the themed background<br />
Dim ret As Integer = NativeMethods.DrawThemeBackground(hTheme, hdc, 1, 1, dRect, cRect)<br />
<br />
' clean up resources<br />
e.Graphics.ReleaseHdc(hdc)<br />
End If<br />
<br />
' close the theme handle<br />
NativeMethods.CloseThemeData(hTheme)<br />
End Sub<br />
<br />
'The NativeMethods-Class<br />
<br />
Public Class NativeMethods<br />
<DllImport("UxTheme.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _<br />
Friend Shared Function OpenThemeData(ByVal hwnd As IntPtr, <MarshalAs(UnmanagedType.LPTStr)> ByVal pszClassList As String) As IntPtr<br />
End Function<br />
<br />
<DllImport("UxTheme.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _<br />
Friend Shared Function DrawThemeBackground(ByVal hTheme As IntPtr, ByVal hdc As IntPtr, ByVal iPartId As Integer, ByVal iStateId As Integer, ByRef pRect As RECT, ByRef pClipRect As RECT) As Integer<br />
End Function<br />
<br />
<DllImport("UxTheme.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _<br />
Friend Shared Function CloseThemeData(ByVal hTheme As IntPtr) As Integer<br />
End Function<br />
End Class<br />
<br />
'The RECT-Class<br />
<br />
Imports System.Runtime.InteropServices<br />
<br />
<StructLayout(LayoutKind.Sequential)> _<br />
Public Class RECT<br />
Public left As Integer<br />
Public top As Integer<br />
Public right As Integer<br />
Public bottom As Integer<br />
<br />
Public Sub New(ByVal left As Integer, ByVal top As Integer, ByVal right As Integer, ByVal bottom As Integer)<br />
Me.left = left<br />
Me.top = top<br />
Me.right = right<br />
Me.bottom = bottom<br />
End Sub<br />
<br />
Public Shared Function FromRectangle(ByVal rect As Rectangle) As RECT<br />
Return New RECT(rect.Left, rect.Top, rect.Right, rect.Bottom)<br />
End Function<br />
<br />
Public Shared Function FromXYWH(ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer) As RECT<br />
Return New RECT(x, y, x + width, y + height)<br />
End Function<br />
<br />
Public Function ToRectangle() As Rectangle<br />
Return New Rectangle(Me.left, Me.top, Me.right - Me.left, Me.bottom - Me.top)<br />
End Function<br />
End Class
This is a simplified implementation to draw a visual style enabled textbox, but it do nothing although no exception is thrown and the return value from DrawThemeBackground is ok. What is my mistake? I hope that onebody could help me because I tryed a few days and see no solution.
Thanks vocaris
|
|
|
|
|
Hello,
its me again, does everyone knows an other forum, where I could ask this question?
Vocaris
|
|
|
|
|
try www.vbforums.com
they are pretty good there too, sorry I can't help you either I'm just a beginner myself.
|
|
|
|
|
Hi all,
I am having a problem with a standard webclient url download via proxy server (ISA) only when the download method is called via an alternate thread other than the main UI thread.
The error is an authentication failure.
When the call is made via the main UI thread it works fine, even without specifying authentication or proxy details (I assume default is in use).
The thread calling the webclient methods is a standard System.Threading.Thread object.
Any ideas?
Thanks in advance!
|
|
|
|
|
I monitor a large ETL process at my company. This ETL process runs on a UNIX server within our network. If a specific process fails, an error log (Step1.log) is generated on the UNIX server that describes what caused the failure. We then use "CORE FTP" or "PUTTY" to retrieve/open the error log and cut/paste the error message into an email which is sent to our developers for handling. I have written a VB6 desktop application that automagically sends a CDO email to the developers to alert them when the specific process has failed. (This information exists on a Windows Server and isn't a problem to open and retrieve info.) My objective is to include the UNIX error message in the alert email message to the developers but I do not know how to programmatically connect to UNIX and retrieve the error logs. I know the UNIX Remote Host IP address and port. I also have the user name and password. So far I've tried connecting to UNIX using WINSOCK but I'm unable to pull this off. I believe I'm having trouble sending the user name as password to the UNIX server. Unfortunately my ideation is bigger then my skill level. My skill level is between beginner/intermediate so any help would be greatly appreciated. Thanks!
|
|
|
|
|
How were you connecting to the UNIX box through VB6? I.e. which protocol were you attempting to connect with? FTP, Telnet, HTTP etc or a custom app protocol?
By the sounds of it, given then ability to connect via core and putty, the UNIX box has ftp enabled. If I were you I'd take a look for an open source VB6 ftp control and configure from there. Or you could just buy one of course!
Writing an ftp client is non-trivial (although fun - at least in uni). If you really want to then take a look at RFC 959[^] which describes the FTP protocol.
I'm largely language agnostic
After a while they all bug me
|
|
|
|
|
Thanks for addressing my question. I was trying to connect using an FTP protocol but it was way above my skill level. I will search the open source sites for a vb6 ftp control. Thanks for that suggestion!
|
|
|
|
|
I'm trying to access the value of a HtmlInputHidden inside a datalist, but I get "Object reference not set to an instance of an object" as an error when I try to call the value.
Here is my code:
Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem
'Dim row As DataRowView = CType(e.Item.DataItem, DataRowView)
Dim TitleLink As HyperLink = CType(e.Item.FindControl("ProdTitleLink"), HyperLink)
Dim TextLink As HyperLink = CType(e.Item.FindControl("ProdTextLink"), HyperLink)
Dim prodID As HtmlInputHidden = CType(e.Item.FindControl("ProductID"), HtmlInputHidden)
TextLink.NavigateUrl = "productDetails.aspx?catID=" & Request.QueryString("catID") & "Id" & prodID.Value
TitleLink.NavigateUrl = "productDetails.aspx?catID=" & Request.QueryString("catID") & "Id" & prodID.Value
End Select
End Sub
Code of Datalist:
<asp:DataList ID="DataList1" runat="server">
<HeaderTemplate>
<div class="ProdHeadBox">
<div class="ProdTitleHead">Product</div>
<div class="ProdQtyHead">Qty</div>
<div class="ProdPriceHead">Price</div>
</div>
</HeaderTemplate>
<ItemTemplate>
<div class="ProdMainBox">
<div class="ProdPicBox">
<asp:Image ID="ProdImage" runat="server" ToolTip='<%# Eval("PictureLarge") %>' ImageUrl='<%# "~/images/productImages/small/" + DataBinder.Eval(Container.DataItem, "PictureSmall").ToString() %>' />
</div>
<div class="ProdTextBox">
<div class="ProdTitle">
<asp:HyperLink CssClass="ProdTitleLink" ID="HyperLink2" runat="server" NavigateUrl='<%# "productDetails.aspx?Id=" + Eval("ProductID").ToString() %>' ToolTip="Read More...">
<asp:Literal ID="litTitle" runat="server" Text='<%# Eval("ProductName") %>' /></asp:HyperLink>
</div>
<div class="ProdText">
<asp:Literal ID="ProdType" runat="server" Text='<%# Eval("Type") %>' /><br />
<asp:Literal ID="litDescription" runat="server" Text='<%# GetDescription(Eval("ProductDescription")) %>' /><br />
<asp:HyperLink CssClass="ProdTextLink" ID="HyperLink1" runat="server" NavigateUrl='<%# "productDetails.aspx?Id=" + Eval("ProductID").ToString() %>' ToolTip="Read More...">more...</asp:HyperLink>
<input type="hidden" id="ProductID" runat="server" value='<%# Eval("ProductID") %>' />
</div>
<div class="ProdQtyBox">
<asp:TextBox Width="25" ID="ProductQTY" Text="0" MaxLength="5" runat="server" />
<asp:RegularExpressionValidator ControlToValidate="ProductQTY" ValidationExpression="\d+" Text="*" ID="QTYValidator" runat="server"></asp:RegularExpressionValidator>
</div>
<div class="ProdAddBox">
Price: <asp:Literal ID="Literal1" runat="server" Text='<%# String.Format("{0:c}", Eval("ProductPrice")) %>' />
<br />
Per roll/pack<br />
<asp:Button ID="Add" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ProductID")%>' Text="Add" runat="server" />
</div>
</div>
</div>
</ItemTemplate>
</asp:DataList>
Thanks for any help!
|
|
|
|
|
First, you didn't specify which line the expection is thrown on. I'm not really up to guessing, but I can see a glaring problem.
In this code:
Dim TitleLink As HyperLink = CType(e.Item.FindControl("ProdTitleLink"), HyperLink)
Dim TextLink As HyperLink = CType(e.Item.FindControl("ProdTextLink"), HyperLink)
Dim prodID As HtmlInputHidden = CType(e.Item.FindControl("ProductID"), HtmlInputHidden)
you're assuming that the call to FindControl actually returns a control. If you're trying to use the TitleLink, TextLink, and prodID objects, and FindControl did NOT find the controls you THINK they did, you'll get the error you're talking about.
Check the return values/objects of methods before you attempt to use those values/objects. You might not get back what you think you should be getting.
|
|
|
|
|
There is no problem finding the TitleLink or the TextLink and to set the value for it.
It's only when I start looking for the HtmlInputHidden!!!
|
|
|
|
|
This question really belongs in the ASP.NET Forum. It has nothing to do with VB.NET.
Now, yo answer you're question. Find controls only works with ASP.NET server-side controls. It will NOT find an HTML control on the form, which is what you used. I have no idea if you can use an ASP.NET TextBox control and change it's state to Hidden. You'll have to ask in the ASP.NET forum or just experiment with it.
|
|
|
|
|
I am teaching my self VB.NET. I am also a webmaster for a church website. We upload all the sermons to the website every week, by hand. In order to automate that, I want to create an application that rip a cd and then upload the ripped audio file to the website and fill in the provided information into a mysql database.
I have figured out the database part, and I have also figured out mainly how to convert from a wave file to an mp3 using lame. However, I have not found any tutorials in VB.NET that allow access to the cd-rom drive, or ripping the audio from the cd for that matter.
So my question is:
Is it possible to rip a cd using vb.net? Does anyone know of any tutorials to guide me on my way?
|
|
|
|
|
|
one problem, its in c++ not vb.net
I have found plenty of examples in c++, but not in vb.net. I am wondering if there is a library that I will need to include to obtain what I want. (I am using VB 2005 Express Edition (.NET))
|
|
|
|
|
I am currently looking at the Windows Media Player Library (WMPLib). It is fine if it requires Windows Media Player, so I am not worried about that. It looks hopeful.
|
|
|
|
|
I have made some of that, but i am still having a problem setting options when ripping to come out other than wma file, anyone knows how to do that?
try to use the windows media 10 SDK, you can also have a sample media player using vb.net from that...
have a nice day...
ianbacalla
|
|
|
|
|
I have just run into the same problem as you. I'll let you know when I find out.
I was also wondering if you knew how to choose which tracks are being ripped, and where the destination directory/file names are.
Here is my code:
<br />
Dim cdromcollection As WMPLib.IWMPCdromCollection<br />
Dim mediaplayercore As New WMPLib.WindowsMediaPlayerClass<br />
Dim cdrom As WMPLib.IWMPCdrom<br />
Dim rip As WMPLib.IWMPCdromRip<br />
<br />
cdromcollection = mediaplayercore.cdromCollection<br />
cdrom = cdromcollection.getByDriveSpecifier(My.Settings.cd)<br />
Dim media As WMPLib.IWMPMedia<br />
media = cdrom.Playlist.Item(My.Settings.track)<br />
Dim Playlist As WMPLib.IWMPPlaylist = mediaplayercore.newPlaylist("templist", "")<br />
Playlist.clear()<br />
Playlist.appendItem(media)<br />
rip = cdrom<br />
rip.startRip()<br />
|
|
|
|
|
Cool, ok let me know if you found one, i'll let you know too...thanks...
here is my code for selecting a file to rip :
dim m as wmplib.iwmpcdrom<br />
<br />
For x As Integer = 0 To mMediaPlaylist.count - 1<br />
If lst.Item(i).ToString().ToUpper() = mMediaPlaylist.Item(x).getItemInfo("Title").ToUpper() Then<br />
m = MediaPlayer.cdromCollection.getByDriveSpecifier(mReadyDrive)<br />
m.Playlist.Item(x).setItemInfo("SelectedForRip", CType(True, String))<br />
End If<br />
Next
I did not come up with the destination of the tracks because i just wanted it to be in mymusic folder...but is is better to have that.
Have a good day...
ianbacalla
|
|
|
|
|
see my other reply about 9 1/2 hours before your last reply. It has a good link to a complete source code for this. It doesn't use windows media player at all. The website is in German though, and so are the comments in the source code as well as the program itself, but the code is pretty easy to understand.
|
|
|
|
|
Hi,
Did anybody found how to get/set the ripped folder ?
doğu tümerdem
|
|
|
|
|
I found this source code, and it compiles and works!
http://actorics.de/rm_code/cdrip.htm
The only thing is the web page is in German, but hey code is code
|
|
|
|
|
wow....this is good, thanks.... . but i have encountered an error when ripping track to MP3 file format. I have encountered this last time, but i haven't found any solution yet. does ripping to MP3 works fine for you? it has a problem loading lame_enc_vb.dll for me.
but thank you, this really help.
|
|
|
|
|
Yes I had that problem to. Copy the dlls from the dlls folder to the bin/debug folder. I haven't tried to publish the program yet, but there should be a way to make sure it is placed in the correct directory when the program is installed.
|
|
|
|
|
I am trying to take an array of Hex strings and convert them to an array of (hex)bytes.
I can't do this:
arrayByte() = arrayStr()
I can't do this:
arrayByte() = convert.hex(arrayStr())
I can't do this:
arrayByte() = conversion.tobyte(arrayStr())
Does anyone know how I can do this? The trouble is when I try to convert a Hex string like e9 to a byte.
|
|
|
|