Articles of Windows

DLL封装和DLL的区别

我不知道什么是DLL包装。 有人能解释我吗? 1)什么是DLL包装? 2)它与DLL有什么不同? 3)如何使用它? 感谢致敬,

如何使用MS C ++ Express 2008在Windows上构buildPerl Unicode :: Map?

我目前正在尝试使Unicode-Map-0.112模块,但遇到一个错误, '0x1' ,显然与使用nmake 。 我试图按照Perl僧侣的build议,即http://www.perlmonks.org/?node_id=434813 但是,我无法使用ppm的function,因为我在没有networking连接的Windows机器上,唯一的另一台机器是Mac。 事实certificate,MS C ++ Express 2008安装在机器上,所以我可以使用它来获取错误? 更多的错误信息: cl -c – nologo – GF -W3 -MD… 'cl' is not recognized as an internal…command operable programe or batch file NMAKE: fatal error U10777 'cl' : return code '0x1' Stop

使用清单的DLLredirect

我需要可靠地redirect应用程序查找特定的DLL。 使用app.exe.local方法不起作用,因为如果应用程序具有清单(embedded文件或单独文件),则会忽略本地文件。 所以我正在试图通过在清单中将DLL定义为私有程序集来执行DLLredirect。 我有一个testing应用程序,只需调用LoadDll.exe LoadLibrary("C:\\EmptyDll.dll"); LoadDll.exe具有清单(作为单独的文件,LoadDll.exe.manifest) <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.1" processorArchitecture="x86" name="LoadDll" type="win32" /> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="EmptyDll" version="1.0.0.1" processorArchitecture="x86" /> </dependentAssembly> </dependency> </assembly> 包含LoadDll.exe(NOT c:\)的Application文件夹包含带有embedded式清单的EmptyDll.dll。 <?xml version='1.0' encoding='UTF-8' standalone='yes'?> <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> <assemblyIdentity type="win32" name="EmptyDll" version="1.0.0.1" processorArchitecture="x86" /> </assembly> 但是,LoadDll.exe继续并加载C:\ EmptyDll.dll,而不是应用程序文件夹中的EmptyDll.dll。 如果您破坏了任何清单(例如,在EmptyDll.dll清单标识中更改版本号),则LoadDll.exe不会加载,因此清单文件正在被Windows读取和处理,但只是被忽略。 任何人有任何想法? 谢谢! 托比

nt!没有参数的KeWaitForSingleObject

我目前正试图debugging系统死锁,我很难理解这一点。 Child-SP RetAddr : Args to Child : Call Site fffff880`035cb760 fffff800`02ecef72 : 00000000`00000002 fffffa80`066e8b50 00000000`00000000 fffffa80`066a16e0 : nt!KiSwapContext+0x7a fffff880`035cb8a0 fffff800`02ee039f : fffffa80`0b9256b0 00000000`000007ff 00000000`00000000 00000000`00000000 : nt!KiCommitThreadWait+0x1d2 fffff880`035cb930 fffff880`0312a5e4 : 00000000`00000000 fffff800`00000000 fffffa80`079a3c00 00000000`00000000 : nt!KeWaitForSingleObject+0x19 为什么KeWaitForSingleObject的第一个参数是null? 除非我误解,不是等待的对象的第一个参数? 这个僵局是否仅仅是这个线程在等待什么或是这个普通的行为? 此外,我看到另一个进程(services.exe)显示类似的堆栈跟踪: 1: kd> .thread fffffa800d406b50 Implicit thread is now fffffa80`0d406b50 1: kd> kv *** Stack […]

从XP中的任务调度器转移到Windows7

我正在从XP中的任务调度器转移到Windows7,我正试图更好地理解它。 我有一个位于此位置的N:\Folder1\subFolder1\subFolder2\subFolder3\subFolder4\script.vbs脚本N:\Folder1\subFolder1\subFolder2\subFolder3\subFolder4\script.vbs 这个script.vbs基本上在同一个目录中打开一个excel文件(.xlsm)并在该excel文件中运行一个macros,然后closures该excel文件。 该脚本使用此代码获取它所在的目录strPath = WshShell.CurrentDirectory 。 macros基本上复制一个csv文件(位于其他地方)的数据,并可能做一些其他的数据处理的东西。 我在不同的文件夹/子文件夹上面这样做了不同数量的时间,所以基本上每个excel文件都有一个文件夹,它也有自己的script.vbs文件。 然后我安排这些脚本在任务调度程序中运行。 在XP中,这是好的,并在脚本计划,并按要求运行。 但现在我正在使用Windows7,希望能够再次安排这些工作。 事实certificate,我必须将每个script.vbs的位置放置在每个时间表的Action选项卡的Start in: (optional) parmae​​ter中。 但是我想知道的是,为什么我必须在每个时间表上做到这一点 ? 我以为我已经在脚本中获取当前的script.vbs目录,或者我错过了一些东西。 任何其他意见/改进欢迎这种方法。 注意: 我不记得在Windows XP中这样做,但也许Windows XP为你做了这个。 我不需要以最高的私有化运行,因为我的密码每3个月就会更改一次 'need to update WBName & MacroName here as this is fairly generic dim WshShell set WshShell = CreateObject("Wscript.Shell") dim strPath strPath = WshShell.CurrentDirectory 'WScript.echo("For Debugging: strPath") 'WScript.echo(strPath) 'msgbox strPath Dim […]

C#:如何得到像控制面板程序和function一样安装程序?

我读了很多获取计划的信息。 没有algorithm做我想要的。 我需要像控制面板中一样安装程序。 所以我用: WMI Win32_Product类。 它只显示msi安装的程序。 registry项。 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 。 同样,一些程序不显示在控制面板中,一些程序显示在控制面板中而不是在这个registry节点中。 那么,这个世界上有没有人知道哪个algorithm使用控制面板来显示已安装的程序? UPD1:是的,我使用64位,我知道有64位安装程序的另一个节点“HKLM \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \卸载”,但下面的代码枚举的HKLM \ SOFTWARE \ Wow6432Node \微软\ CurrentVersion \ Uninstall部分,奇怪… var programs = new List(); string registry_key = @“SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall”; 使用(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key)) { foreach(key.GetSubKeyNames()中的stringsubkey_name) { 使用(RegistryKey subkey […]

VCRUNTIME140.dll缺失

当我尝试在Windows 10上安装apache 2.4时遇到问题。它始终显示VCRUNTIME140.dll丢失的错误。 我检查了其他线程,发现安装2015 Visual c + +可再分发包x64 / x86总是解决这个问题,但我已经安装,我仍然有这个问题。 还有其他解决scheme吗?

用批处理评估重定位的shell文件夹的位置

通常,您可以只指定variables: %USERPROFILE%\Downloads 但是,如果将“下载”文件夹移动到其他位置,则不起作用: %Downloads%作为独立variables不起作用。 这个文件夹的正确variables是什么,所以我可以在批处理中指定它,并在不同的系统上使用批处理而不修改它?

如何在Windows中获得COM端口的友好名称?

我有一个通过USB连接的GSM调制解调器。 调制解调器创build2个串行端口。 第一个自动连接到调制解调器,第二个在设备pipe理器中显示为“HUAWEI Mobile Connect – 3G PC UI Interface(COM6)” 第二个端口用于获取调制解调器的重要信息,如信号质量; 发送和接收短信; 和其他一些function。 我正在编写一个应用程序,将包装由第二个端口提供的一些function。 我需要的是确定哪个COM端口是备用端口的确定的火灾方法。 迭代端口并检查对“ATE0”的响应是不够的。 调制解调器的端口通常是编号较小的端口,拨号连接没有激活时,它将响应“ATE0”和第二个端口相同。 我正在考虑的是迭代端口并检查它们的友好名称,如在设备pipe理器中所示。 这样我可以将我的应用程序中的端口连接到设备pipe理器中标有“HUAWEI Mobile Connect – 3G PC UI Interface(COM6)”的端口。 我还没有find任何信息,这将允许我以编程方式获得该名称。

如何模拟,如果用户按Ctrl +加号或减号使用JavaScript(JQuery)的?

这是可能的,如果我点击一个锚链接来模拟,如果我按了键盘上的Ctrl+键(或Mac上的等效)? 如果是的话,你能告诉我该怎么做吗? 就像是 <a href="#" onclick="simulateCtrlKeyPlus();return false;">Ctrl+</a>