标签: windows

使用Golang限制单个可执行文件实例

我需要一次只允许一个Golang可执行文件的实例.我不确定如何使用Global Mutex来确保没有其他实例正在运行.

这将在Windows机器上运行.

windows go

6
推荐指数
3
解决办法
2689
查看次数

如何检测窗口上的stdin是否有输入?

我想检测是否在Windows中的stdin上有输入等待.

我在Linux上使用以下通用结构:

fd_set currentSocketSet;
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 0;
int result = 1;
while (result > 0){
    FD_ZERO(&currentSocketSet);
    FD_SET(STDIN, &currentSocketSet);
    result = select(STDIN+1, &currentSocketSet, NULL, NULL, &tv);
    if (result == -1){
        printf("Network Error -- select errored with id=%d.\n", errno);
        return;
    } else if (result > 0){
        //...do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:我不想处理像kbhit这样的键盘和键盘功能.我想要一种方法来做我所要求的.我也不希望第三方库也这样做,我希望通过本机Windows库调用来获得答案.

注意#2:在Windows上,上面的代码失败,窗口错误代码为10038"尝试对不是套接字的东西进行操作",这可能意味着窗口不支持在STDIN上选择.

c c++ windows

6
推荐指数
1
解决办法
3349
查看次数

如何在Qt中检测全局键序列?

我想检测是否按下了一个键序列,并希望在Qt中对该事件执行某个任务.目前,我可以检测某些小部件的按键,但如何检测全局按键.全局我的意思是,即使应用程序被最小化或隐藏,它也应该检测按键.

我尝试eventFilter为应用程序制作一个,首先QObject::eventFilter像这样重载:

bool GlobalEventFilter::eventFilter(QObject *Object, QEvent *Event)
{
  if (Event->type() == QEvent::KeyPress)
  {
    QKeyEvent *KeyEvent = (QKeyEvent*)Event;

    switch(KeyEvent->key())
    {
      case Qt::Key_F1:
        cout<<"F1 press detected"<<endl;
        return true;
      default:
        break;
    }
  }
  return QObject::eventFilter(Object,Event);
}
Run Code Online (Sandbox Code Playgroud)

然后安装该对象作为eventFilter我的应用程序:

QApplication a(argc,argv);
a.installEventFilter(new GlobalEventFilter());
Run Code Online (Sandbox Code Playgroud)

我也试过这样做:

QCoreApplication::instance()->installEventFilter(new GlobalEventFilter());
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都可以在应用程序窗口打开时检测按键,但在窗口最小化或隐藏时失败.怎么解决这个?

c++ windows qt

6
推荐指数
2
解决办法
1万
查看次数

Windows中的aiohttp Python库是否支持HTTPS?

当我在Windows 7中使用带有asyncio和Python 3.4的aiohttp库发出HTTPS请求时,请求失败,并在base_events.py中的_make_ssl_transport函数中出现NotImplementedError,如回溯中所示.

在Windows上,我使用ProactorEventLoop.我认为你必须使用那个让asyncio工作.我在Debian 7 VM中使用Python 3.4的编译版本尝试了相同的请求,并且相同的请求也起作用.我不在Debian中使用ProactorEventLoop,只是默认值.

任何想法或解决方法?或者,我现在应该放弃Windows上的aiohttp HTTPS吗?我无法在这个项目中使用Linux,需要在Windows上运行.

python windows python-3.x python-asyncio

6
推荐指数
1
解决办法
1086
查看次数

命令行中的Windows 8.1和CD命令

我以管理员身份运行Windows 8.1的命令行.我正在尝试将磁盘从C:\更改为D:.

我的命令:

在此输入图像描述

正如您所看到的,CD只能在当前(C :)磁盘中更改.我怎么能搬到D?

我查找了磁盘D属性,管理员可以访问所有活动:

在此输入图像描述

windows windows-8 windows-8.1

6
推荐指数
1
解决办法
1万
查看次数

隐藏进程窗口,为什么不工作?

我现在已经尝试了几个方法来隐藏新进程的窗口(在这种情况下它只是用于测试的notepad.exe),但是无论我尝试什么,它都无法工作.

我现在读了许多帖子都说同样的,为什么它不适合我呢?

我有一个控制台应用程序,应该启动其他进程而不显示他们的窗口.

我试图让我的控制台应用程序启动notepad.exe没有窗口,但它只是无法正常工作.

ProcessStartInfo info = new ProcessStartInfo("path to notepad.exe");

info.RedirectStandardOutput = true;
info.RedirectStandardError = true;                                
info.CreateNoWindow = true;
info.UseShellExecute = false;                                

Process proc = Process.Start(info);
Run Code Online (Sandbox Code Playgroud)

我也试过使用info.WindowStyle的各种设置,我试图将我的控制台应用程序配置为Windows应用程序,但是我做的并不重要,子进程总是打开一个窗口.

这是不允许从控制台应用程序或这里有什么问题 - 任何人都可以对此有所了解吗?

我在Windows 7 x64上使用.NET 4.0

c# windows console process.start windowless

6
推荐指数
1
解决办法
6012
查看次数

CMD/Batch/Registry - 字符串替换不按预期工作?

我正在尝试替换Windows注册表项的一行代码中的子字符串

[HKEY_CLASSES_ROOT\PING\shell\open\command]
@="C:\\Windows\\System32\\ping.exe %1 -t"
Run Code Online (Sandbox Code Playgroud)

场景和背景:

上下文是一个自定义URL协议,它将打开一个shell,持续ping到特定的ip,我想ping://从传递的uri中删除协议%1.确定我可以使用批处理文件,但我更喜欢在注册表中将它全部放在一行中

我尝试过的:

到目前为止,我尝试添加一个命令列表,&设置一个var,然后回显它.

试着 call set remove=ping:// & call set mynewvar=%1:%remove=% & ping.exe %mynewvar% -t

我尝试过使用几次扩展变量 %%

基本上我一直在得到奇怪的结果或替换根本不工作

不确定我做错了什么?打字这个,我开始认为我忽略了它在字符串变量中的事实@="..."

谢谢

注册表项

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\PING]
@="url:ping protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\PING\shell]

[HKEY_CLASSES_ROOT\PING\shell\open]

[HKEY_CLASSES_ROOT\PING\shell\open\command]
@="cmd /k set var=%1 & call set var=%%var:ping://=%% & ping.exe %var% -t"
Run Code Online (Sandbox Code Playgroud)

浏览器输入网址 ping://8.8.8.8

cmd提示输出 Ping request could not find host ping://8.8.8.8/ar. Please check the name and try again.

我注意到arip之后%var% …

windows registry shell cmd batch-file

6
推荐指数
1
解决办法
1862
查看次数

Windows和节点应用程序中的文件路径字符限制错误

我正在Visual Studio 2012中的Node项目上工作,刚刚遇到臭名昭着的260字符文件路径限制错误.

我的问题是:甚至可以在Visual Studio/Windows中处理任何大小的Node项目吗?长文件路径来自node_modules目录,该目录当然嵌套了具有自己的node_modules的模块,当然这些模块嵌套....

我想过全局安装所有依赖项,但这不是一个好主意.

有什么建议?

windows visual-studio node.js ntvs

6
推荐指数
1
解决办法
3915
查看次数

如何在Windows 7中将fontforge导入python

环境:Win 7,Python 3.4,Sublime Text 2

我试图使用fontforge,如下例所示,通过在*.py中导入fontforge:

import fontforge
font = fontforge.open('blank.sfd')
...
Run Code Online (Sandbox Code Playgroud)

但是,我没有找到任何帮助win 7在我的项目中包含fontforge二进制文件的地方(或哪个子集)使其工作.请问有什么想法吗?谢谢

编辑:我试图在win 7中使用pyextension构建它,如下所述:

http://fontforge.org/source-build.html#MS

通过cygwin,它无法执行./configure --enable-pyextension

throwing
checking for gcc
result: no    
checking for cc
result: no
checking for cl.exe
result: no
error: in `/cygdrive/c/fontforge':
no acceptable C compiler found in $PATH
Run Code Online (Sandbox Code Playgroud)

编辑2:通过安装C编译器我已经设法./configure它但我的尝试在执行make install命令时失败了.我得到了跟随错误,在另一条无数线之前:

Makefile:91: recipe for target '../libfontforge.la' failed
make[1]: *** [../libfontforge.la] Error 1
make[1]: Leaving directory '/cygdrive/c/fontforge/fontforge'
Makefile:28: recipe for target 'fontforge' failed
make: *** [fontforge] Error 2
Run Code Online (Sandbox Code Playgroud)

python windows fontforge

6
推荐指数
1
解决办法
2630
查看次数

_TP_POOL结构的定义在哪里?

为了翻译windows vista线程池API在我的delphi应用程序中使用.我需要知道的定义_TP_POOL.我调查了一下winnt.h,发现了以下typedef声明:

typedef struct _TP_POOL TP_POOL, *PTP_POOL; 
Run Code Online (Sandbox Code Playgroud)

我找不到_TP_POOL我的本地头文件.它的位置是哪个?

c windows delphi winapi header-files

6
推荐指数
1
解决办法
433
查看次数