12 个解决方案
#1
system的方式貌似不行~
你可以用自己创建进程的方式来启动 另一个程序,这样你可以控制~
你可以用自己创建进程的方式来启动 另一个程序,这样你可以控制~
#2
恳请高手能说的详细些
#3
#include <windows.h>
#include <stdio.h>
int main(void)
{
BOOL bNewProcess;
DWORD dwExternExitCode;
PROCESS_INFORMATION process_info;
STARTUPINFO startup_info = {sizeof(STARTUPINFO)};
bNewProcess = CreateProcess(TEXT("D:\\Programming\\spt12\\Debug\\spt12.exe"), NULL,
NULL, NULL,
FALSE, 0,
NULL, NULL,
&startup_info, &process_info);
if (!bNewProcess)
printf("%d\r\n", GetLastError());
//WaitForSingleObject(process_info.hProcess, 100000);
//GetExitCodeProcess(process_info.hProcess, &dwExternExitCode);
Sleep(100);
// close the process
TerminateProcess(process_info.hProcess, 0x00000001);
//printf("%d\r\n", dwExternExitCode);
return 0;
}
#include <stdio.h>
int main(void)
{
BOOL bNewProcess;
DWORD dwExternExitCode;
PROCESS_INFORMATION process_info;
STARTUPINFO startup_info = {sizeof(STARTUPINFO)};
bNewProcess = CreateProcess(TEXT("D:\\Programming\\spt12\\Debug\\spt12.exe"), NULL,
NULL, NULL,
FALSE, 0,
NULL, NULL,
&startup_info, &process_info);
if (!bNewProcess)
printf("%d\r\n", GetLastError());
//WaitForSingleObject(process_info.hProcess, 100000);
//GetExitCodeProcess(process_info.hProcess, &dwExternExitCode);
Sleep(100);
// close the process
TerminateProcess(process_info.hProcess, 0x00000001);
//printf("%d\r\n", dwExternExitCode);
return 0;
}
#4
Use Message Loop.
Send a WM_CLOSE message to the window that you want to close.
SendMessage (WindowHandle, WM_CLOSE,0,0);
Send a WM_CLOSE message to the window that you want to close.
SendMessage (WindowHandle, WM_CLOSE,0,0);
#5
这个是我以前回答的问题的代码~ 我稍微该了下, 大致方向肯定没错,具体细节看msdn~
---------------------------
这段代码应该可以直接用了~ 另外别忘了TEXT("D:\\Programming\\spt12\\Debug\\spt12.exe")换成你自己的 exe(就是vb写的):)
---------------------------
这段代码应该可以直接用了~ 另外别忘了TEXT("D:\\Programming\\spt12\\Debug\\spt12.exe")换成你自己的 exe(就是vb写的):)
#6
Use Message Loop.
Send a WM_CLOSE message to the window that you want to close.
SendMessage (WindowHandle, WM_CLOSE,0,0);
---------------------
这个ms也行~ 不过没试过: 不过首先要 使用 FindWindow 找到 目标的handle 才行~
Send a WM_CLOSE message to the window that you want to close.
SendMessage (WindowHandle, WM_CLOSE,0,0);
---------------------
这个ms也行~ 不过没试过: 不过首先要 使用 FindWindow 找到 目标的handle 才行~
#7
不过~ 好像跨进程的SendMessage 只支持 WM_COPYDATA, WM_GETTEXT, WM_SETTEXT~ 有点记不清了~
#8
HWND hwnd = FindWindow(0, lpTaskName);//获取窗口句柄
if (hwnd)
{
PostMessage(hwnd, WM_CLOSE, 0, 0); //发送关闭消息
CloseHandle(hwnd);
}
if (hwnd)
{
PostMessage(hwnd, WM_CLOSE, 0, 0); //发送关闭消息
CloseHandle(hwnd);
}
#9
感谢jokar和wangfustudio,
#10
另外用 SendMessage 的话 不只到 VB 能不能行~
#11
这个8是WINDOWS API 吗。。
建议你买一本,WINDOWS C++编程,
估计前几章写的就是这个。
至于WINDOWS API 对付窗口吗。他们 把窗口 的激活,杀死(终止)都写成
。。。。。
这个我也不知道用什么词来描述,
到是他们都已经做成现有的事件了之类的东西了,你一看就明白了。。。
建议你买一本,WINDOWS C++编程,
估计前几章写的就是这个。
至于WINDOWS API 对付窗口吗。他们 把窗口 的激活,杀死(终止)都写成
。。。。。
这个我也不知道用什么词来描述,
到是他们都已经做成现有的事件了之类的东西了,你一看就明白了。。。
#12
ShellExecute或者WinExec
#1
system的方式貌似不行~
你可以用自己创建进程的方式来启动 另一个程序,这样你可以控制~
你可以用自己创建进程的方式来启动 另一个程序,这样你可以控制~
#2
恳请高手能说的详细些
#3
#include <windows.h>
#include <stdio.h>
int main(void)
{
BOOL bNewProcess;
DWORD dwExternExitCode;
PROCESS_INFORMATION process_info;
STARTUPINFO startup_info = {sizeof(STARTUPINFO)};
bNewProcess = CreateProcess(TEXT("D:\\Programming\\spt12\\Debug\\spt12.exe"), NULL,
NULL, NULL,
FALSE, 0,
NULL, NULL,
&startup_info, &process_info);
if (!bNewProcess)
printf("%d\r\n", GetLastError());
//WaitForSingleObject(process_info.hProcess, 100000);
//GetExitCodeProcess(process_info.hProcess, &dwExternExitCode);
Sleep(100);
// close the process
TerminateProcess(process_info.hProcess, 0x00000001);
//printf("%d\r\n", dwExternExitCode);
return 0;
}
#include <stdio.h>
int main(void)
{
BOOL bNewProcess;
DWORD dwExternExitCode;
PROCESS_INFORMATION process_info;
STARTUPINFO startup_info = {sizeof(STARTUPINFO)};
bNewProcess = CreateProcess(TEXT("D:\\Programming\\spt12\\Debug\\spt12.exe"), NULL,
NULL, NULL,
FALSE, 0,
NULL, NULL,
&startup_info, &process_info);
if (!bNewProcess)
printf("%d\r\n", GetLastError());
//WaitForSingleObject(process_info.hProcess, 100000);
//GetExitCodeProcess(process_info.hProcess, &dwExternExitCode);
Sleep(100);
// close the process
TerminateProcess(process_info.hProcess, 0x00000001);
//printf("%d\r\n", dwExternExitCode);
return 0;
}
#4
Use Message Loop.
Send a WM_CLOSE message to the window that you want to close.
SendMessage (WindowHandle, WM_CLOSE,0,0);
Send a WM_CLOSE message to the window that you want to close.
SendMessage (WindowHandle, WM_CLOSE,0,0);
#5
这个是我以前回答的问题的代码~ 我稍微该了下, 大致方向肯定没错,具体细节看msdn~
---------------------------
这段代码应该可以直接用了~ 另外别忘了TEXT("D:\\Programming\\spt12\\Debug\\spt12.exe")换成你自己的 exe(就是vb写的):)
---------------------------
这段代码应该可以直接用了~ 另外别忘了TEXT("D:\\Programming\\spt12\\Debug\\spt12.exe")换成你自己的 exe(就是vb写的):)
#6
Use Message Loop.
Send a WM_CLOSE message to the window that you want to close.
SendMessage (WindowHandle, WM_CLOSE,0,0);
---------------------
这个ms也行~ 不过没试过: 不过首先要 使用 FindWindow 找到 目标的handle 才行~
Send a WM_CLOSE message to the window that you want to close.
SendMessage (WindowHandle, WM_CLOSE,0,0);
---------------------
这个ms也行~ 不过没试过: 不过首先要 使用 FindWindow 找到 目标的handle 才行~
#7
不过~ 好像跨进程的SendMessage 只支持 WM_COPYDATA, WM_GETTEXT, WM_SETTEXT~ 有点记不清了~
#8
HWND hwnd = FindWindow(0, lpTaskName);//获取窗口句柄
if (hwnd)
{
PostMessage(hwnd, WM_CLOSE, 0, 0); //发送关闭消息
CloseHandle(hwnd);
}
if (hwnd)
{
PostMessage(hwnd, WM_CLOSE, 0, 0); //发送关闭消息
CloseHandle(hwnd);
}
#9
感谢jokar和wangfustudio,
#10
另外用 SendMessage 的话 不只到 VB 能不能行~
#11
这个8是WINDOWS API 吗。。
建议你买一本,WINDOWS C++编程,
估计前几章写的就是这个。
至于WINDOWS API 对付窗口吗。他们 把窗口 的激活,杀死(终止)都写成
。。。。。
这个我也不知道用什么词来描述,
到是他们都已经做成现有的事件了之类的东西了,你一看就明白了。。。
建议你买一本,WINDOWS C++编程,
估计前几章写的就是这个。
至于WINDOWS API 对付窗口吗。他们 把窗口 的激活,杀死(终止)都写成
。。。。。
这个我也不知道用什么词来描述,
到是他们都已经做成现有的事件了之类的东西了,你一看就明白了。。。
#12
ShellExecute或者WinExec