WinAPI: WinExec – 运行外部程序 //声明 WinExec( lpCmdLine: LPCSTR; {文件名和参数; 如没指定路径会按以下顺序查找: 程序目录/当前目录/System32...archive/2008/02/13/1067871.html ---- //举例, 启动记事本: procedure TForm1.Button1Click(Sender: TObject); begin WinExec
variants] psexec for Linux promodus August 25th, 2008, 04:42 AM After some trial & error I’ve gotten winexec
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,CreateProcess...可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。...三个SDK函数( WinExec、ShellExec、CrateProcess )的语法: WinExec 这个函数最简单,只有两个参数,原型如下: UINT WinExec(...虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。...虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。
2 3 4 5 6 #include intmain() { WinExec("notepad.exe",SW_SHOW);//运行计事本 return0; } 返回值...SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL} SW_MAX = 10; {同 SW_SHOWNORMAL} 在Windows程序设计中WinAPI也为我们提供了类似的函数,它就是WinExec...() 1)WinExec() 函数原型: UINT WinExec(LPCSTR lpCmdLine,UINT uCmdShow); 参数说明:(激活的意思是能接受焦点,即标题栏变成蓝色) lpCmdLine...第一次运行程序 时应该使用这个值 比如说,我想要用记事本打开"C:\HDC.TXT",以正常方式运行: WinExec("notepad c:\\hdc.txt",SW_SHOWNORMAL);...ERROR_PATH_NOT_FOUND 指定的路径没有找到 这个函数和system()非常类似,只能运行.EXE文件,这样在WINDOWS中有它不尽人意的地方,比如不能用此方法通过关联的方法打开文件,例如WinExec
//声明 WinExec( lpCmdLine: LPCSTR; {文件名和参数; 如没指定路径会按以下顺序查找: 程序目录/当前目录/System32/Windows/PATH环境变量} uCmdShow...WinExec和LoadModule函数依旧可用,但是它们同样通过调用CreateProcess函数实现。 另外CreateProcess函数除了创建一个进程,还创建一个线程对象。...<<endl; } return 0; } 区别: 功能上: createprocess > shellexecute > winexec 复杂程度也是!...winexec() 只用于可执行文件,是一个老函数啦,虽然使用方便,但不推荐!...(兼容性也不好) shellexcute()是通过windows外壳打开任意文件,非可执行文件自动通过关联的程序打开对于可执行文件,区别不大,不过shellexcute可以指定运行时的工作路径 winexec
WinExec, ShellExecute,CreateProcess 区别 本文转载自WinExec, ShellExecute,CreateProcess 区别 其中以WinExec最为简单,ShellExecute...比WinExec灵活一些,CreateProcess最为复杂。...WinExec 有两个参数,前一个指定路径,后一个指定显示方式。...WinExec 这个函数最简单,只有两个参数,原型如下: UINT WinExec( LPCSTR lpCmdLine, // 命令路径 UINT uCmdShow // 显示方式...,共有11种,具体可以查阅MSDN的ShowWindow函数 ); 使用方法如下: WinExec("Notepad.exe", SW_SHOW); // 打开记事本 WinExec("D:\\Program
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。...WinExec主要运行EXE文件。 ...虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。...ShellExecute和WinExec命令用于简单的作业。如果要完全控制一个新进程,就必须调用CreateProcess。...原文地址: 1、WinExec、ShellExecute和CreateProcess 2、 WINEXEC, SHELLEXECUTE, CREATEPROCESS 发布者:全栈程序员栈长,转载请注明出处
你可以这样: WinExec(“command /C dir C:\ > dir.txt”,SW_HIDE); system(“dir >dir.txt”) 1: UINT WinExec...EX1: WinExec(“Notepad.exe c:\\autoexec.bat”,SW_SHOW); 執行 notepad.exe 並正常顯示其程式視窗 EX2: WinExec(“Notepad.exe...虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。...WinExec不允许用CreateProcess获得的所有选项,而它的确简单。 ...\n”; if (WinExec(“notepad readme.txt”,SH_SHOW) <32) MessagBox(NULL,”Can’t WinExec”,NULL,MB_OK)
procedure deleteDirtyRz; var str: string; begin str:= 'del '+appPath+'USedLog\*.log'; WinExec(PChar
1、WinExec(): WinExec主要运行EXE文件,不能运行其他类型的文件,不用引用特别单元。...原型是: UINT WinExec(exePath,ShowCmd) 参数说明: --xePath:命令行参数。注意,要用pChar转化一下。 --ShowCmd:外部程序的运行方式。...HDC.TXT'),SW_SHOWNORMAL); 这个函数和system()非常类似,只能运行.EXE文件,这样在WINDOWS中有它不尽人意的地方,比如不能用此方法通过关联的方法打开文件,例如WinExec...ShellExecute的功能要强得多,并且可以完全替代WinExec(),事实上,WinExec()也是为了和以前版本兼容而保留,所以,我们要尽量使用ShellExecute()。 ...刚才的例子: WinExec(pChar('notepad.exe C:\HDC.TXT'),SW_SHOWNORMAL); 就可以改变为(假设窗口的句柄为Handle) ShellExecute(
区别1. system是c库的函数 WinExec是windows函数 区别2. system有一个参数,是命令行 Winexec有两个参数,一个是命令行,一个是窗口显示 区别3....虽然两个都是命令行,但有很大的区别 Winexec的命令行参数一般是一个外部程序的路径加给这个程序的参数,如 Winexec(”D:\\notepad.exe 1.txt”,WM_SHOWWINDOW)...查看),因此system可以使用”cd E:\”这样的参数,cmd会认识它, 但winexec就不认识。因为没有cd这个程序存在,其实cd只不过是cmd自定义的一个命令。...有时候用winexec和system调用同样的程序,会有不同的结果, 例: winexec("\"D:\\program files\\notaped.exe\" \"D:\\my document...); system("\"D:\\program files\\notaped.exe\" \"D:\\my document\\1.txt\"",); 看起来两个一样,但运行不一样 winexec
System.Runtime.InteropServices;//调用外部的DLL 2、定义win32API //调用exe [DllImport("kernel32.dll")] public static extern int WinExec...operType); //生成执行数据 private void generateExecuteData_ItemClick(object sender, ItemClickEventArgs e) { WinExec...(@"C:\ExecuteRecords\OrdersExecutionRecords.exe", 5); } WinExec说明 1、方法的返回值。
PostId=1029149 开控制面板及各项 {启动控制面板} winexec(‘rundll32.exe shell32.dll,Control_RunDLL’,9); {辅助选项 属性-键盘} winexec...winexec(‘rundll32.exe shell32.dll,Control_RunDLLaccess.cpl,,5′,9); {添加/删除程序 属性-安装/卸载} winexec(‘rundll32...属性-安全} winexec(‘rundll32.exe shell32.dll,Control_RunDLLInetcpl.cpl,,1′,9); {Internet 属性-内容} winexec(...-区域设置} winexec(‘rundll32.exe shell32.dll,Control_RunDLLIntl.cpl,,0′,9); {区域设置 属性-数字} winexec(‘rundll32...} winexec(‘rundll32.exe shell32.dll,Control_RunDLLSysdm.cpl,,2′,9); {系统 属性-性能} winexec(‘rundll32.exe
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,CreateProcess...可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。 ...WinExec 两个参数,前一个指定路径,后一个指定显示方式。 ...三个SDK函数( WinExec、ShellExec、CrateProcess )的语法: WinExec 这个函数最简单,只有两个参数,原型如下: UINT WinExec(...虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。
四、漏洞分析首先我们需要找到溢出点,既然他弹出一个计算器,那么我们可以对CreateProcess函数或者WinExec下断点,尝试找到关键地方,用windbg附加office 2007,然后在CreateProcess...函数和WinExec函数下断点:然后g起来,用word打开exp:结果发现并没有断下来,思考许久,猜测计算器不是word弹出来的,我们打开PCHunter查看进程:可以看到计算器的父进程是cmd,但是cmd...接下来我们双击exp,olldbg成功附加EQNEDT32.exe,首先在对WinExce下断点,Ctrl+g(WinExec),然后在首部下断点:go起来,成功停在断点处,说明计算器就是通过WinExce...启动的,F8单步走过函数初始化过程,开辟栈空间等步骤,然后我们观察堆栈EBP+4的位置,就是函数返回地址:跟进返回地址,可以看到这里调用了WinExec函数:我们在call WinExec函数前面一句,...函数第一个参数:也就是这里是通过淹没返回地址到WinExec上,然后通过修改字符串控制WinExec的参数,启动cmd打开计算器实现。
其中,常用的三种创建进程的方式分别是WinExec()、ShellExecute()和CreateProcessA(),这三种创建进程的方式各有特点。...如果需要创建简单进程或从其他程序启动新进程,可以使用WinExec()或ShellExecute()函数。...首先介绍WinExec函数,该函数是创建进程的一种方式,它使用较为简单,但缺乏对进程参数和安全性等方面的控制。...使用WinExec()函数,可以传递一个字符串类型的参数,该参数中指定了要启动的进程名和参数等信息。...,如SW_SHOW,即窗口正常大小和位置显示WinExec 函数的返回值是一个无符号整数,它表示进程是否成功启动。
其中,常用的三种创建进程的方式分别是WinExec()、ShellExecute()和CreateProcessA(),这三种创建进程的方式各有特点。...如果需要创建简单进程或从其他程序启动新进程,可以使用WinExec()或ShellExecute()函数。...首先介绍WinExec函数,该函数是创建进程的一种方式,它使用较为简单,但缺乏对进程参数和安全性等方面的控制。...使用WinExec()函数,可以传递一个字符串类型的参数,该参数中指定了要启动的进程名和参数等信息。...但是,由于WinExec()函数没有提供区分进程启动成功和失败的返回值,且无法从函数返回的进程句柄获得与进程相关的信息,因此使用较为有限。
("D:\\game.exe"); system("mmc.exe \"c:\\windows\\system32\\gpedit.msc\""); (2) WinExec...() 函数原型: UINT WINAPI WinExec( __in LPCSTR lpCmdLine, __in UINT...返回ERROR_PATH_NOT_FOUND找不到指定路径 样例: WinExec("Notepad.exe", SW_SHOW); // 打开记事本 WinExec("D:\\Program...WinExec(),简单实用,方便打开执行进程,但不能操作控制进程。 ShellExecute(),增强了操作能力,但对进程的控制还是不够用。
); } 运行效果 : 六、去掉系统调用时弹出的 cmd 命令行窗口 ---- 每次使用 System 系统调用时 , 就相当于在控制台中调用了相应的命令 ; 如果不想弹出控制台窗口 , 可以使用 WinExec...函数 ; 导入头文件 : 使用 WinExec 函数前 , 需要导入 Windows.h 头文件 ; // 使用 WinExec 函数的头文件 #include "Windows.h" 打开记事本 :...WinExec("calc", SW_NORMAL); 完整代码 : #include "widget.h" #include "ui_widget.h" // 弹出对话框的头文件 #include..."QMessageBox" // 使用 WinExec 函数的头文件 #include "Windows.h" Widget::Widget(QWidget *parent) : QWidget...on_pushButton_3_clicked() { // 打开计算器, 会弹出命令窗口 //system("calc"); // 打开计算器 , 不弹出命令窗口 WinExec
所以改用了WinExec来代替ShellExecute,同时要把需要的字串和函数指针都写到explorer的内存区里。...typedef UINT (WINAPI * WINEXEC)(LPCSTR,UINT); typedef struct tagTHREADDATA … {...TCHAR fileName[ 20 ]; WINEXEC pWinexec; } THREADDATA, * LPTHREADDATA...PAGE_EXECUTE_READWRITE); // 在explorer的内存内里申请一块内存来存所用的数据 THREADDATA data = … {TEXT( “ a.exe “ ),(WINEXEC...)GetProcAddress(user32Handle, “ WinExec “ ),} ; WriteProcessMemory(processHandle,dataAddr, &
领取专属 10元无门槛券
手把手带您无忧上云