Articles of 进程

Process.GetCurrentProcess()。MainWindowHandle返回零

我试图获得我的C#应用​​程序的主窗体(应用程序只有一个窗体)的窗口句柄(HWND)。 互联网上的一些解决scheme显示我可以使用: Process.GetCurrentProcess().MainWindowHandle 获取我的应用程序当前进程的窗口句柄。 但是这个值总是零,有什么不对?

Windows开发:从x86到x64的过渡

是否有任何指导方针如何尽可能less的痛苦过渡到X64? 假设,我有一个用C ++编写的windows本机x86可执行文件。 EXE本身工作正常,但也有DLL,它是由前者的EXE和一个外部的x64进程托pipe的。 像这样的设置,我需要重写哪些部分? 我将不胜感激一个更一般的答案,或者可能是一个给予一些理论背景的参考链接。 谢谢

检查进程是否仍在运行?

为了构build一个穷人的看门狗,并确保应用程序在崩溃的情况下重启(直到我找出原因),我需要编写一个PHP CLI脚本,该脚本将每隔5分钟由cron运行以检查进程仍在运行。 基于这个页面 ,我尝试了下面的代码,但是即使我用伪数据调用它,它总是返回True: function processExists($file = false) { $exists= false; $file= $file ? $file : __FILE__; // Check if file is in process list exec("ps -C $file -o pid=", $pids); if (count($pids) > 1) { $exists = true; } return $exists; } #if(processExists("lighttpd")) if(processExists("dummy")) print("Exists\n") else print("Doesn't exist\n"); 接下来,我试着这个代码 … (exec("ps -A | grep […]

当进程被强制终止时的进程退出代码

当我们使用“任务pipe理器结束进程”命令终止Windows中的进程时,进程是否仍然会返回退出代码? 如果是这样,它返回什么退出代码? 谢谢

32位进程可以在64位Windows操作系统上访问更多的内存吗?

据我所知,一个32位进程只能在没有/ 3GB开关的32位窗口上访问2GB的内存,而且由于自身恶魔的原因,某些内存被操作系统占用。 这似乎与我的经验相结合,因为我们有一个应用程序,当它达到1.2 – 1.5 GB的内存不足,内存不足的情况下崩溃的应用程序,即使仍然有大量的内存可用。 我的问题是,将这个32位应用程序移动到64位窗口允许访问超过1.5GB左右的内存,现在可以吗? 或者应用程序本身必须升级到64位?

Windows服务和Windows进程有什么区别?

Windows 服务和Windows 进程有什么区别 ?

如何让cx_Oracle在64位Itanium Windows上工作?

我在运行64位Oracle 10.2的64位Itanium服务器上运行Windows Server 2003,我想为Python 2.5安装cx_Oracle。 我已经在Windows和Linux上多次使用过cx_Oracle,而且之前我也在这些平台的32位版本上编译过,但是我从来没有尝试过使用IA64编译。 cx_Oracle在http://cx-oracle.sourceforge.net/上的二进制版本都不是64位的,在试图运行import cx_Oracle时,在安装它们之后出现错误,所以我想要做的事情是编译它从源头上。 当运行python setup.py build我得到了Python是用Visual Studio 2003 python setup.py build的错误,而且我需要能够产生兼容二进制文件的东西。 我有Visual Studio 2005,由于链接到不同版本的C标准库,显然不适合帐单,也可能是其他原因。 不幸的是,Visual Studio 2003不再可用于下载,我不确定在哪里得到它。 所以我从http://sourceforge.net/projects/mingw/files/下载MinGW,但是这也只能以32位的forms提供。 无论如何,我会继续尝试,但是在编译链接到的一个Oracle DLL的时候,它会给我一个错误。 在这一点上,我有很多select,我不知道在哪里放置我的努力: 我可以从http://sourceforge.net/projects/mingw-w64/下载64位的MinGW,并尝试使用它,除了它似乎只能作为源,所以我不得不编译编译器,可能使用Visual Studio 2005。 我可以尝试使用x86的32位版本的Python,然后从http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html下载Oracle Instant Client SDK,然后使用它build立cx_Oracle。 我可能必须将我的ORACLE_HOME设置为客户端,以便它不尝试链接到64位服务器DLL,但这似乎可能工作。 我可以尝试使用Visual Studio 2005从源代码编译Python本身,这样我就可以使用Visual Studio 2005来构buildcx_Oracle,而不用担心二进制兼容性问题。 我在Linux上多次从源代码编译Python,从来没有任何问题,所以我想相信它在Windows上也是如此简单。 我可以试着弄清楚如何使Visual Studio 2005链接对正确的DLL,从而产生兼容的二进制文件,而不需要Visual Studio 2003.直观上,它似乎像Visual Studio应该能够生成兼容的二进制文件与旧版本身,但是几乎所有的编译器经验都是用gcc编写的,所以我不太清楚。 我只是不确定在哪里指导我的努力。 有没有人有什么build议下一步去哪里? 我可以复制/粘贴一些我得到的具体的错误信息,如果这将有所帮助。 我特别喜欢听到任何曾经获得cx_Oracle 64位安腾版Windows操作系统的人 – 我不能成为第一个尝试这样做的人。

构buildOpenSSL VC ++静态64位库

我试图用VC ++ 2010build立OpenSSL 1.0.1e静态64位库(最后一个我成功构build的是1.0.1c,如果这可能是一个因素,而且目前我也能够成功构build没有问题的1.0.1e的32位味道。) 我相信,我正在使用ActiveState Perl,nasm和所有正确的工具来完成这个构build。 INSTALL.W64文件只有build立DLL的指令,不幸的是我无法使用。 我正在调用正确的“%VS100COMNTOOLS%…. \ vc \ bin \ x86_amd64 \ vcvarsx86_amd64.bat”来设置环境,并且确保ActivePerl位于我的path的开头。 我正在删除所有旧的公司*(除了“包括”当然),tmp *和出*文件夹之前试图build立。 我像过去一样调用“perlconfiguration不共享的VC-WIN64A” 虽然,我注意到这个版本中没有共享似乎是默认的。 我正在编辑ms \ do_win64a.bat并将no-asm更改为nasm,就像我在以前的版本中一样。 然后,我运行ms \ do_win64a.bat,并编辑生成的ms \ nt.mak文件,将“32”更改为“64”,这样可以让我的64位版本不会打破我的32位版本。 我也改变/ MD到/ MT(就像我以前一直做的那样),再次,为了我特定的构build环境的要求。 然后我运行ms \ nt.mak。 这似乎只用一些警告消息来构build所有的源代码,但是当makefile尝试编译libeay32.lib时,我得到了一个“在函数BN_GF2m_mod_mul_arr中引用的未parsing的外部符号bn_GF2m_mul_2x2”。 (这是在crypto \ bn \ bn_gf2m.c源代码。) 所以我知道这是因为OPENSSL_BN_ASM_GF2m是在我的CFLAG的nt.mak中定义的,如果我能更好地理解Perl编程,我可以追踪到我没有看到的configuration选项,但现在我无法想象它出。 再次,32位似乎工作得很好,遵循非常类似的构build指令。 我怀疑Eric Young和Tim Hudson是否可能没有时间来testing这个特定的构buildconfiguration,或者如果这是完全愚蠢的,我忽略了。 非常感谢任何能够帮助解决这个问题的人!

在Windows中复制fork()的最佳方法是什么?

我如何实现一些逻辑,使我能够在Windows上使用Python在fork()系统调用时重现Linux上的function? 我特别试图在SAPI Com组件上执行一个方法,同时继续主线程中的其他逻辑而不会阻塞或等待。

问题与杀死Windows资源pipe理器?

我需要杀死Windows资源pipe理器的进程(explorer.exe),为此 可以说我使用本地NT方法TerminateProcess 它的工作,但问题是,资源pipe理器重新启动,可能是Windows正在做那个,反正。 当我杀死explorer.exe与Windows任务pipe理器,它不会回来,其停留死亡。 我想通过我的应用程序做任何事情pipe理者。 编辑: 感谢@sblom我解决了它,在registry中快速调整了伎俩。 虽然这是一个聪明的黑客攻击,显然,任务pipe理员有一个更干净的方式,那就是说,我决定现在就用@ sblom的方式。