Proses waitforexit tidak keluar

Proses waitforexit tidak keluar

Free-binary-options-trading-platform
Trade-options-instead-of-stocks
Trading-system-drawdown


Bagaimana-untuk-perdagangan-biner-pilihan-menguntungkan review situs Forex-trading-uk-taxation-guide Vg¤xla-pengar-forex-under-18 Stock-options-social-security-benefits Daftar-pilihan-daftar broker-daftar-yang diatur Kisah forex yang sukses

Pertanyaan ini mungkin tampak sedikit aneh tapi saya mencoba menjalankan VS2005 melalui sebuah proses dan menjalankan perintah tertentu dan saya waitforexit (). Saya mengalihkan masukan dan keluaran saya dengan sukses namun sesekali saya kebetulan menerima Window Error Reporting WindowMessage. Masalahnya adalah saya sedang melakukan remoting, jadi ketika messagewindow ini terjadi selama eksekusi proses, saya akan bertahan kecuali saya login ke mesin Remoting lain dan menutup jendela. Apakah ada cara untuk mematikan jendela ini secara programatik atau mungkin menonaktifkan messagewindow dari kejadian yang saya pikirkan untuk menjalankan VS dalam eksekusi diam (saya belum menemukan cara untuk melakukannya). Saya juga mencoba untuk melihat apakah ada sesuatu yang digali saat ini terjadi bila dibandingkan. Thursday, October 25, 2007 8:32 PM Nah, saya mencoba menggunakan FindWindow dan FindWindowEx bersama SendMessage namun saya tidak dapat menemukan pegangan jendela yang benar. Tapi karena saya tahu bahwa Windows Error Reporting Msssage Box akan muncul, saya memeriksa untuk melihat apakah itu adalah prosesnya sendiri (dan memang benar). Prosesnya adalah dwwin.exe (Dr. Watson Win) dan yang harus saya lakukan adalah membiarkan diri memperbaiki masalah saat ini. Gantikan blok kode saat ini di bawah untuk WaitForExit () pernyataan yang saya miliki sebelumnya. Proc.WaitForExit (60000) satu menit Process ProcArray Process.GetProcessesByName (quotdwwinquot) foreach (Process ProcessFound in ProcArray) Saya juga memeriksa untuk melihat apakah Anda bisa mendapatkan Process.MainWindowTitle (), tapi sudah diatur ke kuotot. Jadi ini adalah hack dan saya benar-benar tidak suka menggunakannya, tapi bekerja untuk eksekusi saat ini. Senin, 29 Oktober 2007 7:26 PM Tidak, saya bisa mengarahkan input dan output tanpa masalah. Kesalahan yang saya terima adalah kesalahan pelaporan jendela umum dan sayangnya, dalam bahasa Jepang saya tidak tahu apa kesalahan sebenarnya, tapi ini adalah kesalahan umum. Saya tidak memiliki kode di depan saya tapi saya mengatur delegatesthreads untuk membaca pengalihan kesalahan dan keluaran setelah saya keluar dari keseluruhan proses. Saya tidak bisa datang dengan apapun dan saya bisa menjalankan proses yang sama di komputer saya sendiri tapi saya tidak dapat melakukan perintah khusus ini melalui remoting. Saya akan mencobanya besok Remoting pada mesin non-Jepang di tempat kerja dan saya akan posting temuan saya terlepas. Friday, October 26, 2007 2:34 AM Apakah Anda menjalankan konsol quotcmdquot. Jika iya maka Anda harus mengetik exit juga. Friday, October 26, 2007 4:50 AM Jika Anda tahu berapa banyak waktu yang akan diambil proses Anda, maka Anda dapat menggunakan proses bool exitted.WaitForExit (timeInMilliSeconds) jika (exitted) Proses dikeluarkan sebelum batas waktu habis. Lain Cetak pesan kesalahan Ini mungkin tidak terkait dengan apa yang Anda lakukan, namun saya memiliki pengalaman di mana proses tidak akan keluar jika saya mengalihkan hasilnya. Coba nonaktifkan pengalihan output dan lihat apakah prosesnya keluar. Cobalah, ini bisa berhasil. Friday, October 26, 2007 11:58 AM Saya ingin mencobanya, tapi terlalu banyak hack. Saya memiliki terlalu banyak perintah yang berbeda yang mengambil jumlah waktu yang berbeda (30 detik sampai 25 menit) sehingga tidak ada pengaturan waktu nyata yang dapat saya tempatkan tanpa menghancurkan kinerja saya. Fungsi ini telah bekerja dengan benar untuk beberapa perintah selama 6 bulan terakhir dan sekarang memutuskan untuk keluar pada saya. Saya mencobanya di komputer yang berbeda tanpa masalah (yang benar-benar mengacaukan saya). Saya tahu itu bukan pengalihan outputerror karena WINDOW baru sedang dibuat di server yang saya remoting. Begitu saya menutup jendela itu, proses saya keluar seperti yang diharapkan dan output yang benar ditampilkan di sisi User. Terima kasih atas bantuan Anda, tapi saya benar-benar frustrasi dengan masalah ini. Friday, October 26, 2007 3:01 PM Tanpa mengetahui detail pesannya hanya menebak masalahnya. Sudahkah anda menginstall beta 3.5 beta atau Visual Studio 2008 sama sekali Bagaimana anda menggunakan Proses untuk memulai program, Process.Start (quotfile.exequot), atau apakah anda menggunakan ProcessStartInfo Friday, October 26, 2007 3:21 PM Tidak, saya punya 2003 dan 2005 terpasang. Proc new Process () procSI new ProcessStartInfo () Saya kemudian membuat thread baru untuk StandardError dan StandardOutput saya kemudian menulis perintah saya dan jika (redirect standard standard out) Start thread for st. Out If (redirect standar error) Mulai thread untuk st. Kesalahan Proc.WaitForExit () lt -------- ini adalah tempat jendela Windows Error Reporting Generik terjadi. Saya menerjemahkan apa yang saya dapat dari Window yang muncul. Microsoft Visual Studio 2005 Karena masalah terjadi, ia mengakhiri Microsoft Visual Studio 2005. Kami menerapkan ketidaknyamanan, tidak ada alasan. Terima kasih lagi untuk semua waktu Anda. Saya membuat StreamWriter sIn sebelum membuat objek Proses proc. Saya kemudian mengarahkan ulang masukan setelah perintah proc.Start (), jadi bagaimana saya tidak memilikinya? Apapun, saya dapat membuat perubahan untuk memindahkan sIn.Close () ke setelah panggilan WaitForExit untuk melihat apakah ini membuat perubahan. Proc adalah tipe, seharusnya proc. Sekali lagi, ini bukan pesan kesalahan, jadi tidak ada jejak stack. Pengalihan StandardError saya kosong dan pengalihan OUtput Standar berisi yang saya harapkan, namun tidak ada yang menunjukkan adanya kesalahan. Inilah sebabnya mengapa semuanya masih bekerja setelah saya menutup jendela Pelaporan Galat Windows. Saya akan memposting apa yang terjadi setelah saya memindahkan baris sIn.Close () di bawah garis WaitForExit (). Friday, October 26, 2007 4:59 PM Peter Ritchie wrote: Anda tidak ingin menutup objek sIn sampai setelah aplikasi telah keluar jika youre redirecting. Seseorang seharusnya tidak menutup aliran tersebut sama sekali. Objek Proses memilikinya dan merekalah yang bertanggung jawab untuk membersihkan dirinya sendiri. Kita harus memanggil Process.Dispose () setelah selesai dengan objek Process. Anda tentu tidak perlu (saya itu berlebihan) tapi seharusnya tidak menimbulkan masalah setelah prosesnya keluar. Process.Close adalah metode yang disarankan untuk menutup stream standardinput dan standardoutput (dan standarderror). Friday, October 26, 2007 5:03 PM Saya akan surpised jika metode Dispose tidak memanggil Close, setidaknya sebagai bagian dari operasinya. Saya lebih suka menggunakan fakta bahwa karena Proses mengimplementasikan IDisposable (secara tidak langsung melalui Memperluas Komponen yang menerapkannya), seseorang harus meminta Buang dan membiarkannya melakukan pembersihan yang benar. Saya tidak akan merekomendasikan memohon Process.Close bukan, atau sebagai tambahan, Process.Dispose. Ya, Buang panggilan Tutup. Rekomendasi pertama saya adalah menggunakan blok pakai, yang kedua adalah memanggil Close saat Anda tahu kapan Anda melakukannya. Dalam objek yang menerapkan metode quotClosequot meskipun IDisposable, jauh lebih jelas untuk menggunakan metode quotClosequot. Plus tanpa menggunakan blok penggunaan Anda tidak memiliki cara untuk melompati variabel dan panggilan ke Dispose - objek dapat digunakan setelah panggilan ke Dispose. Jika Anda menggunakan Close youve, buang semua sumber daya terkelola Anda namun objeknya tetap dapat digunakan (misalnya, hasnt telah ditandai sebagai quotdisposedquot dan Anda dapat menggunakannya untuk menjalankan aplikasi lain tanpa mengalokasikan objek Proses baru - yang jika tidak akan membuang ObjectDisposedException ). Friday, October 26, 2007 6:09 PM Jadi jika rekomendasi pertama adalah menggunakan blok pakai, maka yang terbaik berikutnya adalah memanggil Dispose. Tidak Tutup, kapan, seperti yang Anda katakan, Anda tahu bahwa Anda melakukannya dengan objek itu. Dengan hanya memanggil Close pada sesuatu yang mengimplementasikan IDisposable, pengembang berpotensi melakukan kesalahan. Jika Buang melakukan pembersihan tambahan selain hanya mendelegasikan ke Close, maka pemrogram menyiapkan dirinya untuk mendapatkan bug dengan hanya menelepon Close. Mungkin ada kasus untuk menelepon Close, tapi hanya jika Anda tidak melakukannya dengan objek itu, seperti yang Anda sebutkan di bagian bawah balasan terakhir Anda. Tapi saat selesai dengan itu, sebut Buang. Friday, October 26, 2007 6:20 PM Jadi jika rekomendasi pertama adalah menggunakan blok pakai, maka yang terbaik berikutnya adalah memanggil Dispose. Tidak Tutup, kapan, seperti yang Anda katakan, Anda tahu bahwa Anda melakukannya dengan objek itu. Dengan hanya memanggil Close pada sesuatu yang mengimplementasikan IDisposable, pengembang berpotensi melakukan kesalahan. Jika Buang melakukan pembersihan tambahan selain hanya mendelegasikan ke Close, maka pemrogram menyiapkan dirinya untuk mendapatkan bug dengan hanya menelepon Close. Mungkin ada kasus untuk menelepon Close, tapi hanya jika Anda tidak melakukannya dengan objek itu, seperti yang Anda sebutkan di bagian bawah balasan terakhir Anda. Tapi saat selesai dengan itu, sebut Buang. Sebenarnya, yang quototesquot setara dengan: DisposableClass obj baru DisposableClass () IDisposable sekali pakai obj sebagai IDisposable jika (sekali pakai null) Tapi iya, thats apa pernyataan menggunakan quotfunctionally equivalentquot tapi saya tidak setuju secara eksplisit memanggil Buang dengan adanya metode quotClosequot harus Jadilah pilihan pertama karena minimnya pelingkupan dengan dispose call. Sebagai contoh, berikut ini: Menggunakan (Process process new Process ()) Saya menjalankan servis, tapi saya menghentikannya karena telah berjalan selama 2 jam dan tidak pernah ada breakpoint yang seharusnya bisa terkena dalam waktu 10 menit setelah saya memulai klien. Saya tidak memberi komentar pada baris sIn.Close () sekarang dan memulai kembali layanan dan Klien dan semuanya berjalan seperti sebelumnya. Saya bisa menekan breakpoint setelah WaitForExit () dan saya selesai, dengan pesan Error Reporting Windows masih (seperti sebelumnya). Jadi, dalam kasus saya, saya PERLU untuk menutup input stream agar bisa keluar dari proses seperti yang diharapkan. Apakah ada ide lain yang bisa saya recomment pada baris sIn.Close () jika Anda ingin memeriksa sesuatu. Friday, October 26, 2007 7:19 PM Anthony Maimone menulis: Saya menjalankan layanan ini, tapi saya menghentikannya karena sudah berjalan selama 2 jam dan tidak pernah ada breakpoint yang seharusnya bisa terjadi dalam waktu 10 menit setelah saya memulai klien saya. . Saya tidak memberi komentar pada baris sIn.Close () sekarang dan memulai kembali layanan dan Klien dan semuanya berjalan seperti sebelumnya. Saya bisa menekan breakpoint setelah WaitForExit () dan saya selesai, dengan pesan Error Reporting Windows masih (seperti sebelumnya). Jadi, dalam kasus saya, saya PERLU untuk menutup input stream agar bisa keluar dari proses seperti yang diharapkan. Apakah ada ide lain yang bisa saya recomment pada baris sIn.Close () jika Anda ingin memeriksa sesuatu. Akan sangat membantu jika melihat rincian pengecualian saat Anda mendapatkan kesalahan (seperti tumpukan panggilan). Bagaimana Anda menggunakan input standar dan output standar Apakah Anda menggunakan metode ReadLine Peter, maksud saya adalah: Jika Anda tidak memanggil Buang pada objek yang mengimplementasikan (secara langsung atau tidak langsung) IDisposable, maka Anda hanya meminta bug. Saya tidak ingin berdebat tanpa henti ini. Anda dapat terus melakukannya seperti yang Anda lakukan, dan saya bertahan dengan saya. Selama kita tidak perlu saling menjaga kode, baiklah. Dan omong-omong, blok quotusingquot juga tidak melindungi Anda. Tidak ada yang menghentikan Anda untuk menyatakan variabel di luar blok (jika saya mengingatnya dengan benar), sehingga masih bisa berada dalam lingkup setelah blok berakhir. Anda harus rajin menulis kode yang benar. Jika Anda mendeklarasikannya dalam pernyataan quotusingquot, itulah satu cara. Tapi untuk memberhentikan menggunakan pendekatan tryfinally hanya karena meninggalkan variabel dalam lingkup sebenarnya bukan intinya. Masih perlu Dispose () d di suatu tempat. Friday, October 26, 2007 7:34 PM Peter Ritchie menulis: Anthony Maimone menulis: Saya menjalankan layanan ini, tapi saya menghentikannya karena telah berjalan selama 2 jam dan tidak pernah ada breakpoint yang seharusnya dipukul dalam waktu 10 menit dari Saya memulai klien saya Saya tidak memberi komentar pada baris sIn.Close () sekarang dan memulai kembali layanan dan Klien dan semuanya berjalan seperti sebelumnya. Saya bisa menekan breakpoint setelah WaitForExit () dan saya selesai, dengan pesan Error Reporting Windows masih (seperti sebelumnya). Jadi, dalam kasus saya, saya PERLU untuk menutup input stream agar bisa keluar dari proses seperti yang diharapkan. Apakah ada ide lain yang bisa saya recomment pada baris sIn.Close () jika Anda ingin memeriksa sesuatu. Akan sangat membantu jika melihat rincian pengecualian saat Anda mendapatkan kesalahan (seperti tumpukan panggilan). Bagaimana Anda menggunakan input standar dan keluaran standar Apakah Anda menggunakan metode ReadLine lagi, ini bukan pengecualian yang dilempar, jadi saya tidak melihat rincian pengecualian apa pun. Saya tidak langsung ke blok tangkapan dalam kode saya, saya melanjutkan LANGSUNG setelah WaitForExit () menelepon. Jendela yang saya terima sama dengan yang Anda dapatkan saat produk SETIAP Microsoft tiba-tiba ditutup dan MS menginginkan informasi tentang Crash. Jadi sekali lagi, tidak ada rincian pengecualian. Namun di salah satu System Logs, saya menerima sebuah mesage (diterjemahkan dari bahasa Jepang) quotDevenv.exe erros aplikasi terjadi, versi 8.0.50727.762 error terjadi modul msvcr80.dll, versi 8.0.50727.762, terjadi kesalahan alamat 0x00039001. Untuk informasi lebih lanjut, go.microsoftfwlinkevents.asp Helo and Support Center silakan merujuk.quot Saya mengalihkan masukan Standar untuk dilewati dalam berbagai perintah karena saya mengalami kesulitan membuat mereka bekerja seperti yang saya inginkan dari StartInfo. Saya mengalihkan arus Output dan Error untuk memeriksa apa yang ada di dalamnya setelah proses keluar. Ini akan memungkinkan saya untuk memeriksa apapun yang saya inginkan di kedua aliran begitu kita selesai. Saya juga tidak mengizinkan salah satu dari benang pengalihan keluaran atau kesalahan untuk bergabung sampai setelah proses tersebut melewati panggilan WaitForExit. Saya benar-benar bingung Friday, October 26, 2007 7:53 PM Peter, maksud saya adalah: Jika Anda tidak memanggil Buang pada objek yang mengimplementasikan (secara langsung atau tidak langsung) IDisposable, maka Anda hanya meminta bug. Saya tidak ingin berdebat tanpa henti ini. Anda dapat terus melakukannya seperti yang Anda lakukan, dan saya bertahan dengan saya. Selama kita tidak perlu saling menjaga kode, baiklah. Saya tidak setuju Yang bukan quotbugquot untuk tidak memanggil Dispose. Sumber daya Anda tidak akan langsung terbebas, tapi GC akan melepaskannya jika membutuhkan memori (dengan asumsi pola Buang diimplementasikan dengan benar dan ada finalizer). Jika kelas yang Anda gunakan menerapkan metode quotClosequot yang tidak melakukan semua hal yang sama seperti quotDisposequot, Close harus didokumentasikan seperti itu atau ada bug di kelas. Saya tidak pernah menemukan kelas kerangka kerja yang menerapkan metode IDisposable dan Close () yang memperkenalkan quotleakquot saat Close dipanggil tanpa memanggil Dispose. Pola yang luar biasa untuk DisposeClose adalah bahwa Buang Panggilan Tutup serta menyetel bendera quotdisposedquot (digunakan untuk melempar ObjectDisposedException). Sebenarnya ini rinci dalam Kerangka Acuan Umum: Secara umum, nama domain khusus lebih tepat daripada Buang. Misalnya, enkapsulasi file mungkin ingin menggunakan nama metode Close. Dalam kasus ini, terapkan Buang secara pribadi dan buat metode Close publik yang memanggil Dispose. Contoh kode berikut menggambarkan pola ini. Anda dapat mengganti Tutup dengan nama metode yang sesuai dengan domain Anda.quot dari Pelaksana Finalisasi dan Dispose untuk Bersihkan Sumber Daya yang Tidak dikelola Seperti halnya pada beberapa kelas objek tertentu, seperti file atau objek koneksi database, metode Close lebih baik mewakili operasi logis yang Harus dilakukan ketika objek konsumen selesai dengan object.quot dari Improved Managed Code Performance (walaupun juga detailnya. Dalam kasus yang ditulis dengan baik, keduanya secara fungsional setara.) Jika menggunakan Close lebih jelas dengan quotbetter representingquot.) Dan omong-omong, blok quotusingquot juga tidak melindungi Anda. Tidak ada yang menghentikan Anda untuk menyatakan variabel di luar blok (jika saya mengingatnya dengan benar), sehingga masih bisa berada dalam lingkup setelah blok berakhir. Anda harus rajin menulis kode yang benar. Jika Anda mendeklarasikannya dalam pernyataan quotusingquot, itulah satu cara. Tapi untuk memberhentikan menggunakan pendekatan tryfinally hanya karena meninggalkan variabel dalam lingkup sebenarnya bukan intinya. Masih perlu Dispose () d di suatu tempat. Ya, ada banyak cara untuk bisa menembak diri sendiri di kaki tapi bukan skenario yang sedang kita diskusikan. Saya secara pribadi akan menembak jatuh kode apapun saya ditinjau seperti itu. Itu akan ada di daftar saya yang tidak disarankan. Friday, October 26, 2007 7:54 PM Sekali lagi, ini bukan pengecualian yang dilempar, jadi saya tidak melihat rincian pengecualian. Saya tidak langsung ke blok tangkapan dalam kode saya, saya melanjutkan LANGSUNG setelah WaitForExit () menelepon. Jendela yang saya terima sama dengan yang Anda dapatkan saat produk SETIAP Microsoft tiba-tiba ditutup dan MS menginginkan informasi tentang Crash. Jadi sekali lagi, tidak ada rincian pengecualian. Namun di salah satu System Logs, saya menerima sebuah mesage (diterjemahkan dari bahasa Jepang) quotDevenv.exe erros aplikasi terjadi, versi 8.0.50727.762 error terjadi modul msvcr80.dll, versi 8.0.50727.762, terjadi kesalahan alamat 0x00039001. Untuk informasi lebih lanjut, go.microsoftfwlinkevents.asp Helo and Support Center silakan merujuk.quot Saya menduga aplikasi Anda menghasilkan pesan (jika Anda harus selalu mendapatkan pengecualian dan jejak tumpukan), tidak jelas apakah Anda melanjutkan setelah panggilan Ke WaitForExit (). Kedengarannya seperti aplikasi yang sedang Anda jalani tidak normal. Apakah Anda menjalankan devenv.exe Saya tidak yakin apa yang dapat Anda lakukan di aplikasi Anda untuk menghentikan aplikasi lain agar tidak berakhir secara tidak normal. Anthony Maimone menulis: Saya mengalihkan masukan Standar untuk dilewati dalam berbagai perintah karena saya mengalami kesulitan membuat mereka bekerja seperti yang saya inginkan dari StartInfo. Saya mengalihkan arus Output dan Error untuk memeriksa apa yang ada di dalamnya setelah proses keluar. Ini akan memungkinkan saya untuk memeriksa apapun yang saya inginkan di kedua aliran begitu kita selesai. Saya juga tidak mengizinkan salah satu dari benang pengalihan keluaran atau kesalahan untuk bergabung sampai setelah proses tersebut melewati panggilan WaitForExit. Saya benar-benar bingung Anda bisa mendapatkan kebuntuan jika Anda memblokir membaca dan aplikasi keluaran standar - yang akan membuka blokir jika Anda menutup arus, saya yakin. Satu-satunya hal yang dapat saya pikirkan adalah membuat aplikasi yang berjalan di server dan memonitor jendela yang datang membentuk proses yang Anda kontrol dari jarak jauh dan kemudian menemukan tombol yang benar dan menekannya secara programatik untuk mengirim pesan ke pompa pesan pada jendela dialog. . Alos ini terjadi dengan excel, word dan aplikasi lain yang bisa digunakan dengan autimation MSFT tidak merancang aplikasi ini untuk dijalankan tanpa interaksi pengguna sehingga sesekali Anda akan mendapatkan windows pada kesalahan. Sudahkah Anda mempertimbangkan untuk menggunakan MSBuid yang lebih sesuai untuk membangun batch, nampaknya juga pada server build TFS 2008 akan mudah dibangun. Saturday, October 27, 2007 11:07 AM Nah, saya mencoba menggunakan FindWindow dan FindWindowEx bersama SendMessage namun saya tidak dapat menemukan pegangan jendela yang benar. Tapi karena saya tahu bahwa Windows Error Reporting Msssage Box akan muncul, saya memeriksa untuk melihat apakah itu adalah prosesnya sendiri (dan memang benar). Prosesnya adalah dwwin.exe (Dr. Watson Win) dan yang harus saya lakukan adalah membiarkan diri memperbaiki masalah saat ini. Gantikan blok kode saat ini di bawah untuk WaitForExit () pernyataan yang saya miliki sebelumnya. Proc.WaitForExit (60000) satu menit Process ProcArray Process.GetProcessesByName (quotdwwinquot) foreach (Process ProcessFound in ProcArray) Saya juga memeriksa untuk melihat apakah Anda bisa mendapatkan Process.MainWindowTitle (), tapi sudah diatur ke kuotot. Jadi ini adalah hack dan saya benar-benar tidak suka menggunakannya, tapi bekerja untuk eksekusi saat ini. Monday, October 29, 2007 7:26 PM Pertanyaan ini mungkin tampak sedikit aneh tapi saya mencoba menjalankan VS2005 melalui sebuah proses dan menjalankan perintah tertentu dan saya waitforexit (). Saya mengalihkan masukan dan keluaran saya dengan sukses namun sesekali saya kebetulan menerima Window Error Reporting WindowMessage. Masalahnya adalah saya sedang melakukan remoting, jadi ketika messagewindow ini terjadi selama eksekusi proses, saya akan bertahan kecuali saya login ke mesin Remoting lain dan menutup jendela. Apakah ada cara untuk mematikan jendela ini secara programatik atau mungkin menonaktifkan messagewindow dari kejadian yang saya pikirkan untuk menjalankan VS dalam eksekusi diam (saya belum menemukan cara untuk melakukannya). Saya juga mencoba untuk melihat apakah ada sesuatu yang digali saat ini terjadi bila dibandingkan. Thursday, October 25, 2007 8:32 PM Nah, saya mencoba menggunakan FindWindow dan FindWindowEx bersama SendMessage namun saya tidak dapat menemukan pegangan jendela yang benar. Tapi karena saya tahu bahwa Windows Error Reporting Msssage Box akan muncul, saya memeriksa untuk melihat apakah itu adalah prosesnya sendiri (dan memang benar). Prosesnya adalah dwwin.exe (Dr. Watson Win) dan yang harus saya lakukan adalah membiarkan diri memperbaiki masalah saat ini. Gantikan blok kode saat ini di bawah untuk WaitForExit () pernyataan yang saya miliki sebelumnya. Proc.WaitForExit (60000) satu menit Process ProcArray Process.GetProcessesByName (quotdwwinquot) foreach (Process ProcessFound in ProcArray) Saya juga memeriksa untuk melihat apakah Anda bisa mendapatkan Process.MainWindowTitle (), tapi sudah diatur ke kuotot. Jadi ini adalah hack dan saya benar-benar tidak suka menggunakannya, tapi bekerja untuk eksekusi saat ini. Senin, 29 Oktober 2007 7:26 PM Tidak, saya bisa mengarahkan input dan output tanpa masalah. Kesalahan yang saya terima adalah kesalahan pelaporan jendela umum dan sayangnya, dalam bahasa Jepang saya tidak tahu apa kesalahan sebenarnya, tapi ini adalah kesalahan umum. Saya tidak memiliki kode di depan saya tapi saya mengatur delegatesthreads untuk membaca pengalihan kesalahan dan keluaran setelah saya keluar dari keseluruhan proses. Saya tidak bisa datang dengan apapun dan saya bisa menjalankan proses yang sama di komputer saya sendiri tapi saya tidak dapat melakukan perintah khusus ini melalui remoting. Saya akan mencobanya besok Remoting pada mesin non-Jepang di tempat kerja dan saya akan posting temuan saya terlepas. Friday, October 26, 2007 2:34 AM Apakah Anda menjalankan konsol quotcmdquot. Jika iya maka Anda harus mengetik exit juga. Friday, October 26, 2007 4:50 AM Jika Anda tahu berapa banyak waktu yang akan diambil proses Anda, maka Anda dapat menggunakan proses bool exitted.WaitForExit (timeInMilliSeconds) jika (exitted) Proses dikeluarkan sebelum batas waktu habis. Lain Cetak pesan kesalahan Ini mungkin tidak terkait dengan apa yang Anda lakukan, namun saya memiliki pengalaman di mana proses tidak akan keluar jika saya mengalihkan hasilnya. Coba nonaktifkan pengalihan output dan lihat apakah prosesnya keluar. Cobalah, ini bisa berhasil. Friday, October 26, 2007 11:58 AM Saya ingin mencobanya, tapi terlalu banyak hack. Saya memiliki terlalu banyak perintah yang berbeda yang mengambil jumlah waktu yang berbeda (30 detik sampai 25 menit) sehingga tidak ada pengaturan waktu nyata yang dapat saya tempatkan tanpa menghancurkan kinerja saya. Fungsi ini telah bekerja dengan benar untuk beberapa perintah selama 6 bulan terakhir dan sekarang memutuskan untuk keluar pada saya. Saya mencobanya di komputer yang berbeda tanpa masalah (yang benar-benar mengacaukan saya). Saya tahu itu bukan pengalihan outputerror karena WINDOW baru sedang dibuat di server yang saya remoting. Begitu saya menutup jendela itu, proses saya keluar seperti yang diharapkan dan output yang benar ditampilkan di sisi User. Terima kasih atas bantuan Anda, tapi saya benar-benar frustrasi dengan masalah ini. Friday, October 26, 2007 3:01 PM Tanpa mengetahui detail pesannya hanya menebak masalahnya. Sudahkah anda menginstall beta 3.5 beta atau Visual Studio 2008 sama sekali Bagaimana anda menggunakan Proses untuk memulai program, Process.Start (quotfile.exequot), atau apakah anda menggunakan ProcessStartInfo Friday, October 26, 2007 3:21 PM Tidak, saya punya 2003 dan 2005 terpasang. Proc new Process () procSI new ProcessStartInfo () Saya kemudian membuat thread baru untuk StandardError dan StandardOutput saya kemudian menulis perintah saya dan jika (redirect standard standard out) Start thread for st. Out If (redirect standar error) Mulai thread untuk st. Kesalahan Proc.WaitForExit () lt -------- ini adalah tempat jendela Windows Error Reporting Generik terjadi. Saya menerjemahkan apa yang saya dapat dari Window yang muncul. Microsoft Visual Studio 2005 Karena masalah terjadi, ia mengakhiri Microsoft Visual Studio 2005. Kami menerapkan ketidaknyamanan, tidak ada alasan. Terima kasih lagi untuk semua waktu Anda. Saya membuat StreamWriter sIn sebelum membuat objek Proses proc. Saya kemudian mengarahkan ulang masukan setelah perintah proc.Start (), jadi bagaimana saya tidak memilikinya? Apapun, saya dapat membuat perubahan untuk memindahkan sIn.Close () ke setelah panggilan WaitForExit untuk melihat apakah ini membuat perubahan. Proc adalah tipe, seharusnya proc. Sekali lagi, ini bukan pesan kesalahan, jadi tidak ada jejak stack. Pengalihan StandardError saya kosong dan pengalihan OUtput Standar berisi yang saya harapkan, namun tidak ada yang menunjukkan adanya kesalahan. Inilah sebabnya mengapa semuanya masih bekerja setelah saya menutup jendela Pelaporan Galat Windows. Saya akan memposting apa yang terjadi setelah saya memindahkan baris sIn.Close () di bawah garis WaitForExit (). Friday, October 26, 2007 4:59 PM Peter Ritchie wrote: Anda tidak ingin menutup objek sIn sampai setelah aplikasi telah keluar jika youre redirecting. Seseorang seharusnya tidak menutup aliran tersebut sama sekali. Objek Proses memilikinya dan merekalah yang bertanggung jawab untuk membersihkan dirinya sendiri. Kita harus memanggil Process.Dispose () setelah selesai dengan objek Process. Anda tentu tidak perlu (saya itu berlebihan) tapi seharusnya tidak menimbulkan masalah setelah prosesnya keluar. Process.Close adalah metode yang disarankan untuk menutup stream standardinput dan standardoutput (dan standarderror). Friday, October 26, 2007 5:03 PM Saya akan surpised jika metode Dispose tidak memanggil Close, setidaknya sebagai bagian dari operasinya. Saya lebih suka menggunakan fakta bahwa karena Proses mengimplementasikan IDisposable (secara tidak langsung melalui Memperluas Komponen yang menerapkannya), seseorang harus meminta Buang dan membiarkannya melakukan pembersihan yang benar. Saya tidak akan merekomendasikan memohon Process.Close bukan, atau sebagai tambahan, Process.Dispose. Ya, Buang panggilan Tutup. Rekomendasi pertama saya adalah menggunakan blok pakai, yang kedua adalah memanggil Close saat Anda tahu kapan Anda melakukannya. Dalam objek yang menerapkan metode quotClosequot meskipun IDisposable, jauh lebih jelas untuk menggunakan metode quotClosequot. Plus tanpa menggunakan blok penggunaan Anda tidak memiliki cara untuk melompati variabel dan panggilan ke Dispose - objek dapat digunakan setelah panggilan ke Dispose. Jika Anda menggunakan Close youve, buang semua sumber daya terkelola Anda namun objeknya tetap dapat digunakan (misalnya, hasnt telah ditandai sebagai quotdisposedquot dan Anda dapat menggunakannya untuk menjalankan aplikasi lain tanpa mengalokasikan objek Proses baru - yang jika tidak akan membuang ObjectDisposedException ). Friday, October 26, 2007 6:09 PM Jadi jika rekomendasi pertama adalah menggunakan blok pakai, maka yang terbaik berikutnya adalah memanggil Dispose. Tidak Tutup, kapan, seperti yang Anda katakan, Anda tahu bahwa Anda melakukannya dengan objek itu. Dengan hanya memanggil Close pada sesuatu yang mengimplementasikan IDisposable, pengembang berpotensi melakukan kesalahan. Jika Buang melakukan pembersihan tambahan selain hanya mendelegasikan ke Close, maka pemrogram menyiapkan dirinya untuk mendapatkan bug dengan hanya menelepon Close. Mungkin ada kasus untuk menelepon Close, tapi hanya jika Anda tidak melakukannya dengan objek itu, seperti yang Anda sebutkan di bagian bawah balasan terakhir Anda. Tapi saat selesai dengan itu, sebut Buang. Friday, October 26, 2007 6:20 PM Jadi jika rekomendasi pertama adalah menggunakan blok pakai, maka yang terbaik berikutnya adalah memanggil Dispose. Tidak Tutup, kapan, seperti yang Anda katakan, Anda tahu bahwa Anda melakukannya dengan objek itu. Dengan hanya memanggil Close pada sesuatu yang mengimplementasikan IDisposable, pengembang berpotensi melakukan kesalahan. Jika Buang melakukan pembersihan tambahan selain hanya mendelegasikan ke Close, maka pemrogram menyiapkan dirinya untuk mendapatkan bug dengan hanya menelepon Close. Mungkin ada kasus untuk menelepon Close, tapi hanya jika Anda tidak melakukannya dengan objek itu, seperti yang Anda sebutkan di bagian bawah balasan terakhir Anda. Tapi saat selesai dengan itu, sebut Buang. Sebenarnya, yang quototesquot setara dengan: DisposableClass obj baru DisposableClass () IDisposable sekali pakai obj sebagai IDisposable jika (sekali pakai null) Tapi iya, thats apa pernyataan menggunakan quotfunctionally equivalentquot tapi saya tidak setuju secara eksplisit memanggil Buang dengan adanya metode quotClosequot harus Jadilah pilihan pertama karena minimnya pelingkupan dengan dispose call. Sebagai contoh, berikut ini: Menggunakan (Process process new Process ()) Saya menjalankan servis, tapi saya menghentikannya karena telah berjalan selama 2 jam dan tidak pernah ada breakpoint yang seharusnya bisa terkena dalam waktu 10 menit setelah saya memulai klien. Saya tidak memberi komentar pada baris sIn.Close () sekarang dan memulai kembali layanan dan Klien dan semuanya berjalan seperti sebelumnya. Saya bisa menekan breakpoint setelah WaitForExit () dan saya selesai, dengan pesan Error Reporting Windows masih (seperti sebelumnya). Jadi, dalam kasus saya, saya PERLU untuk menutup input stream agar bisa keluar dari proses seperti yang diharapkan. Apakah ada ide lain yang bisa saya recomment pada baris sIn.Close () jika Anda ingin memeriksa sesuatu. Friday, October 26, 2007 7:19 PM Anthony Maimone menulis: Saya menjalankan layanan ini, tapi saya menghentikannya karena sudah berjalan selama 2 jam dan tidak pernah ada breakpoint yang seharusnya bisa terjadi dalam waktu 10 menit setelah saya memulai klien saya. . Saya tidak memberi komentar pada baris sIn.Close () sekarang dan memulai kembali layanan dan Klien dan semuanya berjalan seperti sebelumnya. Saya bisa menekan breakpoint setelah WaitForExit () dan saya selesai, dengan pesan Error Reporting Windows masih (seperti sebelumnya). Jadi, dalam kasus saya, saya PERLU untuk menutup input stream agar bisa keluar dari proses seperti yang diharapkan. Apakah ada ide lain yang bisa saya recomment pada baris sIn.Close () jika Anda ingin memeriksa sesuatu. Akan sangat membantu jika melihat rincian pengecualian saat Anda mendapatkan kesalahan (seperti tumpukan panggilan). Bagaimana Anda menggunakan input standar dan output standar Apakah Anda menggunakan metode ReadLine Peter, maksud saya adalah: Jika Anda tidak memanggil Buang pada objek yang mengimplementasikan (secara langsung atau tidak langsung) IDisposable, maka Anda hanya meminta bug. Saya tidak ingin berdebat tanpa henti ini. Anda dapat terus melakukannya seperti yang Anda lakukan, dan saya bertahan dengan saya. Selama kita tidak perlu saling menjaga kode, baiklah. Dan omong-omong, blok quotusingquot juga tidak melindungi Anda. Tidak ada yang menghentikan Anda untuk menyatakan variabel di luar blok (jika saya mengingatnya dengan benar), sehingga masih bisa berada dalam lingkup setelah blok berakhir. Anda harus rajin menulis kode yang benar. Jika Anda mendeklarasikannya dalam pernyataan quotusingquot, itulah satu cara. Tapi untuk memberhentikan menggunakan pendekatan tryfinally hanya karena meninggalkan variabel dalam lingkup sebenarnya bukan intinya. Masih perlu Dispose () d di suatu tempat. Friday, October 26, 2007 7:34 PM Peter Ritchie menulis: Anthony Maimone menulis: Saya menjalankan layanan ini, tapi saya menghentikannya karena telah berjalan selama 2 jam dan tidak pernah ada breakpoint yang seharusnya dipukul dalam waktu 10 menit dari Saya memulai klien saya Saya tidak memberi komentar pada baris sIn.Close () sekarang dan memulai kembali layanan dan Klien dan semuanya berjalan seperti sebelumnya. Saya bisa menekan breakpoint setelah WaitForExit () dan saya selesai, dengan pesan Error Reporting Windows masih (seperti sebelumnya). Jadi, dalam kasus saya, saya PERLU untuk menutup input stream agar bisa keluar dari proses seperti yang diharapkan. Apakah ada ide lain yang bisa saya recomment pada baris sIn.Close () jika Anda ingin memeriksa sesuatu. Akan sangat membantu jika melihat rincian pengecualian saat Anda mendapatkan kesalahan (seperti tumpukan panggilan). Bagaimana Anda menggunakan input standar dan keluaran standar Apakah Anda menggunakan metode ReadLine lagi, ini bukan pengecualian yang dilempar, jadi saya tidak melihat rincian pengecualian apa pun. Saya tidak langsung ke blok tangkapan dalam kode saya, saya melanjutkan LANGSUNG setelah WaitForExit () menelepon. Jendela yang saya terima sama dengan yang Anda dapatkan saat produk SETIAP Microsoft tiba-tiba ditutup dan MS menginginkan informasi tentang Crash. Jadi sekali lagi, tidak ada rincian pengecualian. Namun di salah satu System Logs, saya menerima sebuah mesage (diterjemahkan dari bahasa Jepang) quotDevenv.exe erros aplikasi terjadi, versi 8.0.50727.762 error terjadi modul msvcr80.dll, versi 8.0.50727.762, terjadi kesalahan alamat 0x00039001. Untuk informasi lebih lanjut, go.microsoftfwlinkevents.asp Helo and Support Center silakan merujuk.quot Saya mengalihkan masukan Standar untuk dilewati dalam berbagai perintah karena saya mengalami kesulitan membuat mereka bekerja seperti yang saya inginkan dari StartInfo. Saya mengalihkan arus Output dan Error untuk memeriksa apa yang ada di dalamnya setelah proses keluar. Ini akan memungkinkan saya untuk memeriksa apapun yang saya inginkan di kedua aliran begitu kita selesai. Saya juga tidak mengizinkan salah satu dari benang pengalihan keluaran atau kesalahan untuk bergabung sampai setelah proses tersebut melewati panggilan WaitForExit. Saya benar-benar bingung Friday, October 26, 2007 7:53 PM Peter, maksud saya adalah: Jika Anda tidak memanggil Buang pada objek yang mengimplementasikan (secara langsung atau tidak langsung) IDisposable, maka Anda hanya meminta bug. Saya tidak ingin berdebat tanpa henti ini. Anda dapat terus melakukannya seperti yang Anda lakukan, dan saya bertahan dengan saya. Selama kita tidak perlu saling menjaga kode, baiklah. Saya tidak setuju Yang bukan quotbugquot untuk tidak memanggil Dispose. Sumber daya Anda tidak akan langsung terbebas, tapi GC akan melepaskannya jika membutuhkan memori (dengan asumsi pola Buang diimplementasikan dengan benar dan ada finalizer). Jika kelas yang Anda gunakan menerapkan metode quotClosequot yang tidak melakukan semua hal yang sama seperti quotDisposequot, Close harus didokumentasikan seperti itu atau ada bug di kelas. Saya tidak pernah menemukan kelas kerangka kerja yang menerapkan metode IDisposable dan Close () yang memperkenalkan quotleakquot saat Close dipanggil tanpa memanggil Dispose. Pola yang luar biasa untuk DisposeClose adalah bahwa Buang Panggilan Tutup serta menyetel bendera quotdisposedquot (digunakan untuk melempar ObjectDisposedException). Sebenarnya ini rinci dalam Kerangka Acuan Umum: Secara umum, nama domain khusus lebih tepat daripada Buang. Misalnya, enkapsulasi file mungkin ingin menggunakan nama metode Close. Dalam kasus ini, terapkan Buang secara pribadi dan buat metode Close publik yang memanggil Dispose. Contoh kode berikut menggambarkan pola ini. Anda dapat mengganti Tutup dengan nama metode yang sesuai dengan domain Anda.quot dari Pelaksana Finalisasi dan Dispose untuk Bersihkan Sumber Daya yang Tidak dikelola Seperti halnya pada beberapa kelas objek tertentu, seperti file atau objek koneksi database, metode Close lebih baik mewakili operasi logis yang Harus dilakukan ketika objek konsumen selesai dengan object.quot dari Improved Managed Code Performance (walaupun juga detailnya. Dalam kasus yang ditulis dengan baik, keduanya secara fungsional setara.) Jika menggunakan Close lebih jelas dengan quotbetter representingquot.) Dan omong-omong, blok quotusingquot juga tidak melindungi Anda. Tidak ada yang menghentikan Anda untuk menyatakan variabel di luar blok (jika saya mengingatnya dengan benar), sehingga masih bisa berada dalam lingkup setelah blok berakhir. Anda harus rajin menulis kode yang benar. Jika Anda mendeklarasikannya dalam pernyataan quotusingquot, itulah satu cara. Tapi untuk memberhentikan menggunakan pendekatan tryfinally hanya karena meninggalkan variabel dalam lingkup sebenarnya bukan intinya. Masih perlu Dispose () d di suatu tempat. Ya, ada banyak cara untuk bisa menembak diri sendiri di kaki tapi bukan skenario yang sedang kita diskusikan. Saya secara pribadi akan menembak jatuh kode apapun saya ditinjau seperti itu. That would be on my not recommended list. Friday, October 26, 2007 7:54 PM Again, this is NOT an Exception that is being thrown, so I am not seeing any exception details. I do not go directly to the catch block in my code, I resume DIRECTLY after the WaitForExit() call. The window I am receiving is the same one you get when ANY Microsoft product unexpectedly closes and MS wants information about the Crash. So again, there is NO exception details. However in one of the System Logs, I am receiving a mesage (translated from Japanese) quotDevenv.exe application erros occur, 8.0.50727.762 version of the errors occurred msvcr80.dll module, version 8.0.50727.762, errors occurred address 0x00039001. For more information, go.microsoftfwlinkevents.asp the Helo and Support Center please refer.quot I assumed your application was generating the message (in which case you should always get an exception and a stack trace) it wasnt clear that you resume after the call to WaitForExit(). It sounds to me like the application youre running is terminating abnormally. Are you running devenv.exe Im not sure what you can do in your application to stop another application from terminating abnormally. Anthony Maimone wrote: I am redirecting the Standard input to pass in the different commands in because I was having trouble getting them to work how I wanted form the StartInfo. I am redirecting the Output and Error streams to check what they have in them after the process has exited. This will allow me to check for anything that I would like in either stream once we have finished. I also do not allow either of the output or error redirection threads to join until after the process has passed the WaitForExit call. I am completely stumped. You can get a deadlock if you block on reading from and applications standard output--which would unblock if you closed the stream, I believe. The only thing I can think about is creating an application that is running on the server and monitor windows comming form the processes that you are controling remotely and then find the correct buttons and press them programaticaly pusing a message to the message pump of the dialog window. This alos happens with excel, word and other applications that can be used with autimation MSFT did not design these applications to be run without user interaction so once in a while you will get windows on errors. Have you considered using MSBuid that is more appropiate for batch builds, also it seems that in TFS 2008 build servers will be easy to build. Saturday, October 27, 2007 11:07 AM Well, I attempted to use FindWindow and FindWindowEx along with SendMessage but I was unable to find the correct window handle. But since I know that a Windows Error Reporting Msssage Box will be popping up, I checked to see if it was its own process (and it is). The process is dwwin.exe (Dr. Watson Win ) and all I had to do was this to allow myself to get correct the current problem. Substitute the current code block below for the WaitForExit() statement that I had previously. proc.WaitForExit(60000) one minute Process ProcArray Process.GetProcessesByName(quotdwwinquot) foreach( Process ProcessFound in ProcArray ) I also checked to see if you were able to get the Process.MainWindowTitle(), but it is set to quotquot. So this is a hack and I really do not like to use it, but it works for the current execution. Monday, October 29, 2007 7:26 PM
Binary-option-live-graphs
Stock-options-equity