[問題] CreateProcess 隱藏視窗問題

看板C_and_CPP作者 (nola)時間10年前 (2014/01/16 10:53), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) BCB5, Win7 問題(Question): 大家好, 我用 CreateProcess 呼叫一個視窗程式, 但不希望它秀出該程式介面 測試後呼叫 cmd.exe 可以成功, 但呼叫自己寫的視窗程式則失敗, 請問是哪邊有問題? 程式碼(Code):(請善用置底文網頁, 記得排版) STARTUPINFO si; PROCESS_INFORMATION pi; memset(&si, 0, sizeof(si)); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; if(CreateProcess(NULL, "MyAppPath\\app.exe", NULL, NULL, \ FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi) == false) { ShowMessage(SysErrorMessage(GetLastError())); } WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hThread); ps. MyAppPath\app.exe 若改成 c:\windows\system32\cmd.exe 可以成功執行 cmd 但不秀出 cmd 視窗, 但換成自己寫的小程式則不行 小程式只有一個 timer 和 form 麻煩大家幫幫我了, 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.188.59

01/16 11:10, , 1F
"MyAppPath\\app.exe"
01/16 11:10, 1F
謝謝, 那部份我簡寫了(已修正), 並不是那裡的問題 ※ 編輯: nola3388 來自: 59.120.188.59 (01/16 11:50)

01/16 14:19, , 2F
app.exe是一個console application嗎?
01/16 14:19, 2F

01/16 14:19, , 3F
還是windows application?
01/16 14:19, 3F
Window application ※ 編輯: nola3388 來自: 59.120.188.59 (01/16 14:50)

01/16 15:15, , 4F
抱歉, 其實你的內文就有寫Form沒看到. 不過這樣的話, 好
01/16 15:15, 4F

01/16 15:16, , 5F
奇你為何會寫了一個windows app卻又不希望show出來
01/16 15:16, 5F
因為本體程式會呼叫小程式做一個加密的動作, 原本是全部檔案一起加密 但現在想要偷做, 也就是使用者改過一個檔案後就先幫那個檔案加密, 加快處理速度 但又不想讓使用者知道, 所以要將原本的小程式隱藏起來 ※ 編輯: nola3388 來自: 59.120.188.59 (01/16 15:53)

01/16 17:42, , 6F
可以考慮修改app.exe, 將function export, 以dll的型式
01/16 17:42, 6F

01/16 17:42, , 7F
呼叫
01/16 17:42, 7F

01/17 08:23, , 8F
你也可以讓c#那個程式接受參數啊 用參數讓他自己不要顯示
01/17 08:23, 8F
請問用參數讓它不顯示要怎麼寫? 沒有概念, 謝謝 ※ 編輯: nola3388 來自: 59.120.188.59 (01/17 09:45)

01/19 17:57, , 9F
意思是改那隻外部程式使得他可以用一個參數指定不顯示視窗
01/19 17:57, 9F

02/07 15:53, , 10F
把那視窗設成不可視就行了
02/07 15:53, 10F
文章代碼(AID): #1Irqd3n7 (C_and_CPP)