Monday 7 August 2017

0xff Value In Binary Option


Java membaca 2 byte integer di 239s melengkapi dari file biner menjadi integer Saya mencoba untuk mengurai file biner yang mengandung nilai. Dalam spesifikasi itu mengatakan bahwa setiap nilai direpresentasikan sebagai bilangan bulat 2-byte dalam format pelengkap 2s. Saya membaca file ke dalam array byte yang disebut data: Nilai terlihat bagus namun ketika saya mencoba untuk menuliskannya kembali ke dalam file: tempInt menjadi nilai di int. Ketika saya membaca di file yang saya tulis, tidak semua nilainya sama. Beberapa dari mereka tapi tidak semuanya. Apakah saya kehilangan sesuatu di sini UPDATE: Saya merencanakan nilai perbandingannya. Bagian atas adalah nilai yang saya baca dari file. Bagian bawahnya adalah nilai yang saya baca dari file tersebut, lalu menulis ke file baru lalu membacanya lagi. Saya berpikir bahwa grafik terlihat terlalu mirip sehingga benar-benar salah. UPDATE 2: byte yang saya baca dari file input: byte yang saya baca dari file yang saya tulis dari nilai di atas: UPDATE 3: Saya akan memposting kode sekarang. Untuk melakukan itu harus dijelaskan bagaimana data disimpan dalam file (btw itu adalah format EDF). Ada 3 komponen penting: Records. Sinyal dan Sampel. Contoh diwakili sebagai integer 2 byte dalam format pelengkap 2s dan disimpan sebagai bilangan bulat. Sinyal adalah kumpulan sampel. Namun sinyal tidak disimpan secara berurutan dalam file. Di sinilah catatan masuk. Rekaman menyimpan sejumlah sampel yang telah ditentukan dari setiap sinyal. Catatan disimpan secara berurutan dalam file. Jadi setiap record berisi bagian dari setiap sinyal. Jumlah sampel didefinisikan dalam file meta, variabel yang memegang nilai ini disebut nrOfSamplesPerSignalInEachRecordGlobal dalam kode saya. Jadi Anda harus melompati setiap record untuk saling menempel setiap sinyal. Ini adalah fungsi yang menyimpan byte dari file ke dalam struktur data sinyal: inilah fungsi yang menulis sampel kembali ke byte: Ya - Anda membacanya dalam format little-endian (nilai pertama adalah yang paling penting) tapi youre Menuliskannya dalam format big-endian (nilai pertama adalah yang paling penting), dengan asumsi Anda menulisnya kemudian b. Segera membalik urutan saat Anda menuliskannya, dengan asumsi file tersebut dimaksudkan untuk menjadi little-endian: Lihat lebih lanjut tentang pertanyaan ini di StackoverflowDescription Mencetak data ke port serial sebagai teks ASCII yang dapat dibaca manusia. Perintah ini bisa mengambil banyak bentuk. Angka dicetak menggunakan karakter ASCII untuk setiap digit. Floats juga dicetak sebagai digit ASCII, default ke dua tempat desimal. Byte dikirim sebagai karakter tunggal. Karakter dan senar dikirim seperti apa adanya. Sebagai contoh: Serial. print (78) memberi 78 Serial. print (1.23456) memberi 1.23 Serial. print (N) memberi N Serial. print (Hello world.) Memberi Hello world. Parameter kedua opsional menentukan basis (format) untuk menggunakan nilai yang diizinkan adalah BIN (biner, atau basis 2), OCT (oktal, atau basis 8), DEC (desimal, atau basis 10), HEX (heksadesimal, atau basis 16) . Untuk bilangan floating point, parameter ini menentukan jumlah tempat desimal yang akan digunakan. Sebagai contoh: Serial. print (78, BIN) memberi 1001110 Serial. print (78, OCT) memberi 116 Serial. print (78, DEC) memberi 78 Serial. print (78, HEX) memberi 4E Serial. println (1.23456, 0 ) Memberi 1 Serial. println (1.23456, 2) memberi 1.23 Serial. println (1.23456, 4) memberi 1.2346 Anda dapat melewati string berbasis memori flash ke Serial. print () dengan membungkusnya dengan F (). Sebagai contoh. Serial. print (val) Serial. print (val, format) Parameter val: nilai yang akan dicetak - format tipe data apa pun: menentukan basis bilangan (untuk tipe data integral) atau jumlah tempat desimal (untuk tipe floating point) sizet ( Panjang): print () mengembalikan jumlah byte yang ditulis, meskipun membaca angka itu opsional Menggunakan loop FOR untuk data dan mencetak angka dalam berbagai format. Int x 0 variable void setup 40 41 123 Serial. Mulai 40 9600 41 buka port serial pada 9600 bps: 125 void loop 40 41 123 label cetak Serial. Cetak 40 quotNO FORMATquot 41 mencetak label Serial. Cetak 40 quot t quot 41 mencetak tab Serial. Cetak 40 quotDECquot 41 Serial. Cetak 40 quot t quot 41 Serial. Cetak 40 quotHEXquot 41 Serial. Cetak 40 quot t quot 41 Serial. Cetak 40 quotOCTquot 41 Serial. Cetak 40 quot t quot 41 Serial. Cetak 40 quotBINquot 41 Serial. Cetak 40 quot t quot 41 untuk 40 x 0 x lt 64 x 41 123 hanya bagian dari bagan ASCII, ganti untuk mencetaknya dalam banyak format: Serial. Cetak 40 x 41 dicetak sebagai desimal yang dikodekan ASCII - sama dengan seri quotDECquot. Cetak 40 quot t quot 41 mencetak tab Serial. Cetak 40 x. DEC 41 mencetak sebagai serial desimal yang dikodekan ASCII. Cetak 40 quot t quot 41 mencetak tab Serial. Cetak 40 x. HEX 41 dicetak sebagai Serial heksadesimal ASCII. Cetak 40 quot t quot 41 mencetak tab Serial. Cetak 40 x. OCT 41 dicetak sebagai Serial oktal ASCII. Cetak 40 quot t quot 41 mencetak tab Serial. Println 40 x. BIN 41 dicetak sebagai biner yang dikodekan ASCII kemudian menambahkan carriage return dengan tanda kutip tunda penundaan 40 200 41 delay 200 milidetik 125 Serial. Println 40 quotquot 41 mencetak kembali carriage return 125 Tip Pemrograman Seperti versi 1.0, transmisi serial adalah asynchronous Serial. print () akan kembali sebelum ada karakter yang ditransmisikan. Jadi, Anda bisa menggunakan masker terlebih dahulu, dan bergeser kemudian, hal yang sama terjadi - Topeng memastikan semua bit lainnya nol, pergeseran tersebut memindahkan nilainya sehingga berada di byte paling kanan dari bilangan bulat, maka pada range 0-255. 0xF8 di sisi lain hanya akan menyimpan 5 bit paling atas dari 8, jadi saya tidak yakin di mana Anda bisa menemukannya berguna. Ndash xs0 25 Mei 11 pukul 15:29 adalah mendapatkan salah satu komponen warna (baik merah atau biru, saya lupa yang mana). Jika topeng warna tidak dilakukan, pertimbangkan RGB (0, 127, 0), dan ambang batas 63. Panggilan getRGB (.) Akan kembali Yang jelas lebih dari ambang batas 63. Namun, maksudnya adalah untuk mengabaikan dua warna lainnya. Saluran. Bitmask hanya mendapatkan 8 bit terendah, dengan nol. Memeriksa apakah warnanya lebih terang dari ambang batas tertentu, b. Jika ambang batas terlampaui, piksel berwarna putih, karena sebaliknya warnanya hitam, karena itu adalah konversi menjadi hitam dan putih berdasarkan ambang pixel-demi-piksel sederhana pada satu saluran warna. Jawab 25 Mei 11 jam 14:57 terima kasih, ya saya tidak mengerti mengapa bagian itu ada di sana ndash Lunar 25 Mei 11 at 14:58 Diperbarui jawaban untuk menjelaskan bitmask ndash Dilum Ranatunga 25 Mei 11 jam 15:03 Mungkin karena Ada beberapa konversi ke atau dari ARGB. Ini adalah posting blog yang sangat bagus tentang mengapa melakukan operasi bit-wise untuk warna. Jawab 25 Mei 11 jam 14:59 Link sangat membantu. Tautan ini membersihkan lebih banyak konsep tentang operasi bitwise. ) Ndash iankits 25 Mei 11 at 15:06 Nilai RGB adalah bilangan bulat sehingga terwakili dalam memori sebesar 4 byte (atau setara 32 bit). Setiap byte mewakili satu komponen warna: 1 byte: nilai alfa (00000001 pada contoh) yang sesuai dengan opacity 2nd byte: nilai merah (00000010 pada contoh) byte ke-3: nilai hijau (00000011 pada contoh) byte ke-4: Nilai biru (00000100 pada contoh) 0xff dan simbol 0xffffff 0xff mewakili nilai heksadesimal FF yang sama dengan bilangan bulat 255. Representasi binernya adalah: Demikian pula 0xffffff diwakili oleh: Ini sesuai dengan warna putih (merah, hijau dan biru sama Sampai 255). Operator biner dan amp diterapkan pada dua bilangan bulat i1 dan i2 (i1 amp i2). Ia mengembalikan bilangan bulat dengan semua bitnya sama dengan 0 kecuali yang sama dengan 1 pada i1 dan i2. Misalnya, jika kita menerapkan amp pada contoh pertama dan pada 0xff, kita memperoleh: Sebagai konsekuensinya, (amp 0xff) memungkinkan hanya menyimpan nilai byte terakhir (yaitu nilai komponen warna biru).Patch Regtool: Tambahkan perintah loadunload dan - opsi biner patch terlampir menambahkan perintah quotloadquot dan quotunloadquot dan pilihan quot-b, --binaryquot untuk regtool. Masukkan kumpulan registri dari PATH ke SUBKEY baru: beban regtool KEYSUBKEY PATH Bongkar dan buang SUBKEY nanti: regtool unload KEYSUBKEY Cetak nilai REGBINARY as hex: regtool - b dapatkan KEYVALUE Set nilai REGBINARY dari hex args: regtool - b set KEYVALUE XX XX XX XX . Contoh: Misalkan S: adalah partisi pada HD kedua yang berisi salinan semua file dari partisi sistem XP C :. Script berikut memperbaiki pemetaan drive logis dari instalasi cadangan. Hal ini memungkinkan booting drive cadangan S: sebagai C: setelah drive C asli telah dihapus. Load backup SYSTEM sarang sebagai SYSTEM. TMP regtool load HKLMSYSTEM. TMP cygdrivesWINDOWSsystem32configsystem trap regtool unload HKLMSYSTEM. TMP ERR Hapus semua pemetaan drive logis secara cadangan (Agak rumit, karena nama nilai kunci mengandung garis miring terbalik) untuk v dalam (daftar regtool HKLMSYSTEM. TMPMountedDevices sed - N dosDevicesC-Z: s ,,, gp) lakukan regtool - K, hapus tanda kutipHHKLMSYSTEM. TMPMountedDevices, vquot done Map current S: as C: in backup m (regtool - K, - b dapatkan HKLMSYSTEMMountedDevices, DosDevicesS :) regtool - K, - b set HKLMSYSTEM. TMPMountedDevices, DosDevicesC: m Unload hive trap ERR regtool membongkar HKLMSYSTEM. TMP Terima kasih atas komentar --- regtool. cc. orig 2005-09-12 01: 48: 05.001000000 0200 regtool. cc 2006-01-24 15:48: 55.750000000 0100 -10,15 10,17 termasuk ltstdio. hgt termasuk ltstdlib. hgt termasuk lterrno. hgt termasuk ltctype. hgt termasuk ltgetopt. hgt termasuk ltwindows. hgt termasuk ltsyscygwin. hgt enum - KTAUTO, KTINT, KTSTRING, KTEXPAND , KTMULTI KTAUTO, KTBINARY, KTINT, KTSTRING, KTEXPAND, KTMULTI k Eytype KTAUTO char keysep DEFAULTKEYSEPARATOR -32,6 34,7 - static char opts quotehiklmpqsvVK: quot static char opts quotbehiklmpqsvVK: quot int listwhat 0 int postfix 0 -62,7 65,7 penggunaan (FILE dimana stderr) fprintf (di mana, kuotot - OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT OPT. OPT. OPT Set VALUEnquot quot unset KEYVALUE menghapus VALUE dari KEYnquot quot load KEYSUBKEY PATH load sarang dari PATH ke SUBKEYnquot yang baru membongkar KEYSUBKEY membongkar sarang dan menghapus SUBKEYnquot quotnquot) fprintf (di mana, quotquot quotOpsi untuk daftar Tindakan: nquot -83,7 88,11 quot - L, --list print only VALUEsnquot quot - p, --postfix like ls - p, tambahkan postfix ke KEY namesnquot quotnquot quotOptions for get Action: nquot quot - b, --binary print REGBINARY data as hex bytesnquot quotnquot quotOptions for set Action : Nquot quot - b, - set jenis biner ke REGBINARYnquot quot - e, --expand-string set type ke REGEXPANDSZnquot quot - i, --integer set type ke REGDWORDnquot quot - m, --multi-string set type ke REGMULTISZnquot -348,9 357,30 kunci dasar lain - rv RegOpenKeyEx (basis, n, 0, akses, ampkey) - jika (rv ERRORSUCCESS) - Gagal (rv) jika (akses) rv RegOpenKeyEx (basis, n, 0, akses, Ampkey) jika (rv ERRORSUCCESS) Gagal (rv) else if (argv1) char win32pathMAXPATH cygwinconvtowin32path (argv 1, win32path) rv RegLoadKey (base, n, win32path) if (rv ERRORSUCCESS) Gagal (rv) if (verbose) printf (kode yang diambil dari sndot file, n, win32path) rv RegUnLoadKey (base, n) if (rv) ERRORSUCCESS) Gagal (rv) jika (verbose) printf (kode kunci tidak diturunkan, n) printf (nilai kuantum sndot, n, nilai) -491,7 521,7 int i, n DWORD v, rv - char a argv1, data Char a argv1, data 0 findkey (2, KEYALLACCESS) jika (keytype KTAUTO) -510,6 540,27 switch (keytype) case KTBINARY: for (n 0 argvn1 n) jika (n gt 0) data (char) malloc N) untuk (i 0 i lt ni) char e errno 0 v strtoul (argvi1, ampe, 16) if (errno v gt 0xff e) fprintf (stderr, quotInvalid hex constant snquot, argvi1) keluar (1) datai (char) Vv rv RegSetValueEx (kunci, nilai, 0, REGBINARY, (const BYTE) data, n) break case KTINT: v strtoul (a, 0, 0) rv RegSetValueEx (kunci, nilai, 0, REGDWORD, (const BYTE) -542,6 593,9 rv ERRORINVALIDCATEGORY istirahat jika (data) bebas (data) jika (r V ERRORSUCCESS) Gagal (rv) -577,7 631,14 switch (vtype) case REGBINARY: - fwrite (data, dsize, 1, stdout) if (keytype KTBINARY) hack untuk (unsigned i 0 i lt dsize i) printf Ku02xcquot, (unsigned char) datai, (i lt dsize-1. . N)) lain fwrite (data, dsize, 1, stdout) break case REGDWORD: data printf (quotlunquot, (DWORD)) -610,6 671,31 return 0 -642,6 730,9 sementara ((getCtlong get (argc , Argv, opts, longopts, NULL)) EOF) switch (g) kasus b: keytype KTBINARY break case e: keytype KTEXPAND break Pada 24 Jan 21:00, Christian Franke menulis: gt gt gt patch terlampir menambahkan perintah quotloadquot Dan quotunloadquot dan pilihan quot-b, gt --binaryquot untuk regtool. Gt gt Muat kumpulan registri dari PATH ke SUBKEY baru: gt gt regtool load KEYSUBKEY PATH gt gt Bongkar dan buang SUBKEY nanti: gt gt regtool unload KEYSUBKEY gt gt Cetak REGBINARY value as hex: gt gt regtool - b dapatkan KEYVALUE gt gt Set REGBINARY Nilai dari hex args: gt gt regtool - b set KEYVALUE XX XX XX XX. Gt gt gt Contoh: gt Misalkan S: adalah partisi pada HD kedua yang berisi salinan semua file gt dari partisi sistem XP C :. Gt Script berikut memperbaiki pemetaan drive logis dari instalasi gt cadangan. Gt Hal ini memungkinkan booting drive cadangan S: seperti C: setelah drive C asli: drive telah dihapus. Gt gt binsh gt set - e gt gt Load sistem cadangan sarang sebagai SYSTEM. TMP gt regtool load HKLMSYSTEM. TMP cygdrivesWINDOWSsystem32configsystem gt trap regtool unload HKLMSYSTEM. TMP ERR gt gt Hapus semua pemetaan drive logis di gt cadangan (Agak rumit, karena nama nilai kunci Mengandung garis miring terbalik) gt untuk v dalam (daftar regtool HKLMSYSTEM. TMPMountedDevices gt sed - n DosDevicesC-Z: s ,,, gp) gt do gt regtool - K, unset quotHKLMSYSTEM. TMPMountedDevices, vquot gt done gt gt Map current S: as C : Di backup gt m (regtool - K, - b dapatkan HKLMSYSTEMMountedDevices, DosDevicesS :) gt regtool - K, - b set HKLMSYSTEM. TMPMountedDevices, DosDevicesC: m gt gt Membongkar hive gt trap ERR gt regtool membongkar HKLMSYSTEM. TMP gt gt Akhir dari Script gt gt gt gt Terima kasih atas komentar apapun Terima kasih atas patch ini, tampilannya sangat berguna. Hanya ada dua hal yang hilang. Pertama, tolong buat entri ChangeLog yang sesuai. Kedua, yang lebih buruk lagi, saya tidak melihat nama Anda ada dalam daftar orang yang memiliki tugas hak cipta, yang pastinya diperlukan untuk sekeranjang ukuran ini. Kami membutuhkan tugas hak cipta tertulis dari Anda satu kali, setelah itu, Anda dapat membuat sebanyak mungkin patch yang Anda inginkan. Silakan lihat cygwincontrib. html untuk rincian berdarah tentang formulir tugas hak cipta dan cara mengirimkannya ke Red Hat. - Corinna Vinschen Tolong, kirim surat tentang Cygwin ke Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat Buka posting ini dalam tampilan ulir Laporkan Konten sebagai Inappropriate Re: Patch regtool: Tambahkan perintah loadunload dan opsi biner On Wed, 25 Jan 2006, Corinna Vinschen menulis: gt Pada 24 Jan 21:00, Christian Franke menulis: gt gt Hi, gt gt gt gt patch terlampir menambahkan perintah quotloadquot dan quotunloadquot dan opsi quot-b, gt gt --binaryquot untuk regtool. Gt gt gt gt Muat kumpulan registri dari PATH ke SUBKEY baru: gt gt gt gt regtool load KEYSUBKEY PATH gt gt gt gt Bongkar dan buang SUBKEY nanti: gt gt gt gt regtool unload KEYSUBKEY gt gt gt gt Cetak REGBINARY value as hex: gt Gt gt gt regtool - b mendapatkan KEYVALUE gt gt gt gt Mengatur nilai REGBINARY dari hex args: gt gt gt regtool - b set KEYVALUE XX XX XX XX. Terima kasih atas komentar apapun gt gt Terima kasih untuk patch ini, tampilannya sangat berguna. Aku bertanya-tanya apakah akan lebih baik menggunakan stdinstdout untuk data biner (atau bahkan menambahkan opsi - f untuk set). IMHO, regtool - b mendapatkan KEY1VALUE regtool - b set KEY2VALUE regtool - b mendapatkan KEY1VALUE regtool - b set - f - KEY2VALUE terlihat lebih bersih daripada menyimpan hex encoding menjadi sebuah string. Jika Anda menginginkan hex dump, regtool - b mendapatkan KEY1VALUE od - t x1 akan melakukannya. Im tidak mengetahui adanya program yang melakukan reverse (hex dump-gtbinary), tapi menulis skrip perl untuk itu sepele. Konon, saya juga berfikir fungsi ini akan sangat berguna. Igor - cs. nyu. edu quotLas je suis sot. - Mais non, tu ne les pas, puisque tu sepuluh rends compte. quot quotTapi tidak - Anda tidak bodoh Anda menyebut diri Anda bodoh, ada cukup bukti dalam hal itu - Rostand, quotCyrano de Bergeracquot Dalam membalas posting ini oleh Igor Peshansky Igor Peshansky wrote: gtgtsnip gtgt gt gt gtI bertanya-tanya apakah akan lebih baik menggunakan stdinstdout untuk data biner (atau gteven menambahkan opsi - f untuk set). IMHO, gt gtregtool - b mendapatkan KEY1VALUE regtool - b set KEY2VALUE gt gtor gt gtregtool - b mendapatkan KEY1VALUE regtool - b set - f - KEY2VALUE gt gtlooks cleaner daripada menyimpan hex encoding menjadi sebuah string. Setidaknya saat regtool digunakan secara interaktif, IMO tidak terlalu berguna untuk memiliki keluaran modem-line-noise-like untuk REGBINARY, namun output yang dapat dibaca manusia untuk jenis nilai lainnya. Tapi inilah perilaku quotregtool saat ini. Quot. Sarankan untuk menggabungkan yang terbaik dari kedua dunia: regtool dapatkan KEYVALUE harus selalu menghasilkan keluaran yang dapat dibaca manusia, khususnya hex dump untuk REGBINARY. (Tapi ini akan mengubah perilaku yang ada di REGBINARY) regtool - b mendapatkan KEYVALUE menulis REGBINARY sebagai data biner ke stdout. Regtool - b set KEYVALUE 01 02 03 set nilai REGBINARY dari hex bytes di args. Regtool - b set KEYVALUE - set nilai dari data biner baca dari stdin gt. Gt gt gtThat said, saya juga berpikir fungsi ini akan sangat berguna. Gt gt Pada Rabu, 25 Januari 2006, Brian Dessent menulis: gt Christian Franke wrote: gt gt gt Setidaknya ketika regtool digunakan secara interaktif, IMO tidak terlalu berguna untuk memiliki output seperti modem-line-noise untuk REGBINARY, Tapi output gt gt yang mudah dibaca untuk tipe nilai lainnya. Tapi ini perilaku gt gt saat ini dari quotregtool get. Quot. Gt gt Alih-alih sebuah flag eksplisit - b, mungkin seharusnya memanggil isatty () dan gt jika dijalankan secara interaktif, keluaran dump hex yang dapat dibaca manusia, jika tidak, gt menghasilkan biner mentah. Bagaimana jika Anda ingin mengalihkan dump hex ke file IMO, isatty () cek hanya berguna jika output tidak berubah secara kualitatif pada redirection (misalnya untuk pewarnaan). Jika tidak, selalu lebih baik menggunakan bendera eksplisit. Yang mengatakan, mencoba untuk mengekspresikan getar nilai biner tidak berbeda dengan mencoba memasukkan file biner - dan tidak mengubah tanda kutip untuk menghasilkan hex dumps. Apa yang akan berguna adalah cara untuk query jenis nilai melalui regtool. Kita juga bisa menambahkan bendera quot-hquot (untuk - manusiawi dibaca) untuk selalu menampilkan nilai dalam bentuk yang dapat dibaca manusia (lihat di bawah). FWIW, Aregtool dapatkan KEY1VAL regtool set KEY2VAL quotAquot sudah akan memecah nilai tipe REGMULTISZ. Akan lebih baik jika melakukan perilaku regtools konsisten: quotregtool set - f FILEquot membaca nilainya dari FILE, yang akan bekerja untuk semua jenis nilai. Igor - cs. nyu. edu quotLas je suis sot. - Mais non, tu ne les pas, puisque tu sepuluh rends compte. quot quotTapi tidak - Anda tidak bodoh Anda menyebut diri Anda bodoh, ada cukup bukti dalam hal itu - Rostand, quotCyrano de Bergeracquot Buka posting ini dalam tampilan ulir Laporkan Konten Sebagai Inappropriate Re: Patch regtool: Tambahkan perintah loadunload dan - opsi biner Igor Peshansky wrote: gt Bagaimana jika Anda ingin mengarahkan ulang hex dump ke file IMO, isatty () memeriksa gt hanya berguna jika output tidak berubah secara kualitatif pada redirection Gt (misalnya untuk pewarnaan). Jika tidak, selalu lebih baik menggunakan bendera gt eksplisit. Bagus. Mengapa tidak kita hanya meniru perilaku kucing di sini Jika isatty () benar dan karakter non-ascii ada di output, maka prompt dulu sebelum mungkin fubaring terminal pengguna, jika tidak cukup output data mentahnya. Dan sama seperti kucing tidak memiliki kode internal untuk memformat data biner sebagai hex dump, tidak harus regtool, karena od bekerja dengan sempurna untuk itu dan sudah memiliki pilihan pemecah baskahan yang benar. Buka posting ini dalam tampilan berulir Laporkan Konten sebagai Inappropriate Re: Patch regtool: Tambahkan perintah loadunload dan - opsi biner Untuk membalas posting ini oleh Christian Franke Pada 25 Jan 21:58, Christian Franke wrote: gt Akan mengirim surat siput dengan Barang hukum segera -) Terima kasih, Im melihat ke depan. Maaf atas kerumitannya, tapi kami tetap tidak mendapatkan izin legal untuk metode yang lebih sederhana. Mohon bersabar, ini mungkin memakan waktu lama. - Corinna Vinschen Tolong kirimkan surat tentang Cygwin ke Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat Buka posting ini dalam tampilan ulir Laporkan Konten sebagai Inappropriate Re: Patch regtool: Tambahkan perintah loadunload dan - opsi biner Pada 26 Jan 10 : 19, Corinna Vinschen wrote: gt Pada 25 Jan 21:58, Christian Franke wrote: gt gt Akan mengirim surat siput dengan barang-barang hukum segera -) gt gt Terima kasih, Im melihat ke depan. Maaf atas kerumitannya, tapi kami masih belum mendapatkan izin legal untuk metode yang lebih sederhana. Gt gt Mohon bersabar, ini mungkin memakan waktu lama. Tugas Anda akhirnya tiba dan ditandatangani. Apakah Anda memiliki versi baru dari patch regtool Anda yang tersedia, setelah diskusi ini berlangsung - Corinna Vinschen Tolong, kirim surat tentang Cygwin ke Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat Buka posting ini dalam tampilan berulir Laporkan Konten tidak pantas Re: Patch regtool: tambahkan perintah loadunload dan - opsi binary gt Hi Christian, gt gt Pada 26 Jan 10:19, Corinna Vinschen menulis: gt gtgt Pada 25 Jan 21:58, Christian Franke menulis: gtgt gtgtgt Akan mengirim surat siput Dengan barang hukum segera -) gtgtgt gtgt Terima kasih, Im melihat ke depan. Maaf atas kerepotannya, tapi kami masih belum mendapatkan izin legal untuk metode yang lebih sederhana. Gtgt gtgt Mohon bersabar, ini mungkin memakan waktu lama. Gtgt gt gt tugas Anda akhirnya tiba dan ditandatangani Apakah Anda memiliki versi baru dari patch regtool Anda yang tersedia, setelah diskusi ini berlangsung? Gt Tidak, maaf. Berharap untuk menemukan beberapa waktu dalam waktu sekitar satu minggu. Saya masih belum yakin bagaimana cara menangani nilai registri biner dengan cara yang paling berguna di dalam skrip. Buka posting ini dalam tampilan berulir Laporkan Konten sebagai Inappropriate Re: Patch regtool: Tambahkan perintah loadunload dan - opsi binary Pada 13 Februari 20:43, Christian Franke menulis: gt Anda menulis: Tugas gt gtyour akhirnya tiba dan ditandatangani. Apakah Anda memiliki versi gtnew dari regtool patch Anda yang tersedia, setelah diskusi ini gt gttook tempat gt gt Tidak, maaf. Berharap untuk menemukan beberapa waktu dalam waktu sekitar satu minggu. Gt gt Saya masih tidak yakin bagaimana menangani nilai registri biner dengan cara yang paling berguna dalam skrip. Secara default, data biner harus digunakan sebagai data biner di atas pipa. Dan inilah yang dibutuhkan, secara teori, karena alat seperti xxd ada. - Corinna Vinschen Tolong, kirim surat tentang Cygwin ke Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat Terlampir adalah versi 2 dari patch, termasuk update utils. sgml REGBINARY sekarang bisa eter dibaca sebagai biner dari stdin: echo 0: 01 02 FE FF xxd - r regtool - b set KEYBINVALUE - regtool dapatkan KEYBINVALUE regtool - b set KEYBINVALUE - atau ditentukan sebagai argumen hex: regtool - b set KEYBINVALUE 01 02 FE FF x (regtool - b get KEYBINVALUE) regtool - b Atur KEYBINVALUE x Tindakan loadunload tidak berubah. 2006-03-01 Christian Franke lthidden email gt regtool. cc: Tambahkan tindakan loadunload dan opsi - b, --binary. Utils. sgml (regtool): Dokumentasikan. Indeks: regtool. cc RCS file: cvssrcsrcwinsuputilsregtool. cc, v mengambil revisi 1.19 diff - u - r1.19 regtool. cc --- regtool. cc 15 Feb 2006 10:57:17 -0000 1.19 regtool. cc 1 Mar 2006 18 : 35: 01 -0000 -10,15 10,17 termasuk ltstdio. hgt termasuk ltstdlib. hgt termasuk lterrno. hgt termasuk ltctype. hgt termasuk ltgetopt. hgt termasuk ltwindows. hgt sertakan ltsyscygwin. hgt enum - KTAUTO, KTINT, KTSTRING, KTEXPAND , KTMULTI KTAUTO, KTBINARY, KTINT, KTSTRING, KTEXPAND, KTMULTI keytype KTAUTO char keysep DEFAULTKEYSEPARATOR -32,6 34,7 - static char opts quotehiklmpqsvVK: quot static char opts quotbehiklmpqsvVK: quot int listwhat 0 int postfix 0 -62,7 65, 7 use (FILE where stderr) fprintf (di mana, quotquot - quotUsage: s OPTION (tambahkan daftar cek hapus tidak diset) KEYnquot quotUsage: s OPTION (addcheckgetlistremoveunsetloadunload) KEYnquot quotView atau edit kuota kuotot kuartalan Win32, progname) -76,6 79 , 8 quot menghapus KEY menghapus KEYnquot quot set KEYVALUE data. Set VALUEnquot quot unset KEYVALUE menghapus VALUE dari KEYnquot quot load KEYSUBKEY PATH load sarang dari PATH ke SUBKEYnquot yang baru membongkar KEYSUBKEY membongkar sarang dan menghapus SUBKEYnquot quotnquot) fprintf (di mana, quotquot quotOpsi untuk daftar Tindakan: nquot -83,7 88,11 quot - L, --list print only VALUEsnquot quot - p, --postfix like ls - p, tambahkan postfix ke KEY namesnquot quotnquot quotOptions for get Action: nquot quot - b, --binary print REGBINARY data as hex bytesnquot quotnquot quotOptions for set Action : Nquot quot - b, - set jenis biner ke REGBINARY (hex args atau -) nquot quot - e, --expand-string set type ke REGEXPANDSZnquot quot - i, --integer set type ke REGDWORDnquot quot - m, - Multi-string set type ke REGMULTISZnquot -348,9 357,30 kunci dasar lainnya - rv RegOpenKeyEx (basis, n, 0, akses, ampkey) - jika (rv ERRORSUCCESS) - Gagal (rv) jika (akses) rv RegOpenKeyEx (basis , N, 0, akses, ampkey) jika (rv ERRORSUCCESS) Gagal (rv) lain jika (argv1) char win32pathMAXPATH cygwinconv (Rv) if (verbose) printf (kode yang diambil dari sndot file, n, win32path) rv RegUnLoadKey (base, n) if (rv ERRORSUCCESS) fail (rv) if (verbose) printf (sikut dari sndot file, n, win32path) rv RegUnLoadKey (base, n) if (Rv ERRORSUCCESS) Gagal (rv) jika (verbose) printf (quotkey s unloadednquot, n) printf (nilai kuotansi snquot, n, nilai) -491,7 521,7 int i, n DWORD v, rv - char a argv1 , Data char sebuah argv1, data 0 findkey (2, KEYALLACCESS) jika (keytype KTAUTO) -510,6 540,43 switch (keytype) case KTBINARY: for (n 0 argvn1 n) if (n 1 ampamp strcmp (argv1, quot - quot) 0) pada 0 untuk () jika (i lt n) pada data BUFSIZ (char) realloc (data, i) int r fread (datan, 1, in, stdin) jika (r lt 0) jeda lagi jika (N gt 0) data (char) malloc (n) untuk (i 0 i lt ni) char e errno 0 v strtoul (argvi1, ampe, 16) jika (errno v gt 0xff e) fprintf (stderr, quotInvalid hex constant snquot , Argvi1) keluar (1) datai (char) v rv RegSetValueEx (kunci, nilai, 0, REGBINARY, (const BYTE) data, n) break case KTINT: v strtoul (a, 0, 0) rv RegSetValueEx (kunci, nilai, 0, REGDWORD, (const BYTE) ampv, -542,6 609,9 rv ERRORINVALIDCATEGORY istirahat jika (data) bebas (data) jika (rv ERRORSUCCESS) Gagal (rv) -577,7 647,14 switch (vtype) case REGBINARY: - fwrite (data, dsize, 1, stdout) if (keytype KTBINARY) hack Untuk (unsigned i 0 i lt dsize i) printf (ku02xcquot, (unsigned char) datai, (i lt dsize-1. . N)) lain fwrite (data, dsize, 1, stdout) break case REGDWORD: data printf (quotlunquot, (DWORD)) -610,6 687,31 return 0 -642,6 746,9 sementara ((getCtlong get (argc , Argv, opts, longopts, NULL)) EOF) switch (g) kasus b: keytype KTBINARY break case e: keytype KTEXPAND break Index: utils. sgml RCS file: cvssrcsrcwinsuputilsutils. sgml, v revisi revisi 1.58 diff - u - r1. 58 utils. sgml --- utils. sgml 16 Feb 2006 11:17:19 -0000 1.58 utils. sgml 1 Mar 2006 18:35:09 -0000 -1023,7 1023,7 ltsect2 idquotregtoolquotgtlttitlegtregtoollttitlegt ltscreengt - Usage: regtool. exe OPSI (tambahkan daftar cek hapus tidak diset) KEY Penggunaan: regtool OPTION (addcheckgetlistremoveunsetloadunload) KUNCI Lihat atau edit perintah registri Win32: -1034,13 1034,19 hapus KEY menghapus KEY set KEYVALUE data. Set VALUE uni KEYVALUE menghapus VALUE dari KUNCI load KEYSUBKEY PATH load sarang dari PATH ke SUBKEY yang baru membongkar KEYSUBKEY membongkar sarang dan menghapus SUBKEY Pilihan untuk daftar Tindakan: - k, --keys print only KEYs - l, --list print only VALUEs - p , --postfix seperti ls - p, tambahkan postfix ke KEY name Options for get Action: - b, --binary print REGBINARY data as hex bytes Pilihan untuk set Action: - b, --binary set type to REGBINARY (hex args or -) - e, --expand-string set type ke REGEXPANDSZ - i, --integer set type ke REGDWORD - m, --multi-string set type ke REGMULTISZ -1109,6 1115,10 ltparagt ltparagtLlliteralgtsetltliteralgt action menetapkan nilai Dalam sebuah kunci Ltliteralgt-bltliteralgt berarti data binernya (REGBINARY). Nilai biner ditentukan sebagai hex byte dalam daftar argumen. Jika argumennya ltliteralgt-ltliteralgt, data biner dibaca dari stdin. Ltliteralgt-eltliteralgt berarti sebuah string yang meluas (REGEXPANDSZ) yang berisi variabel lingkungan tertanam. Ltliteralgt-iltliteralgt berarti nilainya adalah bilangan bulat (REGDWORD). -1122,6 1132,13 Tindakan ltliteralgtunsetltliteralgt menghapus nilai dari kunci. Langkah ltpariteralgtloadltliteralgt menambahkan subkunci baru dan memuat isi kumpulan registri ke dalamnya. Kunci induknya harus HKEYLOCALMACHINE atau HKEYUSERS. Tindakan ltliteralgtunloadltliteralgt membongkar file dan menghapus subkunci. Jika secara default, kuotasi terakhir atau kuotot diasumsikan sebagai pemisah antara kunci dan nilainya. Anda bisa menggunakan opsi ltliteralgt-Kltliteralgt untuk diberikan pada tanggal 1 Maret 20:13, Christian Franke menulis: gt Terlampir adalah versi 2 dari patch, termasuk update utils. sgml gt gt REGBINARY sekarang dapat dibaca eter sebagai biner dari stdin: Gt gt echo 0: 01 02 FE FF xxd - r regtool - b set KEYBINVALUE - gt gt regtool dapatkan KEYBINVALUE regtool - b set KEYBINVALUE - gt gt atau tentukan sebagai argumen hex: gt gt regtool - b set KEYBINVALUE 01 02 FE FF gt gt X (regtool - b get KEYBINVALUE) gt regtool - b set KEYBINVALUE x gt gt gt Tindakan loadunload tidak berubah. Gt gt Christian gt gt gt gt 2006-03-01 Christian Franke lthidden email gt gt gt regtool. cc: Tambahkan tindakan loadunload dan opsi - b, --binary. Gt utils. sgml (regtool): dokumentasikan Patch Anda terlihat bagus untuk saya, tapi saya memiliki beberapa minor nits. Pertama, jadilah sedikit lebih verbose di entri ChangeLog Anda. Tambahkan entri eksplisit untuk setiap perubahan fungsi atau datastruktur global. Gt mengambil revisi 1.19 gt diff - u - r1.19 regtool. cc Bisakah Anda menggunakan diff - up Ini membantu (setidaknya saya) menavigasi melalui sebuah patch. Gt cygwinconvtowin32path (argv1, win32path) Hal ini terjadi beberapa kali. Ketika fungsi panggilan Anda, dapatkah Anda selalu menambahkan spasi di antara nama fungsi dan tanda kurung pembuka gt rv RegLoadKey (base, n, win32path) gt printf (nilai kuantum snquot, n, value) Mengapa printf ini berkomentar jika Tidak perlu, tolong hapus Gt -577,7 647,14 gt switch (vtype) gt gt case REGBINARY: gt-fwrite (data, dsize, 1, stdout) gt if (keytype KTBINARY) hack Hack Mengapa hack Jika tidak, mohon hapus komentar ini. - Corinna Vinschen Tolong, kirim surat tentang Cygwin ke Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat Corinna Vinschen wrote: gt. Gt gtgt printf (nilai kuota snquot, n, nilai) gtgt gt gt Mengapa printf ini berkomentar Jika tidak dibutuhkan, tolong hapus. Gt cvs anotasi regtool. cc 1.1 (cgf 17-Feb-00): 1.1 (cgf 17-Feb-00): printf (nilai kuantum sndot, n, nilai) 1.1 (cgf 17-Feb-00): Melakukan kode-petugas kebersihan mengerjakan kode sejarah Bukan maksud dari patch saya -) Uncommenting baris ini selama pengujian sangat membantu, jadi saya membiarkannya tidak tersentuh. Gtgt -577,7 647,14 gtgt switch (vtype) gtgt gtgt case REGBINARY: gtgt - fwrite (data, dsize, 1, stdout) gtgt if (keytype KTBINARY) hack gtgt gt gt Hack Mengapa hack Jika tidak, mohon hapus komentar ini Gt Karena menggunakan opsi quotsetquot keytype sebagai opsi quotgetquot telah dipanggil hack beberapa tahun yang lalu: 1.1 (cgf 17-Feb-00): case REGEXPANDSZ: 1.3 (cgf 10-Jan-01): if (keytype KTEXPAND) hack 1.1 (cgf 17-Feb-00): case REGEXPANDSZ: 1.3 Cgf 17-Feb-00): Terlampir adalah versi baru dari patch. Terima kasih atas bantuan Anda mengenai SEBACKUPNAME, tindakan quotsavequot sekarang disertakan. Contoh: Gudang registri sistem cadangan (alias file jelek-selamanya-terkunci ini di windowssystem32config -) untuk k di SAM SECURITY SOFTWARE SYSTEM lakukan regtool simpan HKLMk quotdkquot lakukan regtool simpan HKU. DEFAULT quotdDEFAULTquot Akhir naskah Semoga fitur baru ini membantu. 2006-03-02 Christian Franke lthidden email gt regtool. cc (opsi): Tambahkan biner. (Penggunaan): Dokumen loadunloadsave dan - b. (Findkey): Tambahkan parameter pilihan, tambahkan loadunload. (Cmdset): Tambahkan kasus KTBINARY. (Cmdget): Tambahkan output hex dalam kasus KTBINARY. (Cmdload): fungsi baru (Cmdunload): fungsi baru (Setprivilege): Fungsi baru. (Cmdsave): Fungsi baru. (Perintah): Tambah beban, bongkar dan simpan. (Main): Add - b utils. sgml (regtool): Dokumentasikannya. Indeks: regtool. cc RCS file: cvssrcsrcwinsuputilsregtool. cc, v mengambil revisi 1.19 diff - u - p - r1.19 regtool. cc --- regtool. cc 15 Feb 2006 10:57:17 -0000 1.19 regtool. cc 2 Mar 2006 20:46:24 -0000 -10,15 10,17 rincian. Termasuk ltstdio. hgt termasuk ltstdlib. hgt termasuk lterrno. hgt termasuk ltctype. hgt termasuk ltgetopt. hgt termasuk ltwindows. hgt termasuk ltsyscygwin. hgt enum - KTAUTO, KTINT, KTSTRING, KTEXPAND, KTMULTI KTAUTO, KTBINARY, KTINT, KTSTRING, KTEXPAND, KTMULTI Keytype KTAUTO char keysep DEFAULTKEYSEPARATOR -32,6 34,7 static char progname - static char opts quotehiklmpqsvVK: quot static char opts quotbehiklmpqsvVK: quot int listwhat 0 int postfix 0 -62,7 65,7 penggunaan static void (FILE where stderr) fprintf (where, quotquot - quotUsage: s OPTION (add check get list remove unset) KEYnquot quotUsage: s OPTION (addcheckgetlistremoveunsetloadunloadsave) KEYnquot quotView or edit the Win32 registrynquot quotnquot quotquot, progname) -76,6 79,9 usage (FILE where stderr) quot remove KEY remove KEYnquot quot set KEYVALUE data. set VALUEnquot quot unset KEYVALUE removes VALUE from KEYnquot quot load KEYSUBKEY PATH load hive from PATH into new SUBKEYnquot quot unload KEYSUBKEY unload hive and remove SUBKEYnquot quot save KEYSUBKEY PATH save SUBKEY into new hive PATHnquot quotnquot) fprintf (where, quotquot quotOptions for list Action:nquot -83,7 89,11 usage (FILE where stderr) quot - l, --list print only VALUEsnquot quot - p, --postfix like ls - p, appends postfix to KEY namesnquot quotnquot quotOptions for get Action:nquot quot - b, --binary print REGBINARY data as hex bytesnquot quotnquot quotOptions for set Action:nquot quot - b, --binary set type to REGBINARY (hex args or -)nquot quot - e, --expand-string set type to REGEXPANDSZnquot quot - i, --integer set type to REGDWORDnquot quot - m, --multi-string set type to REGMULTISZnquot -265,7 275,7 translate (char key) void - findkey (int howmanyparts, REGSAM access) findkey (int howmanyparts, REGSAM access, int option 0) HKEY base int rv -348,9 358,44 findkey (int howmanyparts, REGSAM acces key base else - rv RegOpenKeyEx (base, n, 0, access, ampkey) - if (rv ERRORSUCCESS) - Fail (rv) if (access) rv RegOpenKeyEx (base, n, 0, access, ampkey) if (option ampamp (rv ERRORSUCCESS rv ERRORACCESSDENIED)) reopen with desired option due to missing option support in RegOpenKeyE FIXME: may create the key in rare cases (e. g. access denied in parent) HKEY key2 if (RegCreateKeyEx (base, n, 0, NULL, option, access, NULL, ampkey2, NULL) ERRORSUCCESS) if (rv ERRORSUCCESS) RegCloseKey (key) key key2 rv ERRORSUCCESS if (rv ERRORSUCCESS) Fail (rv) else if (argv1) char win32pathMAXPATH cygwinconvtowin32path (argv1, win32path) rv RegLoadKey (base, n, win32path) if (rv ERRORSUCCESS) Fail (rv) if (verbose) printf (quotkey s loaded from file snquot, n, win32path) else rv RegUnLoadKey (base, n) if (rv ERRORSUCCESS) Fail (rv) if (verbose) printf (quotkey s unloadednquot, n) printf(quotkey s value snquot, n, value) -491,7 536,7 cmdset () int i, n DWORD v, rv - char a argv1, data char a argv1, data 0 findkey (2, KEYALLACCESS) if (keytype KTAUTO) -510,6 555,43 cmdset () switch (keytype) case KTBINARY: for (n 0 argvn1 n) if (n 1 ampamp strcmp (argv1, quot-quot) 0) i n 0 for () if (i lt n) i n BUFSIZ data (char ) realloc (data, i) int r fread (d atan, 1, i-n, stdin) if (r lt 0) break n r else if (n gt 0) data (char ) malloc (n) for (i 0 i lt n i) char e errno 0 v strtoul (argvi1, ampe, 16) if (errno v gt 0xff e) fprintf (stderr, quotInvalid hex constant snquot, argvi1) exit (1) datai (char) v rv RegSetValueEx (key, value, 0, REGBINARY, (const BYTE ) data, n) break case KTINT: v strtoul (a, 0, 0) rv RegSetValueEx (key, value, 0, REGDWORD, (const BYTE ) ampv, -542,6 624,9 cmdset () rv ERRORINVALIDCATEGORY break if (data) free(data) if (rv ERRORSUCCESS) Fail (rv) -577,7 662,14 cmdget () switch (vtype) case REGBINARY: - fwrite (data, dsize, 1, stdout) if (keytype KTBINARY) hack for (unsigned i 0 i lt dsize i) printf (quot02xcquot, (unsigned char)datai, (i lt dsize-1. . n)) else fwrite (data, dsize, 1, stdout) break case REGDWORD: printf (quotlunquot, (DWORD ) data) -610,6 702,72 cmdget () return 0 int cmdload () if (argv1) usage () return 1 findkey (1, 0) return 0 int cmdunload () if (argv1) usage () return 1 findkey (1, 0) return 0 DWORD setprivilege (const char name) TOKENPRIVILEGES tp if (LookupPrivilegeValue (NULL, name, amptp. Privileges0.Luid)) return GetLastError () tp. PrivilegeCount 1 tp. Privileges0.Attributes SEPRIVILEGEENABLED HANDLE t OpenProcessToken does not work here, because main thread has its own impersonation token if (OpenThreadToken (GetCurrentThread (), TOKENADJUSTPRIVILEGES, FALSE, ampt)) return GetLastError () AdjustTokenPrivileges (t, FALSE, amptp, 0, NULL, NULL) DWORD rv GetLastError () CloseHandle (t) return rv int cmdsave () if (argv1) usage () return 1 try to set SeBackupPrivilege, let RegSaveKey report the error setprivilege (SEBACKUPNAME) REGOPTIONBACKUPREST ORE is necessary to save HKLMSECURITY findkey (1, KEYQUERYVALUE, REGOPTIONBACKUPRESTORE) char win32pathMAXPATH cygwinconvtowin32path (argv1, win32path) DWORD rv RegSaveKey (key, win32path, NULL) if (rv ERRORSUCCESS) Fail (rv) if (verbose) printf (quotkey saved to snquot, win32path) return 0 struct const char name -623,6 781,9 struct , , , , , , -642,6 803,9 main (int argc, char argv) while ((g getoptlong (argc, argv, opts, longopts, NULL)) EOF) switch (g) case b: keytype KTBINARY break case e: keytype KTEXPAND break Index: utils. sgml RCS file: cvssrcsrcwinsuputilsutils. sgml, v retrieving revision 1.58 diff - u - p - r1.58 utils. sgml --- utils. sgml 16 Feb 2006 11:17:19 -0000 1.58 utils. sgml 2 Mar 2006 20:46:30 -0000 -1023,7 1023,7 option. ltsect2 idquotregtoolquotgtlttitlegtregtoollttitlegt ltscreengt - Usage: regtool. exe OPTION (add check get list remove unset) KEY Usage: regtool OPTION (addcheckgetlistremoveunsetloadunloadsave) KEY View or edit the Win32 registry Actions: -1034,13 1034,20 Actions: remove KEY remove KEY set KEYVALUE data. set VALUE unset KEYVALUE removes VALUE from KEY load KEYSUBKEY PATH load hive from PATH into new SUBKEY unload KEYSUBKEY unload hive and remove SUBKEY save KEYSUBKEY PATH save SUBKEY into new hive PATH Options for list Action: - k, --keys print only KEYs - l, --list print only VALUEs - p, --postfix like ls - p, appends postfix to KEY names Options for get Action: - b, --binary print REGBINARY data as hex bytes Options for set Action: - b, --binary set type to REGBINARY (hex args or -) - e, --expand-string set type to REGEXPANDSZ - i, --integer set type to REGDWORD - m, --multi-string set type to REGMULTISZ -1109,6 1116,10 accidentally removing too much. ltparagt ltparagtThe ltliteralgtsetltliteralgt action sets a value within a key. ltliteralgt-bltliteralgt means its binary data (REGBINARY). The binary values are specified as hex bytes in the argument list. If the argument is ltliteralgt-ltliteralgt, binary data is read from stdin instead. ltliteralgt-eltliteralgt means its an expanding string (REGEXPANDSZ) that contains embedded environment variables. ltliteralgt-iltliteralgt means the value is an integer (REGDWORD). -1122,6 1133,17 a regular string. The ltliteralgtunsetltliteralgt action removes a value from a key. ltparagt ltparagtThe ltliteralgtloadltliteralgt action adds a new subkey and loads the contents of a registry hive into it. The parent key must be HKEYLOCALMACHINE or HKEYUSERS. The ltliteralgtunloadltliteralgt action unloads the file and removes the subkey. ltparagt ltparagtThe ltliteralgtsaveltliteralgt action saves a subkey into a registry hive. ltparagt ltparagt By default, the last quotquot or quotquot is assumed to be the separator between the key and the value. You can use the ltliteralgt-Kltliteralgt option to provide On Mar 2 21:59, Christian Franke wrote: gt Corinna Vinschen wrote: gt gt. gt gt gt gtgt printf(quotkey s value snquot, n, value) gt gtgt gt gt gt gtWhy is this printf commented out If its not needed, please remove. gt gt gt gt cvs annotate regtool. cc gt. gt 1.1 (cgf 17-Feb-00): gt 1.1 (cgf 17-Feb-00): printf(quotkey s value snquot, n, value) gt 1.1 (cgf 17-Feb-00): gt gt Doing code-janitor work on historic code was not the intent of my patch -) Urgh, sorry about that. While scanning your patch I missed that this printf isnt new but already in the code. gt gtgt -577,7 647,14 gt gtgt switch (vtype) gt gtgt gt gtgt case REGBINARY: gt gtgt - fwrite (data, dsize, 1, stdout) gt gtgt if (keytype KTBINARY) hack gt gtgt gt gt gt gtHack Why hack Otherwise, please remove this comment. gt gt gt gt Because using quotsetquot keytype for as a quotgetquot option has been gt called a hack many years ago: gt gt 1.1 (cgf 17-Feb-00): case REGEXPANDSZ: gt 1.3 (cgf 10-Jan-01): if (keytype KTEXPAND) hack gt 1.1 (cgf 17-Feb-00): Well, I cant see a hack in what youre using KTBINARY here. I removed the comment from your patch. gt Attached is a new version of the patch. gt Thanks to your help regarding SEBACKUPNAME, the quotsavequot action is now gt included. gt 2006-03-02 Christian Franke lthidden email gt gt gt regtool. cc (options): Add binary. gt (usage): Document loadunloadsave and - b. gt (findkey): Add options parameter, add loadunload. gt (cmdset): Add KTBINARY case. gt (cmdget): Add hex output in KTBINARY case. gt (cmdload): New function. gt (cmdunload): New function. gt (setprivilege): New function. gt (cmdsave): New function. gt (commands): Add load, unload and save. gt (main): Add - b gt utils. sgml (regtool): Document it. I applied the patch. I just had to reformat your ChangeLog slightly (a TAB before all lines, no extra indentation for lines which dont start with a ). Btw. since you seem to be interested in hacking the registry. would you also be interested to introduce registry write access below procregistry inside of the Cygwin DLL That would be extra cool. Im not quite sure how to handle the mapping from file types to registry key types, but there might be some simple way which Im just too blind to see. -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat On 03 March 2006 09:46, Corinna Vinschen wrote: gt gt Btw. since you seem to be interested in hacking the registry. would gt you also be interested to introduce registry write access below gt procregistry inside of the Cygwin DLL That would be extra cool. gt Im not quite sure how to handle the mapping from file types to gt registry key types, but there might be some simple way which Im just gt too blind to see. Hey, how about using pseudo filename-extensions on the pseudo-files that represent registry keys echo quotFooquot gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. sz creates procregistryHKEYCURRENTUSERSoftwareAppKeyValueName, type REGSZ, content quotFooltNULgtquot echo quotWINDIRquot gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. xsz creates procregistryHKEYCURRENTUSERSoftwareAppKeyValueName as REGEXPANDSZ echo quot23quot gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. dword echo quot0x17quot gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. dword dd bs1024 count3 ifdevrandom ofprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. bin etc etc. (We might even want a CYGWIN option to make the extension show up in dir listings, but it wouldnt be backwardly-compatible to do so in general). Hmm, and how about for MULTISZ taking account of the open mode echo quotString1quot gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz echo quotString2quot gtgtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz echo quotString3quot gtgtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz echo quotString4quot gtgtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz od - c lt procregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz String10String20String30String400 cheers, DaveK -- Cant think of a witty. sigline today. On Mar 3 13:12, Dave Korn wrote: gt On 03 March 2006 09:46, Corinna Vinschen wrote: gt gt gt gt gt Btw. since you seem to be interested in hacking the registry. would gt gt you also be interested to introduce registry write access below gt gt procregistry inside of the Cygwin DLL That would be extra cool. gt gt Im not quite sure how to handle the mapping from file types to gt gt registry key types, but there might be some simple way which Im just gt gt too blind to see. gt gt gt Hey, how about using pseudo filename-extensions on the pseudo-files that gt represent registry keys gt gt i. e gt gt echo quotFooquot gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. sz gt creates procregistryHKEYCURRENTUSERSoftwareAppKeyValueName, type gt REGSZ, content quotFooltNULgtquot gt gt echo quotWINDIRquot gt gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. xsz gt creates procregistryHKEYCURRENTUSERSoftwareAppKeyValueName as gt REGEXPANDSZ gt gt echo quot23quot gt gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. dword gt echo quot0x17quot gt gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. dword gt gt dd bs1024 count3 ifdevrandom gt ofprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. bin gt gt touch procregistryHKEYCURRENTUSERSoftwareAppKeyValueName. none gt gt etc etc. (We might even want a CYGWIN option to make the extension show up gt in dir listings, but it wouldnt be backwardly-compatible to do so in gt general). gt gt Hmm, and how about for MULTISZ taking account of the open mode gt gt echo quotString1quot gt gtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz gt echo quotString2quot gt gtgtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz gt echo quotString3quot gt gtgtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz gt echo quotString4quot gt gtgtprocregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz gt od - c lt procregistryHKEYCURRENTUSERSoftwareAppKeyValueName. msz gt String10String20String30String400 Thats actually an interesting idea. I was always thinking along the lines of using POSIX file types (plain, socket, pipe. ). However, file suffixes is something were already suffering from a lot (its not by chance that SUFFix and SUFFer are so similar, IMHO). What if a key quotfoo. szquot really exists and somebody wants to create a registry key quotfooquot When reading quotfooquot, which file is meant Whats the order of checking suffixes When somebody writes to a key quotfooquot, whats the default suffix, er. key type Or does that fail with an error message -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat Open this post in threaded view Report Content as Inappropriate RE: Patch regtool: Add loadunload commands and --binary option gt Thats actually an interesting idea. I was always thinking along gt the lines of using POSIX file types (plain, socket, pipe. ). gt gt However, file suffixes is something were already suffering from gt a lot (its not by chance that SUFFix and SUFFer are so similar, IMHO). Heh, yeh, who could ever forget the. exe. lnk. exe. lnk. lnk. exe troubles However, were in a special situation here, its not really a dir tree and the things in it arent really files, and we may be able to get away with it. I posted the idea so that others could see if it works or if they can see problems with the approach. gt What if a key quotfoo. szquot really exists and somebody wants to create gt a registry key quotfooquot No problem. If you want to create foo, you write to quotfoo. szquot. If you want to create foo. sz, you have to write to quotfoo. sz. szquot. Unless of course foo. sz is a dword, in which case youd write to quotfoo. sz. dwquot, etc etc. gt When reading quotfooquot, which file is meant There can only be one at a time, because in the registry there can only be one value with the name foo, regardless of what type it has. gt Whats the order of checking suffixes Im proposing that the suffix is only used when creating or writing to the file, to determine the type, but the suffix is stripped off for generating the actual name, and is not shown in dir listings, and is not required to open the file for read. gt When somebody writes to a key quotfooquot, whats the default suffix, gt er. key type Or does that fail with an error message Either I havent a strong opinion on the matter. cheers, DaveK -- Cant think of a witty. sigline today.

No comments:

Post a Comment