我想执行一个简单的命令行但不显示窗口.因此,据我所知,我不能使用System并且必须使用CreateProcess.所以我有以下代码例如:
//.../
CreateProcess(NULL,input,NULL,NULL,false,NORMAL_PRIORITY_CLASS |
CREATE_NO_WINDOW,NULL,NULL,&startInf,&procInf);//)
//.../
Run Code Online (Sandbox Code Playgroud)
如果输入是"ping www.google.com -n 2"这样的行,它似乎有效.我需要的是删除功能.因此,我尝试了很多变化,如:
input = "rd /S /Q \"D:\\ALEX_DATEN\\PC\\C++\\bla\"";
Run Code Online (Sandbox Code Playgroud)
和
input = "rd /S /Q \"D:/DATEN/PC/C++/bla\"";
Run Code Online (Sandbox Code Playgroud)
但没有任何反应,函数返回失败:/如果我把它写成.bat文件(不使用"\"转义字符),删除工作完美!
有谁知道我做错了什么?
不,我不会写一个破坏性的病毒..如果那是我的目标,我肯定会找到更简单的方法......
这样做的目的与安全性不是很相关,并且密钥很长,所以我只想对字符串使用简单的XOR加密。
嗯,客户端上的Javascript如下:
function dc_encrypt(str, key)
{
var ord = []; var res = "";
var i;
for (i = 1; i <= 255; i++) {ord[String.fromCharCode(i)] = i}
for (i = 0; i < str.length; i++)
res += String.fromCharCode(ord[str.substr(i, 1)] ^ ord[key.substr(i % key.length, 1)]);
return(res);
}
Run Code Online (Sandbox Code Playgroud)
Java是:
public String dc_decrypt(String str, String key)
{
StringBuilder sb = new StringBuilder();
for(int i = 0; i < str.length(); i++)
sb.append((char)(str.charAt(i) ^ key.charAt(i % (key.length()))));
return(sb.toString());
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这产生了一些非常奇怪的结果。在JS中加密后,通过POST发送结果并在Java中解密后,某些字母有所不同。在每种情况下,它似乎都不可靠。
我认为问题一定与编码有关...有人知道对此有更可靠的解决方案吗?
提前非常感谢!:)
大家好,祝大家好
我的最终目标是在屏幕上绘制一个包含alpha的PNG文件 - 这意味着不要进入自己的窗口,而只是桌面上的某个地方.将PNG加载到HBITMAP中的部分现在可以正常工作(以不同的方式进行测试),但我无法绘制它,包括alpha.
据我所知,最好的方法是使用alyered窗户.所以我花了很多时间来重做几个例子和小教程.
下面的代码编译没有问题,并且没有提示任何消息(这意味着永远不会调用showError("#")函数).
然而屏幕上看不到任何东西:/
对不起,它太长了...希望有人愿意至少快点看看它...
LRESULT CALLBACK WndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam);
int main(HINSTANCE hInstance)
{
WNDCLASSEX WndClass;
char sClassName[] = "mainClass";
WndClass.cbSize = sizeof(WNDCLASSEX);
WndClass.style = NULL;
WndClass.lpfnWndProc = WndProc;//WndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = hInstance;
WndClass.hIcon = NULL;
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
WndClass.lpszMenuName = NULL;
WndClass.lpszClassName = sClassName;
WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (RegisterClassEx(&WndClass) == 0) showError("-1");
HWND screen = CreateWindowEx(WS_EX_LAYERED,//WS_EX_LEFT
"mainClass",
"UpdateLayeredWind", …Run Code Online (Sandbox Code Playgroud) 目前正在尝试在我的机器上安装并启动 MySQL 服务器。我使用的是原始的、实际的安装程序/向导。填写完所有字段、设置 root 密码并告知在本地主机上使用该密码创建一个用户后,应用程序在“创建用户帐户”步骤中失败。
日志说:
尝试使用方法“mysql_native_password”为用户“root”添加新的 MySQL 用户身份验证到主机“localhost”失败,并显示消息:用户“root”@“localhost”的访问被拒绝(使用密码:YES) 结束的配置步骤:创建用户帐户。
有趣的是,我已经在测试设备和新虚拟机上完成了此操作。我实际上使用了不同的数据和名称,但结果相同>_<我主要做错了什么?
提前致谢!
编辑:有点解决了......我单独重新下载了数据库并手动创建了用户。无论如何,我想这是正确学习 SQL 的更好方法。
c++ ×2
winapi ×2
command-line ×1
encryption ×1
hbitmap ×1
installation ×1
java ×1
javascript ×1
mysql ×1
server ×1
windows ×1
xor ×1