Jump to content
Xtreme .Net Talk

Volte

*Experts*
  • Posts

    2372
  • Joined

  • Last visited

Everything posted by Volte

  1. I believe the general idea is that they search for mirrors which serve the same file and download different segments simultaneously from the fastest servers it can find.
  2. The only real effective kind of shareware is the kind where you cripple the software, taking away some key functionality. Any shareware which contains full functionality ("locked" or otherwise) anywhere in the program is simply ineffective to anyone who knows how it is done, and regardless of whether it is done in .NET or not, it isn't that hard to figure it out. Another effective way to do it would be to require an encrypted evaluation key to be entered on install, which needs to be emailed to the user. The key would expire after 30 days, and since you already have the user's email stored in your database, you don't send another one. It is fairly effective, but takes a lot more work to set up. Look at the VMWare site to see what I mean. However, if you need to securely store algorithms and such, you might try using a C++ DLL. However, an assembler programmer would usually be able to extract stuff like that from the C++ DLL.
  3. Derek raises an excellent point. People may be able to get the source dump, but it really doesn't matter even if they do. In order to turn your decompiled source into a working program would probably be more work than writing it from scratch. The only really useful thing you can get from a decompilation is logic, and much of the logic is changed drastically (i.e. the IL uses goto constantly rather than many of the other equivilants, like calling internal subs or Select Case statements).
  4. Unfortunately, you can't "secure" it per se, but you can obfuscate it so that all variables, procedure names, and calls are replaced with more confusing names (instead of mycounter it might be int_00483657095 or something, and all variables are similarly named). Anyone with too much time on their hands could deobfuscate it, but it would be easier for them to just rewrite the app. You really shouldn't worry about trying to keep people from getting the source, as anyone who wants it bad enough with take it (as cluttered and useless as it may be) and anyone else will just write it themselves.
  5. It's not hard, but if you don't know anything about it, it can be quite confusing and tedious to get it right. I suggest you just use the GDI+ and create your own button, as that is among the simplest of controls to create.
  6. They are ownerdrawn buttons. You may as well just create your own control.
  7. Try this:If sender Is lbNextPage Then 'do whatever End If
  8. Ah, of course. I seem to always get Container and Parent confused. Sorry, then. :) Glad you got it sorted anyway.
  9. I would say allow them to use it for free/cheap as long as it's not for commercial gain.
  10. Er... Try this:MessageBox.Show(DirectCast(Me.Container, TabPage).Location.X.ToString())Am I correct in assuming that the button is Class2, and that it is located on the TabPage?
  11. I think you can use DirectCast(Me.Container, TabPage) to return the tabpage that the button is located in.
  12. Well, you can use the GetData method rather than specifying the type, but it will return an Object, which you should cast to whatever type you will be using anyway. If you are blindly extracting data without knowing the type, GetData is the way to go.
  13. If the RTF is on multiple lines it will be stored as such. To remove the newlines, try this: mywriter.writeline(richtextbox.rtf.Replace(ControlChars.CrLf, ""))
  14. Oh, I see the problem. You need to pass the ordinal that you want to get into the Get method that corresponds to the type (GetString, GetInt32, GetBoolean, etc). So in your case: MessageBox.Show("Supplier id is " & MyReader.GetInt32(MyReader.GetOrdinal("SupplierID"))
  15. Well, you didn't say what the problem was... However, if you want to loop through all the records, you need to loop: Do While MyReader.GetData() 'do stuff with the current record Loop
  16. You need to use an OledbConnection object (or SqlConnection for SQL Server) to connect. Then there are a few different ways to get data. For example, you can then do something like this: ' make a connection object called dc and connect to the database Dim cmd As New OleDbDataCommand("SELECT * FROM People", dc) Dim adapter As New OleDbDataAdapter(cmd) Dim data As New DataSet() adapter.Fill(data)DataSet then contains the information retrieved. There's too much too tell you here, but there's lots of ADO.NET reading material the MSDN.
  17. You need to use a graphics object. For example, if it's in the Paint event, you can use e.Graphics.MeasureString(). If outside of the Paint event, you can use Me.CreateGraphics().MeasureString() (assuming you're in a form).
  18. YourGraphicsObject.MeasureString()
  19. ADO is NOT managed, but ADO.NET is. However, upon examination with Assembly Viewer, it appears the adodb.dll included with .NET is a managed wrapper for interop with the old ADO methods. You should still use ADO.NET though. If you use ADO it will probably force you to install the MDACs and stuff if you distribute your app.
  20. Is the first column a text field? MaxLength only returns the max lenth of text fields, and won't return the max value of number fields.
  21. Replace this: (radMensShoes.Checked = False Or radWomensShoes.Checked = False)with (radMensShoes.Checked = False AndAlso radWomensShoes.Checked = False)Otherwise it will fail unless BOTH checkboxes are checked. Also, you should use OrElse instead of Or in these cases, as it is more efficient.
  22. It's part of the DataGrid.
  23. Set the CurrentRow property to the number of rows in the DataSet.
  24. TryProcess.Start("calc.exe")
  25. Are you sure the project isn't loading? The start page doesn't go away when you load a project, so just check the Solution Explorer to make sure it's not there. It may sound stupid it's not hard to overlook.
×
×
  • Create New...