A. 如何調用一個exe程序
system()的輸入參數是一個字元串,這個函數的作用就是在命令行下以命令的形式執行這個字元串。「C:\a.exe」 在命令行下是可以直接運行的,所以直接填到參數里就行了。不過需要注意的是,字元串作為參數的時候「\」要做一下轉義,要變成「\\」才行。
所以正確的使用方法應該是
system("C:\\a.exe");
注意,system在調用的時候需要加上#include <stdlib.h>的頭文件。
B. 如何在windows服務里調用其它應用程序
修改注冊表
在「開始→運行」中鍵入「regedit.exe」,打開「注冊表編輯器」,展開分支「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services」,在右側窗格中顯示的就是本機安裝的服務項。
如果要新建服務,只須點擊「編輯→新建→項」,然後為此項命名,如「test」;然後右擊該項,選擇「新建→字元串值」或「新建→DWORD值」即可。添加一個服務項目具體需要添加的鍵值如下:
「DisplayName」,字元串值,對應服務名稱;
「Description」,字元串值,對應服務描述;
「ImagePath」,字元串值,對應該服務程序所在的路徑;
「ObjectName」,字元串值,值為「LocalSystem」,表示本地登錄;
「ErrorControl」,DWORD值,值為「1」;
「Start」,DWORD值,值為2表示自動運行,值為3表示手動運行,值為4表示禁止;
「Type」,DWORD值,應用程序對應10,其它對應20。
另外,還要在「test」項下新建一個「Enum」項。按照以上步驟添加QQ程序為服務,重新啟動計算機後,打開「服務」窗口,就可以看到剛才添加的QQ服務。
如果要刪除某項服務,只要刪除注冊表的中相關鍵值即可,本例中要刪除QQ服務,直接刪除「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\test」分支即可
C. 怎麼在一個應用中啟動另外一個應用
一、調用自己開發的應用
1)在plist文件中,注冊對外介面
在xcode group&files 裡面,展開 resources選擇info.plist,滑鼠右擊information property list ,然後從列表中選擇URL types,右擊 add row 添加一個對象(item)右擊item add row
從列表中選擇 URL Schemes 再右擊添加一個對象(item1),將item1得值設置為:myapp。這個myapp就是對外介面,其它應用可以通過它,調用該應用
2).處理URL請求
應用程序委託在 application:handleOpenURL:方法中處理傳遞給應用程序的URL請求。如果您已經為自己 的應用程序注冊了定製的URL模式,則務必在委託中實現這個方法。
下面代碼實現了這個委託方法; -
(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL
*)url
{
if([[url
scheme] isEqualToString:@"myapp"]){
[application
setApplicationIconBadgeNumber:10];
return
YES;
}
return
NO;
}
3).測試外部調用
1、回到Home屏幕,啟動Safari(在iPhone模擬器上,在菜單上選擇Hardware->Home命令就可以回到Home屏幕)。
2、在Safari的地址欄中,鍵入使用定製模式的URL:myapp:
3、確認應用程序是否啟動,以及應用程序委託是否收到application:handleOpenURL:消息。
4)調用方法
在你需要調用上面注冊過對外介面的應用中,添加下面代碼即可
NSURL
*url = [NSURL URLWithString:@"myapp:"];
[[UIApplication
sharedApplication] openURL:url];
通過上述兩個步驟,你可以在你的應用中,讓用戶打開你的其它應用
二、調用IOS自帶的應用
上面講述的是調用自身的應用,講解了如何在自己應用之間調用問題,今天介紹一下如果調用IOS自帶的app的方法
一、調用app
store界面方法
在實際開發中,往往要推薦自己其他應用和推薦自己的收費軟體,那麼我們就需要在程序中直接連接到app store的相應頁面。實際上的做法很簡單,使用的還是UIApplication類的OpenURL方法:
[[UIApplication
sharedApplication] openURL:[NSURL URLWithString:@"程序的相應連接"]];
二、調用其它應用的方法。
D. 怎麼打開第三方應用程序
需求場景:
在自己開發的應用程序里,有個跳轉到其他應用的按鈕,比如分享到「新浪微博」,當點擊這個按鈕時,先判斷手機中是否有安裝「新浪微博」這個程序,有則啟動「新浪微博」客戶端,否則從指定的URL地址進行下載。
簡言之,開啟其他應用,包名跳轉。
1、從一個應用跳轉到其他應用要獲取什麼信息?
need第三方應用的包名,以及下載鏈接。
2、如何判斷本機是否已經安裝了該第三方應用?
(1)首先得到該程序的包名;
別人的應用程序我怎麼知道他的包名和類名?
- 通過adb裡面看程序裝的所有應用
- 寫一個遍歷程序,獲取所有已安裝的程序,把包名列印出來,新浪微博的包名中應該會帶有sina字眼,如 com.sina.weibo
//獲取已經安裝apk列表
List<PackageInfo> packList = context.getPackageManager().getInstalledPackages(0);
//獲得包名PackageInfo.packageName
(2)然後通過PackageManager判斷是否存在該包的程序 。
android的每一個apk的activity的包的名字都是唯一的,所以可以通過判斷這個activity所在包的名字來判斷是不是該Apk已經安裝
例1:
//以twitter程序為例,假設twitter程序包名為「com.twitter.android」。這時候可用以下代碼來判斷是否被安裝。
//QQ客戶端的包名是"com.tencent.mobileqq"
PackageInfo packageInfo;//PackageInfo所在包為android.content.pm
try {
packageInfo = this.getPackageManager().getPackageInfo("com.twitter.android", 0);
} catch (NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
if(packageInfo ==null){
System.out.println("沒有安裝");
}else{
System.out.println("已經安裝");
}
例2:可以封裝到方法里,操作一樣,只是把包名作為參數傳入,返回值為布爾類型
private boolean isPkgInstalled(String pkgName) {
PackageInfo packageInfo = null;
try {
packageInfo = this.getPackageManager().getPackageInfo(pkgName, 0);
} catch (NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
if (packageInfo == null) {
return false;
} else {
return true;
}
3、怎麼跳轉?
通過隱式intent跳轉
例3:PackageManager中有getLaunchIntentForPackage這個方法!
//String pkg代表包名,String download代表下載url
final PackageManager pm = context.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(pkg);
if (null == intent) {//沒有獲取到intent
if (!TextUtils.isEmpty(downoad)) {//跳轉到下載第三方應用界面
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(downoad)));
}
} else {
context.startActivity(intent);
}
例4:在我們自己的程序中調用其他程序時往往要檢查手機有沒有安裝該軟體後再做相應操作,如沒有安裝,用intent將用戶引導至android market去下載該程序,如已安裝則打開該程序,並傳入參數和調用其功能。
//下面介紹怎麼判斷手機已安裝某程序的方法:
private boolean isAvilible(Context context, String packageName){
final PackageManager packageManager = context.getPackageManager();//獲取packagemanager
List< packageInfo> pinfo = packageManager.getInstalledPackages(0);//獲取所有已安裝程序的包信息
List<String> pName = new ArrayList<String>();//用於存儲所有已安裝程序的包名
//從pinfo中將包名字逐一取出,壓入pName list中
if(pinfo != null){
for(int i = 0; i < pinfo.size(); i++){
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);//判斷pName中是否有目標程序的包名,有TRUE,沒有FALSE
}
//下面是調用該方法進行判斷後的邏輯:
//已安裝,打開程序,需傳入參數包名:"com.skype.android.verizon"
if(isAvilible(this, "com.skype.android.verizon")){
Intent i = new Intent();
ComponentName cn = new ComponentName("com.skype.android.verizon",
"com.skype.android.verizon.SkypeActivity");
i.setComponent(cn);
startActivityForResult(i, RESULT_OK);
}
//未安裝,跳轉至market下載該程序
else {
Uri uri = Uri.parse("market://details?id=com.skype.android.verizon");//id為包名
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
}
參考鏈接:http://www.eoeandroid.com/thread-152763-1-1.html?_dsign=2242c74c
4、跳轉後呢?
如何在android應用程序中啟動其他apk程序,被啟動程序退出後返回之前的程序?
//你只需要在A中打開B,並為B設置 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//不做對A的關閉處理finish() 這樣就可以了
Intent intent=new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setComponent(new ComponentName(objAppClassName, mainActivity));
context.startActivity(intent);
例5:原始跳轉方法,要包名和類名(通過ComponentName),後來可以只要包名…
Android 開發有時需要在一個應用中啟動另一個應用,比如Launcher載入所有的已安裝的程序的列表,當點擊圖標時可以啟動另一個應用。
一般我們知道了另一個應用的包名和MainActivity的名字之後便可以直接通過如下代碼來啟動:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
startActivity(intent);
但是更多的時候,我們一般都不知道應用程序的啟動Activity的類名,而只知道包名,我們可以通過ResolveInfo類來取得啟動Acitivty的類名。
下面是實現代碼:
private void openApp(String packageName) {
PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0);
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);
ResolveInfo ri = apps.iterator().next();
if (ri != null ) {
String packageName = ri.activityInfo.packageName;
String className = ri.activityInfo.name;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
startActivity(intent);
}
}
E. 如何通過android的應用程序調用另一個應用
如果你知道另外一個程序的類名就可以這樣寫
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentNamecn=newComponentName(packageName,className);
intent.setComponent(cn);
startActivity(intent);
2.如果你只知道包名不知道類名,首先獲取類名
privatevoidopenApp(StringpackageName){
PackageInfopi=getPackageManager().getPackageInfo(packageName,0);
IntentresolveIntent=newIntent(Intent.ACTION_MAIN,null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
List<ResolveInfo>apps=pm.queryIntentActivities(resolveIntent,0);
ResolveInfori=apps.iterator().next();
if(ri!=null){
StringpackageName=ri.activityInfo.packageName;
StringclassName=ri.activityInfo.name;
Intentintent=newIntent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentNamecn=newComponentName(packageName,className);
intent.setComponent(cn);
startActivity(intent);
}
}
然後使用1中的方法調用程序
F. c# 在窗體應用程序中如何調用計算機上的其他應用程序
有三種方式:
1.用shell,可以調用任意一個程序或文件
2.PROCESS,可以打開任意一個應用程序
這兩種方式均可以打開程序,但不能對程序中的函數進行訪問。
3.使用反射,這樣可以將程序載入到當前程序中,並對程序中的函數和方法進行訪問。
G. 怎樣在一個 C 程序中調用另一個程序 (獨立可執行的程序, 或系統命令)
使用庫函數 system(), 它的功能正是所要的。注意, 系統返回的值最多是命令的退出狀態值 (但這並不是一定的), 通常和命令的輸出無關。還要注意,system() 只接受一個單獨的字元串參數來表述調用程序。如果要建立復雜的命令行, 可以使用 sprintf()。根據使用的系統, 也許還可以使用系統函數, 例如exec 或 spawn (或execl,execv, spawnl, spawnv 等)。
H. 如何在一個應用程序中打開另一個程序
一, 調用自己開發的應用
1)在plist文件中,注冊對外介面
在xcode group&files 裡面,展開 resources選擇info.plist
滑鼠右擊information property list ,然後從列表中選擇URL types
右擊 add row 添加一個對象(item)右擊item add row
從列表中選擇 URL Schemes 再右擊添加一個對象(item1)
將item1得值設置為:myapp
這個myapp就是對外介面,其它應用可以通過它,調用該應用
plist如下圖所示:
2).處理URL請求
應用程序委託在 application:handleOpenURL:方法中處理傳遞給應用程序的URL請求。如果您已經為自己 的應用程序注冊了定製的URL模式,則務必在委託中實現這個方法。
下面代碼實現了這個委託方法;
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
if([[url scheme] isEqualToString:@"myapp"]){
[application setApplicationIconBadgeNumber:10];
return YES;
}
return NO;
}
3).測試外部調用
1.回到Home屏幕,啟動Safari(在iPhone模擬器上,在菜單上選擇Hardware->Home命令就可以回到Home屏幕)。
2.在Safari的地址欄中,鍵入使用定製模式的URL:myapp:
3.確認您的應用程序是否啟動,以及應用程序委託是否收到application:handleOpenURL:消息。
4)調用方法
在你需要調用上面注冊過對外介面的應用中,添加下面代碼即可
NSURL *url = [NSURL URLWithString:@"myapp:"];
[[UIApplication sharedApplication] openURL:url];
通過上述兩個步驟,你可以在你的應用中,讓用戶打開你的其它應用
二, 調用IOS自帶的應用
上面講述的是調用自身的應用,講解了如何在自己應用之間調用問題,今天介紹一下如果調用IOS自帶的app的方法
一、調用app store界面方法
在實際開發中,往往要推薦自己其他應用和推薦自己的收費軟體,那麼我們就需要在程序中直接連接到app store的相應頁面。
實際上的做法很簡單,使用的還是UIApplication類的OpenURL方法:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"程序的相應連接"]];
二、調用其它應用的方法
I. 如何在c語言中打開另一個程序
一, 調用自己開發的應用
1)在plist文件中,注冊對外介面
在xcode group&files 裡面,展開 resources選擇info.plist
滑鼠右擊information property list ,然後從列表中選擇URL types
右擊 add row 添加一個對象(item)右擊item add row
從列表中選擇 URL Schemes 再右擊添加一個對象(item1)
將item1得值設置為:myapp
這個myapp就是對外介面,其它應用可以通過它,調用該應用
plist如下圖所示:
2).處理URL請求
應用程序委託在 application:handleOpenURL:方法中處理傳遞給應用程序的URL請求。如果您已經為自己 的應用程序注冊了定製的URL模式,則務必在委託中實現這個方法。
下面代碼實現了這個委託方法;
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
if([[url scheme] isEqualToString:@"myapp"]){
[application setApplicationIconBadgeNumber:10];
return YES;
}
return NO;
}
3).測試外部調用
1.回到Home屏幕,啟動Safari(在iPhone模擬器上,在菜單上選擇Hardware->Home命令就可以回到Home屏幕)。
2.在Safari的地址欄中,鍵入使用定製模式的URL:myapp:
3.確認您的應用程序是否啟動,以及應用程序委託是否收到application:handleOpenURL:消息。
4)調用方法
在你需要調用上面注冊過對外介面的應用中,添加下面代碼即可
NSURL *url = [NSURL URLWithString:@"myapp:"];
[[UIApplication sharedApplication] openURL:url];
通過上述兩個步驟,你可以在你的應用中,讓用戶打開你的其它應用
二, 調用IOS自帶的應用
上面講述的是調用自身的應用,講解了如何在自己應用之間調用問題,今天介紹一下如果調用IOS自帶的app的方法
一、調用app store界面方法
在實際開發中,往往要推薦自己其他應用和推薦自己的收費軟體,那麼我們就需要在程序中直接連接到app store的相應頁面。
實際上的做法很簡單,使用的還是UIApplication類的OpenURL方法:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"程序的相應連接"]];
二、調用其它應用的方法
J. 如何在自己的應用程序中啟動其他應用程序
一,
調用自己開發的應用
1)在plist文件中,注冊對外介面
在xcode
group&files 裡面,展開 resources選擇info.plist
滑鼠右擊information
property list ,然後從列表中選擇URL types
右擊
add row 添加一個對象(item)右擊item add row
從列表中選擇
URL Schemes 再右擊添加一個對象(item1)
將item1得值設置為:myapp
這個myapp就是對外介面,其它應用可以通過它,調用該應用
plist如下圖所示:
2).處理URL請求
應用程序委託在 application:handleOpenURL:方法中處理傳遞給應用程序的URL請求。如果您已經為自己
的應用程序注冊了定製的URL模式,則務必在委託中實現這個方法。
下面代碼實現了這個委託方法;
-
(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL
*)url
{
if([[url
scheme] isEqualToString:@"myapp"]){
[application
setApplicationIconBadgeNumber:10];
return
YES;
}
return
NO;
}
3).測試外部調用
1.回到Home屏幕,啟動Safari(在iPhone模擬器上,在菜單上選擇Hardware->Home命令就可以回到Home屏幕)。
2.在Safari的地址欄中,鍵入使用定製模式的URL:myapp:
3.確認您的應用程序是否啟動,以及應用程序委託是否收到application:handleOpenURL:消息。
4)調用方法
在你需要調用上面注冊過對外介面的應用中,添加下面代碼即可
NSURL
*url = [NSURL URLWithString:@"myapp:"];
[[UIApplication
sharedApplication] openURL:url];
通過上述兩個步驟,你可以在你的應用中,讓用戶打開你的其它應用
二,
調用IOS自帶的應用
上面講述的是調用自身的應用,講解了如何在自己應用之間調用問題,今天介紹一下如果調用IOS自帶的app的方法
一、調用app
store界面方法
在實際開發中,往往要推薦自己其他應用和推薦自己的收費軟體,那麼我們就需要在程序中直接連接到app
store的相應頁面。
實際上的做法很簡單,使用的還是UIApplication類的OpenURL方法:
[[UIApplication
sharedApplication] openURL:[NSURL URLWithString:@"程序的相應連接"]];
二、調用其它應用的方法