如果我只知道exe文件名,如何在Windows程序中知道进程是否正在运行?有问题的过程是64位的TeamSpeak3 ts3client_win64.exe和32位的ts3client_win32.exe.
我正在使用C++
我有这样的代码:
In WM_CREATE
hCheckBox = CreateWindowEx(0,"Button","Random text", WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS| BS_AUTOCHECKBOX | BS_TEXT | WS_GROUP | WS_TABSTOP,150,323,300,20,hwnd,0,hInstance,0) ;
In WM_COMMAND
if ( SendMessage( hCheckBox , BM_GETCHECK, (WPARAM) NULL, (LPARAM) NULL ) == BST_CHECKED )
MessageBox( 0, "Working", "Msg", 0 );
Run Code Online (Sandbox Code Playgroud)
如果选中复选框并不重要,它永远不会返回BST_CHECKED.试着让它在最后2小时工作:(
怎么办,服务器不是HTTP服务器,它是ArmA游戏服务器.我试图在下面的代码中使用CURL实现它,但它不起作用,它总是显示脱机.
IsOnline( "xx.xxx.xx.xxx" );
bool IsOnline( string url )
{
CURL *curl;
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, url.c_str() );
CURLcode result = curl_easy_perform(curl);
if ( result != CURLE_OK )
{
error_string = curl_easy_strerror( result );
return false;
}
curl_easy_cleanup(curl);
curl_global_cleanup();
return true;
}
curl_easy_cleanup(curl);
curl_global_cleanup();
return false;
}
Run Code Online (Sandbox Code Playgroud) 我需要一个指针传递给std::string作为LPARAM一个的WM_USER消息,并得到字符串或char*在WM_USER主窗口的消息处理程序.
我怎么做 ?
我现在正在做什么(这是不正确的,因为它不会产生应该的结果):
PostMessage(hwnd, LP_DOWNLOADUPDATE, (WPARAM)hHandleToWindow, (LPARAM)&remSize);
Run Code Online (Sandbox Code Playgroud)
哪里remSize是sdt::string remSize;一个全局变量.
在我正在做的消息处理程序中:
SetWindowText( (HWND)wParam, (char*)lParam );
Run Code Online (Sandbox Code Playgroud) 已启用
残障人士

当我禁用按钮(使用BS_BITMAP样式标志创建)时,它会改变外观(请参见上图),编辑控件也会发生同样的情况。
禁用后如何使控件不变?
我可以通过对控件进行子类化来实现,但是有没有更简单的方法?
如果可能的话,我不想仅仅为此子类化控件。
在下面的代码中,如果我注释掉对"GetCurrentDirectory"的调用,一切正常,但是如果我没有那么代码在它之后中断,没有子窗口出现,但程序不会崩溃.编译器不会给出任何错误.
char *iniFilePath;
int lenWritten = GetCurrentDirectory( MAX_PATH, iniFilePath );
if( lenWritten )
{
lstrcat( iniFilePath, iniFileName.c_str() );
char *buffer;
GetPrivateProfileString( iniServerSectionName.c_str(), serverIp.c_str(), "", buffer, MAX_PATH, iniFilePath );// server ip
MessageBox( 0, buffer, 0, 0 );
}
else
{
MessageBox( 0,0,0,0 );
}
Run Code Online (Sandbox Code Playgroud) 我需要将一个字符串的每个字符作为一个位序列在一个数组中,或者只是循环遍历它,无论哪种方式都有效.这是我过去常常以ASM的方式做的事情,我不确定如何在c ++中完成.
编辑:我试图复制我用asm回来做的事情,在内存中读取文件并逐位遍历它,操纵每个位,做一些更多的加密并保存回来.
基本上是一个简单的加密.它不是一个家庭作业,也不是一个项目.
我使用:: TransparentBlt绘制一个bmp,其透明像素由Magenta RGB(255,0,255)标记,但是:: TransparentBlt表现不正常,一些不应该透明的像素在结果中是透明的.
我究竟做错了什么 ?
原始图片:

来自:: TransparentBlt的结果

结果图像中的灰色区域是背景图像,其上原始bmp是:: TransparentBlt-ed
码:
LRESULT jItems::paint ( )
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
::GetClientRect ( hwnd , &rect ) ;
hdc = ::BeginPaint ( hwnd , &ps ) ;
HDC dcSkin = ::CreateCompatibleDC ( hdc ); // memory dc for skin
HDC hMemDc = ::CreateCompatibleDC ( hdc ); // memory dc for painting
HBITMAP hmemBmp = ::CreateCompatibleBitmap ( hdc, rect.right - rect.left, rect.bottom - rect.top ); // …Run Code Online (Sandbox Code Playgroud)