Articles of Windows

串行端口访问被拒绝错误

我一直在python编码开发一个库处理串行连接。 恰巧一个python进程并没有以我的程序结束而结束,下一次当我运行我的程序并尝试打开一个串行端口(我总是closures的时候),它返回一个windows错误5,Access被拒绝。 如果我手动检查任务栏并杀死旧的Python进程,我可以连接到COM端口。 我想通过编程来处理这个exception:1.find持有我的串行端口的旧进程,并通过代码杀死它。 在开始我的代码之前进行一些清理操作。 任何人都可以提出一些技巧吗? 顺便说一下,我只能使用Python 2.7

在Windows上发送数据报时发生EACCES错误

当执行dgram.udp4套接字的send()方法时,我的程序会抛出EACCES错误,但只能在Windows上执行。 代码: var dgram = require('dgram'); var monsocket = dgram.createSocket("udp4"); monsocket.on("listening", function () { comBroadcastCallUp(); }); var comBroadcastCallUp = function() { var message = new Buffer(JSON.stringify({ protocol: "psdp", command: "call-up" })); monsocket.setBroadcast(true); monsocket.send(message, 0, message.length, 32681, '255.255.255.255', function (err) { if (err) console.log(err) else console.log("<PcStatus:PSDP> Message sent: " + message + os.EOL + "Message length: […]

在GDI +中删除某行的某一部分

我有一个类似于箭头的行。我在该行的顶部绘制了一个文本。现在,我想删除与文本重叠的部分行 我目前的代码是这样的: SolidBrush *brush1=new SolidBrush(Color::Color(0,167,255)); StringFormat format; format.SetAlignment(StringAlignmentCenter); format.SetLineAlignment(StringAlignmentCenter); graph->DrawLine(myPen,point2,point1); graph->DrawString(strdata,wcslen(strdata),&font,point2,&format,brush1); 我也试过了 AdjustableArrowCap *cap1 = new AdjustableArrowCap(5, 5, true); Pen *myPen1 = new Pen(Color::Color(0,255,255), width); myPen->SetCustomEndCap(cap1); GraphicsPath path; path.AddLine(point1,point2); Font font(&FontFamily(L"arial"), 21); Brush *brush=new SolidBrush(Color::Color(0,255,255,255)); SolidBrush solidBrush(Color(255, 255, 0, 0)); StringFormat format; format.SetAlignment(StringAlignmentCenter); format.SetLineAlignment(StringAlignmentCenter); RectF rectbo; graph->MeasureString(strdata,wcslen(strdata),&font,PointF::PointF(point2),&rectbo); graph->DrawLine(myPen,point2,point1); Region pathRegion(&path); sta=pathRegion.Intersect(rectbo); graph->fillRegion(pathRegion,&brush); graph->DrawString(strdata,wcslen(strdata),&font,point2,&format,brush1);

用Windows GDI绘制点

我对Windows GDIgraphicsAPI非常熟悉,并且有一个我一直想念的function:如何绘制一个点? 一个点,我的意思是一个小图案的像素,比如3×3或5×5的正方形(可能省略了angular落),都是相同的颜色。 我的限制是,我想尽可能有效地做到这一点,尽可能less的资源。 我可以根据需要多次使用SetPixel函数(25个5×5方块的调用)。 我可以使用MoveTo / LineTo调用粗笔在相同的坐标上两次。 但我不确定这会产生一个完整的点,我不喜欢创build一个专用笔的想法。 我也可以使用Rectangle或Ellipse函数,但是这些绘制轮廓并填充内部,并且必须是这样一个微小形状的矫枉过正。 (不包括他们需要专用笔和专用笔刷的事实。) 你有什么洞察力什么可以是一个有效和方便的方法? 你会怎么做?

以pipe理员身份在JRuby中调用系统

我正在向命令提示符发送一个命令(在JRuby脚本中): system("cd .. && REG ADD \"HKLM\\SOFTWARE\\etc\\foo\\foo\" /f /v Data /t REG_SZ /d 3") 但是,我需要pipe理权限来执行该命令。 如果我在我的机器上拥有pipe理权限,如何通过此系统调用来告诉命令提示符?

告诉Puppet只在registry项不存在的情况下运行安装

我已经写了一个清单,它安装了一个.exe并在每次安装新机器时对其应用修补程序。 windowsinstaller { 'AppFabric install 1.1 install': software_title => 'AppFabric 1.1 for Windows Server', software_path => '/Microsoft/AppFabric1.1/WindowsServerAppFabricSetup_x64.exe', install_options => ['/i','/SkipUpdates'], } windowsinstaller { 'AppFabric 1.1 HotFix install': software_title => 'Windows Server AppFabric v1.1 CU5 [KB2932678]', software_path => '/Microsoft/AppFabric1.1/AppFabric1.1-KB2932678-x64-ENU.exe', install_options => ['/q','/norestart'], subscribe => Windowsinstaller['AppFabric install 1.1 install'] } service { 'Remote Registry Service': name => […]

在域外的机器上创buildnetworking共享

问题: 使用.ps1脚本在远程计算机( Win 2008 Server )上创buildnetworking共享,并提供username和password 。 这适用于当前用户有足够权限的地方 $share = Get-WmiObject Win32_Share -List -ComputerName 10.0.0.1 $share.create("C:\dir","foo", 0) 当targetServer是我的用户没有足够权限的机器时,我需要一种方法来提供username和password

在cmd中执行后退出bat文件

我在Eclipse中使用ANT运行seleniumTestNG脚本。 执行完成,但即使执行后,我试图从Java运行bat文件cmd提示符仍然存在。 但是当我通过双击运行bat文件时,执行后的cmd退出。 下面是调用bat文件和bat文件内容的代码: Runtime.getRuntime() .exec("cmd /c start run.bat", null, new File("C:\\Users\\nvithushan\\Desktop\\HSBC\\gen\\seleniumwebdriver\\HSBC_Demo")); 这是batch file的内容。 @echo off echo exectution starting start ant exit 任何帮助

C ++ ofstream在程序崩溃时的行为

我试图debugging运行时错误,导致我的程序在执行中冻结。 我创build了一个日志系统,在执行过程中写入一个简单的日志文本文件。 我使用std :: stringtypes的消息简单地使用ofstream对象的stream插入(<<)运算符将信息写入日志文件。 void foo(){ // … Code block 1 … // myLogger.Write (timestamp, "Code block1 successfully executed"); // … Code block 2 … PROGRAM FREEZE AND CRASH! } 我的问题是:假设我的程序冻结了,我需要从任务pipe理器中终止它的进程,我可以相信我的日志logging系统在崩溃之前可靠地写入所有消息吗? 或者,参考上面提到的代码,如果代码块2导致我的程序冻结,我可以相信“代码块1成功执行”的消息将在任何情况下确实出现在我的日志文件中? 附言我在Windows上,我感到担心的原因是我不完全信任在奇怪的情况下文件权限的操作系统行为。 我的程序对文件具有读/写权限,但我不知道在崩溃时会发生什么奇怪的事情。 也许我只是偏执狂,请告诉我,如果是这样。 有没有更好的方法来检测什么代码块发生崩溃?

使用sed命令来包装string

我有一个C ++程序,我想在MACRO中包装大部分string。 例如,代码: #include "header.h" const char* str; if (func("Hello, world", "Goodbye", "world") && func(MACRO("Hello, world"), "Hello")) { str = "MACRO(\"didIt\")"; } 应该成为: #include "header.h" const char* str; if (func(MACRO("Hello, world"), MACRO("Goodbye"), MACRO("world")) && func(MACRO("Hello, world"), MACRO("Hello"))) { str = MACRO("MACRO(\"didIt\")"); } 请注意,如果该string已经在MACRO中,则不应该双重包装。 另外,如果string是预处理器语句的一部分,则不应该修改它。 我试过使用sed来做到这一点,但是我不太明白。 我是新来的sed,所以可能是我只是做得不对,或者说sed不能做到这一点。 我在Windows上运行,如果有帮助,使用Visual Studio。 我在Windows电脑上安装了一个sed实用程序,认为这会有所帮助。 谢谢。