精华内容
下载资源
问答
  • electron学习(2):渲染进程打开窗口
    千次阅读
    2017-08-13 19:35:00

    创建渲染进程。

    1.创建文件夹 renderer-process   里面包括open.js(渲染进程入口)   model.html  (界面)

    2.主进程界面加入 id=“click” 的button,并在script标签里require引入 open.js

    3.open.js

    const click = document.getElementById('click');
    const path = require('path');
    const url = require('url')
    //此为渲染进程,需从主进程获得BrowserWindow模块
    const BrowserWindow = require('electron').remote.BrowserWindow;
    
    
    let win;
    
    click.onclick=()=>{
        //window.open('http://baidu.com');
        win = new BrowserWindow({
            width:300,
            height:200,
            frame:true  //是否带工具栏
        })
        win.on('close',()=>{
            win=null
        })
        win.loadURL(url.format({
            pathname: path.join(__dirname, 'model.html'),   //index位置
            protocol: 'file:',  //协议
            slashes: true    //是否有双斜线
        }))
    }

     

    转载于:https://my.oschina.net/dtdths/blog/1507443

    更多相关内容
  • 两种方法取指定进程窗口.rar 两种方法取指定进程窗口.rar 两种方法取指定进程窗口.rar 两种方法取指定进程窗口.rar 两种方法取指定进程窗口.rar 两种方法取指定进程窗口.rar
  • 通过进程id获取到所在进程的主窗口的句柄,及通过该主窗口句柄获取当前主窗口的标题,进程名;这是一个demo例程,仅供参考
  • 进程窗口嵌套

    热门讨论 2014-01-21 11:19:30
    一个可以跨进程嵌套窗口的demo,主调进程嵌套子进程中的窗口
  • 易语言枚举窗口进程源码,枚举窗口进程,取模块路径,取特征码,读内存十六进制文本,取得窗口_,取前台窗口_,取进程线程标识符_,Module32First,CreateToolhelp32Snapshot,打开进程_,ReadProcessMemory,CloseHandle
  • C#通过进程名获取窗口句柄,也可以获取当前窗口句柄。本人在c#2013测试通过。
  • 通过进程ID找到窗口句柄.通过进程ID找到窗口句柄.通过进程ID找到窗口句柄.通过进程ID找到窗口句柄.通过进程ID找到窗口句柄.通过进程ID找到窗口句柄.通过进程ID找到窗口句柄.通过进程ID找到窗口句柄.
  • createprocess创建进程并获取进程窗口HWND,不管窗口是否在显示状态都可以获取。
  • qt中父进程窗口嵌入子进程产生的窗口

    千次阅读 热门讨论 2020-04-30 18:18:06
    客户端有很多模块,比如视频预览,视频回放,我这里采取的是多进程架构,客户端框架是一个进程,视频预览是一个进程,视频回放是一个进程,客户端框架负责将视频预览和视频回放产生的窗口嵌入。 工作流程如下: 1....

    笔者从事客户端开发工作,客户端有很多模块,比如视频预览,视频回放,我这里采取的是多进程架构,客户端框架是一个进程,视频预览是一个进程,视频回放是一个进程,客户端框架负责将视频预览和视频回放产生的窗口嵌入。

    工作流程如下:
    1.编写一个基于QWidget的工程,产生的窗口作为父窗口
    2.编写一个基于QWidget的工程,产生的窗口作为子窗口,其中子窗口的风格要求是 Qt::CustomizeWindowHint | Qt::FramelessWindowHint
    3.父进程窗体的构造函数里面启动子进程
    4.子进程启动后,将自身的窗口句柄发给父进程
    5.父进程收到子进程发来的窗口句柄后,进行嵌入操作

    上面5个步骤中,最后一个步骤就是今天要讲的主题,第4个步骤,采取进程间通信的方式进行窗口句柄传递,比如管道方式。

    核心代码如下所示,其中szGlobalBuffer表示的是从管道里面得到的子进程的窗口句柄
    void ParentWidget::ReceiveChildWinId()
    {
    printf(“ReceiveChildWinId begin, szGlobalBuffer is %s\n”, szGlobalBuffer);
    WId childWnd = atoi(szGlobalBuffer);
    if (NULL == m_pSubWidget)
    {
    m_pSubWidget = QWidget::createWindowContainer(QWindow::fromWinId(childWnd));
    }
    //m_pSubWidget->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
    //m_pSubWidget->resize(CalculateRect().size()); // 防止发送默认尺寸 640 480
    m_pSubWidget->setParent(this);
    m_pSubWidget->show();
    }
    其中,
    m_pSubWidget = QWidget::createWindowContainer(QWindow::fromWinId(childWnd));
    是将子进程的窗口句柄转换成QWidget 对象,然后setParent进行父子窗口绑定。
    父进程窗口嵌入子进程窗口,在windows和linux下都验证通过。
    linux的效果如下:
    在这里插入图片描述
    其中红色部分是子进程窗口的窗口。

    代码已经上传到csdn上了,vs2015+qt5.9.6,下面是下载地址:

    https://download.csdn.net/download/tusong86/12377331

    展开全文
  • VC进程ID获得主窗口句柄获得进程

    热门讨论 2010-12-03 15:56:10
    VC获得进程ID获得主线程ID获得窗口句柄获得主窗口获得进程名 1.窗口类名 窗口句柄 窗口标题 窗口句柄 HWND FindWindow( LPCTSTR lpClassName, //窗口类名 可用 VC或者VS自带的Spy++查看 LPCTSTR lpWindowName //...
  • 通过系统API 通过进程名取UID,通过UID取窗口名 无需模块
  • VC由进程ID获取窗口句柄

    热门讨论 2011-07-22 09:24:06
    VC由进程ID获取窗口句柄VC由进程ID获取窗口句柄
  • c++窗口嵌入第三方进程窗口

    千次阅读 2020-06-15 18:57:34
    现在的大型软件启动之后,很可能存在多个进程。如浏览器,每打开一个新的页面,就会启动一个新的进程。...1. 打开第三方进程窗口 主要通过CreateProcess函数来打开第三方进程,并获取进程ID。 HWND CNestWndDlg::Open

    现在的大型软件启动之后,很可能存在多个进程。如浏览器,每打开一个新的页面,就会启动一个新的进程。为什么会使用多进程,而不是全部使用多线程呢?因为多进程,可以做到完全的隔离,这样的好处是:如果一个页面卡死了,不会干扰到其他页面;在代码层,也少了多页面之间线程变量安全考虑的顾忌了,不用考虑同步异步等操作。
    我们在MainUI中嵌入ThirdUI窗口,主要有以下步骤:

    1. 打开第三方进程窗口

    主要通过CreateProcess函数来打开第三方进程,并获取进程ID。

    HWND CNestWndDlg::OpenProcess()
    {
    	// 进程启动信息
    	STARTUPINFO si;
    	memset(&si, 0, sizeof(STARTUPINFO));
    	si.cb = sizeof(STARTUPINFO);
    	si.dwFlags = STARTF_USESHOWWINDOW;
    	si.wShowWindow = SW_SHOW;
    
    	// 进程信息
    	PROCESS_INFORMATION pi = {0};
    
    	// 创建进程
    	if (CreateProcess("C:\\WINDOWS\\system32\\notepad.exe", NULL,  NULL, NULL, false, 0, NULL, NULL, &si, &pi))
    	{
    		PROCESS_INFO procwin;
    		procwin.dwProcessId = pi.dwProcessId;
    		procwin.hWnd = NULL;
    
    		// 等待新进程初始化完毕
    		WaitForInputIdle(pi.hProcess, 5000);
    
    		EnumWindows(EnumWindowCallBack, (LPARAM)&procwin);
    		if (NULL == procwin.hWnd)
    		{
    			Sleep(200);
    			EnumWindows(EnumWindowCallBack, (LPARAM)&procwin);
    		}
    
    		return procwin.hWnd;
    	}
    
    	return NULL;
    }
    

    2. 通过进程ID找到对应窗口句柄

    主要通过EnumWindows来枚举所有窗口,并通过GetWindowThreadProcessId来获取窗口的进程ID,并与1中打开的进程ID作比较来获取对应窗口的句柄。

    // 查找进程主窗口的回调函数
    BOOL CALLBACK EnumWindowCallBack(HWND hWnd, LPARAM lParam)
    {
    	PROCESS_INFO *pProcessWindow = (PROCESS_INFO *)lParam;
    
    	DWORD dwProcessId;
    	GetWindowThreadProcessId(hWnd, &dwProcessId);
    
    	if (pProcessWindow->dwProcessId == dwProcessId && IsWindowEnabled(hWnd) && GetParent(hWnd) == NULL)
    	{
    		pProcessWindow->hWnd = hWnd;
    		return FALSE;
    	}
    
    	return TRUE;
    }
    

    3. 设置第三方窗口相关属性

    为了让thirdUI内嵌入MainUI中,需要以下设置:

    • 修改thirdUI的属性,通过SetWindowLong清除WS_POPUP风格。
    • 修改thirdUI的属性,通过SetWindowLong添加WS_CHILD风格。
    • 通过SetParent来将MainUI设置为thirdUI的父窗口,设置完之后,thirdUI的消息循环就进入到了MainUI的消息队列,这样thirdUI就和MainUI的一个子窗口类似。
    • 通过GetClientRect来获取MainUI的客户区大小,通过MoveWindow将thirdUI移到MainUI的客户区。
    • 调用InvalidateRect将thirdUI设置为整个区域无效区域。
    • UpdateWindow强制刷新thirdUI,因为InvalidateRect只是将消息放入消息队列并不定立即响应,所以可能导致thirdUI更新不正常,此时需要UpdateWindow来强制刷新无效区域。

    4. 切换窗口之后的更新设置

    当窗口最小化或者切换到主进程的其他页面后,再切换回来,此时也需要刷新设置。否则会更新错误。重点,必须再次设置SetParent,否则无法正确传递消息。(具体原因未知)

    • 通过SetParent来将MainUI设置为thirdUI的父窗口,设置完之后,thirdUI的消息循环就进入到了MainUI的消息队列,这样thirdUI就和MainUI的一个子窗口类似。
    • 调用InvalidateRect将thirdUI设置为整个区域无效区域。
    • UpdateWindow强制刷新thirdUI,因为InvalidateRect只是将消息放入消息队列并不定立即响应,所以可能导致thirdUI更新不正常,此时需要UpdateWindow来强制刷新无效区域。

    5. 示例

    示例是一个多tab窗口,调用记事本(notepad),显示如下:
    在这里插入图片描述
    Demo

    展开全文
  • 额,我想表达的是使用os.system()打开另一个可执行文件,然后等待其结束,关闭cmd窗口 主要是我突发奇想想装逼; 如果只是用multiprocessing库的多进程,然后输出信息的话,根本没法看好吧,乱成一团.重定向就更不行了,我...

    额,我想表达的是使用os.system()打开另一个可执行文件,然后等待其结束,关闭cmd窗口

    主要是我突发奇想想装逼;

    如果只是用multiprocessing库的多进程,然后输出信息的话,根本没法看好吧,乱成一团.重定向就更不行了,我的目的就是要(zhuang)看(bi)嘛;

    os.system()是打开一个新的窗口来运行可执行文件

    用os.popen()是在当前的窗口执行命令(我从效果来看是这样的.)

    我把子进程的主要执行代码封装成了一个模块,叫get_content.py.

    py文件肯定要用python.exe来运行涩.模块只是一个子进程,父进程必须传参,不然要子进程干啥.

    所以我最终传过去命令行字符串是: start /wait cmd.exe @cmd /k python get_content.py '+path+' '+book_name+' '+str(index)+' '+str(os.getpid());

    后面的什么path,index都是参数,只不过每次都要变,就不写具体值了.

    因为python要用cmd运行,所以前面加了cmd,但是不要start /wait的话就不能打开新窗口了.所以start /wait是装逼的关键, /wait参数是让父进程等待子进程结束.

    然而很不幸,这条命令下去之后在不人为干预的情况下父进程永远等不到子进程结束的那天.

    实际上这条命令下去之后创建了多个(4)子进程,形成了父→子→孙→孙这样一个进程链.

    就这样:

     

    为什么说是四个,首先start打开新窗口,在运行cmd,之后再有python,再有我封装的可执行文件,如果不关闭cmd,name当我的可执行文件执行完之后,python.exe,cmd.exe会一直运行.一直占用资源.

    怎么结束呢,还是用os模块的函数,不过我这次用的popen();

    #杀掉父进程,加-f强制结束

    os.popen('taskkill.exe /pid '+str(os.getppid())+' -f');

    #自杀

    #os.popen('taskkill.exe /pid '+str(os.getpid()));

    os.popen('exit.exe');

    这样就ok.

    设计道德原因,爬虫代码不公开.

    转载于:https://www.cnblogs.com/love-DanDan/p/10789121.html

    展开全文
  • 遍历系统进程,获取系统所有打开窗口句柄,并获得其窗口标题。杀死一个窗口标题符合要求的进程
  • C++ 遍历进程窗口标题、窗口类名

    千次阅读 2019-09-07 15:27:02
    打个比方,要找到下图中的 “读取密码” 这个窗口标题: 上代码,奏战歌 —— #pragma region 依赖 typedef struct EnumHWndsArg{ std::vector<HWND> *vecHWnds; DWORD dwProcessId; }...
  • linux GTK 并发 多进程 3个窗口

    热门讨论 2012-02-24 20:40:10
    一个C程序,使用Linux下的GTK图形库,分窗口显示三个并发进程的运行。
  • 监视启动窗口进程

    2013-05-22 10:07:42
    使用钩技术来WINDOWS系统打开窗口名称。 监视启动窗口进程
  • 取指定标题窗口的句柄,进程名,进程ID 取指定标题窗口的句柄,进程名,进程ID 取指定标题窗口的句柄,进程名,进程ID 取指定标题窗口的句柄,进程名,进程ID 取指定标题窗口的句柄,进程名,进程ID
  • 通过Windows进程ID获取窗口句柄

    千次阅读 2018-07-09 14:25:53
    通过Windows进程ID获取窗口句柄方法一:使用EnumWindows的方式///&lt; 枚举窗口参数typedef struct{ HWND hwndWindow; // 窗口句柄 DWORD dwProcessID; // 进程ID}EnumWindowsArg;///&lt; 枚举窗口回调函数...
  • JS打开窗口(window.open() 、href)

    千次阅读 2021-10-21 17:17:38
    JS打开窗口 常用于文件、图片预览,或者加载一个新页面。 window.open() - 打开窗口 用法: window.open(strUrl, strWindowName, [strWindowFeatures]); strUrl: 新窗口需要载入的url地址,项目中我们打开的是...
  • 进程_ID取窗口句柄是多线程控制游戏窗口必须的命令,我们要多线程绑定多个游戏窗口,必须取得多个窗口的句柄,他们的进程名称是一样的,但窗口句柄不一样。 第九课511遇见易语言大漠模块制作API进程_ID取窗口句柄 ...
  • 窗口句柄:在Windows或Linux等操作系统下窗口句柄对应着每个窗口的钥匙,例如,你要对某一个窗口进行操作,你必须知道你要操作哪一个窗口,这里就拿Windows做举例,Windows下几乎会创建许许多多个窗口,但是我们怎么...
  • 当我们用C#对进程窗口操作时,需要调用win32的API接口,对于win32API我也是因为要实现这个功能才知道的,初次了解,写的不深。 下面就用unity写的一个例子来讲一下: 1、创建一个新脚本和新场景,脚本中首先要调用...
  • 在Windows或Linux等操作系统下窗口句柄对应着每个窗口的钥匙,例如,你要对某一个窗口进行操作,你必须知道你要操作哪一个窗口,这里就拿Windows做举例,Windows下几乎会创建许许多多个窗口,但是我们怎么知道我们...
  • 1、枚举Window窗口、获取当前激活窗口、根据窗口句柄获取获取标题栏文本 #include <stdio.h> #include <Windows.h> char g_szWindowName[MAX_PATH]={0}; BOOL CALLBACK EnumWindowsProc(HWND hwnd, ...
  • electron-vue打开窗口

    千次阅读 2021-12-15 11:40:41
    electron-vue 打开窗口(实践最佳方案)。以及打开窗口空白资源引进报错问题。
  • 电脑中如何打开进程管理器?

    千次阅读 2021-11-10 15:54:24
    首先按快捷键“ctrl+alt+del”。 在弹出么窗口打开“任务管理器”。 进入任务管理器界面后,点击左上角的“进程”。 右击菜单栏,点击“任务管理器”,然后可以查看进程
  • 通过进程ID取得该进程窗口句柄,超时的时候返回 0 511遇见易语言模块API教程 FindWindowExA .版本 2 .DLL命令 FindWindowExA, 整数型, "user32", "FindWindowExA", 公开, 窗口_取句柄ExA 在窗口列表中寻找与...
  • # 新开一个窗口,通过执行js来新开一个窗口 js = 'window.open("https://www.sogou.com");' browser . execute_script ( js ) # 输出当前窗口句柄(百度) baidu_handle = browser . current_window_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 345,007
精华内容 138,002
关键字:

怎么打开进程窗口