|
Hi,
For developing interop dll in developer's pc, GacUtil and RegAsm is used in dos command prompt environment. But for deploying the dll in customer computers, what should be done ?
Many thanks
|
|
|
|
|
Use your installer program to call gacutil and regasm on your interop files. As long as the end user has .NET runtime installed, they'll have gacutil and regasm.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: He has a funny face. And he's my son.
Judah Himango
|
|
|
|
|
Use a Windows Installer-compatible installer, such as the Visual Studio deployment project. Instruct the installer to register the assembly and to place it in the GAC.
If you use a Visual Studio deployment project, you can do this by going to the File System view, then right-click in the left-hand pane and choose Add Special Folder > Global Assembly Cache Folder. Drop your assembly into this folder. To register, select the assembly in Solution Explorer or the File System view, then in Properties, set "Register" to "vsdraCOM".
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
hi frds
i m facing problem tht how to get mac address of my system and how can i restrict a packet to use a specific NiC for communication (programmatically)when making my own packet for checking network statistics ............
if any body can plz guide me some soltution
waitng auxiously
bye
|
|
|
|
|
look if you want to deal with device and get what ever info you want. most network devices implements SNMP protocol which allow you to query and gets device info.
SNMP is application layer protocol. so to know device mac address you must implement SNMP class whith your hand which produce an array of bytes whith spesific values that represent SNMP header and your request.then send this array in udp message to device you want to know it's MAC. and when you get response from udp socket which you send msg from. you must get MAC back from the recieved array of bytes
marcoryos
|
|
|
|
|
Keep in mind this will only return the first MAC Address. You can iterate through each adapter to find each of the MAC's
public class Ethernet
{
public static String MacAddress
{
get
{
if (macAddress == null)
{
ManagementClass mc =
new ManagementClass(
"Win32_NetworkAdapterConfiguration");
foreach (ManagementObject mo in mc.GetInstances())
{
if (((bool)mo["IPEnabled"]) == true )
{
String address =
(String)mo["MACAddress"];
if (address.Length != 0)
{
macAddress = address;
break;
}
}
}
}
return macAddress;
}
}
private static String macAddress;
}
-
Drew
|
|
|
|
|
Appdomain.AddPrivatePath("..\otheassemblies\")
I need the assembly loader to look into the otherassemblies directory that is directly above the BaseDirectory of the application, that is
c:\otherassemblies\
c:\myprogram\ <- BaseDirectory
The way I understand I need to tell the AppDomain about this privatepath using the AddPrivatePath method RELATIVE to the BaseDirectory account.
When I run the program it seems like both directories were accepted but the assembly prober doesn't even touch the \otherassemblies\ directory. That is privatepath is being ignored.
I also get the "Policy not being applied referenced."
Guillermo
|
|
|
|
|
The private path needs to be under the base directory.
|
|
|
|
|
Hi!
Im using a custom made doublebuffer transparent control over a mediaplayer-control. I would like to be able to pause the movie and then draw red marker rectangles on the transparent control. I would like to be able to see these rectangles while playing the movie. Everything works fine except for the last part, the rectangles dissappear as soon as I resume the movie. This is a test onPaint method in my transparent control:
protected override void OnPaint(PaintEventArgs e)
{
if(_backBuffer==null)
{
_backBuffer=new Bitmap(this.ClientSize.Width,this.ClientSize.Height);
}
Graphics g=Graphics.FromImage(_backBuffer);
//Copy the back buffer to the screen
e.Graphics.DrawImageUnscaled(_backBuffer,0,0);
// Get the graphics object
Graphics gfx = e.Graphics;
// Create a new pen that we shall use for drawing the line
Pen myPen = new Pen(Color.Red);
// Loop until the coordinates reach 250 (the lower right corner of the form)
for(int i = 0; i < 250; i = i + 50)
{
// Draw a 50x50 pixels rectangle
gfx.DrawRectangle(myPen, i, i, 50, 50);
}
g.Dispose();
gfx.Dispose();
}
Any tips?
THanks for your help
/Rickard
|
|
|
|
|
is the focus transfered to the movie when resuming try transControl.bringToFront()
orit is refreshed ?
ByMindOnlyYouCanDoIt
|
|
|
|
|
Hi!
Thanks for your answer, bringToFront() makes no difference. refresh() does, but only temporary, it seems like i need to refresh the transControl continuously while the movie is playing, and I dont like that solution, also it makes the rectangles flicker.
/Rickard
|
|
|
|
|
try to make the style of the control it self to this
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque,true);
try this,this would make the control paint will be only in the paint OVERRIDED method and the second flag makes its background is the control that is lying behind it as it won't paint its own packground so now u won't need to make tha back color transparent also
ByMindOnlyYouCanDoIt
|
|
|
|
|
No wont work either, unless im doing something wrong, here´s my entire transpanel class:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class TransPanel : Panel
{
private Bitmap _backBuffer;
public TransPanel()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque,true);
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp=base.CreateParams;
cp.ExStyle|=0x00000020; //WS_EX_TRANSPARENT
return cp;
}
}
protected void InvalidateEx()
{
if(Parent==null)
return;
Rectangle rc=new Rectangle(this.Location,this.Size);
Parent.Invalidate(rc,true);
}
protected override void OnPaint(PaintEventArgs e)
{
if(_backBuffer==null)
{
_backBuffer=new Bitmap(this.ClientSize.Width,this.ClientSize.Height);
}
Graphics g=Graphics.FromImage(_backBuffer);
//Copy the back buffer to the screen
e.Graphics.DrawImageUnscaled(_backBuffer,0,0);
Font fnt = new Font("Verdana", 16);
Graphics gf = e.Graphics;
gf.DrawString("GDI+ World", fnt, new SolidBrush(Color.Red), 14,10);
g.Dispose();
//base.OnPaint (e); //optional but not recommended
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
//do not allow the background to be painted
}
protected override void OnSizeChanged(EventArgs e)
{
if(_backBuffer!=null)
{
_backBuffer.Dispose();
_backBuffer=null;
}
base.OnSizeChanged (e);
}
}
|
|
|
|
|
The last thing that you can try is to make another thread to the control to draw in and don't make that in the paint method and use thread timers to make it infinite or as u wish u can make it as the lenght of the vedio in this method u cac write
private void drawingMethod(object o)
{
//make this call at all the first
this.BringToFront();
//and then call it agai and again (but in a separate thread)//the timer will make this separate thread for u or u can make an instance of the thread class ex. Thread urThread = new Thread(new ThreadStart(medothname));
}
ByMindOnlyYouCanDoIt
|
|
|
|
|
It would seem that the Media Player is overwriting your boxes on top of it. This would be because the video that Media Player paints is being repainted, after your boxes are painted, with every frame of video. In other words, your constantly being painted over by the Media Player. I don't think your going to be able to get around this little problem considering Media Player paints (I think!) directly to the frame buffer, but I could be wrong.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
With this set:
CreateParams cp=base.CreateParams;
cp.ExStyle|=0x00000020; //WS_EX_TRANSPARENT
You need to determine when to redraw the control. Windows will not let you know. Other then a timer constantly repainting you controls, I see only one .Net way. Remove your CreateParams for the control and use a custom shape to do what you want. Simply create a control that is a box with no center. I will try to upload an example in a few.
|
|
|
|
|
|
Thanks alot, I´ll look into it.
|
|
|
|
|
Hello,
I have a user control which generates 2 events e.g. ItemSelected, ItemDoubleClicked.
When I create the user control in code and do not add a handler to one of the events, when the event fires I get "Object reference not set to an instance of an object." I am doing something wrong here? I assume I do not have to handle every event fired by my user control?
Many thanks,
Gary
|
|
|
|
|
Where exactly does the NullReferenceException originate from?
One reason could be that the user control tries to fire the event regardless of event listeners attached or not.
The correct way would be:
if (ItemSelected != null)
ItemSelected(this, new ItemSelectedEventArgs()); I guess the if (...) is missing.
Regards,
mav
|
|
|
|
|
That is indeed the problem, thanks very much.
What exactly is happening here though? ItemSelected is defined as an event linked to a delegate. When say a form creates my user control and assigns a method to the event what happens. I assume ItemSelected is then set as it is not null. If no handler is set then ItemSelected remains null?? What exactly happens here?
|
|
|
|
|
For each event a class defines it has an EventHandler member that's managing the delegates to invoke when the event is fired.
This EventHandler is created the first time a client subscribes to an event.
Until that moment the EventHandler variable is still assigned null, so calling any of its methods will throw the NullReferenceException .
mav
|
|
|
|
|
I would like to write an application which can send sms messages from a pc to any mobile cellular phone using C#. I would appreciate if any one can help me archieve this. Thanking you in advance.
Justin
mj
|
|
|
|
|
Hi Jasto,
Yes 4 years ago – now problem! But today all the telephone company’s charge you for sending a SMS via there servers. Earlier you could send it like an e-mail writing your message in the subject field and sending the mail to fx. xxxxxx@TDC.mobil.dk but today all the company’s I know of has close the service for public use, and you have to contact your telephone company to buy this server.
Sorry – the world is not always free
/ Magnus
|
|
|
|
|
Hi
maybe it would be simple but never tried..how can I access an Ms Access file(.mdb) by giving an IP address,i dnt find any such option in OleDb
-adnan
|
|
|
|