javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

user-experience

chmod

css

content-type

variables

var

loops

iteration

std

c++-faq

Java-Windows:如何获取所有可见窗口的列表?

(一定要用相关技术重新标记:我不知道它们是什么:)

稍后我可能会提出一些更具体的问题,包括具体细节,但现在我试图掌握“全局”:我正在寻找一种枚举Windows上“真实可见窗口”的方法。 我所说的“真实可见窗口”是指用户所说的“窗口”。 我需要一种以Z顺序获取所有这些可见窗口的列表的方法。

请注意,我确实需要这样做。 我已经在OS X上完成了此工作(这确实让人头疼,特别是如果您想支持OS X 10.4,因为OS X没有方便的Windows API),现在我需要在Windows下进行。

这是一个示例,假设屏幕上有三个可见的窗口,如下所示:

 +------------------------------------------+
 |                                          |
 |           +=============+                |
 |           |             |                |
 |           |    A   +--------------------------+
 |           |        |                          |
 |    C      |        |             B            |
 |           |        +--------------------------+
 |           |             |                |
 +-----------|             |----------------+
             |             |
             +-------------+

然后,我需要找回这样的列表:

 windows B is at (210,40)
 windows A is at (120,20)
 windows C is at (0,0)

然后,如果用户(或操作系统)将窗口A置于最前面,它将变为:

 +------------------------------------------+
 |                                          |
 |           +=============+                |
 |           |             |                |
 |           |    A        |---------------------+
 |           |             |                     |
 |    C      |             |        B            |
 |           |             |---------------------+
 |           |             |                |
 +-----------|             |----------------+
             |             |
             +-------------+

我(理想情况下)得到一个回调给我:

windows A is at (120,20)
windows B is at (210,40)
windows C is at (0,0)

在OS X上执行此操作需要使用令人惊讶的怪异技巧(例如强制用户打开“为辅助设备启用访问权限”!),但是我已经在OS X上完成了,并且可以正常工作(在OS X下,我没有 每次发生某些窗口更改时都设法获取回调,因此我正在轮询,但可以正常使用)。

现在,我想在Windows下执行此操作(我确实这样做,对此毫无疑问),我有几个问题:

  • 可以做到吗?

  • 是否有记录明确的Windows API(并且按照其规范工作)可以做到这一点?

  • 每次窗口更改时注册回调很容易吗? (如果已调整大小,移动,移至后/前或弹出新窗口等)

  • 陷阱是什么?

我知道这个问题不是很具体,这就是为什么我试图尽可能清楚地描述我的问题(包括您可以对此表示赞赏的漂亮ASCII艺术)的原因:目前,我正在研究“大局”。 我想知道在Windows下执行此操作涉及什么。

额外的问题:假设每次屏幕上发生窗口更改时,您都需要编写一个小巧的.exe文件,将Windows名称/位置/大小写入一个临时文件,这样的程序大约用您选择的语言显示多长时间,以及多长时间? 你需要写吗?

(再一次,我试图获得“全局”,以了解此处的工作方式)

trans by 2020-08-07T00:38:47Z

c ++节俭与协议缓冲区

这个问题已经在这里有了答案:

  • Thrift与协议缓冲区的最大区别? 14个答案

我使用PB已经有一段时间了,但是Thrift一直是我的后脑。

如我所见,节俭的主要优点是:

  1. 与PB重复的本机集合(即矢量,集合等)与PB相似,但功能不尽相同(没有迭代器,除非您深入研究RepeatedField,文档指出“在大多数情况下不需要”)。
  2. 提供了一个不错的RPC实现,而不仅仅是插入您自己的钩子。
  3. 更多受官方支持的语言(PB为Java,C ++,Python提供“官方”支持)

节俭的缺点:

  1. RPC的实现意味着我不能在顶部插入自己的(例如)加密/身份验证层。
  2. Windows支持似乎不是很好。
  3. PB肯定有更好的文档,甚至更好。

中性:

  • Windows(Thrift)上.lib / .dll的未知大小。
  • Windows上较大的.lib文件(PB,但确实提供了-lite,后者明显更小)。
  • 在速度方面,它们似乎是相似的。

我还没有准备好尝试跳槽并切换到Thrift,有人可以为我提供更多的优点/缺点,还是有理由选择一种方法?

谢谢!

trans by 2020-08-06T21:57:38Z

Windows-Win32-来自C编码的Backtrace

我目前正在寻找一种在Windows下从C代码(没有C ++)获取回溯信息的方法。

我正在构建一个具有引用计数内存管理功能的跨平台C库。 它还具有一个集成的内存调试器,该调试器提供有关内存错误的信息(XEOS C基础库)。

发生故障时,将启动调试器,以提供有关故障以及所涉及的内存记录的信息。

enter image description here

在Linux或Mac OS X上,我可以寻找execinfo.h以使用SymFromAddr功能,因此我可以显示有关内存故障的其他信息。

我正在Windows上寻找相同的东西。

我已经看到了如何在C中获取堆栈跟踪? 在堆栈溢出。 我不想使用第三方库,因此SymFromAddrDbgHelp.lib函数看起来不错。

唯一的问题是,即使有Microsoft文档,我也没有得到如何使用它们的信息。

我不习惯Windows编程,因为我通常在POSIX兼容系统上工作。

这些功能有哪些解释,也许还有一些示例?

编辑

我现在正在考虑使用DbgHelp.lib中的SymFromAddr函数,似乎开销要少一些...

到目前为止,这是我尝试过的方法:

unsigned int   i;
void         * stack[ 100 ];
unsigned short frames;
SYMBOL_INFO    symbol;
HANDLE         process;

process = GetCurrentProcess();

SymInitialize( process, NULL, TRUE );

frames = CaptureStackBackTrace( 0, 100, stack, NULL );

for( i = 0; i < frames; i++ )
{
    SymFromAddr( process, ( DWORD64 )( stack[ i ] ), 0, &symbol );

    printf( "%s\n", symbol.Name );
}

我只是垃圾。 我想我应该使用SymFromAddr之外的其他东西。

trans by 2020-08-06T18:54:42Z

Windows-如何在CMD中运行PowerShell

我正在尝试在cmd命令行中运行PowerShell脚本。 有人给了我一个例子,它奏效了:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

但是问题是我的PowerShell脚本具有输入参数,因此我尝试了一下,但是它不起作用:

powershell.exe -noexit "& 'D:\Work\SQLExecutor.ps1 -gettedServerName "MY-PC" ' "

错误是:

术语'D:\ Work \ SQLExecutor.ps1 -gettedServerName“ MY-PC”'不被识别为cmdlet,函数,

我该如何解决这个问题?

trans by 2020-08-06T16:41:09Z

.net-如何使用C#从Windows服务运行EXE程序?

如何使用C#从Windows服务运行EXE程序?

这是我的代码:

System.Diagnostics.Process.Start(@"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe");

当我运行此服务时,该应用程序未启动。
我的代码有什么问题?

trans by 2020-08-06T13:18:44Z

Windows / C ++:是否可以找到引发“异常偏移”的异常所在的代码行

我们的一位用户在我们的产品启动时遇到异常。她已从Windows向我们发送了以下错误消息:

  Problem Event Name:                        APPCRASH
  Application Name:                          program.exe
  Application Version:                       1.0.0.1
  Application Timestamp:                     4ba62004
  Fault Module Name:                         agcutils.dll
  Fault Module Version:                      1.0.0.1
  Fault Module Timestamp:                    48dbd973
  Exception Code:                            c0000005
  Exception Offset:                          000038d7
  OS Version:                                6.0.6002.2.2.0.768.2
  Locale ID:                                 1033
  Additional Information 1:                  381d
  Additional Information 2:                  fdf78cd6110fd6ff90e9fff3d6ab377d
  Additional Information 3:                  b2df
  Additional Information 4:                  a3da65b92a4f9b2faa205d199b0aa9ef

是否可以在源代码中找到具有此信息的发生异常的确切位置?

Windows上C ++程序员查找用户计算机上已发生错误的位置的常用技术是什么?

我们的项目使用Release配置进行编译,生成了PDB文件。

我希望我的问题不会太幼稚。

trans by 2020-08-06T03:53:16Z

在Windows上使用SSH进行Git

我已经阅读了Tim Davis提供的出色指南,该指南涉及将Git配置为在Windows下与SSH配合使用,以生产Git服务器,从而使我的DVCS占据主要位置。

我正在为我的项目创建克隆。 到目前为止,我已经完成了所有步骤,但是我一直从TortoiseGit获得以下信息:

git.exe clone -v “ssh://Administrator@127.0.0.1:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

bash: Administrator@127.0.0.1: command not found
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
Success

并没有克隆任何东西。

顺便说一句:TortoisePLink出现在此消息出现之前,并询问我:“ TortoisePLink”(我认为此信息是在命令中给出的,即:2998789683968968214017。

我的home变量设置为正确的位置:从Git Bash外壳程序中:

echo $HOME
/c/SSH/home/Administrator

我还尝试使用Putty的plink代替TortoisePLink(在Git和TortoiseGit的安装中)。 这次错误被缩小为:

git.exe clone -v “ssh://Administrator@127.0.0.1:22/c:/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
trans by 2020-08-06T02:05:21Z

HDFS上的根暂存目录:/ tmp / hive应该可写。 当前权限为:rw-rw-rw-(在Windows上)

我在Windows 7上运行Spark。使用Hive时,看到以下错误

The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw- 

权限设置如下

C:\tmp>ls -la
total 20
drwxr-xr-x    1 ADMIN Administ        0 Dec 10 13:06 .
drwxr-xr-x    1 ADMIN Administ    28672 Dec 10 09:53 ..
drwxr-xr-x    2 ADMIN Administ        0 Dec 10 12:22 hive

我已经从Windows-> properties-> security-> Advanced为所有用户设置了“完全控制”权限。

但是我仍然看到相同的错误。 有什么帮助吗?我检查了很多链接,有人说这是Spark 1.5的错误。 这是真的?

谢谢阿尔蒂

trans by 2020-08-05T09:09:06Z

我如何确定运行.NET Windows Forms程序的监视器?

我有一个C#Windows应用程序,如果用户将其移动到另一个,我想确保它会显示在第二个监视器上。 我需要保存主窗体的大小,位置和窗口状态-我已经处理过-但是我还需要知道用户关闭应用程序时它在哪个屏幕上。

我正在使用Screen类来确定当前屏幕的大小,但是在如何确定应用程序正在哪个屏幕上找不到任何信息。

编辑:谢谢大家的答复! 我想确定窗口在哪个监视器上,以便我可以进行适当的边界检查,以防用户不小心将窗口放在查看区域之外或更改了屏幕大小,从而使窗体不再完全可见。

trans by 2020-08-03T23:17:08Z

Windows-2GB USB驱动器上的版本控制

在学校工作中,我需要进行很多切换计算机(从实验室到笔记本电脑再到图书馆)。 我想将这段代码置于某种版本控制下。 当然,问题在于我不能总是在使用的计算机上安装其他软件。 我可以使用随身碟上的任何版本控制系统吗? 我有一个2GB的驱动器来安装此驱动器,但如有必要,我可以安装更大的驱动器。

我正在做的项目并不是特别重要。

编辑:这需要在Windows下工作。

编辑II:集市最终是我选择的。 如果您选择TortoiseBzr,那就更好了。

trans by 2020-08-03T06:43:53Z

如何在Windows中使用C ++获取内存使用情况

我试图从程序本身中找出我的应用程序正在消耗多少内存。 我要查找的内存使用情况是Windows Task Manager的“进程”选项卡上“内存使用情况”列中报告的数字。

trans by 2020-08-02T19:07:09Z

macos-是否有适用于Mac OS X或Windows的良好(可视)Git工具?

我正在考虑将我的项目从SVN移植到Git(我坚信Git是值得的),并且我试图提供一套用于该项目的工具。 我在Google周围搜索了一些工具,但发现的东西并没有给我留下深刻的印象。

建议Mac OS X上的Git用户使用哪些可视工具? Windows呢? (我有多个开发环境,并且每个环境都需要git工具)

trans by 2020-08-02T16:04:33Z

Windows-PostgreSQL数据库服务

我从他们的网站-[http://www.postgresql.org/download/windows]下载了PostgreSQL。

但是,我无法从pgAdmin创建数据库并收到消息:

无法连接到服务器: 连接被拒绝(0x0000274D / 10061) 服务器是否在主机上运行 “本地主机”并接受TCP / IP 连接端口5432上? 不能 连接到服务器:连接被拒绝 (0x0000274D / 10061)是服务器 在主机“ localhost”上运行并 在端口上接受TCP / IP连接 5432?

我必须创建Windows服务吗? 怎么称呼呢? 我需要单独安装吗?

已编辑

让我解释一下自己。 我正在尝试运行该服务。 我尝试从命令行运行postgres.exe,但仍然无法运行。

什么可以运行数据库?

已编辑

问题出在我的安装文件上。 我又下载了一次-效果很好!

trans by 2020-08-02T11:59:23Z

如何使用overwri执行boost :: filesystem copy_file

Windows API函数boost::filesystem具有参数copy_file,该参数可让您控制是否要覆盖目标文件(如果存在)。

boost::filesystem copy_file函数没有此类参数,并且如果目标文件存在,则将失败。 有没有一种优雅的方法可以使用boost copy_file函数并覆盖目标文件? 还是只使用Windows API更好? 我当前的目标平台是Windows,但我更喜欢使用STL和boost来保持我的代码平台独立。

谢谢。

trans by 2020-08-01T20:12:26Z

Windows-如何摆脱“禁用开发人员模式扩展”弹出窗口

这个问题已经在这里有了答案:

  • 停用Chrome中弹出的开发人员模式扩展 15个答案

最近,Google将这个烦人的弹出窗口添加到开发人员频道中。

有人在这里回答了问题(禁用在Chrome中弹出开发人员模式扩展)以编辑chrome.dll以摆脱弹出窗口。

但是,那里描述的方法似乎不再起作用。

此外,最好有一个批处理脚本来修补chrome.dll(如果Google推送新更新)。

编辑:对新的黑客开放,因为wOxxOm停止维护他的有用脚本(手动方法似乎也已过时)

trans by 2020-08-01T19:24:22Z

Windows-命令提示符下的基本文本编辑器?

我知道在linux和Unix机器上有emacs和vi文本编辑器,以及内置gcc来编译c代码吗? cmd中的Windows文本编辑器将是什么?是否内置任何编译器?

trans by 2020-07-31T06:55:51Z

Windows等效于/ dev / random

Windows是否等效于Linux的/ dev / random?

trans by 2020-07-31T02:55:55Z

从Windows到Linux的C ++交叉编译器

有没有用户友好的工具可以从Windows交叉编译到Linux?

trans by 2020-07-31T02:50:09Z

Windows-$ LastExitCode = 0,但是$?= False在PowerShell中。 将stderr重定向到stdout可以得到NativeCommandE

为什么PowerShell在下面的第二个示例中显示出令人惊讶的行为?

首先,一个理智的举动:

PS C:\> & cmd /c "echo Hello from standard error 1>&2"; echo "`$LastExitCode=$LastExitCode and `$?=$?"
Hello from standard error
$LastExitCode=0 and $?=True

没什么好奇怪的 我将消息打印为标准错误(使用.\job.ps1 2>&1.\job.ps1 2>&1 > log.txt)。 我检查了变量$LastExitCode和2987388529971561561475。按预期,它们分别等于True和0。

但是,如果我要求PowerShell通过第一个命令将标准错误重定向到标准输出,则会收到NativeCommandError:

PS C:\> & cmd /c "echo Hello from standard error 1>&2" 2>&1; echo "`$LastExitCode=$LastExitCode and `$?=$?"
cmd.exe : Hello from standard error
At line:1 char:4
+ cmd <<<<  /c "echo Hello from standard error 1>&2" 2>&1; echo "`$LastExitCode=$LastExitCode and `$?=$?"
    + CategoryInfo          : NotSpecified: (Hello from standard error :String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

$LastExitCode=0 and $?=False

我的第一个问题,为什么要使用NativeCommandError?

其次,当.\job.ps1 2>&1 > log.txt成功运行而$LastExitCode为0时,为什么.\job.ps1 2>&1为假? PowerShell的有关自动变量的文档未明确定义$?。仅当$LastExitCode为0时,我一直认为它为True,但我的示例与此相反。


这是我在现实世界中(简化)遇到的这种行为的方式。 真的是FUBAR。 我从另一个调用一个PowerShell脚本。 内部脚本:

cmd /c "echo Hello from standard error 1>&2"
if (! $?)
{
    echo "Job failed. Sending email.."
    exit 1
}
# Do something else

只需将其作为.\job.ps1 2>&1运行,就可以正常工作,并且不会发送电子邮件。 但是,我是从另一个PowerShell脚本调用的,并记录到文件.\job.ps1 2>&1 > log.txt。在这种情况下,将发送电子邮件! 在脚本外部使用错误流执行的操作会影响脚本的内部行为。 观察现象会改变结果。 感觉就像是量子物理学,而不是脚本!

[有趣的是:.\job.ps1 2>&1可能会爆炸,也可能不会爆炸,具体取决于您在哪里运行]

trans by 2020-07-29T05:19:33Z

Windows-为什么显示“更新Git索引失败”

我正在使用Windows。 暂存文件时出现此错误。

Updating the Git index failed. A rescan will be automatically started to resynchronize git-gui.

然后是已从LF转换为CRLF的文件列表

在阅读了有关跨平台使用Git的CRLF / LF问题后,我或多或少地了解了发生了什么,并且我试图确定哪种autocrlf设置最适合我,但是我不明白为什么Git这么说 更新索引失败。 我的理解是它已经转换了EOF,所以这是什么问题,为什么它告诉我更新索引失败。 我是否需要修复某些问题(除了选择适当的autocrlf设置)还是可以继续进行?

然后,我有两个选择:“继续”和“解锁索引”,这意味着什么,什么是最佳操作。

trans by 2020-07-28T16:13:22Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共42页