ncode安装中的问题解决

  • 安装后无法启动软件,找不到license

解决办法:在C盘中新建一个名称为flexlm的文件夹,将license.dat 文件复制进去即可,然后重新启动软件。

  • ansys15.0安装好后,再安装 nCode DesignLife 15.0,启动workbench后,发现不能启动各模块

解决办法:在ansys安装目录下,利用搜索功能找到EngineeringData.config文件,用记事本打开,并将第一行改成如下格式,重启workbench问题就解决。

在这里插入图片描述
更改保存过程中可能会遇到权限不够,可以更改后先保存到桌面,然后再复制替换掉源文件就OK了。

或者在安装ncode之前就将该文件备份,然后装完ncode之后再替换掉也行。

你可以通过使用 Windows API 来实现这个功能。具体来说,你可以使用 SetWindowsHookEx 函数来安装一个全局的鼠标钩子,然后在钩子回调函数检测当前鼠标所在的窗口句柄,如果不是你的外部程序的窗口句柄,就发送一个停止命令给你的外部程序,否则就发送一个继续运行的命令。 以下是一个简单的代码示例: ```csharp using System; using System.Runtime.InteropServices; class Program { private static IntPtr _hookId = IntPtr.Zero; static void Main(string[] args) { // 安装鼠标钩子 _hookId = SetHook(HookCallback); // 等待用户按下 Enter 键退出程序 Console.ReadLine(); // 卸载鼠标钩子 UnhookWindowsHookEx(_hookId); } private static IntPtr SetHook(HookProc proc) { using (ProcessModule module = Process.GetCurrentProcess().MainModule) { return SetWindowsHookEx(WH_MOUSE_LL, proc, GetModuleHandle(module.ModuleName), 0); } } private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0 && (int)wParam == WM_MOUSEMOVE) { // 获取当前鼠标所在的窗口句柄 IntPtr hWnd = WindowFromPoint(Marshal.ReadInt32(lParam)); // 如果不是外部程序的窗口句柄,就发送停止命令 if (hWnd != externalProgramHandle) { SendMessage(externalProgramHandle, WM_STOP, IntPtr.Zero, IntPtr.Zero); } else { SendMessage(externalProgramHandle, WM_CONTINUE, IntPtr.Zero, IntPtr.Zero); } } return CallNextHookEx(_hookId, nCode, wParam, lParam); } private delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam); private const int WH_MOUSE_LL = 14; private const int WM_MOUSEMOVE = 0x200; private const int WM_STOP = 0x1000; private const int WM_CONTINUE = 0x1001; [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, uint dwThreadId); [DllImport("user32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool UnhookWindowsHookEx(IntPtr hhk); [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam); [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr WindowFromPoint(int xPoint); [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr GetModuleHandle(string lpModuleName); [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam); } ``` 注意,上述代码的 `externalProgramHandle` 变量需要替换为你的外部程序的窗口句柄。另外,你还需要根据你的实际需求修改发送的停止和继续命令的消息代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值