我正在尝试获取我的C#2.0应用程序之外的窗口的可执行文件的名称.我的应用程序当前使用来自"user32.dll"的GetForegroundWindow()调用获取窗口句柄(hWnd).
从我能够做的挖掘,我想我想使用GetModuleFileNameEx()函数(来自PSAPI)来获取名称,但GetModuleFileNameEx()需要一个Process的句柄,而不是一个Window.
是否可以从窗口句柄获取进程句柄?(我是否需要先获取窗口的线程句柄?)
编辑了第一句话,使我更清楚我正在尝试做什么.
UPDATE!这是我发现为我工作的C#代码.唯一需要注意的是偶尔它返回一个文件/路径,其中驱动器盘符是"?" 而不是实际的驱动器号(如"C"). - 还没弄明白为什么呢.
[DllImport("user32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
[DllImport("kernel32.dll")]
static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, Int32 bInheritHandle, UInt32 dwProcessId);
[DllImport("psapi.dll")]
static extern uint GetModuleFileNameEx(IntPtr hProcess, IntPtr hModule, [Out] StringBuilder lpBaseName, [In] [MarshalAs(UnmanagedType.U4)] int nSize);
[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool CloseHandle(IntPtr hObject);
private string GetWindowModuleFileName(IntPtr hWnd)
{
uint processId = 0;
const int nChars = 1024;
StringBuilder filename = new StringBuilder(nChars);
GetWindowThreadProcessId(hWnd, out processId);
IntPtr hProcess = OpenProcess(1040, 0, …Run Code Online (Sandbox Code Playgroud) 我们正在尝试使用创建可编辑网格CellTable.用例是用于10键输入电子表格的会计师的相当高的数据量输入.我们正在尝试尽可能地复制电子表格式键盘导航.
有没有办法避免必须按Enter才能进入编辑模式TextInputCell?我已经尝试覆盖
TextInputCell.onBrowserEvent()在onEnterKeyDown()收到焦点事件时调用,但这不起作用.
有没有办法使用Tab和Shift- Tab在列之间导航而不是左箭头和右箭头?CellTable似乎硬编码使用左右箭头并且难以扩展.
我怎样才能jquery.post()在Django中使用该方法?
这就是我想要做的:
var postdata={
'username':$('#login-email').val(),
'password':$('#login-password').val()
}
$.post('/login/',postdata)
Run Code Online (Sandbox Code Playgroud)
我如何在django中保护CSRF?有没有办法将CSRF令牌添加到帖子数据?
我有一个名为v的dtype('float64')数组:
array([[ 9.33350000e+05, 8.75886500e+06, 3.45765000e+02],
[ 4.33350000e+05, 8.75886500e+06, 6.19200000e+00],
[ 1.33360000e+05, 8.75886500e+06, 6.76650000e+02]])
Run Code Online (Sandbox Code Playgroud)
...我通过使用np.loadtxt命令从文件中获取的.我想在第一列的值之后对其进行排序,而不会混淆将数字列在同一行上的结构.使用v.sort(axis = 0)给我:
array([[ 1.33360000e+05, 8.75886500e+06, 6.19200000e+00],
[ 4.33350000e+05, 8.75886500e+06, 3.45765000e+02],
[ 9.33350000e+05, 8.75886500e+06, 6.76650000e+02]])
Run Code Online (Sandbox Code Playgroud)
...即将第三列中最小数量的第一列放在第一行等等.我宁愿想要这样的东西......
array([[ 1.33360000e+05, 8.75886500e+06, 6.76650000e+02],
[ 4.33350000e+05, 8.75886500e+06, 6.19200000e+00],
[ 9.33350000e+05, 8.75886500e+06, 3.45765000e+02]])
Run Code Online (Sandbox Code Playgroud)
......每条线的元素没有相对移动.
有没有人创建了一个GDI32.dll利用机器上可用硬件加速的版本?gdiplus.dll?
从Windows Vista开始,GDI不再是硬件加速.(GDI +从未加速硬件).如果没有Microsoft修复GDI(和GDI +)以便能够在计算机上运行良好:本机应用程序(C++ MFC,Delphi等)和托管的WinForms应用程序将继续运行得很糟糕.
虽然我可以将Direct2D用于业务应用程序,但我无法控制开发环境仍然创建控件的事实,数十年的库支持代码假定存在GDI.
现在,诸如LineTo和Rectangle之类的GDI原语在软件而不是视频硬件中呈现,这极大地简化了显示驱动程序.
在XP中,GDI是GPU加速到不同程度,具体取决于操作系统的配置方式或设备驱动程序(有关详细信息,请参阅挂钩与撑开).在Vista中,GDI不是GPU加速的
因此,在Windows Vista中,GDI DDI显示驱动程序已更改为仅由Microsoft提供的驱动程序Canonical Display Driver(CDD)实现.GDI呈现给系统内存位图.脏区域用于更新窗口管理器用于合成桌面的视频内存纹理.
我正在使用Rails开发基于Web的应用程序.我正在讨论使用图形数据库(如InfoGrid)或文档数据库(如MongoDB).
我的应用程序需要存储一小组数据(如URL)和非常大的数据集(如虚拟机).此数据将绑定到单个用户.
我有兴趣了解人们使用Graph或Document数据库的经验以及为什么他们会使用其中任何一个选项.
谢谢
能否请您解释一下如何创建QR码以及如何跟踪它们.生成的代码存储在DB中.
我真的很困惑QR码阅读器应用程序的工作原理.如果我创建一个用户可以生成QR码的网站.每个生成的QR码都将保存在我的站点数据库中.那么,我还要编写一个应用程序吗?一个应用程序将读取从图像读取的QR码图像,并将采取相应的行动,或者QR码阅读器应用程序将完成这项工作?
问候,aqif
使用GetModuleFileNameEx查询正在运行的进程的映像路径时,某些进程的映像路径以"\ ?? \"开头.例如,虽然大多数过程开始 "C:\ WINDOWS",一些过程开始 "\ ??\C:\ WINDOWS".
在Windows路径上,领先\ ?? \意味着什么?
我已经尝试过但我仍然得到"糟糕的数据".如何使用RSACryptoServiceProvider使用公钥的Exponent/Modulus解密数据?
public static byte[] Encrypt(byte[] b, byte[] mod, byte[] exp)
{
CspParameters csp = new CspParameters();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
RSACryptoServiceProvider.UseMachineKeyStore = false;
RSAParameters par = new RSAParameters();
par.Exponent = exp;
par.Modulus = mod;
rsa.ImportParameters(par);
return rsa.Encrypt(b, false);
}
public static byte[] Decrypt(byte[] b, byte[] pubexp, byte[] mod, byte[] priexp)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
RSACryptoServiceProvider.UseMachineKeyStore = false;
RSAParameters rp = new RSAParameters();
rp.Exponent = pubexp;
rp.D = priexp;
rp.Modulus = mod;
rsa.ImportParameters(rp);
return rsa.Decrypt(b, false);
}
static …Run Code Online (Sandbox Code Playgroud) 我正在我的应用程序中实现python日志记录,我希望能够利用"默认"根设置.我想使用root设置,因为我不想在配置文件中为每个模块定义一个记录器.
当我打开根记录器的DEBUG级别日志记录时,我遇到了QPID Python客户端API的问题.我的日志文件充斥着qpid调试语句:
2011-03-16 09:16:18,664 - qpid.messaging.io.ops - DEBUG - SENT [8de6b2c]:..
2011-03-16 09:16:18,667 - qpid.messaging.io.raw - DEBUG - ..
2011-03-16 09:16:18,668 - qpid.messaging.io.raw - DEBUG - READ [8de6b2c]:..
2011-03-16 09:16:18,668 - qpid.messaging.io.ops - DEBUG - ..
等等..
所以有两个主要问题:
1)有没有办法只为我的模块启用*日志记录而不为每个模块定义一个记录器?换句话说,有没有办法进行共享的"记录器设置",因此不必为每个记录器定义一个logger_部分,有没有办法默认设置?
就像是:
[logger_shared_settings]
loggers = logger_A,logger_B,logger_C,logger_D
level=DEBUG
Run Code Online (Sandbox Code Playgroud)
2)或者如何通过配置文件过滤出qpid包日志记录?
这是log.conf文件:
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('out.log',)
Run Code Online (Sandbox Code Playgroud)
这是我试图避免的:
[loggers]
keys=root, a, b, c, d
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=ERROR …Run Code Online (Sandbox Code Playgroud)