Articles of Windows Vista

Java中的Windows快捷方式(.lnk)parsing器?

我目前使用Win32ShellFolderManager2和ShellFolder.getLinkLocation来parsingJava中的窗口快捷方式。 不幸的是,如果Java程序在Vista下运行, getLinkLocation ,这是行不通的。 具体而言,我收到一个exception,指出“无法获取shell文件夹ID列表”。 search网站时会出现这个错误信息,但总是与JFileChooser 。 我不使用JFileChooser ,我只需要parsing一个.lnk文件到目的地。 有谁知道用Java编写的.lnk文件的第三方parsing器我可以使用吗? 我在这里发现了.lnk格式的非官方文档,但是如果以前有人做过,我宁愿不必去做这个工作,因为格式是相当可怕的。

如何在Vista中使用SetWindowsHookEx并挂钩pipe理应用程序与UAC?

我试图找出是否有一种方法来使用SetWindowsHookEx,并能够影响在Vista上使用pipe理权限运行的应用程序,启用UAC。 这是一个应用程序,需要添加一个小button到其他窗口的标题栏,以启用一些多监视器感知处理。 我原以为这不可能完成,但我看到一个似乎是这样做的应用程序。 据我所知,这个其他应用程序没有使用pipe理员权限运行,但它可以影响系统中的所有应用程序,包括那些具有pipe理员权限的应用程序。 似乎有办法做到这一点,但是,我对此感到茫然。 我的应用程序只需要能够在窗口标题栏上绘制,并能够影响他们的运动和大小。 我不需要做任何事情。

在Windows上的Git签出和重置偶尔会显示随机文件已经更改

通常当我检查一个不同的分支或重置时,我会从一个到十几个文件的窗口中获得“权限被拒绝”的错误 – 但是特定的文件因运行而异。 这是我刚做的一个testing的输出,GIT_TRACE = 1。 跟踪只在错误消息之前添加了一行: $ git checkout master trace:内置:git'checkout''master' 错误:git checkout-index:无法创build文件dotnet / src / myfile.cs(权限被拒绝) D dotnet / src / myfile.cs 切换到分支“主” 我很确定这是与我的机器上的病毒扫描程序或其他索引服务的比赛。 如果比赛持续,我可以使用sysinternals来查看文件句柄打开的过程。 但是,它发生得非常快,我不知道有一个工具可以显示我这个冲突。 令人惊讶的是,我还没有发现任何描述类似行为的人。 如何使这些错误停止,或进一步诊断问题? 我特别希望通过识别正在进行同时访问的任何进程来结束文件访问竞赛。 所以对于一个工具的build议,当编辑被拒绝时,显示哪个进程有一个文件locking将是非常有帮助的。 我知道'解锁'和类似的工具,它会告诉我什么过程中locking一段时间的文件。 这对于这个问题不起作用,因为这个过程使文件在很短的时间内保持locking状态。 所以这个工具需要在没有我干预的情况下收集适当的数据,因为我太慢了。

VB6应用程序不再在Vista电脑上打开

我有一个VB6应用程序,以前在Vista计算机上完美的工作作为一个计划任务 ,但它不会再打开在同一台机器上。 该应用程序生成一个指定的文件夹中的导出文件,在屏幕上没有直接输出。 我没有错误,没有遗漏的引用,只是没有任何东西 。 机器运行的是Vista Business 32位,使用单个pipe理员帐户禁用了UAC,并且自动更新已closures。 该应用程序驻留在一个不受保护的文件夹中,导出文件放在桌面上的一个文件夹中。 客户发誓,自从我安装这个应用程序以来,他们对这台计算机进行的唯一修改就是安装诺顿防病毒软件,这个软件从来没有引起任何问题。 除了正常的VB6引用外,该应用还引用了Microsoft Scripting Runtime(scrrun.dll)和Microsoft DAO 3.6(dao360.dll)。 这两个文件都存在并在目标机器上注册,以及所有其他的VB6依赖项。 我在Sub Main()的开头添加了MsgBox语句,只是为了查看是否正在执行任何内容,而不是。 禁用诺顿没有取得任何结果,也没有重新安装VB6运行时排除任何损坏的库。 我从来没有从我的应用程序得到任何消息,错误或其他。 我从来没有像这样的问题,我完全难住。 还有什么可能导致这个? 编辑 – 应用程序不会运行,即使我手动运行,所以关于它的部分是一个计划任务是无关我的问题,抱歉包括它。 用户具有完整的pipe理员凭据,当时在初始testing中不需要兼容模式,在这台机器上完成了我的问题。 对于微笑,我尝试了XP和2000的兼容模式,仍然没有。

我如何自定义Windows Vista&7的login屏幕?

我需要为Windows 7&Vista创build一个Windowslogin界面,用于从networking摄像机logging用户名和图像(replace他们的login屏幕)。 我不知道从哪里开始。 我可以在C#中执行此操作,还是必须使用C ++? 任何链接都将有所帮助。

我如何以编程方式刷新Windows资源pipe理器?

我有一个Windowsshell扩展使用IShellIconOverlayIdentifier接口来显示文件和文件夹上的重叠图标。 我的扩展有点像TortoiseCVS或TortoiseSVN 。 有时我需要使Windows资源pipe理器重新绘制所有的图标。 要做到这一点,我打电话给SHChangeNotify像这样: SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL) 这将刷新任何打开的资源pipe理器窗口的桌面和右侧窗格。 它不会刷新任何资源pipe理器窗口左侧的文件夹树。 所以我尝试发送WM_SETTINGCHANGE像这样: SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0) 在Vista上刷新文件夹树,但不是右侧窗格。 SHChangeNotify()跟WM_SETTINGCHANGE的组合似乎在Vista上运行的很好。 但是如果显示的话,我仍然无法刷新XP上的文件夹树。 有没有人有任何想法如何做到这一点更好? 有没有更好的XP解决scheme? 发送SHCNE_ASSOCCHANGED有点像clubbing Explorer。 它导致整个桌面刷新相当猛烈,打开任何打开的资源pipe理器窗口松动滚动位置。 有没有什么是暴力的?

如何防止出现新的连接的networking位置对话框(家庭,工作,公共)?

如果连接不存在,我写了一个使用USB 3G Dongle连接到互联网的软件。 当软件加载时,它检测互联网是否可用,如果没有,则创build拨号连接(通过RAS),然后拨打它。 如果这是第一次发生,networking位置对话框出现,要求用户select是否在家,工作或公共。 有无论如何,我可以编程方式设置连接的networking位置,甚至告诉Windows不显示对话框,并自动将位置设置为公共? 干杯 加文 编辑:对于ScottM public bool Connect(bool monitorSignalUpdates) { RasPhoneBook rpb = new RasPhoneBook(); rpb.Open(true); if (!rpb.Entries.Contains("3G Connection")) { rpb.Entries.Add(RasEntry.CreateBroadbandEntry("3G Connection", RasDevice.GetDeviceByName("HUAWEI Mobile Connect – 3G Modem", RasDeviceType.Modem), true)); } _rd = new RasDialer(); _rd.EntryName = "3G Connection"; _rd.PhoneNumber = "*99#"; try { _rd.Dial(); if (monitorSignalUpdates) { _queryPort.DataReceived += new […]

如何使我的程序在Windows Vista和Windows 7中工作?

我有一个在Delphi 2006中编写的应用程序,在Windows XP中工作正常。 我使用Inno Setup打包了应用程序,使用Program Files作为默认文件夹。 一些用户迁移到Windows Vista和Windows 7.这里的问题是应用程序自己在其安装文件夹内创build一些文件。 这是在XP中工作,但在Windows Vista中,用户遇到了创build文件的问题(他们没有出现等)。 在调查了用户的报告之后,我发现了KB 927387 :“Windows Vista或Windows 7中的常见文件和registry虚拟化问题。 用pipe理员权限运行应用程序只是解决了这个问题,但这是(我认为)一个可怕的解决方法。 我想知道是否有任何指令或技巧,使应用程序兼容Vista和7,因为更多的用户将很快迁移到这些操作系统。

调用TaskDialogIndirect加载器说没有find序数345

我为TaskDialogIndirect构build了简单的MS示例(请参阅https://msdn.microsoft.com/en-us/library/windows/desktop/bb760544(v=vs.85).aspx ) 当我运行它时,我得到“序数345不能位于dynamic链接库COMCTL32.dll” 上面的页面说它需要ComCtl32.DLL版本6,但是C:\ Windows \ System32 \ ComCtl32.DLL是5.82.7601.18201,我无法在磁盘上的任何位置find版本6。 我使用VS2012运行Windows 7。 TaskDialog是在Vista中添加的,为什么我没有正确版本的ComCtl32.DLL?

(C,windows)上的vista和UAC的CreateDesktop()

我在Vista中使用Vista UAC(C Windows)在CreateDesktop()中提出这个问题。我设置了一个赏金,但是在尝试拒绝唯一的答案时,错误地按下了“接受”(我已经醒了超过48小时)。 所以我再问一遍。 我正在使用CreateDesktop()创build一个应用程序将运行的临时桌面,执行清理操作(同时保持原状)并终止。 一旦应用程序消失,我正在closures桌面。 使用Windows XP甚至Vista时,一切都很好。 当启用(令人讨厌的)UAC时,问题就出现了。 当您创build桌面时,一切正常,但是当您调用CreateProcess()在该桌面上打开程序时,它会导致打开的应用程序崩溃,同时在User32.dll上发生exception。 我一直在阅读很多有关Windows上不同的桌面和图层以及内存的限制。 但是,我打开的大多数程序(作为testing场景)都可以,但是一些(如IE,记事本,Calc和我自己的应用程序)会导致崩溃。 任何人都有任何想法为什么这种情况发生在UAC的Vista上,或者更具体地说,这些特定的程序? 以及如何解决这个问题? 任何人都有一个很好的例子,如何创build一个桌面,并打开一个应用程序没有切换到Vista下与UAC? 代码表示赞赏。 谢谢 使用的代码是 SECURITY_ATTRIBUTES sa; HDESK dOld; HDESK dNew; BOOL switchdesk, switchdesk2, closedesk; int AppPid; sa.bInheritHandle = TRUE; sa.lpSecurityDescriptor = NULL; sa.nLength = sizeof(SECURITY_ATTRIBUTES); //Get handle to current desktop dOld = OpenDesktopA("default", 0, TRUE, DESKTOP_SWITCHDESKTOP| DESKTOP_WRITEOBJECTS| DESKTOP_READOBJECTS| DESKTOP_ENUMERATE| DESKTOP_CREATEWINDOW| DESKTOP_CREATEMENU); […]