c-启动不带标题栏的默认浏览器



我目前正在C++中开发一个应用程序,该应用程序在启动时会在没有标题栏的窗口中打开用户的默认浏览器(尤其是我想去掉右上角的所有按钮)。我用这段代码检查可执行路径:

HKEY Key;
LPCTSTR Key2 = TEXT("http\shell\open\command");
RegOpenKeyEx(HKEY_CLASSES_ROOT, Key2, 0L, KEY_ALL_ACCESS, &Key);
char Path[256];
DWORD dwSize = 256;
RegQueryValueEx(Key, NULL, NULL, NULL, (LPBYTE)Path, &dwSize);
LPCSTR browser=Path;

然后将其传递给CCD_ 1。

我的问题是:我应该如何删除这个窗口的标题栏,使用ShellExecute并用FindWindow()获取句柄不是更好吗?

如果要删除标题栏,
使用FindWindow()获取目标的句柄
在目标窗口中更改样式属性并对其进行修改。

#include <windows.h>
#include <stdio.h>
int main(void)
{
   HWND hWnd = NULL;
   LONG lStyle;  
   hWnd = FindWindow(0, "Google - Windows Internet Explorer");
   lStyle = GetWindowLong(hWnd, GWL_STYLE);
   lStyle &= ~WS_CAPTION; /*remove  WS_CAPTION style */
   SetWindowLong(hWnd, GWL_STYLE, lStyle);
   if(hWnd!=NULL)          
      SetWindowPos(hWnd, HWND_TOP, 0,0,0,0, SWP_FRAMECHANGED ); /*Changes style in your window */
return 0;
} 

这两个功能都可以完成任务,但CreateProcess是一个更可靠、更安全的功能,不像ShellExecute

最新更新