| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		a2336456
 
 
  註冊時間: 2015-09-01 文章: 25
 
  第 1 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 8:09 am    文章主題: 其他應用程式已開啟,無法完成動作 | 
				     | 
			 
			
				
  | 
			 
			
				client / server 的程式都會做捷徑給 user 使用,
 
 
可是有人開啟的情況下無法更新 exe,
 
 
電話一個一個要求關閉程式,仍然找不到誰開啟,
 
 
前輩們可以分享一下經驗嗎? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 2 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 8:44 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				SERVER 重開機後更新.
 
 
 
----
 
應該會被打死...... _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 3 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 9:11 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				解決的旁門左道可能很多,
 
但我認為syntech的方法最好。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		a2336456
 
 
  註冊時間: 2015-09-01 文章: 25
 
  第 4 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 9:12 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				怕 user 資料沒存檔 ...
 
 
   | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 5 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 9:22 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				本機(我的電腦)按滑鼠右鍵選"管理" -->共用資料夾-->開啟檔案->滑鼠右鍵選你要關的檔案main.exe ->關閉開啟的檔案. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		a2336456
 
 
  註冊時間: 2015-09-01 文章: 25
 
  第 6 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 9:27 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | garfield 寫到: | 	 		  | 本機(我的電腦)按滑鼠右鍵選"管理" -->共用資料夾-->開啟檔案->滑鼠右鍵選你要關的檔案main.exe ->關閉開啟的檔案. | 	  
 
 
 
感謝,
 
 
如果是 SERVER 應該可以,
 
 
不過 NAS 有自己的作業系統 ... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 7 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 9:52 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				那你只好做2個排程, 先在半夜重啟設備, 再排程更新程式. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		CPS0204
 
 
  註冊時間: 2014-08-24 文章: 482
 
  第 8 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 10:40 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我的作法是:不直接拉exe當捷徑
 
改拉一個批次檔,例: start000.bat
 
內容為
 
call   my_exe1.exe    
 
當有更新exe時,有人佔注my_exe1.exe 時,就將此批次檔內容改為
 
call my_exe2.exe 或 call my_exe3.exe 一直輪迴
 
 
此時一定可以更新!
 
但也是需廣撥一下,請大家離線再登錄一次!
 
至於開機上線後,人不見了,也沒退出系統者...............就沒轍了 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		a2336456
 
 
  註冊時間: 2015-09-01 文章: 25
 
  第 9 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 12:56 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 謝謝各位鼎力相助! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bx1166
 
 
  註冊時間: 2011-12-06 文章: 273
 
  第 10 樓
  | 
		
			
				 發表於: 星期三 一月 11, 2017 6:38 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				程式改放在每個client的電腦上,用個批次檔代替你的程式自動更新
 
Main.bat
 
:start
 
If  exist newexe.exe go to update
 
Oldexe
 
Go to end
 
:update
 
Dele oldexe.exe
 
Rename newexe.exe oldexe.exe
 
Go to start
 
:end | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 11 樓
  | 
		
			
				 發表於: 星期四 一月 12, 2017 10:21 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				這個批次檔在有人使用oldexe時又有放入newexe.exe 就會打死結. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bx1166
 
 
  註冊時間: 2011-12-06 文章: 273
 
  第 12 樓
  | 
		
			
				 發表於: 星期四 一月 12, 2017 10:36 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 所以説放在client. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 13 樓
  | 
		
			
				 發表於: 星期四 一月 12, 2017 10:57 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				那要將 newexe.exe  複制到每一台電腦太麻煩了.
 
如果可以請使用者自己copy newexe.exe , 不如直接copy 要使用的oldexe.exe 就好了.
 
這樣就不是自動更新的功能.
 
 
除非你可以在 oldexe.exe 裡有包含一個判斷server有無newexe.exe,且它的檔案日期時間 跟oldexe.exe不一樣 , 就將它複製到local端.
 
這樣這個批次檔才能使用. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		a2336456
 
 
  註冊時間: 2015-09-01 文章: 25
 
  第 14 樓
  | 
		
			
				 發表於: 星期一 一月 16, 2017 1:51 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我發現用 windows rdp 進系統,沒登出的話也會鎖住。
 
目前遇到有很多方法可以鎖住 exe。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		perry
 
 
  註冊時間: 2014-07-20 文章: 203
 
  第 15 樓
  | 
		
			
				 發表於: 星期一 一月 16, 2017 7:02 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				這是個人的自動更新方式,您看看合不合用!!
 
複製 a.exe 到 User 端,並執行
 
 	  | 代碼: | 	 		  
 
*****************
 
*a.exe
 
*main.prg
 
*****************
 
PROC MAIN
 
LPAR XUP_IO
 
PRIV UP_IO
 
UP_IO=IIF(PARA()<1,0,1)
 
SET TALK OFF
 
PRIV log_server
 
log_server='\\MYServerName'
 
      PRIV o_ru
 
      o_ru=CREA('WSCRIPT.SHELL')
 
      o_ru.RUN('NET TIME '+log_server+' /SET /Y ')
 
      chfi_name1=log_server+'\TEST\A1.EXE'
 
      chfi_name2='C:\TEST\A1.EXE'
 
      IF !FILE(chfi_name2)
 
          COPY FILE (chfi_name1) TO (chfi_name2)
 
      ENDI
 
      IF ADIR(DD_SS1,chfi_name1)>0
 
         IF ADIR(DD_SS2,chfi_name2)>0
 
            IF DD_SS1(1,2)#DD_SS2(1,2) OR ;
 
                DD_SS1(1,3)#DD_SS2(1,3) OR ;
 
                DD_SS1(1,4)#DD_SS2(1,4)
 
               ON ERROR DO ERR_MSG
 
               IF UP_IO=1
 
                   A_T=DATETIME()+3
 
                   DO WHIL DATETIME()<A_T
 
                       IF DATETIME()>A_T
 
                           EXIT
 
                       ENDI
 
                   ENDDO
 
               ENDI
 
               ERAS (chfi_name2)
 
               ON ERROR
 
                    COPY FILE (chfi_name1) TO (chfi_name2)
 
            ENDI
 
         ENDI
 
            o_ru.RUN(chfi_name2)
 
      ENDI
 
 
PROC ERR_MSG
 
MESSAGEBOX(CHR(13)+'�{式執行中無法自動更新!!'+CHR(13),16)
 
QUIT
 
 
*****************
 
*a1.exe
 
*main.prg
 
*****************
 
PROC MAIN
 
SET TALK OFF
 
DO NEWEXECK
 
.
 
.
 
.
 
PROC NEWEXECK
 
PRIV log_server
 
log_server='\\MYServerName'
 
      PRIV chfi_name1,chfi_name2
 
      chfi_name1=log_server+'\TEST\A1.EXE'
 
      chfi_name2='C:\TEST\A1.EXE'
 
      IF ADIR(DD_SS1,chfi_name1)>0
 
         IF ADIR(DD_SS2,chfi_name2)>0
 
            IF DD_SS1(1,2)#DD_SS2(1,2) OR ;
 
                DD_SS1(1,3)#DD_SS2(1,3) OR ;
 
                DD_SS1(1,4)#DD_SS2(1,4)
 
                MESSAGEBOX(CHR(13)+'已有新�{式...'+CHR(13)+;
 
                    '按 [確定] 後自動執行更新並重啟�{式!!',0+64+0,'提  示')
 
                CLOS ALL
 
               o_ru=CREA('WSCRIPT.SHELL')
 
               o_ru.RUN('C:\TEST\A.EXE 1')
 
                QUIT
 
            ENDI
 
         ENDI
 
      ENDI
 
ENDPROC
 
 | 	 
  | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |