Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > C# winApp จะเปิดโปรแกรมแบบไม่ให้มีหน้า console ค้างมาแบบนี้ได้ยังไง ครับ



 

C# winApp จะเปิดโปรแกรมแบบไม่ให้มีหน้า console ค้างมาแบบนี้ได้ยังไง ครับ

 



Topic : 136775



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook



333

โค้ด

Code (C#)
/// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (args.Length <= 0)
            {
                Application.Run(new frmMain(""));
            }
            else
            {
                Application.Run(new frmMain(args[0]));
            }
           
        }



คือหลักๆ จะลองเขียนโปรแกรมที่เรียกใช้ผ่าน command line ได้ดูซักโปรแกรมครับ
มันเรียกใช้ได้ แต่พอมีหน้า console ขึ้นมาแล้วแลดูไม่งาม ครับ

Code All
https://github.com/mongkonP/CopyToR



Tag : .NET, Win (Windows App), C#









ประวัติการแก้ไข
2022-08-10 09:56:17
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2022-08-10 09:02:26 By : lamaka.tor View : 690 Reply : 9
 

 
ทางตรงคือ ทำเป็น class library https://www.c-sharpcorner.com/UploadFile/1e050f/creating-and-using-dll-class-library-in-C-Sharp/
ทางเลี่ยง คือ Win API https://stackoverflow.com/a/3571628






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-10 09:20:15 By : 009
 


 

No. 2



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 1 เขียนโดย : 009 เมื่อวันที่ 2022-08-10 09:20:15
รายละเอียดของการตอบ ::
ลองตาม stackoverflow แล้วไม่รอด ครับ(ยังขึ้นเหมือนเดิม)
แล้วถ้าเราสร้างเป็น class library เราจะยังสามารถเรียกใช้ผ่าน command line ได้อีกไม๊ ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-10 09:53:22 By : lamaka.tor
 

 
ตอบความคิดเห็นที่ : 2 เขียนโดย : lamaka.tor เมื่อวันที่ 2022-08-10 09:53:22
รายละเอียดของการตอบ ::
การใช้ WinAPI ที่ไม่รอดเกิดจากหลายสาเหตุ อาจเพราะกำหนด path dll ไม่ถูกต้อง ลองใส่ absolute/full path
หรืออาจเกิดจาก process ยังไม่รัน อันนี้ต้อง wait process แล้วหา PID ให้ถูกต้อง เป็นต้น

class library มีประโยชน์สำหรับใช้ภายใน internal application สามารถทำทุกอย่างได้เหมือน command line แม้กระทั่งกำหนด switch option หรือ การรับ arguments


สำหรับ 3rd party library/app ถ้าเรียกผ่าน Process.Start
ให้กำหนด UseShellExecute = false ด้วย

Code
startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true;


https://stackoverflow.com/a/14765016
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-10 10:16:21 By : 009
 


 

No. 4



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ถ้าในกรณีที่เราต้องใช้ร่วมกับ task scheduler ควรเลือกเขียนเป็นแบบไหนดีครับ
ตอนแรกว่าจะเขียนเป็น windows service
แต่มันก็ได้ทำทำงานตลอดเวลาขนาดนั้น ครับ
เลยคิดว่าน่าจะฝาก task scheduler ดึงมามาทำงานดีกว่า(รึปล่าว)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-10 10:21:46 By : lamaka.tor
 


 
windows service ถูกออกแบบให้ทำงานเบื้องหลัง background process อยู่แล้ว
task scheduler ทำงานทั้งหน้าและหลัง

แต่ทั้งสอง เป็นการทำงานแบบ auto เหมือนกัน กำหนดช่วงความถี่เวลาได้เหมือนกัน
หรือก็คือขั้นตอนการเรียกใช้โปรแกรม ส่วนจะะลือกเขียนแบบไหนผมมองว่าแล้วแต่ความสะดวก

ลองดูทู้นี้ (Process.Start + schtasks)
https://stackoverflow.com/questions/6402969/c-sharp-using-scheduled-tasks-with-process-start



ถ้าถามผม ส่วนตัวจะเลือก class library + windows service (เว้นแต่ใช้ executable file ของคนอื่น จึงจะใช้ Process.Start)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-10 11:30:32 By : 009
 


 

No. 6



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 5 เขียนโดย : 009 เมื่อวันที่ 2022-08-10 11:30:32
รายละเอียดของการตอบ ::
ถ้าใช้เป็น windows service มันก็จะทำงานตลอดเวลา เลยมองว่ามันสิ้นเปลืองเกินไปครับ
เลยมาลองเรียกใช้งานผ่าน task scheduler ที่มันต้องทำงานอยู่แล้ว แทน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-10 14:27:29 By : lamaka.tor
 


 

No. 7



โพสกระทู้ ( 821 )
บทความ ( 0 )



สถานะออฟไลน์


ใน bat ลองใช้คำสั่ง start ดูครับ
start "" "c:\a.exe"


ประวัติการแก้ไข
2022-08-10 17:40:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-10 17:35:54 By : fonfire
 


 

No. 8



โพสกระทู้ ( 9,556 )
บทความ ( 2 )



สถานะออฟไลน์


เขียน window service นั่นแหล่ะ
แยก กำรทำงานเป็น library เวลาทำงาน มันถีงจะโหลดเข้าหน่วยความจำ พอมันทำงานเสร็จก็สั่ง destroy object นั้น ๆ
ใช้ using library ให้เป็นประโยชน์

มันไม่ได้เปลืองหน่วยความจำมากมาย อยู่ที่ออกแบบ
อย่ารวมงาน ไว้ ใน exe ตัวเดียวก็พอ

เพิ่มเติม
window มันใช้ port ควบคุม event 64k(2byte) หน่วย เสีย port เพิ่ม อีกสัก 10 หน่วย มันคงไม่เดี้ยงหรอกมั้ง 555555

ลองเปิดดู service ใน task manager ดูครับ มีรันอยู่แค่ไหน เพิ่มโปรแกรมเราเข้าไป อีกสัก 1-2 พัน ตัว ยังรับได้อีกเยอะเลย
ปล. แต่ไม่ใช่ทำงานพร้อมกันนะ 555555 มันแค่ port ควบคุม event ที่ใช้น้อย แต่ถ้ามัน active ก็ตัวใครตัวเผือก นะครับ


ประวัติการแก้ไข
2022-08-11 07:15:51
2022-08-11 07:24:37
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-11 07:10:59 By : Chaidhanan
 


 

No. 9



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 7 เขียนโดย : fonfire เมื่อวันที่ 2022-08-10 17:35:54
รายละเอียดของการตอบ ::
ถ้าเรียกใช้ไฟล์เฉยๆ ได้ครับ
แต่ถ้ามี arg เข้าไปด้วย
มันจะรันทั้งหน้าฟอร์ม และ หน้า console มาด้วย ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-11 09:01:13 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# winApp จะเปิดโปรแกรมแบบไม่ให้มีหน้า console ค้างมาแบบนี้ได้ยังไง ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่