1. 程式人生 > >VC中如何呼叫其他的可執行程式

VC中如何呼叫其他的可執行程式

Q: 如何開啟一個應用程式
ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW ); 或 ShellExecute(this->m_hWnd,"open","notepad.exe","c:\\MyLog.log","",SW_SHOW ); 正如您所看到的,我並沒有傳遞程式的完整路徑。

Q: 如何開啟一個同系統程式相關連的文件?ShellExecute(this->m_hWnd,"open","c:\\abc.txt","","",SW_SHOW );

Q: 如何開啟一個網頁?
ShellExecute(this->m_hWnd,"open","
http://www.google.com
","","", SW_SHOW );

Q: 如何啟用相關程式,傳送EMAIL?
ShellExecute(this->m_hWnd,"open","mailto:[email protected]","","", SW_SHOW );

Q: 如何用系統印表機列印文件?
ShellExecute(this->m_hWnd,"print","c:\\abc.txt","","", SW_HIDE);

Q: 如何用系統查詢功能來查詢指定檔案?
ShellExecute(m_hWnd,"find","d:\\nish",NULL,NULL,SW_SHOW);

Q: 如何啟動一個程式,直到它執行結束?
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "c:\\MyProgram.exe";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
或:
PROCESS_INFORMATION ProcessInfo;
STARTUPINFO StartupInfo; //This is an [in] parameter
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field
if(CreateProcess("c:\\winnt\\notepad.exe", NULL,
NULL,NULL,FALSE,0,NULL,
NULL,&StartupInfo,&ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
else
{
MessageBox("The process could not be started...");
}

Q: 如何顯示檔案或資料夾的屬性?
SHELLEXECUTEINFO ShExecInfo ={0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "properties";
ShExecInfo.lpFile = "c:\\"; //can be a file as well
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);

相關推薦

如何使用QT呼叫外部執行程式

在QT中呼叫外部可執行程式,如exe等。在本例中我們使用QT的QProcess類呼叫Git Bash中的命令,(在我們專案中需要呼叫一個bash命令,所以將命令寫在.sh檔案中,但是MAC中雙擊.sh檔

在Android 系統增加C 執行程式來訪問硬體驅動程式

在Android 系統中增加C 可執行程式來訪問硬體驅動程式。 核心驅動程式。在這個名為hello的Linux 核心驅動程式中,建立三個不同的檔案節點來供使用者空間訪問,分別是傳統的裝置 檔案/dev/hello、proc 系統檔案/proc/hello和devfs 系統

VC如何呼叫其他執行程式

Q: 如何開啟一個應用程式 ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW ); 或 ShellExecute(this->m_hWnd,"open","notepad.exe","c:\\MyLog.log","",SW_SH

CMakeLists.txt 設定編譯後的執行程式優先呼叫本地庫

可執行程式查詢不到so庫 庫放在可執行程式目錄下的lib資料夾下,但是可執行程式沒有去呼叫,使用ldd指令  修改ld.so.conf也是無效 是否是CMakeLists.txt設定的問題? 有事找度娘。。。  設定可執行程式優先呼叫本地庫 SET(CMA

(zt)如何執行一個資源執行程式

2010年07月08日 15:29:00 zaijzhgh 閱讀數:511 標籤: exe null

windows系統下執行程式呼叫lib靜態庫和dll動態庫的方法

#include <stdio.h> #include <Windows.h>   int main() {    HINSTANCE h=LoadLibraryA("newdll.dll");     typedef int (* FunPtr)(int a,int b);//定義函

如何在執行程式嵌入資原始檔(linux環境)

gcc似乎沒有”資原始檔”(windows中的.res)一說,如果要在可執行程式中放入體積比較大的檔案,一般是定義一個非常大的陣列,將檔案的每位元組填充陣列,這種做法的好處是無平臺依賴性。下面的做法更優雅,但似乎只有gcc支援。 1、首先利用objcopy工具把二進位制檔案裝到一個.o檔案中 objcop

python轉exe執行程式其他系統上執行時出現的錯誤

說明:python轉exe在win10上執行,無法執行在win7系統上 一.win7旗艦版x64 執行錯誤提示 解決辦法 下載api-ms-win-crt-runtime-

c#寫服務、exe 執行程式、windows鎖屏的過程遇到的問題

開啟服務 在服務管理器中,開啟你的服務時出現本地計算機上的XXX服務啟動後停止,某些服務在未由其它服務或程式使用時將自動停止錯誤時,右鍵我的電腦-》管理-》系統工具-》時間檢視器->windows日誌-》應用程式 可以看到你的服務啟動失敗的原因。(使用WindowsService服務出現的錯誤,

Windows PowerShell無法將"python"項識別為cmdlet、函式、指令碼檔案或執行程式的名稱

原因:PowerShell找不到python直譯器的路徑 解決辦法: 以管理員許可權開啟PowerShell,將python.exe所在的路徑加到系統環境變數Path中,命令如下: [Environment]::SetEnvironmentVariable("Path", "$env:P

shell 後臺執行以及隱藏指令碼呼叫其他指令碼隱藏輸出

例如:A.sh要後臺呼叫B.sh ,要隱藏B.sh中的輸出。(後臺執行符號"&"要寫在隱藏語句“> /dev/null 2>&1 "的後面) B.sh #===================== #!/bin/bash echo “this

javac不是內部或外部命令,也不是執行程式或批處理檔案

配置java環境的時候,java與java -version可以正確顯示資訊,在CMD中輸入javac卻報錯。看了很多文章,跟配置java環境的路數一樣的,最後javac還是不行。最後查到了把這三個:變數名:JAVA_HOME    變數值:F:\java_jdk\jdk1.

VC呼叫perl程式

改文件轉載於:http://blog.sina.com.cn/s/blog_477759e70100cx82.html 今日,改寫一些perl生成順序遞增數的程式碼。為滿足測試,需要不斷執行以生成新的一百萬個隨機數。由於起始數不同,每次都需要在程式碼裡的修改再執行(或敲

Linux shell執行執行程式後加上&的作用

學習UNP時,學到了在命令後加上字元“&”後,退出shell,執行的命令可以繼續執行。不解原因,併到網上搜索了以下,明白了! 以下是搜尋到的片段: & 放在啟動引數後面表示設定此程序為後臺程序 預設情況下,程序是前臺程序,這時就把Shell給佔據了,我們無法

解決:無法將“Add-Migration”項識別為 cmdlet、函式、指令碼檔案或可執行程式的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然後再試一次 1、輸入的劃線“-”格式不對,檢查是

1、輸入的中劃線“-”格式不對,檢查是否為全形狀態下輸入,誤輸入了下劃線“_",或是前後有空格; 2、沒有引用EntityFramework命令,請執行如下名稱(Import-Module 專案路徑\packages\EntityFramework.6.1.3(EF版本)\tools\EntityFra

C語言沒有main函式生成執行程式的幾種方法

轉自:http://www.linuxidc.com/Linux/2013-09/90061.htm 1、define預處理指令 這種方式很簡單,只是簡單地將main字串用巨集來代替,或者使用##拼接字串。示例程式如下: #include <stdio.h>

openwrt 新增新的檔案、指令碼、執行程式到韌體

網上有許多介紹如何編譯程式到韌體的文章,寫一篇將多個檔案編譯到韌體中的方法的文章。 # # Copyright (C) 2007-2016 OpenWrt.org # Copyright (C) 2010 Vertical Communications #

5.2.3 為了指令生成執行程式

5.2.3 為了指令生成可執行程式 彙編器呼叫make-execution-procedure 來生成指令的執行程式。 像4.1.7部分中的直譯器中的  analyze程式一樣,這個分發程式 根據指令的型別來生成合適的執行程式。 (define  (make-executio

在Windows環境下使用gcc生成執行程式簡介

gcc(GNU編譯器套件)。gcc的初衷是為GNU作業系統專門編寫的一款編譯器,可以處理多種程式語言:C、C++、Objective-c 、Objective-c++、Fortran、 Java 、Ada 、Go及組合語言。 基本用法: 在使用gcc編譯器時,我們必須給出一系列必要的呼叫引數

編譯一個可以在Android系統上執行執行程式

開發環境 系統環境:Ubuntu14.04   交叉編譯器 arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 arm-none-linux-gnueabi-gcc  arm各個版本下