代码写的有问题,baidu一下,
解决方案 »
- C#做通讯录
- string was not recognized as a valid datetime.................
- 怎样手动操作注册表实现当在桌面右击的时候会出现 “新建”-->“新建mh3d文件”
- 关于winform取得前台控件的属性
- DataTable的ExtendedProperties问题!
- 今天看了Microsoft Visual C# 2005 ,我想Microsoft Visual VB 2005仅仅是语言上的区别?现在还有ASP.NET,它是用什么来做ide开发环境?
- 关于.NET 程序的部署(PULL模式)
- 如何得到一段代码的运行时间,请进来给菜鸟看看。
- 关于报表
- 关于字符编码的问题,急啊。
- 两个窗体之间的一些位置关系用代码实现时候的问题。
- C#操作Excel问题
string[] cmdLine = { };
AssemblyInstaller aiService = new AssemblyInstaller(strServicePath, cmdLine);
TransactedInstaller transactedInstaller = new TransactedInstaller();
transactedInstaller.Installers.Add(aiService);
transactedInstaller.Install(new Hashtable());
transactedInstaller.Commit(null);在ServInstaller_AfterInstall函数中(设置与桌面交互)
string strServiceName = "MyServName";
IntPtr iManageHandle = OpenSCManager(null, null, c_iSC_MANAGER_ALL_ACCESS);
if (iManageHandle != IntPtr.Zero)
{
IntPtr iServiceHandle = OpenService(iManageHandle, strServiceName, c_iSERVICE_ALL_ACCESS);
if (iServiceHandle != IntPtr.Zero)
{ ChangeServiceConfig(
iServiceHandle,
c_iSERVICE_WIN32_OWN_PROCESS | c_iSERVICE_INTERACTIVE_PROCESS,
c_iSERVICE_NO_CHANGE,
c_iSERVICE_NO_CHANGE,
null,
null,
IntPtr.Zero,
null,
null,
null,
null); CloseServiceHandle(iServiceHandle);
}
CloseServiceHandle(iManageHandle);
} ServiceController scService = new ServiceController(strServiceName);
scService.Start();
scService.WaitForStatus(ServiceControllerStatus.Running);服务中消息发送的代码是:
[DllImport("user32.dll", EntryPoint = "SendNotifyMessage", SetLastError = true)]
public static extern uint SendNotifyMessage(IntPtr hWnd, uint iMsg, IntPtr hWParam, IntPtr hLParam);SendNotifyMessage(hWindowsHandle, 0x403, (IntPtr)iCommandId, IntPtr.Zero);画面程序接收消息代码是:
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case 0x0403:
Form2 frm = new Form2();
frm.ShowDialog();
//Application.Exit();
break;
default:
break;
// let the base class deal with it
base.WndProc(ref m);
break;
}
}请帮忙看看,代码问题在哪里?我怀疑是安装时少做了一件什么事情,可是又找不到
谢谢!
先调用RegisterWindowMessage("MyMessageName");
注册消息ID,然后两边使用这个ID通信,
但是有一个限制,只有第一个登陆的桌面程序能够取得与服务相同的ID,
其他用户的ID取得不到