|
Hi Damir,
Its realy difficult to protect a .NET Application, because the application is only IL-Code (with a win32 loader) and you can recreate the code of it really good.
Try Lutz Roeder's Reflector[^], for instance with the System.dll (Framework Namespace System).
One solution is to use a obfuscator. The obfuscator renames all variables and methodes in useless terms, like a12423.
But a have no tip for a special product.
A communication version (free for students and freeware authors) of the dotfuscator is part of visual studio 2003. See: http://preemptive.com/products/dotfuscator/Editions.html[^]
A free alternative is the Aspose Obfuscator/[^].
An other idee is to pack all used dll's in one stream and embedded this stream as embedded resource in the application. Unpack this stream at runtime and load the dlls from this unpacked memory. Its simple possible to crypt the embedded stream.
A example implementation is descript in the magazin Dr. Dobb's Journal March 2005.
Reducing the Size of .NET Applications[^]
Hope, it's help a bit
Niedzi
|
|
|
|
|
|
I have a form with FormBorderStyle set to Sizable , and no minimize or maximize buttons, and no ShowInTaskbar . It displays the default Windows Forms icon in the title bar, even if I set the Icon property to null in the constructor.
Is there a way to have a sizable dialog without that little icon in the caption? How?
Thanks!
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
The only way to do it is to set the icon to an image that matches the color o the title bar. You can't not have an icon there.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
There are two other ways:
1st way:
It's most like the idea of Dave.
Use a icon where all pixel are transparent.
2nd way:
Set the borderstyle to sizeable Toolwindow. The caption bar is a bit smaller.
|
|
|
|
|
Lars Niedziolka wrote:
Set the borderstyle to sizeable Toolwindow. The caption bar is a bit smaller.
Yes, I know, but that's not what I'm looking for... thanks!
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
Yes, I had thought about an all-transparent icon, but it still leaves the text a little more to the right than usual.
I've seen resizable windows without an icon, but I don't know if they're .NET apps or not. For example the common Open dialog in Visual Studio (that's not .NET, but I remember seeing another window in Visual Studio which I cannot find).
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
Hi Luis,
the solution is very simple.
Set the property ControlBox of the form to false.
-- Niedzi
|
|
|
|
|
Thanks, but I tried that too and it also hides the close button on the right of the caption bar.
Maybe it's not possible with the framework. Thanks anyway.
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
Hi all,
I need to update client machines with the correct time if it is inaccurate. The server I'm using will always have the correct time so I'll be using that as the source of correct time. The code below works most of the time but is an an hour off sometimes (daylightsavings time).
For example, If I change the date on a local to machine to Jan 2005, my code will update the time an hour ahead of where it should be. Any help would be appreciated.
Thanks,Paul
Code is below
using System;
using System.Runtime.InteropServices;
public void UpdateTime(DateTime ServerTime)
{
TimeZone localZone = TimeZone.CurrentTimeZone;
DateTime localTime = localZone.ToLocalTime(ServerTime);
TimeSpan localOffset = localZone.GetUtcOffset(localTime );
ServerTime = ServerTime.Add(localOffset);
SetTime(ServerTime);
}
[StructLayoutAttribute(LayoutKind.Sequential)]
private struct SYSTEMTIME
{
public short year;
public short month;
public short dayOfWeek;
public short day;
public short hour;
public short minute;
public short second;
public short milliseconds;
}
[DllImport("kernel32.dll")]
static extern bool SetLocalTime(ref SYSTEMTIME time);
private void SetTime(DateTime NewTime)
{
SYSTEMTIME st;
st.year = (short)NewTime.Year;
st.month = (short)NewTime.Month;
st.dayOfWeek = (short)NewTime.DayOfWeek;
st.day = (short)NewTime.Day;
st.hour = (short)NewTime.Hour;
st.minute = (short)NewTime.Minute;
st.second = (short)NewTime.Second;
st.milliseconds = (short)NewTime.Millisecond;
SetLocalTime(ref st);
}
|
|
|
|
|
Call javascript function in C# and C# fucntion or objects id javascript
Ninety-eight percent of the thrill comes from knowing that the thing you designed works, and works almost the way you expected it would. If that happens, part of you is in that machine.
|
|
|
|
|
Well, you can call C# stuff from a C# dll embedded in an HTML page. See this page[^] for more info.
Calling JavaScript from C#, that is something a little more involved. Perhaps you could compile the JavaScript using the Microsoft JScript.NET compiler, then call the .NET methods on the resulting JScript.NET dll.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Homosexuality in Christianity
Judah Himango
|
|
|
|
|
Hi,
I've tried to integrate a C# library in a C++ program I created using Visual C++ 6.0. I've been able to do this and make it work properly, but it seems the COM object in the C# library is never properly released and I have outrageous memory leaks. Since this C++ program is a service, it doesn't close each time I use it and the leaking just goes on and on. Does anybody have a clue how I could solve this problem?
Thanks a lot!
Francois Dubé
|
|
|
|
|
see System.Runtime.InteropServices.Marshal.ReleaseComObject();
You might need to do this in the Dispose method of your library...
Absolute faith corrupts as absolutely as absolute power
Eric Hoffer
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke
|
|
|
|
|
My C# object is a COM Interop Object. I am using it in a C++ service. So basically it's the other way around, it's the C# object that doesn't get released.
|
|
|
|
|
To write to Notepad from c# without creating a file I found the following code.
I need this because I dont have write permission on the client but I need to show
the extracted data in the Notepad.
Private Declare Ansi Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Int32, ByVal hWnd2 As Int32, ByVal lpsz1 As String, ByVal lpsz2 As String) As Int32
Private Const WM_SETTEXT As Integer = &HC
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim hwnd As Integer = FindWindow(vbNullString, "Untitled - Notepad") '/// assuming you have notepad open.
Dim x As Integer = FindWindowEx(hwnd, 0, "Edit", vbNullString)
Dim strText As String = "some text"
If Not x = 0 Then
SendMessage(x, WM_SETTEXT, 256, strText)
End If
End Sub
My question is: Is there a way to append text to notepad instead of WM_SETTEXT. I need this because sometimes the data to be extracted is huge and WM_SETTEXT may not suffice.
Live Life King Size
Alomgir Miah
Live Life King Size
Alomgir Miah
|
|
|
|
|
There was a question about this here a few days ago. Look for that.
---
b { font-weight: normal; }
|
|
|
|
|
I was the one who asked the question. I can set text to Notepad but cannot append.
Live Life King Size
Alomgir Miah
|
|
|
|
|
You have to get the current text, append to it, and then set the full text altogether.
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
I know I can call a dll by c# like this:
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
public static extern int MessageBox(int hWnd, String text,
String caption, uint type);
but now I want to call a lib file created by VC6.0,for example "a.lib".
Could anybody tell me how to do it?
Thanks!
|
|
|
|
|
A lib is not a PE executable, its sole purpose is to link with other library files to generate PE files. I don't see how you can call a method in a lib. You surely would have a dll/exe that has the functions in the lib?
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
hello,
I'm programming with C#, I did work with the method "Export" of CrystalReport to export data to a file on my disk. this method work prefectly if number of lines isn't more than a limit (exp : 60 000).
so if I have too many lines, an exception is generated : CrystalDecisions.CrystalReports.Engine.DataSourceException.
is there someone how had the same problem?
what can I do too resolve that?
thanks for your help!
|
|
|
|
|
I have an xml document (really simple) and I am trying to to display its content in the datagridview (I am using vs2005 beta2). Actually I know how to display it in the datagrid using dataset, but what I want is only to diplay one or two columns, not all of them. How do I display only one column from the dataset in the datagrid? Thanks
np
|
|
|
|
|
After you've bound your DataGridView to your XML data source, you could go myGrid.Colums.Remove on all columns but the first. There might be a better way to do this though, I don't have a whole lot of experience with the DataGridView.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Homosexuality in Christianity
Judah Himango
|
|
|
|
|
Hi all,
For a MVC pattern, if the model have changes by another
thread, how can it signal the view to reflect the change immediately ? What is the best pattern to use ?
|
|
|
|